Releases: Arrowstar/ksptot
v1.6.10
Hi everyone!
This morning I'm happy to announce the long-awaited release of KSPTOT v1.6.10! This is a major release that primarily focuses on additional capabilities for Launch Vehicle Designer, though there have been some minor improvements elsewhere.
NOTE: If you are upgrading from KSPTOT v1.6.9 or earlier, you MUST download the R2023b MATLAB Compiler Runtime (MCR)! KSPTOT v1.6.10 will not run without this! You can find the R2023b MCR download for your platform here: https://www.mathworks.com/products/compiler/matlab-runtime.html
If you enjoy using KSPTOT and its many applications (the Porkchop Plotter, Multi-Flyby Maneuver Sequencer, Mission Architect, Launch Vehicle Designer, and all the rest), please consider buying me a coffee via my Ko-Fi account to support KSPTOT's development. As I note in the first post of this thread, KSPTOT is a labor of love that I have put many, many hundreds of hours into for the benefit of the KSP community. The best part of it for me, aside from knowing that KSPTOT is the premier mission design tool for KSP, is all the thank you notes I've received over the years. I offer this as another way to say "Thank you!", if you so desire.
The full change log for this release can be found below.
- LVD: kOS control script now also takes with the CSV the orbit elements at the mission time so that it can display orbit element errors as a function of time.
- LVD: Now supports spherical harmonics gravity for the central body gravity.
- LVD: Added solar radiation pressure models (spherical and solar sail). Added associated UIs. Added event action to adjust SRP model. Added solar sail orbit raising example.
- LVD: Fixed bug with using the camera toolbar stuff causing errors and deleting context menus.
- LVD: Update initial state dialog to be a bit more compact.
- LVD: Added ability to view Drag Force in main view area.
- LVD: Added a Lagrange Point geometric point.
- LVD: Added height of terrain constraint + GA task, as well as height maps for all default bodies from Sigma Cartographer mod for KSP.
- LVD: Tons of performance improvements.
- LVD: Added new "LVD Console" tool (Tools menu -> LVD Console) that acts like a terminal/console and lets you interact with under underlying LVD data without needing to write a plugin to do it.
- Some performance improvements due to recompiling some MEX files.
- MFMS: Implemented cancel button for the MFMS multi-run mode progress dialog box.
- MFMS: MFMS now computes departure delta-v for the objective function instead of departure C3 energy.
- LVD: Fixed a bug in the Set Kinematic State action where you couldn't use the set date/time UI.
- LVD: Implemented NOMAD 4.3.1 optimizer and removed NOMAD 3.9 optimizer.
- LVD: Main UI orbit display labels can now have their reference frame and element set configurable.
- LVD: NOMAD optimizer now can make use of the NOMAD surrogate library. See NOMAD optimizer options.
- LVD: Limited time slider updates to 20 Hz for smoothness.
- A number of bug fixes, both reported and not.
- LVD: Implemented ability to only plot certain events in the View Profiles.
- LVD: Events are now numbered in the listbox string with equal number of digits for each event. Also frozen events now get a snowflake symbol instead of **.
- LVD: Added DERIVEst method for computing gradients and Jacobians.
- LVD: Fixed bug with getPositOfBodyWRTSun()
- LVD: Update NOMAD 4 mex that allows for parallel processing while optimizing.
- Lots and lots of bug fixes, mostly within LVD.
- LVD: Added new polling and search methods for patternsearch().
- LVD: Warn/alert area is now a UI table.
- The KSPTOT main GUI has been replaced with something that is much more visually indicative of what functionality KSPTOT has to offer.
- KSPTOT UI now supports theming of the colors of all UIs. Access from the new main GUI: View -> Edit Themes and View -> Set Theme.
- New icons for KSPTOT and various KSPTOT tools and applications. There is also a new splash screen shown when loading KSPTOT.
- LVD: GUI areas for initial/final state is now a text area so it can scroll.
- LVD: Added body angular velocity Graphical Analysis tasks.
- LVD: Added body angular rate constraints.
- LVD: Added conditional action.
- LVD: Added Longitude termination condition
- LVD: Added Add value to plugin var value action and other similar actions.
- LVD: Added Set Next Event action.
- LVD: Actions are now sorted alphabetically.
- Fixed bug with Select Departure/Arrival Date button in Compute Departure stuff.
- New MATLAB Version: R2023b
- LVD: Update NOMAD solver to v4.4 and removed v4.3.1.
- LVD: Enabled DiscoMADS option for NOMAD solver.
- MA/LVD: Updated the optimization variable plot mouseover label background color to be not transparent.
- LVD: Run Case Matrix workers now record diary as they run to a "running" log file.
- LVD: Updated tab order for initial state and set kinematic state UIs.
- LVD: New example: lvdExample_MunarFreeReturn
- MA/LVD: Many bug fixes.
- Noticeable performance improvement when using numerically propagated celestial bodies.
- LVD: Added new ground track tab to main LVD UI's display area.
- LVD: Added sky box code for more "cinematic" display of 3D trajectories. Set option to enable in View Settings.
- LVD: Added additional camera controls functionality (Dolly horizontally/vertically camera).
- LVD: New steering model: tabular quaternion interpolation.
- LVD: New throttle model: tabular throttle interpolation.
- LVD: Update version of IPOPT optimizer to v1.1.6.
- LVD: Add new SQP optimizer algorithm.
- LVD: Bug fixes and performance improvements.
- LVD: Plotting ground track with contour should be slightly faster now.
- LVD: Removed the camera pos/tgt/va text on the status bar.
- LVD: Fixed bug with the sun vector and general lighting position in 3D view frame.
- LVD: Added new surface textures for Earth, Jupiter, Moon, Neptune, Saturn, and Uranus.
- LVD: Added explanatory notes about the body x and z axis definitions in the bodies.ini file.
- New jupiter texture, higher res
- LVD: Fix bug with skybox disabling grid lines after enable/disable skybox.
- LVD: Provided ability for ground track display to be disabled.
- LVD: Performance improvements, mostly in frame conversion stuff.
- LVD: Added utility for finding best integrator for each event.
- LVD: Small performance improvement in convertToFrame().
- LVD: Fix for planets with tilted axis not viewing correctly.
- LVD: Added ScaleProblem Fmincon parameter.
- LVD: Fixed bug with Nonsequential Event termination conditions not firing correctly when direction is only 1 or -1.
- LVD: Fixed bug with nonseq events optimization vars not being included.
- LVD: Add SLS Block 1 LVD example.
- Added ability to compute atmo density/pressure/temp from interpolant. Call function from main KSPTOT GUI -> Edit menu.
KSPTOT v1.6.9
Hi everyone!
This morning I'm happy to announce the release of KSP Trajectory Optimization Tool v1.6.9! This is a major release that primarily focuses on adding additional functionality to Launch Vehicle Designer (LVD). Here are some of the major highlights of this new release:
- Migration of the underlying MATLAB Compiler Runtime to version R2022a.
- LVD now includes an improved drag model that can be populated from data generated by an included kOS script.
- LVD now includes an ability to have user defined variables which can be used with LVD plugin code. These plugin variables can then be used to with the new Case Matrix Runner to run a variety of cases of the same MAT file.
The full change log for this release can be found below.
- Converted all remaining maneuver planning tools to App Designer.
- Converted all remaining maneuver planning tools to App Designer.
- Converted all remaining Launch Vehicle Designer UIs to Ap Designer.
- Converted a few misc UIs to App Designer.
- MFMS: Inclusion of a new button on the UI that allows for binary data from the last run to be exported to file.
- LVD: New menu item to create a new mission scenario from MFMS binary data.
- MA/LVD: Initial state and final state shown in the UI are now the earliest and last (chronological) state in the state log, as opposed to the first and last state log entries. This is important in LVD because of the ability to use Set Kinematic State actions to move around in time, and because propagation can be both forwards and backwards.
- LVD: The Edit Constraint UI now shows the current scaled value of the selected constraint.
- LVD: Added functionality to the script event list right click context to convert Add Impulsive Delta-V actions to finite burns.
- LVD: Final and initial spacecraft state displays now show earliest and latest state and not first and last state in state log.
- LVD: Added new UI to fine-tune creating continuity constraints.
- LVD: Added gravity only RKN1210 high precision integrator.
- LVD: There should be a 5%-10% performance increase when running scripts for most scenarios, especially those that make use of 3rd body gravity.
- All single UI apps (MFMS, RMS, etc) now display their central body spheres with the texture and not the colormap, if available.
- LVD: Added the options dialog for the Second Order propagator.
- LVD: Tooltip for the warning/error labels is custom and now shows the proper width so everything that is meant to be on one line is actually on one line.
- Fixed bug in main UI options dialog.
- LVD: The tool tip string on the time slider text now shows the proper events.
- MFMS: New constaint that allows you to set a max delta-v limit on flyby maneuvers.
- LVD: Added "plugin variables" which allow users to create their own plugin-accessible quantities which can be optimized.
- Refreshed the icons of many UIs.
- LVD: Performance improvements for 3rd body gravity.
- LVD: Updated the version of the IPOPT optimizer.
- LVD: Initial implementation of the Case Matrix Runner tool.
- LVD: Performance improvement for generic polynomial steering model.
- LVD: Fixed issue with mission optimization observation UI always popping up back on top when drawing plots.
- LVD: Migrated the optimization observer and optimization scorecard UIs to App Designer.
- LVD: Added tooltips to main UI's menu items.
- LVD: Added icons to many of the buttons in many of the user interfaces.
- LVD: Added ability to show markers on trajectory lines for events.
- LVD: Added new geometric vector x,y,z constraints
- LVD: Added ability to normalize vectors to the geometric Scaled Vector.
- LVD: Added new geometric vectors: point velocity vector, vector difference vector.
- LVD: Added graphical analysis tasks for point velocities.
- LVD: Added feasibility mode option for FMINCON solver.
- LVD: Added auto scaling for constraints. See Optimization menu -> Scale Constraints
- LVD: Bug with position marker not showing when there's only one state in the internal state log (such as when LVD starts or a new mission is created).
- LVD: Added ODE78 and ODE89 integrators for use.
- LVD: Lots of Graphical Analysis UI improvements, including proper selection of figure background colors based on axis color, resizable UI, arrow buttons for changing the order of tasks, and settings being remembered from session to session.
- Old list dialog box now replaced with custom App Designer implementation throughout all of KSPTOT.
- LVD: New drag models added, including new higher fidelity kOS-based drag model.
- LVD: Added total angle of attack GA task.
- LVD: Added createDragData.ks kOS script for use with the new kOS drag model in LVD.
- LVD: New example showing how the kOS drag model ("complex drag model") is used.
- LVD: Edit Event UI now shows the event number being edited in the title of the window.
- LVD: Updated kOS control script to have a T- timing if the script is called before the control sequence starts.
- LVD: Added thrust to weight constraint.
- LVD: Added the ability to compute constraint Jacobian to fmincon optimizer. This can improve optimization performance at the expense of additional calculation time.
- LVD: Added projection type to view settings. Default is perspective now.
- Added available textures for Earth, Moon, Mercury, Venus, Mars, and Pluto. (For RSS.)
- LVD: Added a "LVD trajectory" point type that reads in an LVD case MAT file and propagates that trajectory in the current LVD case.
- LVD: In Adjust Variable UI, angle variables now show units of degrees and not radians.
- LVD: Migrated the steering and throttle model selections away from the listbox dialog.
- LVD: Added a new coordinate system which is parallel to a reference frame at a given universal time.
- Many other performance improvements and bug fixes!
NOTE: If you are upgrading from KSPTOT v1.6.8 or earlier, you MUST download the R2022a MATLAB Compiler Runtime (MCR)! KSPTOT v1.6.9 will not run without this! You can find the R2022a MCR download for your platform here: https://www.mathworks.com/products/compiler/matlab-runtime.html
Finally, if you enjoy using KSPTOT and its many applications (the Porkchop Plotter, Multi-Flyby Maneuver Sequencer, Mission Architect, Launch Vehicle Designer, and all the rest), please consider buying me a coffee via my Ko-Fi account to support KSPTOT's development. As I note in the first post of this thread, KSPTOT is a labor of love that I have put many, many hundreds of hours into for the benefit of the KSP community. The best part of it for me, aside from knowing that KSPTOT is the premier mission design tool for KSP, is all the thank you notes I've received over the years. I offer this as another way to say "Thank you!", if you so desire.
Please let me know if you have any questions or find any bugs. Thanks, and happy orbiting!
KSPTOT v1.6.8
Hi everyone!
This morning I'm happy to announce the release of KSP Trajectory Optimization Tool v1.6.8! This is a major release that primarily focuses on adding additional functionality to Launch Vehicle Designer (LVD). A couple of the more interesting new items in LVD are:
The "**Halo Orbit Constructor**". This is a tool that allows users of Principia and other "N-body" gravity mods to generate approximations for halo orbit that can then be easily exported to the rest of LVD for mission design and planning purposes.
The "**geometry system**". This is a component of LVD which allows users to define and work with geometric elements in their LVD scenarios for graphical/view, optimization, vehicle steering, and Graphical Analysis. You can read more here.
Celestial bodies can now be numerically integrated. This is useful when using "N-body" gravity mods such as Principia as they don't use the two-body motion for celestial bodies that stock KSP does.
This release also showcases the migration of many of the KSPTOT user interface windows to MATLAB's new App Designer framework. Finally, and perhaps most importantly, this release migrates KSPTOT to MATLAB R2021a!
Here's the full change log:
LVD: The function to export a kOS CSV file has been updated to allow users to select the event(s) they want to export.
LVD: Introduction of the geometry system. Points, vectors, planes, angles, coordinate systems, and reference frames are now all user definable and can be integrated with views, optimization, and Graphical Analysis.
LVD: The "launch vehicle" menu is now called "scenario," and the "edit launch vehicle" menu beneath it is now called "edit vehicle configuration."
LVD: Added three new constraints: ground object elevation, azimuth, and range.
MA: Mission Animator now properly rotates central celestial bodies.
LVD: Added a new vector, vector projected onto a plane, to the geometry system.
LVD: A few bug fixes and performance improvements.
LVD: T2W throttle model now checks minimum throttle T2W as well as maximum.
LVD: Sim Driver now warns if integrator output event index (ie) is empty.
LVD: When editing non-seq events, the event UI now greys out any non-relevant widgets.
LVD: Added a flight path angle event termination condition.
LVD: Added a new "vector magnitude" constraint type.
LVD: Added a new "angle magnitude" constraint type.
Upgrade MATLAB version to R2021a.
LVD: Incorporation of surrogate optimizer as an optimization method.
LVD: New optimizer output for NOMAD and PatternSearch optimizers.
LVD: Different steering models can be selected for each Euler angle now using the Selectable Model steering mode.
LVD: All constraints now support the ability to evaluate themselves relative to the value of the same quantity at the end of another event. This is in addition to evaluating them relative to fixed bounds as well.
Fixed an issue with importing the UT from KSPTOTConnect into the main KSPTOT user interface (the porkchop plot).
LVD: Bug fixes to the 3rd body gravity model.
LVD: Bug fixes to optimizing Cartesian elements.
LVD: Graphical Analysis is now using the App Designer framework and sports a new look.
LVD: All fluid types are now their own GA tasks.
Main KSPTOT user interface window is now ported over to App Designer framework.
LVD: Constraints and objective functions now are aware of and respect user selected reference frames when evaluating values.
LVD: Added halo orbit examples. The L2 halo orbit example is a full mission from low Kerbin orbit to the halo orbit around the Mun!
LVD: Added third body gravity validator that checks to see if third body gravity sources are active with no force model or if the 3rd body gravity force model is active with no bodies.
LVD: Extrema, Calculus Calculation objects, ground objects, and geometry objects now respect reference frames when computing their values.
LVD: View Settings dialog now moved over to App Designer framework and sports a new look!
LVD: Added Halo Orbit Constructor tool (Tools -> Halo Orbit Constructor menu)
LVD: Performance improvements to frame conversions.
LVD: GA task list area now has a search box.
LVD: Formal continuity constraints are replaced with state comparison constraints for position, velocity, and time.
LVD: Event termination conditions now have ref frame awareness.
LVD: Halo Orbit Constructor now shows arrival/departure transfer orbits too.
LVD: Event actions can now be executed before or after propagation on events.
LVD: Constraints can now be evaluated at either the initial state or final state of an event. Same goes for the state comparison constraints and the node of the comparison event.
Converted a whole bunch of the standalone analysis tools (MFMS, RMS, OTBOC, etc) over to the App Designer framework.
Celestial bodies can now be propagated using numerical integration in addition to two body propagation.
LVD: Added an Open Recent Mission item to File menu
LVD: Migrated main UI and numerous other UIs to App Designer framework. There are still a number of LVD UIs that still need to be migrated, but this is a start.
LVD: Plotting state logs should now be a bit faster due to updated frame rotation behavior.
Added UI progress bars when opening all tools from main KSPTOT UI.
LVD: Major change to the Set Kinematic State action and the associated GUI. You can now set the states of the individual vehicle components, including stages, engines, tanks (and their associated tank masses!), electrical powers sources, sinks, and storage (including battery state of charge).
Astrodynamics Tools UI migrated to App Designer framework
LVD: Edit Event UI migrated to App Designer framework.
LVD: Edit Event UI now has buttons to cycle back and forth through the events list.
LVD: Edit Event Termination Condition UI migrated to App Designer framework.
LVD: Non Sequential Event UI migrated to App Designer framework.
LVD: Plugins can now be used as objective functions, constraints, and graphical analysis output.
LVD: All UIs should now render centered on the screen.
LVD: Double clicking an available task in GA now adds it to the list of tasks.
LVD: Outputting the propagation time to console now includes a breakdown of time needed for propagation and actions.
LVD: Missing LVD cases don't show up in the recent cases list (File menu) anymore.
Numerous bug fixes and performance enhancements, especially in LVD.
NOTE: If you are upgrading from KSPTOT v1.6.7 or earlier, you MUST download the R2021a MATLAB Compiler Runtime (MCR)! KSPTOT v1.6.8 will not run without this! You can find the R201a MCR download for your platform here: https://www.mathworks.com/products/compiler/matlab-runtime.html
Finally, if you enjoy using KSPTOT and its many applications (the Porkchop Plotter, Multi-Flyby Maneuver Sequencer, Mission Architect, Launch Vehicle Designer, and all the rest), please consider buying me a coffee via my Ko-Fi account to support KSPTOT's development. As I note in the first post of this thread, KSPTOT is a labor of love that I have put many, many hundreds of hours into for the benefit of the KSP community. The best part of it for me, aside from knowing that KSPTOT is the premier mission design tool for KSP, is all the thank you notes I've received over the years. I offer this as another way to say "Thank you!", if you so desire.
Thanks, and happy orbiting!
KSPTOT v1.6.7
Hi everyone!
This afternoon I'm pleased to announce the release of the KSP Trajectory Optimization Tool v1.6.7! This is a major release that generally adds significant new functionality to Launch Vehicle designer. It also fixes some bugs in Mission Architect and other parts of the application.
One of the marquee improvements to Launch Vehicle Designer is the ability to export LVD steering and throttle controls to a CSV file which can be read in from a custom kOS script. You can check out some of the discussion on this topic earlier in this thread, or check out the following demonstration video of a munar lander inserting into a circular orbit from the surface.
Here's the full change log:
LVD: Implementation of alternators and electric engines.
LVD: Fix for broken plot background color option.
LVD: GA now respects event plotting setting when plotting data.
LVD: Implementation of alternators and electric engines.
LVD: Fix for broken plot background color option.
LVD: GA now respects event plotting setting when plotting data.
MA/LVD: Added option to set number of parallel workers for optimization.
MA: Fixed bug with having more than one variable item in a variable (initial state).
MA: LWA can now import target orbit data from KSP.
MA: Added functionality to set launch site from ground target in Set State (estimate launch).
LVD: Fixed bug with power sources (wrong matrix size stuff).
MA: Resolved issue that causes error if an event does not have any states associated with it.
LVD: Added ability to set positive output step sizes for all active integrators on events.
LVD: Boosted performance when looking for downward SoI transitions.
LVD: Can now create event continuity constraints via a context menu accessed by right clicking on the sequential events listbox.
LVD: Drawing plots should be faster when plotting other celestial bodies. The slow multiprocessing stuff from a previous pre-release is gone here.
LVD: Added a feature to output the wall clock run time for each event to the ksptot.log file upon propagation. See Settings menu.
LVD: Fixed bug with the time slider sucking up a bunch of CPU time after sliding it around a bunch.
The missing parentID lines of the SolarSystemBodies.ini file have been added.
LVD: Added a linear tangent steering model to the available options in LVD. This is a great way to get an optimal ascent from the surface of a body to space, as the linear tangent steering law is actually derived directly from optimal control theory. As of now, only "pitch" type angles can use this steering.
The linear tangent steering law is: tan(pitch_angle) = a*t + b, where t is time after the steering law is initiated and a and b are constants.
There is a new lvd example MAT file that shows how to use it, and best of all, shows how it can be used to get off of the Mun in a single event!
MA/LVD: Added a flight path angle graphical analysis task and constraint.
LVD: Fixed bug with Adjust Variable dialog getting a weird axes in the background sometimes.
LVD: Optimization variables are now sorted by event number before optimization so they appear in order in the optimization UI.
LVD: Having the Update View Limits option checked in the View Settings now retains the existing view direction, it just updates the axis limits.
LVD: Added ability to display a semi-transparent atmosphere overlay in the View Settings.
MA/LVD: Added a new astro calculator to find radius/velocity/FPA from sma/ecc/true anomaly.
MA: Mission Animator UT time entry field now has a context menu for entering time as date/time. It also attempts string evaluation.
LVD: Added angle equations to steering and throttle UIs.
LVD: Users can now set the type of throttle model and steering model in the initial state, as well as their corresponding parameters.
Celestial bodies can now display a surface texture instead of the color gradient used previously.
MA/LVD: Added flight path angle graphical analysis tasks and constraints.
MA: Mission Animator time slider step size is now fixed to warp rate.
LVD: Steering model UIs now display proper angle names and not just "alpha", "beta", and "gamma."
LVD: The main LVD window is now resizable. There is a minimum size limit equal to the current window size, but no limit on the maximum.
LVD: Resolved TwoBodyPropagator error.
The issue with radio button strings overrunning their bounds in the main KSPTOT UI on Linux has been resolved.
LVD: Added a new toolbar button to toggle the camera toolbar on and off. The camera toolbar can be used to move the physical scene camera around, which often makes for a better viewing experience.
LVD: Fixed bugs regarding vessel orbit import from KSP and SFS files in initial state and set kinematic state UIs.
MA: Fixed bug with propagating to node calculations.
LVD: Engines now model thrust and isp as a function of pressure through the use of curves and not the hard-coded vacuum and sea level pressure points.
LVD: Engine data can now be imported from KSP engine config files. Right click in the edit engine dialog box on the thrust and Isp buttons.
LVD: Upload impulsive delta-v maneuver from "Add Impulsive Delta-V" event action is now available. Right click on an event in the sequential events list with an "Add Impulsive Delta-V" action and click on the upload maneuver menu item.
MA: Resolved issue with computing position wrt Sun of other spacecraft.
LVD: True anomaly termination condition should now work properly.
LVD: Event actions with variables now correctly remove those variables when the action is deleted.
LVD: Fixed bug where attitudes would not display in backwards prop segments.
LVD: Added option to FMINCON otimizer to automatically find optimal step size.
LVD: Removing an event now removes the variables associated with that event's termination condition and actions.
LVD: Resolved issue with typo in 2BImpactPointLat name.
LVD: Resolved issue with empty globals in 2BodyImpactPt calls to findSoITransitions.
LVD: Fixed issue with finding down SoI transitions not working if eccentricity >= 1.
MA/LVD: Fixed bug with chunked state log generation skipping last state log entry if there's only one event in SoI.
KSPTOT v1.6.6
This afternoon I'm pleased to announce the release of the KSP Trajectory Optimization Tool v1.6.6! This is a major release that sees some great new features added Launch Vehicle Designer (LVD), as well as bug fixes for Mission Architect (MA), Multi-Flyby Maneuver Sequencer (MFMS), and the Vehicle Sizing Tool (VST). Of the new features in LVD, the most noteworthy include:
A plugin system that allows users to write their own code that is executed during LVD mission script propagation.
A new view settings/profile system that allows users to highly customize the way they view trajectories in LVD. Settings are stored a profiles that make it easy to switch between them quickly.
A new ground object system that allows users to define objects which move primarily on or near the surface of celestial bodies, such as ground stations, antennas, vehicles/rovers, and aircraft. The software automatically computes line of sight to these objects as needed or requested.
The ability to compute numerical derivatives and integrals for any quantity in LVD.
An electrical power system (EPS) modeling engine that lets users model batteries, solar panels, RTGs, and more onboard a spacecraft, as well as track power consumption, generation, and battery state of charge.
Here's the full change log:
MA: Resolved issue where Ground Targets UI would not open.
LVD: Adjust variables UI is now not modal.
LVD: Graphical analysis now has an "event termination" time indicator line option for plotting.
LVD: Resolved bug when adding a Set Drag Aero Properties action to an event that caused an error to be thrown (and no action to be added to the event).
LVD/MA: Fixed issue with eclipse calculations being wrong;
LVD: Implemented plugin system.
Performance improvement when looking up celestial body data by body ID number.
LVD: Creation of new view settings/profile system that greatly expands what can be viewed and how.
LVD: Addition of two-body rotating frame math under the hood, for use with the state representation code.
LVD: Resolved an issue with the Adjust Variables dialog box that could cause errors to be thrown under certain circumstances.
LVD: Added thrust continuity options to the various thrust profiles.
LVD: Added ground objects, which allow users to model stations and vehicles that primarily exist on or move relative to the surface of a celestial body.
The view settings also allow rendering these ground objects in the display window, and ground track and line of sight can also be viewed.
Graphical analysis tasks allow you to plot ground object quantities over time.
MA/LVD: Added the ability to change the renderer between OpenGL and Painters.
LVD: New derivative and integral calculations for all quantities. Can be plotted in Graphical Analysis and used as constraints and objective functions.
All numeric textboxes in KSPTOT now support more complex math functionality, including exponents, square roots, trig functions, and logs.
LVD: Creation of an electrical power system (EPS) modeling engine that helps track power generation, storage, and usage onboard a spacecraft.
LVD: Initial State steering model variables and throttle model variables will now show up as "initial state" and not "event 0" in various places.
MA/LVD: Graphical Analysis now has an altitude independent variable option.
LVD: Graphical Analysis can now plot data using event colors.
MA/LVD: Fix for mismatched matrix dimension error in SoI search functionality.
LVD: New Steering Mode: Attitude Interpolation. Specify (and/or optimize) your initial and final states and interpolate between them over time.
LVD: Fixed a few minor bugs with GA and the ODE5 integrator.
MFMS: Resolved an issue with wrong powered flyby burn delta-v output being displayed on the user interface.
VST: Added an example file for the Vehicle Sizing Tool.
KSPTOT v1.6.5
Hi everyone!
This evening I'm please to have released KSP Trajectory Optimization Tool v1.6.5! This is a major update with a focus primarily on improving the Launch Vehicle Designer (LVD) experience. New optimization algorithms, integrators, and models are included for use in LVD. A few performance enhancements have also been incorporated. The goal is to allow the analyst even more flexibility in how trajectory problems are set up and solved. The highlights include:
- The inclusion of the NOMAD gradient-free optimization algorithm;
- The ODE5 integrator;
- All new optimization algorithm and integrator options; and
- The interpolated curve drag coefficient model.
Here's the full change log.
- MA/LVD: Added option to auto-propagate (or not) the mission script when changes are made to it. Useful when your script takes forever to propagate and you have lots of changes to make.
- MA: Improved robustness of "coast to function value".
- MA/LVD: Editing mission notes prompts user to save file (asterisk in window title).
- LVD: Overhaul of optimization:
-
- Added new optimizer: NOMAD
-
- Added new option for computing gradients of objective function (a custom finite difference scheme)
-
- Added a new UI for selecting optimization algorithm.
-
- Added many new options for FMINCON and Pattern Search algorithms (including two new UIs for them).
-
- Removed all the old optimization options (they are incorporated to the new options now).
- LVD/MA: New mission plans now use the celestial body data that's currently loaded in the main KSPTOT GUI and not the data from the previous mission plan.
- LVD: Added a new impulsive delta-v event action.
- LVD: Added a new event number and total effective specific impulse (Isp) tasks to Graphical Analysis.
- LVD: Objective functions are now "composites" of a number of sub-functions. Those sub-functions mirror what is available for use as a constraint.
- LVD: Added a constraint (and therefore also an objective sub-function) for the amount of delta-v expended during an event. Listed under "event delta-v expended" or something to that effect.
- LVD: In the initial state dialog box and the set kinematic state action dialog box, state representation and reference frame are now select-able in more combinations than before, and adding new reference frames and state representations is much, much easier going forward.
- LVD: New "set kinematic state" action. Use this to set the time, position, velocity, and stage states of the spacecraft arbitrarily (or optimize them), or inherit them from the final state of a previous event.
- LVD: New time, position, and continuity constraints for use with the set kinematic state action.
- LVD: FMINCON options now allow constraint, optimality, and step tolerances to go to 0.
- LVD: Objective functions are now "composites" of different functions. The values of these functions are added together in a fashion defined by the user.
- LVD: New plotting methods for events (applies to both the orbit display in the main LVD UI and graphical analysis plots).
- LVD: Minor performance enhancements to calculating atmospheric temperature.
- LVD: Resolves an issue with the true anomaly event termination condition where the directional termination was reversed from expected behavior.
- LVD: Added a pop out orbit display button to the main LVD UI.
- LVD: Added the ability to compute the gradient sparsity to the custom finite differences gradient method, which can improve optimization speed and accuracy in some situations.
- LVD: Added IPOPT to optimizer list.
- MA: Resolved issue with orbital decay on coast that was breaking it.
- MA: Resolved two issues with MA drag coefficient calculator that would slow down the calculations in some instances.
- MA: Marker type for mission animator added.
- Fix to SFS file read. Bug was causing some vessels to not get found in the file.
- LVD: Addition of a new propagator type, "Two Body Motion." This change also includes a number of backend reworks to incorporate a new way to propagate spacecraft orbits and a generic interface for adding new propagator types in the future.
- LVD: Changed drag model such that drag coefficient is now entered as set of points which are interpolated over. Drag coefficient data may be imported from a CSV file.
- LVD: Added a new, fifth order fixed step integrator, ODE5. See below for more information.
- LVD: Added drag area to graphical analysis outputs.
- LVD: Added Cntrl-F shortcut to remove or re-added event from optimization.
- MA/LVD: Resolved issue with plotting periapsis crossings.
As usual, the release can be downloaded from the first post of this thread. Please let me know if you have any questions or find any bugs. Thanks, and happy orbiting!
KSPTOT v1.6.4
Hello everyone!
This evening I'm pleased to announce the release of the KSP Trajectory Optimization Tool v1.6.4. This release is primarily a bug-fix and feature/performance enhancement release that has been in the work for a few months now. Both Mission Architect and Launch Vehicle Designer has seen some work on them. The single biggest change is an update to the internal atmospheric temperature model in order to include a number of mathematical terms which were previously left out and have now been included. The method used to interpolate on atmospheric data has also been updated to a spline fit. This should result in far more accurate atmospheric density calculations, and thus more accurate missions in both MA and LVD.
Please note that the KSPTOTConnect plugin has been updated to accommodate the new atmospheric temperature models. You should update your existing plugin with the one in the new KSPTOT v1.6.4 download package.
Here's the complete change log:
- LVD: Added tooltip to edit constraints dialog box listbox.
- LVD: Added drag coefficient GA task
- LVD: Performance enhancements to cross product and the deep copy stage state functions
- LVD: Fix bug that was causing improper handling of non-sequential events in the sim driver
- LVD: Added radius beyond SoI radius validator.
- LVD: Option to set event specific initial step size for integrator, and then optimize that step size via context menu.
- LVD: When holddowns are enabled, integrate in the body-fixed frame with zeros for the pos/vel rates. (Performance enhancement)
- LVD: Added event termination condition direction option.
- Flyby Porckchop Plot: Resolved "not enough inputs" bug
- MA/LVD: All NEW MA and LVD cases will use spline interpolation for their atmospheric table interpolations.
- MA: Resolved an issue with atmo data being overwritten in MA when any undo/redo state is created.
- LVD: T2W is now computed at true altitude and not sea-level.
- MA/LVD: Update to temperature model. All missing terms have been added now.
- MA: Updates to soi transition to eliminate a case where the soi max search UT was infinite when the go to tru DT was 0. Has been fixed to just assume that no time is passing.
- Resolved potential issue where atmo curves for bodies would not load correctly when loading a new bodies.ini file if the order of bodies in the old bodies.ini was different than in the new bodies.ini file. Clearing a persistent var in processINIBodyInfo does the trick.
- ...and other bug fixes and performance improvements.
As usual, the download is available in the first post of this thread. If you have any questions or discover any bugs, please drop me a line in some fashion to let me know and I'll do my best to address it! In particular, it would be great if those using the Linux version could provide any feedback on how it's working out. There are some known graphical issues, but those aside, if you discover any bugs that appear to be Linux-related, please let me know. Thanks!
Finally, if you enjoy using KSPTOT and its many applications (the Porkchop Plotter, Multi-Flyby Maneuver Sequencer, Mission Architect, Launch Vehicle Designer, and all the rest), please consider buying me a coffee via my Ko-Fi account to support KSPTOT's development. As I note in the first post of this thread, KSPTOT is a labor of love that I have put many, many hundreds of hours into for the benefit of the KSP community. The best part of it for me, aside from knowing that KSPTOT is the premier mission design tool for KSP, is all the thank you notes I've received over the years. I offer this as another way to say "Thank you!", if you so desire.
In any event, I hope you all enjoy! Happy orbiting!
KSPTOT v1.6.3
Hello everyone!
This evening I'm pleased to announce the release of the KSP Trajectory Optimization Tool v1.6.3. This release brings with it a host of new functionality across the spectrum of the KSPTOT application suite. The biggest new announcement is the inclusion of a new tool, the Vehicle Sizing Tool, or VST! The purpose of the Vehicle Sizing Tool is to allow KSP engineers to optimize vehicle masses while still hitting required mission delta-v across any number of mission phases and vehicle stages. As an example, you can use VST to plan a mission from Kerbin to Eve and back again, accurately sizing the vehicle for each leg of the journey and each stage of each of those legs. Never again will you need to question whether you've brought enough propellant on your interplanetary missions! Or even just those short hops to Low Kerbin Orbit. :)
Other enhancements include some new Graphical Analysis tasks for Mission Architect (MA) and Launch Vehicle Designer (LVD), as well as a host of performance improvements and bug fixes for the same. Multi Flyby Maneuver Sequencer (MFMS) has also gotten a bit of love this go around with some new functionality for constraining your preliminary planetary tour mission designs.
Finally, there is a new Launch Vehicle Designer tutorial included in the download package. Entitled "Eve: The Final Frontier", this tutorial walks users through a complete mission analysis cycle for a complete Eve-and-Back mission.
Here's the complete change log:
NEW TOOL: Vehicle Sizing Tool (VST). Allows engineers to optimize a spacecraft or launch vehicle's mass while targeting mission Delta-V or a variety of mission phases and vehicle stages.
NEW TUTORIAL: "Eve: The Final Frontier", a Launch Vehicle Designer tutorial.
LVD: Added third body gravity force model.
LVD: Fixed bug with setting the initial state of t2t and e2t connections (if there were none of those types of connections).
LVD: Fixed bug with setting the initial state of t2t and e2t connections (if there were none of those types of connections).
LVD: Converted the velocity components of the body fixed initial state frame to use az el and magnitude
LVD: Can now plot body-fixed rotating trajectories as well as 2D lat/long ground tracks.
MEA: Resolved issue with maneuver node import.
KSPTOT RTS: Resolved issue where the RTS host wasn't being saved (getting overridden with empty str)
LVD/MA: Added tooltips to the optimization var bars in the observe optim GUI.
RMS: Now can minimize only the first burn of the burn seq.
RMS: Better plotting for hyperbolic orbits.
MA: Fixed string error in InsertDVManeuver
MA: Added a burn dv magnitude to the insert dv maneuver UI.
MA: Fixed a bug with the lb/ub textboxes not being disabled when burn type changed.
LVD/MA: Added a new C3 constraint to MA and LVD.
LVD: Fixed plotting children bodies around Sun (or top level solar system body)
LVD: Added new Eve sample return mission case
LVD: Fixed title of Set Stage State UI.
LVD: Fixed issues with deleting variables improperly
LVD: Fixed issue with thrust being reported incorrectly if throttle is > 0 but all connected tanks to an engine are empty. Now reports zero for that engine as expected.
LVD: Fixed issue when trying to create an Add Mass to Tank action
LVD: Added ability to activate/deactivate constraints without deleting them.
LVD: Added undo/redo states to most of the integrator/optimization option menu callbacks
MA: Added line width to Other Spacecraft
LVD: Added Mission Notes like MA
LVD: Fixed issue with stop watch termination condition
LVD: New Cd default for aero drag state is 0.3
MA: Added a GA task for "elevation of celestial body".
MA: Ground stations can now be placed down to the center of central bodies (allowable altitude range changed).
MFMS: Added ability to include or not departure and arrival Vinf from the MFMS objective function
MFMS: Added arrival VInf vector components
MA/LVD: Title bar for application now only shows file name and not file path of currently loaded file.
MA/LVD: Added atmo press and density tasks to GA
MA: UI now prompts users to change other s/c name when importing if name is not the default New Spacecraft
MA/LVD: Added Mach Number GA task
LVD: Resolved issue with non sequential events that occur immediately at the start of a sequential event causing the integration to go to the limits.
LVD: Updated some LVD Example MATs to fix non satisfied constraints.
...and many more LVD performance enhancements and some other minor applicaton-wide bug fixes.
As usual, the download is available in the first post of this thread. If you have any questions or discover any bugs, please drop me a line in some fashion to let me know and I'll do my best to address it! In particular, it would be great if those using the Linux version could provide any feedback on how it's working out. There are some known graphical issues, but those aside, if you discover any bugs that appear to be Linux-related, please let me know. Thanks!
Finally, if you enjoy using KSPTOT and its many applications (the Porkchop Plotter, Multi-Flyby Maneuver Sequencer, Mission Architect, Launch Vehicle Designer, and all the rest), please consider buying me a coffee via my Ko-Fi account to support KSPTOT's development. As I note in the first post of this thread, KSPTOT is a labor of love that I have put many, many hundreds of hours into for the benefit of the KSP community. The best part of it for me, aside from knowing that KSPTOT is the premier mission design tool for KSP, is all the thank you notes I've received over the years. I offer this as another way to say "Thank you!", if you so desire.
In any event, I hope you all enjoy! Happy orbiting!
KSPTOT v1.6.2
From the release post:
Good evening, everyone!
This evening I am happy to announce the official release of KSP Trajectory Optimization Tool v1.6.2. As with the previous release, this release primarily focuses on additional improvements to the Launch Vehicle Designer (LVD) tool. LVD is now faster, more robust, and contains an even greater set of tools for analysts to use when designing any sort of trajectory, from an ascent into orbit, to a trip to the Mun or other celestial body, and back again. Also making its debut in this release is the new Linux version of KSPTOT! If you've been looking to use KSPTOT but lack a Windows PC, now is your time to shine. Mac users can additionally take advantage of KSPTOT now by running the Linux version in a Virtual Machine. See the install instructions in the OP for details.
Here's the change log:
-
New Linux Version of KSPTOT!
-
Added new "two body time to impact", "impact latitude", and "impact longitude" tasks to LVD's Graphical Analysis tool.
-
Added new "tank mass flow rate" task to LVD's Graphical Analysis tool.
-
Added checkboxes to show SoI radii and body children on the main LVD UI. These work identical to those in Mission Architect.
-
Added ability to test an LVD event with all possible integrators to see which one runs the fastest. Accessible from the LVD Edit Event dialog box.
-
Added the ability to set the width of plotted trajectory lines in Mission Architect and Launch Vehicle Designer.
-
Added ability, in Launch Vehicle Designer, to create "Tank to Tank" connections that allow flowing mass from one tank to another. Useful for basic life support modeling or modeling propellant refueling.
-
Added ability to see SoI transitions in LVD's Graphical Analysis tool.
-
Added ability to define fluid types and assign those types to tanks. Now tanks that hold xenon or monopropellant will not have their mass accounted for as "Liquid Fuel/Ox."
-
Added a new LVD Event Action: "Reset Extremum Value." Allows for an extremum to forget it's value in the middle of a mission so that it can be reused accurately later on in that same flight.
-
Reworked the Mission Architect Insert/Set State user interface to be less tall and wider (fits on lower resolution monitors better).
-
Many bug fixes and LVD script execution performance enhancements.
As usual, the download is available in the first post of this thread. If you have any questions or discover any bugs, please drop me a line in some fashion to let me know and I'll do my best to address it! In particular, it would be great if those using the Linux version could provide any feedback on how it's working out. There are some known graphical issues, but those aside, if you discover any bugs that appear to be Linux-related, please let me know. Thanks!
Finally, if you enjoy using KSPTOT and its many applications (the Porkchop Plotter, Multi-Flyby Maneuver Sequencer, Mission Architect, Launch Vehicle Designer, and all the rest), please consider buying me a coffee via my Ko-Fi account to support KSPTOT's development. As I note in the first post of this thread, KSPTOT is a labor of love that I have put many, many hundreds of hours into for the benefit of the KSP community. The best part of it for me, aside from knowing that KSPTOT is the premier mission design tool for KSP, is all the thank you notes I've received over the years. I offer this as another way to say "Thank you!", if you so desire.
In any event, I hope you all enjoy! Happy orbiting!
KSPTOT v1.6.1
Hello!
This evening I am happy to announce the release of KSP Trajectory Optimization Tool v1.6.1. This is a point release that primarily focuses on improving the new Launch Vehicle Designer (LVD) application within KSPTOT. LVD is a fully featured mission design tool primarily focused on allowing users to model and optimize launch vehicles. However, because of the generic way in which LVD is presented, KSP mission analysts can now model full missions, from launch, to in-space maneuvers, to powered landings and parachute descent, all within Launch Vehicle Designer.
Most of the changes in this release are improvements to existing functionality, quality of life enhancements, bug fixes, and LVD script execution performance improvements. Here's a summary of the change log (generally all referring to LVD):
- Added a "normal force" model;
- Added the ability to select the integrator algorithm used for each event;
- Added new Event Actions to modify drag and lift force properties;
- Escape key now closes most LVD UIs;
- Added a dynamic pressure task to Graphical Analysis;
- Added ability to set the integrator step size for each event;
- Added "non-sequential events" that can be triggered based on a specified condition in between sequential events;
- Added a Thrust to Weight throttle model that holds a particular T2W ratio;
- Added constraints for all existing attitude angles and throttle quantities;
- Added Graphical Analysis tasks for tank masses, stage dry masses, engine active state, and stage active state;
- Added "stopwatches" that can be turned on and off during a mission to determine the amount of time between arbitrary events (includes constraints and GA tasks);
- Added a new LVD example that shows how to model asparagus staging while demonstrating a full trip from Kerbin to the Mun's surface and back to Kerbin;
- Added ability to selectively turn on and off force models for each event;
- Greatly sped up the time it takes to perform any action in the UI that could be undone;
- Added total thrust as a graphical analysis task and constraint;
- Many, many performance improvements to the LVD script execution engine. Executing an arbitrary script now takes 25%-50% of the time it did in v1.6.0, on average;
- Many, many bug fixes!
As usual, the download is available in the first post of this thread. If you have any questions or discover any bugs, please drop me a line in some fashion to let me know and I'll do my best to address it! This is a really great release that makes LVD more powerful and more enjoyable to use, and I'm hoping you all can start taking advantage of that right away.
Finally, if you enjoy using KSPTOT and its many applications (the Porkchop Plotter, Multi-Flyby Maneuver Sequencer, Mission Architect, Launch Vehicle Designer, and all the rest), please consider buying me a coffee via my Ko-Fi account to support KSPTOT's development. As I note in the first post of this thread, KSPTOT is a labor of love that I have put many, many hundreds of hours into for the benefit of the KSP community. The best part of it for me, aside from knowing that KSPTOT is the premier mission design tool for KSP, is all the thank you notes I've received over the years. I offer this as another way to say "Thank you!", if you so desire. :)
In any event, please let me know if I can help anyone out with using KSPTOT. Happy orbiting! :)