Search the Community
Showing results for tags 'ksp trajectory optimization tool'.
KSP Trajectory Optimization Tool v1.6.8 As of v1.6.8, KSPTOT requires the use of the MATLAB Compiler Runtime R2021a! If you are upgrading from a version older than v1.6.8, please download the new MCR below! Description The KSP Trajectory Optimization Tool (KSP TOT) is a piece of MATLAB-based software I've written to help plan and execute space missions. It's functions are many: Using a Lambert solver, generate "porkchop plots" that assist with determining proper departure and arrival times of interplanetary transfer orbits. Using the data in (1), determine an optimal hyperbolic departure orbit and compute the burn magnitude and direction (that is, the delta-v vector) as well as the burn location in the initial orbit about the departure planet. Compute optimal planetary flybys to cheaply get to those hard-to-reach destinations (Moho, Eeloo, etc). Generate delta-v optimal rendevzous maneuvers to another spacecraft. Find the optimal two-burn orbit change maneuvers to adjust your orbit cheaply! Fully sequence a mission from start to finish, including coasts, burns, aerobraking, and more. This thread is a continuation of a related thread over in the add-on dev forum. Download & Installation Instructions To install and run KSP TOT on Windows, do the following: Download the Windows 64-bit 2021a MATLAB Compiler Runtime (MCR). Install the MCR package on your computer. You may need to restart your PC after installing in order to use KSPTOT. Download the KSP TOT package. (Push download button in upper right corner.) Unzip the KSP TOT package to a directory of your choosing. Copy the KSPTOTConnect folder to your KSP Gamedata folder. Copy the Ships folder to your KSP folder (if you use kOS). Run the KSPTOT application. To update from a previous version, just repeat steps 3-6. There is no need to re-download the MCR. Mac/Linux Users: Follow these instructions instead. (Mac only): Download VirtualBox for OS X hosts. Install according to the VirtualBox instructions. Setup and install a distribution of Linux as a virtual machine within VirtualBox. (Ex: Ubuntu) All instructions from here on down will reference the virtual machine and it's Linux operating system, not the Mac system. Download the Linux 64-bit 2021a MATLAB Compiler Runtime (MCR). Install the MCR package on your computer. You may need to restart your PC after installing in order to use KSPTOT. You MUST install the MCR to "/usr/local/MATLAB/R2021a/"! The software will not work correctly if this is not done. Download the KSP TOT package. (Push download button in upper right corner.) Unzip the KSP TOT package to a directory of your choosing. Set the execution bit on the run script and the executable itself. Using the following console command: chmod +x run_KSPTrajectoryOptimizationTool.sh KSPTrajectoryOptimizationTool Copy the KSPTOTConnect folder to your KSP Gamedata folder. Copy the Ships folder to your KSP folder (if you use kOS). From within the directory where you unpacked KSPTOT, run "./run_KSPTrajectoryOptimizationTool.sh /usr/local/MATLAB/R2021a/" to launch KSPTOT. To update from a previous version, just repeat steps 4-6. There is no need to re-download the MCR. For addition detail, see here. Buy Me a Coffee KSP Trajectory Optimization Tool has always been free, is free today, and will always be free to download and use. It is one of my most enjoyable hobbies and I consider it my gift to the KSP Community and developers for providing me with many hours of enjoyment. Over the years, though, a number of individuals have asked about donations as a way to say "thank you" for the hundreds (or even thousands) of hours that have gone into the development of KSPTOT. For those who wish to do so, I have a Ko-Fi account that makes just that possible. To use, just click the "Buy Me a Coffee" button. You'll be taken to a page where you can enter an amount (in units of $3), a message, and make it public or private. As a disclaimer, such donations don't imply any agreement for me to provide you with goods or services. (You already have the software! ) They are merely another way for you to say "Thank You" and are completely optional and voluntary. Usage Instructions NOTE: I've put together a tutorial on how to use KSP TOT for a basic Kerbin-Duna flight. See this post here for the tutorial. Launch Vehicle Designer Future Feature Ideas These are ideas for future LVD functionality and are mostly here for my own reference: Sensor models for mineral scanning and the like. Done Electrical system modeling, including solar panel, generator, and battery models. Done Simple modeling of ground vehicles and aircraft via a waypoint system. Done Updated steering modes which are more flexible (specify control frame, specify angle models (polynominals, linear tangent, etc)). Done General derivatives and integrals of quantities. Implement as a store of times and values over event, then allow for requesting the derivative/integral at a particular time by querying stores values and times to compute numerically. Done. Linear constraints. Backwards propagation. Done. Drag (and lift?) as a function of some independent variable (velocity, altitude, Mach number, etc) Drag done. Let the user select select (or do it automatically) the reference frame for the Spacecraft state panels (Initial Spacecraft State, Final Spacecraft State, view state after event). LVD geometry system: Define "points" (spacecraft, celestial bodies, ground stations, fixed in reference frame, two body prop point) Define "vectors" (built in e.g. position, velocity, angular momentum; fixed in coordinate system; and point to point) Define coordinate systems (aligned/constrained from two vectors) Define reference frame (coordinate system + point) All elements done. Make element set conversions vectorized. Done. Source Code Source code for KSPTOT itself is available on Github at the following location: KSPTOT Github Found a Bug or Issue? Please file a bug report here. FAQ Q: When I first download and try to run KSPTOT, I see the process in Task Manager but nothing happens! What is going on? A: Each time you download KSPTOT and run the executable for the first time, the software needs to decompress a bunch of code and store it on your computer. KSPTOT is a large application with a lot of software within it, so this takes some time. Please give KSPTOT 5-10 minutes to fully decompress and start up before killing it. (In rare instances, it may take longer than this.) Q: I don't have MATLAB! Can I still use KSP TOT? A: Yes! MATLAB is not required to use KSP TOT, only the MATLAB Compiler Runtime, which is freely available at the link I provide above in the download instructions. Q: I use Real Solar System / Kopernicus / Outer Planets Mod /etc. Can I use KSP TOT with it? A: Yes! To do so, you'll need to create a bodies.ini file with the information of the new planets included. Simply install the KSPTOTConnect plugin into your KSP / Gamedata folder, start KSP, get into the flight scene (where you can see your spacecraft in space, for example), and then open KSP TOT. Use the File -> Create New Bodies File From KSP and follow the instructions. Then load the file you create with File -> Load Bodies From File. All done! While you'll only need to create the bodies file once, you have to load it each time KSP TOT starts to use it. Q: Do I really have to enter dates and times in seconds? That sounds awful. A: Nope! Right click on any time field, select "Enter UT as Date/Time", and fill in the year/day/hour/minute/second in the box that comes up. That's all there is to it! Q: I'm having problems running KSP TOT. The program doesn't run and just turns into a temp file when I double click it. What is going on? A: Check to see if your anti-virus software is interfering. Provide an exception for the KSP TOT executable if you need to. Avast has been known to cause problems. Q: I can't get the KSP TOT real time system or maneuver node upload to connect. What can I do? A: Check the following conditions: KSP must be running in a windowed mode, you must be in the flight scene (not tracking station or space center scene, but the scene where you can fly your vessel), and you must have a firewall exception for KSP. If these are all true and you're still having problems, let me know. Q: Mission Architect is hard! How do I use it? A: First, check out the PDF tutorial packaged with the KSP TOT download. If you still have questions after (or while) going through that, please post the questions in this thread and I'll get back to you as soon as I can. Q: I get an error about a file not being found when I attempt to run KSPTOT. What can I do? A: Please follow the steps at this link to see if that resolves the problem: https://www.mathworks.com/matlabcentral/answers/387408-why-do-i-get-the-error-using-load-unable-to-read-file-filename-no-such-file-or-directory-when Q: What ports do I need open to use KSPTOTConnect or the KSPTOT Real Time System? A: Ports 8282 though 8295 are used for KSPTOTConnect and KSPTOT RTS. Port 8282 is used for pulling body information from KSP, for uploading maneuvers, and other one time events. The others are used for a continuous data stream from KSP while using the RTS. Change Log Version 0.1 [LIST] [*]Initial public release. [/LIST] Version 0.2 [LIST] [*]Added departure information screen. [*]Added ability to input time (UT) as a date/time by right-clicking on those text boxes [/LIST] Version 0.3 [LIST] [*]Fixed bugs [*]Included basic computational options, accessible from Edit->Options, [*]Dixed a bug where datatips on the main porkchop plot would not always display estimated delta-v, [*]Added a custom display for datatips on the porkchop plot, [*]Added time past periapse to the burn information on the departure display GUI. [/LIST] Version 0.4 [LIST] [*]Fixed bug where departure calculation window would not refocus after selecting departure/arrival times from porkchop plot. [*]In departure calculation input GUI, added ability to right-click on arrival time input and select option to optimize that time based on what's in the departure time box. [*]Added application-wide input checking. [/LIST] Version 0.5 [LIST] [*]Added ability to optimize departure for given arrival date in Departure Calc window. [*]Added ability to find earliest arrival date based on maximum allowable delta-v. [*]When generating a porkchop plot, data cursor now appears at the optimal location. [*]Apse markers have been added to the transfer orbit display in the departure information window. [*]A "global optimum" method has been written and runs after generating a porkchop plot, but it currently doesn't output anything anywhere. I'm still working on what to do with it. [*]Added new bodies to the application's database. Corrected existing information where needed. [*]Lots and lots of bug fixes. [/LIST] Version 0.6 [LIST] [*]Lone Wolfling's "minimize arrival time" with variable departure time optimizer; [*]The ability to input arithmetic statements (2+2 for example) into numeric text boxes and have them evaluate (so if you enter 2+2, the box changes to read 4) [*]"Optimize Departure for Input Arrival" now uses the input departure time as a lower bound. Useful for when you're in the middle of a game and you clearly can't go back in time to find that "better" solution. [*]Some bug fixes and tweaks under the hood. [/LIST] Version 0.7 [LIST] [*]A[B] Flyby Maneuver Sequencer[/B](FMS)that is capable of searching for optimal flybys (gravity assist maneuvers) around planets. Spending too much fuel on that trip to Moho? Try a flyby around Eve first! [*]Optimal launch/arrival date is now the default setting in the Compute Departure GUI. [*]"Time To Periapse" is now shown alongside "Time After Periapse" in the DV Maneuver Information boxes in the Departure Information GUI and the FMS GUI. Useful for using maneuver node editors mostly. [*]Some minor visual changes/tweaks to the plots. [*]Some bug fixes and a code reoganization on the back-end. [/LIST] Version 0.8 [LIST] [*]A[B] two-burn optimal orbit change planner[/B]. This allows you to change your current orbit from any one given orbit to another with two engine firings. Very useful for adjusting your inbound hyperbolic orbit to set up that ideal Kethane scanning orbit. [*]The ability to port in orbits from SFS files. Right click an orbit panel, hit the appropriate menu item, select the SFS file, and go! Eliminates the need to hand-enter orbits from MechJeb displays or whatnot. [*]The addition of the orbital period to some output data. [*]The Compute Departure Burn GUI now accepts hyperbolic orbits. (I've left the wording on Elliptical in there for now until I'm satisfied that it works just as well with hyperbolic as well as elliptical orbits.) [*]Various minor bug fixes and tweaks. [/LIST] Version 0.9 [LIST] [*]Changes to the departure calculation code and the flyby maneuver sequencer in order to[B] better determine burn times and true anomalies[/B] when provided with an orbit epoch and mean anomaly at that epoch. [*]Right-clicking on the porkchop plot will now bring up a context menu that will allow you to recenter the plot on a particular point on the graph. [*]A few minor bug fixes and tweaks. [/LIST] Version 0.10 [LIST] [*]New application: [B]Maneuver Execution Assistant[/B]. This helps pilots properly time the start of burns to center the delta-v across the maneuver node. [*]New application: [B]Rendezvous Maneuver Sequencer[/B]. Useful for meeting up with other craft in orbit, as well as moons. [*]KSP TOT can now[B] ingest custom celestial bodies files [/B]and parse them. Useful for doing stuff in other solar systems you define. [*]Added some tooltips to input fields. [*]Bug fix: Fixed issue where GUI elements could become distorted and/or shift position [*]Bug fix: Fixed issue with code that converts r/v vectors to keplerian elements: now handles 0 eccentricity and inclination much better [*]Bug fix: Code now remembers where last opened SFS file was retrieved from. [*]Bug fix: Optimization runs now include some scaling of constrains and the objective function. [*]Lots of backend changes to support the above. [/LIST] Version 0.11 [LIST] [*]New application: [B]KSPTOT Mission Control Center. [/B]Connects to KSPTOT using the new KSPTOT Connect plugin (see below). Offers users on different PCs the ability to act as mission controllers by providing console screens with subsystem data on them. [LIST] [*]Console pages available in the MCC: [*]Orbital Operations [*]ACS/Dynamics (attitude control and pointing) [*]Power/Thermal [*]Propulsion [*]Telemetry Monitor [/LIST] [*]New plugin: [B]KSPTOT Connect[/B]. Allows users to connect KSPTOT to KSP (running on the same PC) to perform various tasks: [LIST] [*]Grab the orbit and game UT from straight from KSP! [*]Upload maneuver nodes from the various applications! [*]Place in your GameData directory in your KSP directory. [/LIST] [*]A handful of minor fixes on the KSP TOT side. [LIST] [*]Importing orbits from SFS now works for 0.23. [*]Some other fixes [/LIST] [/LIST] Version 0.11.1 [LIST] [*]Bug fix: Plots in the flyby maneuver sequencer should render correctly now. Before, an error was thrown fairly consistently. [*]Bug fix: Plotting in the Compute Departure window has been corrected. Before only the red dv vector was shown. [*]Bug fix: Uploading a maneuver to a ship in KSP is now restricted to localhost. [/LIST] Version 0.11.2 [LIST] [*]Bug fix: The remaining plot rendering issues should be resolved. [/LIST] Version 0.12 [LIST] [*]New Application: [B]KSP TOT Mission Architect[/B] [LIST] [*]Allows for the planning of complete missions from Kerbin injection orbit to anywhere in the solar system. [*]Plan ballistic trajectories, gravity assist maneuvers, injection orbits and more using the same basic orbital mechanics and patched conics system that KSP uses! No more infinitesimal sphere of influence approximations to ruin your burn planning. [*]Tracks spacecraft mass and fuel usage so you ensure you always have enough fuel to return to Kerbin. [*]Built in mission optimizer can goal seek to target celestial bodies, minimize fuel usage, or hit inclination/eccentricity targets -- all optimally. [*]Full orbit visualization means that you'll know precisely where you're going and how you're going to get there. [*]Mission state log provides the complete spacecraft state at effectively any point along the mission, from initial get-go to the final injection burn. [*]And more! [/LIST] [*]Improvements to the astrodynamics code: [LIST] [*]Orbit propagation code has been vectorized to allow for faster execution. [*]Orbit RV/Keplerian conversion has been vectorized for MUCH faster execution. Code is also far more robust! [/LIST] [*]Improvements/fixes to the rendezvous application. [*]Other minor fixes/improvements too small to note here. [/LIST] Version 0.12.1 [LIST] [*]Fixed issue with vectorized kepler solver; [*]Added lower periapse warning and low propellant warnings; [*]Added zoom slider to orbit display; [*]Added tooltips; [*]Updated colormaps for bodies in bodies.ini: [LIST] [*]Jool [*]Moho [*]Gilly [*]Vall [*]Bop [*]Pol [*]Eeloo [/LIST] [*]Added an unsaved work check upon closing MA; [*]Fixed bug with the Advance Script To Selected Event function; [*]Added scroll bar to Alerts/Warnings box; [*]Fixed rare display issue with Mission Optimizer; [*]Numeric constraints may now have an associated reference body; [*]Active constraint listbox tooltip now displays information on active constraints; [*]Arrow buttons on orbit visualization now wrap; [*]Fixed bug that occured when mission had more than 11 events; [*]Fixed bug that could cause infinite propagator recursion when going to true anomaly of 0. [/LIST] Version 0.12.2 [LIST] [*]Added new constraints to the MA Mission Optimizer [LIST] [*]Orbital Period [*]Non-singular H1 [*]Non-singular K1 [*]Non-singular H2 [*]Non-singular K2 [/LIST] [*]Added Mission Architect Celestial Body Catalog that displays celestial body information [*]Added ability to plot state and state-derived quantities using MATLAB plotting capabilities [LIST] [*]Classical (Keplerian) orbit elements [*]Vector (position/velocity) elements [*]Equinoctial elements [*]Spacecraft masses (propellants, dry, total) [*]Spacecraft eclipse state [*]Other spacecraft state and state-derived values [*]Generates CSV output on command [*]Shows orbital events such as DV maneuvers and apse crossings on the plots [*]Numerous graphical plotting options [LIST] [*]Colors, grids, line width, sub-plots, etc [/LIST] [/LIST] [*]Initial implementation of body rotation code [LIST] [*]MA now computes longitude and latitude [LIST] [*]Optimizer constraint [*]Graphical analysis variable [*]State readout output [/LIST] [/LIST] [*]Added "Other Spacecraft" and "Ground Stations" [LIST] [*]User can define a spacecraft in orbit or a ground station on a body surface [*]Can be used for optimization ("minimize distance to s/c") [*]Can be used for plotting in Graphical Analysis [/LIST] [*]Added burn UT to Rendezvous Maneuver Sequencer [*]Improved MA SoI transition robustness for elliptical orbits [*]Increased optimizer speed for missions with many events [*]Fixed bug with retrieving orbit from KSPTOTConnect [*]Fixed issue with Rendezvous Maneuver Sequencer when trying to compute manenuvers between orbits with similar geometry [*]Fixed issue that could cause script execution to slow with many events [*]Fixed issue with MA mission plan file sizes being >10 MB [*]Fixed issue that caused saving and opening of MA mission plans to be slow [/LIST] Version 0.12.3 [LIST] [*]Two new constraints in Mission Architect: [LIST] [*]Altitude of periapsis [*]Altitude of apoapsis [/LIST] [*]Bug fix to graphical analysis' text output when mission plan had not yet been saved [*]Major change to MA constraint system (now possible to change assigned event after creating constraint) [*]Bug fixes to KSPTOT main functionality, flyby maneuver sequencer, and in other places [*]Bug fixes to Mission Architect [/LIST] Version 1.0.0 [LIST] [*][B]New Application: Multi-Flyby Maneuver Sequencer[/B]. Replacing the Flyby Maneuver Sequencer, this application is capable of generating flyby trajectories around an arbitrary number of celestial bodies. It's also 100x times faster than FMS and tends to generate solutions which are more balanced and achievable. Really, try it out, it's a real work of art and arguably the best set of code I've ever written. [*][B]Mission Architect[/B] has received a number of upgrades: [LIST] [*]GUI now actively indicates when no errors are present in the execution of the missions script. [*]It is not possible to generate orbit constraints based on the current state of the mission and its associated events. See "Script" menu. [*]Two new script execution settings (see "Script" menu): [LIST] [*]Strict SoI Search is an attempt to speed up the execution time of long missions by restructuring the way high->low SoI transitions are found. It can, in some cases, speed up execution and optimization by a factor of 2x. [*]Parallel Script Optimization allows users to take advantage of MATLAB's sophisticated parallel computing abilities to speed up the optimization of the mission script in most cases. [*]Both of these options default to "off" but are available in the "Script" menu. [/LIST] [*]A number of improvements to SoI search in general that increase its robustness. [*]Many, many bug fixes and improvements. [/LIST] [*]A number of other minor fixes and improvements to various other elements of KSP TOT. [/LIST] Version 1.1.0 [LIST] [*][B]New Application: Flyby Porkchop Plotter. [/B]Generates a delta-v contour map for an arbitrary flyby mission sequencer in a similar manner to that of the porkchop plot featured on main GUI. Inspired by diomedea, this application is great for getting the big picture and finding flybys through a more "brute-force" technique. [*]Updates to the [B]Multi-Flyby Maneuver Sequencer[/B][B]:[/B] [LIST] [*]Now accepts a minimum of two waypoints (previously, three) and computes the optimal ballastic trajectory between them. This is basically a way to find optimal, no flyby trajectories using a genetic algorithm. [*]GUI now allows users to specify bound on flight time for each waypoint leg. Previously only the launch window could be specified. [*]Bug fixes and some other minor tweaks to the underlying algorithm. [/LIST] [*]A new[B] splash screen[/B] now appears when loading the application. Features a new KSP TOT logo inspired by the Voyager I and II missions. [LIST] [*]Also fixed the issue where the main GUI would half load, displaying filler/placeholder information for a moment before loading the full GUI. [/LIST] [*]A new [B]Help -> About[/B] menu in the main GUI with application development credits. [*]Fixed a regression in [B]Mission Architect[/B] that made it hard to find SoI transitions in some cases. [/LIST] Version 1.1.1 [LIST] [*]Fixed a bug in [B]Multi-Flyby Maneuver Sequencer[/B] such that the wrong burn true anomaly was being displayed at flyby periapses. [*]Added the ability to import masses of the active spacecraft in KSP straight into [B]Mission Architect[/B] by right-clicking the mass panel in the Insert State dialog box. Must have KSPTOTConnect plugin installed in KSP and KSP must be running in the flight scene for this to work. [*]Added ability to tap Enter/Return on keyboard to save and close the Insert State/Coast/DV_Maneuver/Mass_Dump dialog boxes in [B]Mission Architect[/B]. [/LIST] Version 1.1.2 [LIST] [*]Fixed issue with launch windows in [B]MFMS.[/B] [/LIST] Version 1.1.3 [LIST] [*]Fixed issue with editing thrusters in [B]Mission Architect.[/B] [/LIST] Version 1.1.4 [LIST] [*]The pork chop plot now requests an increase in the maximum delta-v to plot if the minimum delta-v in the data points computed is greater than that value. [*][B]Added the ability to generate bodies.ini files from KSP! [/B] In the File menu of the main GUI, select "Create Bodies File From KSP." [*]Added a note in the generic time entry dialog box clarifying that those times are Earth times, not Kerbin times. [*]Added a new constraint to [B]Mission Architect[/B]: Universal Time constraint. Restricts event end times to the universal times specified by the user. [/LIST] Version 1.1.5 [LIST] [*]Vessels no longer have parts disappear upon loading a save when using the KSP TOT MCC suite. [*]Asteroids are no longer selectable from the MCC Vessel Selection dialog box. [/LIST] Version 1.1.6 [LIST=1] [*]Thanks to bk2w, I now have a vectorized version of the porkchop plot code implemented. Based on his trials, it runs something like 280x faster than before. Needless to say, this is a great improvement! Thank you to bk2w! [*]Implemented an "orbit clipboard" across the whole KSP TOT application, including Mission Architect, Multi-Flyby Manuever Sequencer, etc. Right click on any orbit entry panel to get a menu for copy/pasting an orbit to the KSP TOT orbit clipboard. You can also right click on any orbit state log panel in Mission Architect to copy the orbit from what you're seeing. This works on the main GUI and in the State Log window, too! [*]Added Mean Anomaly to the Mission Architect state log tooltips. [*]Fixed a bug with using the Mission Architect State Log with only one event in the mission script. [*]In the Mission Architect Insert Coast dialog box, when inserting a Go To UT coast, you can now right click the UT value, min UT value, and max UT value boxes to enter a UT as a Date/Time string, as you can everywhere else in the GUI. [*]One or two other minor things I found along the way. [/LIST] Version 1.1.7 [LIST] [*][B]Major improvements to the KSPTOTConnect netcode courtesy of RadarManFromTheMoon[/B]. These improvements significantly increase the robustness and speed of KSP TOT Connect, making it much more enjoyable to use. Thanks, RadarManFromTheMoon! [*][B]New Mission Architect Tool: Mission Animator[/B]. Mission Animator is a multi-purpose visualizer and animation creation tool for Mission Architect. [*]Three new objective functions in Mission Architect: maximize inclination, maximize eccentricity, and "satisfy constraints". [*]2x speed up of Mission Architect script execution when using Strict SoI Search [*][B]Time may now be specified in Earth units or Kerbin units.[/B] NOTE: Kerbin units are HIGHLY experimental. Report any issues with KSP TOT while using Kerbin units immediately. [*]Bug fixed with MA Graphical Analysis tool when plotting against MET. [*]New "Distance Traveled" option in MA Graphical Analysis. [*]Fixed two bugs with Maneuver Exec Assistant [/LIST] Version 1.1.8 [LIST] [*]A new aerobraking event for Mission Architect; [*]A huge set of new options in Mission Animator; and [*]Lots of little bug fixes and tweaks. [/LIST] Version 1.1.9 [LIST] [*]New Features for [B]Mission Architect[/B]; [LIST] [*]A new finite duration burn model that takes into account the duration of a burn, and thrust and Isp of the engine; [*]Aerobraking updated to include both stock and NEAR/FAR models; [*]A new launch window analysis tool; [*]A new delta-v budget tool; [*]Improvements to mission optimizer behavior; [*]Improvements to undo/redo functionality (was causing some slow-downs after many actions); [*]Bug fixes and other minor improvements; [/LIST] [*]Compiled [B]KSPTOTConnect [/B]against KSP v0.90; [*]Added a search window length input to [B]Rendezvous Maneuver Sequencer[/B]; [*]Some minor fixes to the [B]KSPTOT Real Time System (RTS).[/B] [/LIST] Version 1.2.0 [LIST] [*]Upgraded [B]MATLAB Compiler Runtime to version R2014b x64[/B]. [*]Added a search parameter slider to [B]Rendezvous Maneuver Sequencer[/B] that allows the user to adjust the way the optimizer works. [*]Added ability to split impulsive DV maneuvers in [B]Mission Architect.[/B] [*]Changed aerobraking models away from the impulsive approximation and replaced those with numerical integration that should be much more accurate. [*]Added a function to [B]Mission Architect Graphical Analysis[/B] that allows the user to draw lines at specified points on the plots [*]Lots of other bug fixes and minor tweaks to [B]Mission Architect[/B]. [/LIST] Version 1.2.1 [LIST] [*]Fixes an issue with the rotation rate of Kerbin in the bodies.ini file. [*]Fixes an issue with the way spacecraft are displayed in the Mission Animator. [*]Fixes an issue with lat/long calculations. [/LIST] Version 1.3.0 [LIST] [*]Added the ability to specify the line style of Other Spacecraft orbits in [B]Mission Architect[/B] when rendering. [*]Added ability to plot the orbits of Other Spacecraft in the main [B]Mission Architect[/B] render window. [*]Added option to replace small children bodies with circular markers in main [B]Mission Architect[/B] render window to improve their visibility. [*]Added ability to open MATLAB FIG files right from [B]Mission Architect[/B]'s file menu. [*]Added ability to close most [B]Mission Architect[/B] windows using the Esc key (will not save any input, is equivalent to hitting the X in the window corner). [*]Updated [B]KSPTOTConnect [/B]plugin for [B]KSP v1.0[/B]! [*]Removed previous stock drag model from [B]Mission Architect[/B]'s aerobraking event code. [*]Many, many bug fixes and other small improvements/enhancements. Thanks to Gaiiden for his help in identifying many of these! [/LIST] Version 1.3.1 [LIST] [*]Resolved an issue with axis scale in Mission Animator cutting off orbits; [*]Resolved a few issues with KSPTOTConnect plugin that prevented a bodies.ini file from being generated correctly; [*]Updated bodies.ini file to use GM values and atmospheric values from KSP v1.0.x; [*]Resolved an issue with the Keplierian -> Vector elements conversion subroutine that caused an issue when eccentricity was 0.0 and inclination was greater than 0.0. [*]One or two other minor bug fixes and tweaks. [/LIST] Version 1.3.2 [LIST] [*]10x decrease in run time on the Kepler solver. This is due to eliminating the use of fzero() for both elliptical and hyperbolic cases. Should reduce total run time by 15-20%. [*]Eliminated a findObj() call that should reduce total runtime by 5%-10%. [*]Enabled strict SoI search by default, which should reduce total run time by 10%-20%. (I've also seen it do nothing, though, so it's very situation dependent.) [*]Added a selective SoI search feature which can be used to further reduce run time as requested by the user. [*]A few other bug fixes and tweaks. [/LIST] Version 1.3.3 [LIST] [*]Fixed a bug that occurred occasionally when propagating a mission plan; [*]Added a "Get Orbit for Active Vessel" feature to Get Orbit context menus. [/LIST] Version 1.4.0 [LIST] [*]Added a [B]Communications Network Analysis tool[/B] to Mission Architect. This feature allows you to assess communication node visibility, total comm path distance, and network node utilization. [*]Added a [B]ground station elevation angle[/B] task to Mission Architect's Graphical Analysis tool. This is useful for assessing when comm spacecraft go below or rise above the horizon (and therefore become useful). [*]Added a series of [B]astrodynamics calculators[/B] to Mission Architect's suite of tools. [*]One or two minor bug fixes here and there. [/LIST] Version 1.5.0 [LIST] [*]Added a Mission Notes section under the Edit menu, let's you record text or whatever you want and store it for later. [*]Added a Staging event to the Events menu. This is basically a Mass-only Set State: you tell it what your post staging dry mass, fuel/ox mass, etc masses are and it sets them for you. Useful for when you're dropping partially used stages, and very complementary to the existing MASS_DUMP event. [*]Added commentary to the bodies.ini file. [*]Added the KSP v1.0 atmospheric model to KSP TOT Mission Architect. [*]Some performance optimizations related to the redo/undo menu and its backend data. [*]Four new DV maneuver types, all of which use spherical coordinates. Spherical coordinates use an azimuth (angle in a plane) and elevation (angle out of the plane) and DV magnitude to define the maneuver. There are inertial and orbit impulse maneuver types as well as inertial and orbit finite burn duration maneuver types. The best use for these new types to allow you to specify the min and maximum delta-v magnitude for the optimizer. [*]Resolved an issue where the GUI would rapidly slow down after running the optimizer multiple times. This issue was around since v1.0.0 but was exasperated by v1.4.0. The actual root cause of the issue is probably a bug in MATLAB's memory management, but I actually like the fix better than the old way I was doing things, so I'm going to keep it permanent. [*]Resolved an issue where variables not marked for optimization in a burn (or any multi-variable event) would get changed by the optimizer. [*]"Re-optimize Mission" in the Mission Architect Optimization menu now actually serves a purpose and is useful. Before it would just run the exact same case again, providing the same answer you already got. Now it runs the current script with the same optimization settings/constraints/objective/etc, which was its original purpose. [*]Some other minor speed improvements here and there. [*]Other minor fixes and optimizations. [/LIST] Version 1.5.1 [LIST] [*] KSPTOTConnect compatibility with KSP v1.1.2 [*] Lots of bug fixes and stability work. [/LIST] Version 1.5.2 [LIST] [*] Resolved an issue with Mission Architect erroring when creating a constraint. [*] Added EXPERIMENTAL support for bodies.ini files that include spaces and special characters in body names. [/LIST] Version 1.5.3 [LIST] [*] Resolved an issue with loading in bodies.ini files from Outer Planets and other KSP mods. [/LIST] Version 1.5.4 [LIST] [*] KSPTOT now runs on a new MATLAB Compiler Runtime, R2015b x64! This requires an install of this runtime to use KSPTOT. Please see the OP or this link to download the new MCR. [*] Bug fixes for the Mission Architect Comm. Network Analysis Tool's pathfinding algorithm; [*] A bug fix in the Multi-Flyby Maneuver Sequencer's use of the compiled Lambert solver when using Kerbin time; [*] Fixes to a bug in Mission Architect orbit angle constraints (RAAN, argument, etc). [*] Additions of new constraints in Mission Architect: prograde/normal/radial distance from Other Spacecraft, and Relative Velocity to Other Spacecraft [*] Addition of new Mission Architect Graphical Analysis tasks: prograde/normal/radial distance from Other Spacecraft, and Relative Velocity to Other Spacecraft [*] A few other minor tweaks here and there. [/LIST] Version 1.5.5 [LIST] [*] Fixed issue with starting parallel pool in Mission Architect (matlabpool -> parpool) [*] Added ability to remove mass at a constant rate from spacecraft during coasts [*] Added ability to rename propellant types [*] Mass dump GUI now shows fuel type being dumped for delta-v dump [*] DV maneuvers now have a line color for plotting similar to coasts [*] Added ability to run multiple MFMS runs in sequence in a hands-off manner [*] Added ability to save the text output from MFMS runs to file without manual copy/paste [*] Added function to Mission Architect to create a "trajectory map" similar to what MFMS outputs (Tools -> Create Trajectory Map) [*] Replaced the previous end-of-optimization prompt with a scorecard that allows the user to choose between the final optimization result, the optimization iteration with the best objective function value, or the optimization iteration with the best constraint value. [*] Added "Copy Orbit After Selected Event" item to MA script context menu [*] Lists of celestrial bodies which contain the full body list are now arranged in a hierarchical order with appropriate indenting [*] Fixed bug with MFMS in which the waypoint panel header did not update when the central body is changed [*] Fixed bug with other spacecraft and ground targets related to their body. May need to recreate these items if you're on a v1.5.5 pre-release. [*] Added initial orbit epoch and mean anomaly to the Multi-Flyby Maneuver Sequencer input [*] Fixed a bug with the algorithm that adjusts departure time to account for mean anomaly and epoch in the "Compute Departure" tool. [*] Fixed a bug with MFMS "Get Orbit from SFS File" functionality [/LIST] Version 1.5.6 [LIST] [*] Added hyperbolic velocity unit vector constraints to Mission Architect [*] Added hyperbolic velocity unit vector component tasks to Mission Architect Graphical Analysis [*] Added ability in Mission Architect for impulsive maneuvers to be split by burn duration as well as delta-v [*] Fixed bugs in Mission Architect's Convert Impulsive Maneuver and Split Impulsive Maneuver functions [*] Added solar beta angle task to Mission Architect Graphical Analysis [*] Fixed bug with computing event duration in Mission Architect [*] Added stock comm max range model (sqrt(r1*r2)) to Mission Architect comm network analysis tool. [*] Resolved issue with Mission Architect where trying to open up two sessions of MA would kill the first session without any prompting. [*] Resolved issue with Mission Architect where the number of revolutions in a coast would be computed incorrectly when opening the Edit Coast dialog box. [*] KSPTOTConnect updated for KSP v1.2. [*] KSPTOT Real Time System now uses skin temperature in the thermal console screen. [*] Open Mission Plan and New Mission Plan menu items in Mission Architect no longer prompt about unsaved work if the mission plan is fulled saved with no outstanding changes. [*] Fixed: Issue with missing matlabrc file. [*] Fixed: "Other Spacecraft window stays open on loading new project" [*] Fixed: "Enabling script->parallel throws error" [*] Fixed: "Copy/Paste orbit data does not include orbiting body" [*] Fixed: "Mission Architect optimization window no longer forces itself to front"while optimizing. [*] Fixed: "f(x) going from positive to negative messes up the middle chart in the Mission Optimizer window" [*] Implemented: "Notify user of successful tabular text output when using a saved mission file" [*] Fixed: "KSP TOT still expects anomalies in the range of [0, 360]" KSPTOT no longer returns anomalies outside of [0, 360] [*] Updated: "bodies.ini GM/Atmosphere/Rotational periods" [*] Fixed: "No trajectory plotted through Kerbin SOI for asteroid coming from sun orbit" [*] Updated: Mission Architect SoI search mode no longer starts out "strict" [*] Fixed: "Mun SOI intercept not found on trajectory that passes through Mun’s SOI" [*] Fixed: "KSPTOT will get orbit info, but will not read maneuver nodes" [*] Implemented: "Other Spacecraft dialog has disabled input if no vessels listed until Add Spacecraft button is clicked" [*] Implemented: "In the execution assistant, add ability to right-click and read next maneuver node from KSP" [*] Implemented: "In the Orb Ops console, display the maneuver node's True Anomaly, to match what the execution assistant wants" [*] Implemented: "MA save dialog notes if save file is dirty or not" [*] Fixed: Resolved issue where pasting an orbit into the MA Other Spacecraft window would not apply that orbit to the selected spacecraft. [/LIST] Version 1.5.7 [LIST] [*] Mission Architect: New experimental N-body coast event. This event models N-body gravity for selected bodies. Allows for basic Principia compatibility. [*] Mission Architect: New event "Docking" that models the user spacecraft being docked to another spacecraft by propagating the user spacecraft along the same orbit as the other spacecraft. [*] Mission Architect: New event "Landing" that fixes your spacecraft relative to the rotating surface of the current central body. Can be used to model landings on the surface. [*] Mission Architect: New initial state type "Estimate Launch." Allows for users to model a launch into a circular parking orbit at a desired altitude. Useful for determining initial orbits when that information is otherwise hard to guess or not available. [*] Mission Architect: Initial state parameters may now be optimized like burn and coast parameters. [*] Mission Architect: Relative in-track, cross-track, and radial positions of other spacecraft are now represented more correctly in Graphical Analysis. [*] Mission Architect: Major update to the optimizer contraint system that allows for nearly all Graphical Analysis tasks to be used as constraints. [*] A number of bug fixes in Mission Architect and the KSPTOTConnect plugin. [/LIST] Version 1.5.8 [LIST] [*] [Implemented] MFMS now allows for multiple revolutions around the central body for each leg of the tour. [*] [Implemented] RSS-like propagation of celestial bodies is now usable throughout the application. The code will handle SoI transitions correctly in Mission Architect. [*] [Implemented] KSPTOT main UI options are now stored in the appOptions file and persist through sessions. [*] [Implemented] Minor quality of life improvements in Mission Architect. [*] [Fix] Resolved issues with the way SoI transitions are computed that could cause an SoI transition to be missed. [*] [Fix] Fixed rare bug with loading mission plans in Mission Architect. [*] [Fix] Numerous bugs contained in the Compute Departure function. [*] [Fix] Resolved many other issues with Mission Architect. [/LIST] Version 1.5.9 [LIST] [*]Update KSPTOT to use MATLAB Compiler Runtime version R2017b. [*]Resolved issue with KSPTOT RTS. [*]Added minimum periapsis radius constraint for MFMS. [*]Fixed issue with KSPTOT Mission Architech drag calculations. [*]The Mission Architect optimization algorithm is now select-able from the Script -> Execution Options menu. [*]Mission Architect aerobraking events can now select a color to use for drawing on the UI. [*]Added the MATLAB version the application is running on to various splash screens and informational texts. [*]Mission Architect orbit display clipping parameter updated to "rectangle"; should help with some funny clipping issues that existed previously. [*]"Central Body ID" constraint should now be smooth instead of discrete. This should help with using this constraint during optimization. [*]New "Eve Aerobraking" MA example [*]Added a total mission duration constraint in MFMS. [*]Increased the fidelity of the Mission Architect SoI search routine with the addition of another algorithm. [*]Added an error message to MA when the optimizer hits a NaN for a control variable. [*]Messages are written to MA output when you change optimizer algorithm. [/LIST] Version 1.5.10 [LIST] [*] Corrected an issue with the SFS import function [*] Added the ability to set the line style of coasts and finite DV maneuvers. [*] Added the line style updates to five Mission Architect events. [*] Updated the drag coefficient calculator to use orbital energy instead of SMA to solve on. [*] In Mission Architect, after running the optimizer, any constraints that are active or violated after optimization will show a warning message with information about the constraint values and bounds. [*] Resolved issue with the MA Delta-V dialog box not updating until another event is processed. [*] Resolved an issue with the main MA UI not refreshing after optimization. [*] Added a warning to MA if the user tries to close the application while the software is processing data (either because the UI is running the mission script or the orbit display is updating). [*] Corrected a bug in the SoI transition code. [*] Importing orbits from KSPTOT Connect into RMS and OTBOC tools now automatically sets the central body correctly. [*] Fixed a bug with the context menu in OTBOC tool. [*] Added SoI search tolerance menu option to Mission Architect; [*] Added ability to perturb Mission Architect optimization variables by a percentage amount via menu; [*] Fixed bug with Mission Architect optimization constraint analysis warning text; [*] Added warning dialog to MFMS is the user attempts to close the UI while MFMS is running. [*] Mission Architect: Two new graphical analysis tasks and constraints, the hyperbolic excess velocity vector right ascension and declination angles. [*] Mission Architect: The Optimizer observation window is now more useful. The top plot showing variable values has been changed such that it plots from lower bound to upper bound of every value. This means that extra large variable values (like times) will not completely wash out the plot anymore. [*] MFMS: The number of decimal places in the output window has increased to 4 for each united value. [*] Mission Architect: Tweaks to the options fed into the fmincon optimizer algorithm. [*] Mission Architect: Included a new example case file: Kerbin-Eve-Jool-Eeloo mission. [*] An error message when the MFMS optimizer returns abnormally, with a particular suggestion to check the waypoint flight time and maximum mission duration constraints. [*] Update to the SoI transition search code that should now precisely find the SoI boundary for downwards transitions. [*] Fixed a bug with the optimizer constraint warning message units. [/LIST] Version 1.6.0 [LIST] [*] NEW TOOL: Launch Vehicle Designer! Launch Vehicle Designer (LVD) is a new analysis tool within KSPTOT. It's purpose is to provide an intuitive way to perform simple-to-complex analysis of launch vehicles and their trajectories. It can model staging, atmospheric forces, variable engine thrust and Isp, a number of steering laws, SoI transitions, and a whole host of other activities that one normally carries out in KSP. Also, because of the general nature of the tool, an analyst could actually use LVD for a full end-to-end mission design, from launch, to in space maneuvers, to landing, to splashdown back at Kerbin. [*] Bug Fix: Fixed a bug with Mission Architect's Launch Window Analysis tool. [*] New Feature: Mission Architect can now more intelligently look for SoI transitions using the "Num. SoI Search Attempts" function. [*] New Feature: Mission Architect supports the Orbit Decay mod. MA can now model semi-analytic orbit decay due to atmospheric drag effects. [/LIST] Version 1.6.1 [LIST] [*] 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! [/LIST] Version 1.6.2 [LIST] [*] 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. [/LIST] Version 1.6.4 [LIST] [*] 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. [/LIST] Version 1.6.5 [LIST] [*]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: Resolved issue with plotting periapsis crossings. [/LIST] Version 1.6.6 [LIST] [*] 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. [/LIST] Version 1.6.7 [LIST] [*] 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. [*] 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. [/LIST] Version 1.6.8 [LIST] [*] 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. [/LIST] License KSP Trajectory Optimization Tool is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 United States License.