Jump to content

[WIN/MAC/LINUX] KSP Trajectory Optimization Tool v1.6.9 [New MATLAB Version!]


Recommended Posts

25 minutes ago, Tacombel said:

Is it possible to include moons in MFMS? I have a mission Mun-Eve-Duna, and don't know exactly how to do it. My best bet at this moment is to go back to Kerbin to do the Mun fly-by, but that nearly doubles the needed dV.

I'm afraid it's not.  That would break the assumptions of the underlying math.  Doing Kerbin->Eve->Duna to get the departure/arrival dates and then use LVD to find the actual trajectory.

Link to comment
Share on other sites

I'm currently re-uploading KSPTOT v1.6.8 pre-release 4 with a fix for the LVD bug @Tacombel found.  This is the only difference between the previously released PR4.  Give it 10-15 minutes from this post and then re-download it if you'd like the fixed version.  The bug had to do with optimizing the new flight path angle termination condition, so if you don't need that, then there's no need to download this build.

Link to comment
Share on other sites

Hi everyone,

I wanted to make the KSPTOT community aware today that my Reddit account (/u/Arrowstar) that I've previously used to discuss KSPTOT on the KSP subreddit was hijacked last week.  I am trying to get it back and have emailed the support people to see if they'll work with me.  Unfortunately, at this time it looks like whoever now controls it has started to post NSFW content.  This is not me.  They also deleted the past 4 years of my posts, including KSPTOT postings as well as other personal things I've done (RIP to my paintings on /r/HappyTrees). 

Needless to say, I was pretty hurt when I saw this happen.

I've created a (hopefully temporary) new account, /u/Arrowstar2.  Obviously I don't have much KSPTOT stuff to post at the moment, but I wanted to make everyone aware so you didn't think terrible things of me or anything.

If I get the account back, I'll update this post with more information.  Thanks for understanding, everyone.

Link to comment
Share on other sites

4 hours ago, Arrowstar said:

Hi everyone,

I wanted to make the KSPTOT community aware today that my Reddit account (/u/Arrowstar) that I've previously used to discuss KSPTOT on the KSP subreddit was hijacked last week.  I am trying to get it back and have emailed the support people to see if they'll work with me.  Unfortunately, at this time it looks like whoever now controls it has started to post NSFW content.  This is not me.  They also deleted the past 4 years of my posts, including KSPTOT postings as well as other personal things I've done (RIP to my paintings on /r/HappyTrees). 

Needless to say, I was pretty hurt when I saw this happen.

I've created a (hopefully temporary) new account, /u/Arrowstar2.  Obviously I don't have much KSPTOT stuff to post at the moment, but I wanted to make everyone aware so you didn't think terrible things of me or anything.

If I get the account back, I'll update this post with more information.  Thanks for understanding, everyone.

OMG, sorry to hear that. I hope they help you recover the account and hopefully the content too, and thank you for the heads up!

Link to comment
Share on other sites

Hi everyone,

Good news!  The Reddit admins were able to restore my account to me.  Needless to say, I am very grateful and have turned on 2 factor authentication so this doesn't happen again.  I've also cleaned out the filth that the hijacker posted.  Unfortunately it looks like all of my posts were basically deleted.  I've asked to see if they can be recovered, but I suspect that the answer is no. 

Anyway, I will likely be deactivating the /u/Arrowstar2 account in the near future, so please don't follow that one or anything.  Thanks!

Edited by Arrowstar
Link to comment
Share on other sites

  • 2 weeks later...

Hi everyone!

Tonight I'm excited to announce the release of KSPTOT v1.6.8 pre-release 5.  This is a major update, not for the features that it brings, but because it marks KSPTOT moving to a new release of MATLAB after ~4 years on the venerable R2017b!  As of PR5, we will be on the latest and greatest, R2021a!

In order to use this release, and all releases going forwards, you will need to download and install the MATLAB Compiler Runtime for R2021a (MATLAB 9.10) for your operating system at this link: here.  The R2017b MCR will not run PR5 and later.

Why move to R2021a?  Because I saw a ton of performance improvements across the board.  In LVD, I was seeing a ~25% decrease in run time in my "Two Stage to Orbit" example just by moving to this version.  It was simply too good to ignore and not pass on to you.  And as an added bonus, the KSPTOT downloads are now 50% smaller than before.  It's really win-win all around.

Here's the change log.  It's pretty minimal because most of my development time has been spent checking out R2021a.

  • Upgrade MATLAB version to R2021a.
  • LVD: Incorporation of surrogate optimizer as an optimization method.
  • LVD: New optimizer output for NOMAD and PatternSearch optimizers.
  • A bunch of bug fixes and tweaks all around.

Because this is a new MATLAB release, and because it's impossible for me to test everything, I would certainly appreciate if everyone could please take a look at this release, test it out, and report back any bugs.  Thank you!

Happy orbiting. :)

Link to comment
Share on other sites

Just a heads up, I found a bug in the PR5 build that caused certain listbox UIs to not appear when opened.  This was due to the upgrade to R2021a.  I've resolved the issue and rebuilt PR5.  Please redownload when you have a chance.  Thanks!

Link to comment
Share on other sites

  • 2 weeks later...

I stopped playing KSP a few years ago and am now finally returning to it once again. Before I really enjoyed KSPTOT. At the time, I was able to run it directly on macOS and it was pretty good. I was a bit surprised to find that now the macOS instructions are essentially "install it on a linux VM"... This seems to me that it would require running KSP inside the VM as well if planning to use KSPTOTConnect. Overall, this sounds terrible for performance.

I was wondering if the macOS instruction have changed because no one is actively testing it or if there has really been some fundamental change which makes KSPTOT incompatible with macOS?

Link to comment
Share on other sites

1 hour ago, Cristovao said:

I stopped playing KSP a few years ago and am now finally returning to it once again. Before I really enjoyed KSPTOT. At the time, I was able to run it directly on macOS and it was pretty good. I was a bit surprised to find that now the macOS instructions are essentially "install it on a linux VM"... This seems to me that it would require running KSP inside the VM as well if planning to use KSPTOTConnect. Overall, this sounds terrible for performance.

I was wondering if the macOS instruction have changed because no one is actively testing it or if there has really been some fundamental change which makes KSPTOT incompatible with macOS?

The person who volunteered to build the MacOS version for me has not been around for some time (since maybe version 1.1 or so).  I don't own a Mac and so basically my options were either to let the last built version stay up or ask people to use a VM. 

Using a VM will definitely cause a hit to performance, but it's the best I've got. :(

Quote

This seems to me that it would require running KSP inside the VM as well if planning to use KSPTOTConnect.

I don't think this is true though!  You can run the KSPTOTConnect plugin on MacOS in KSP and then just figure out what 192.168.x.y your Linux VM and main machine are at, and then connect accordingly.  Or I think anyway.  Long story short, you shouldn't need to run KSP in a VM to get this to work.

Edited by Arrowstar
Link to comment
Share on other sites

57 minutes ago, Cristovao said:

Would you be willing to share some instructions on how to build KSPTOT? I would be willing to give it a try to have a native macOS tool.

Do you have a copy of MATLAB R2017b or R2021a for MacOS?

Link to comment
Share on other sites

  • 2 weeks later...

Hi, installed new matlab runtime and downloaded new PR5 today. On main porkchop screen, cannot enter UT as date and time in either time field, Log says:

Error using matlab.ui.container.Menu/get
Unrecognized property String for class Menu.

Error in mainGUI>enterUTAsDateTime_Callback (line 440)

Error in gui_mainfcn (line 95)

Error in mainGUI (line 42)

Error in matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)mainGUI('enterUTAsDateTime_Callback',hObject,eventdata,guidata(hObject))

Error while evaluating Menu Callback.

Link to comment
Share on other sites

On 4/19/2021 at 7:00 AM, Gilph said:

Hi, installed new matlab runtime and downloaded new PR5 today. On main porkchop screen, cannot enter UT as date and time in either time field, Log says:

Error using matlab.ui.container.Menu/get
Unrecognized property String for class Menu.

Error in mainGUI>enterUTAsDateTime_Callback (line 440)

Error in gui_mainfcn (line 95)

Error in mainGUI (line 42)

Error in matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)mainGUI('enterUTAsDateTime_Callback',hObject,eventdata,guidata(hObject))

Error while evaluating Menu Callback.

Issue has been resolved and I've updated the v1.6.8 PR5 download with the updated executables.  Thanks for the report!

Link to comment
Share on other sites

Hi everyone,

I know there's been a bit of a break in KSPTOT development over the past month or two, but tonight I want to share a neat feature update for Launch Vehicle Designer.  To date, all steering models have been pretty fixed in their format.  For example, if you select polynominal steering, then everything is going to be a polynomial.  If you select linear tangent steering, then pitch is linear tangent and everything else is polynomial.  And so on.

This has always bothered me a bit, and so tonight I have the solution: selectable steering models for each Euler angle.

yUSmKxC.png

Right now I have all three major steering model types implemented: polynomial, linear tangent, and sum of sines.  The fourth, attitude interpolation, needs to stay it's own thing because it relies on controlling all three angles directly.  As you can see here, you can now set roll to use a linear tangent law, pitch to use sum of sines, and yaw can be a polynomial.

In addition, the polynomial steering has gotten a lot more flexible (for this application - the old three term steering is still there if you select it).  You can now create as many terms as you want and optimize their coefficient and exponent directly.  See here:

gZ7FR69.png

In this case, this is a linear function that varies the angular rate at 2.0 deg/s.  I know it's linear because the exponent is 1.0 and I know the rate is 2.0 deg/s because the coefficient is 2.0.  You can also have non-integer exponents, negative exponents, and all that.  It's pretty cool!

Because this supersedes the sum of sines steering model that I had in there directly, I'm going to be turning off the ability to select that option in the next pre-release.  Instead, to get to this UI, you select the "Selectable Model" steering model in the list box prompt.

12P3i91.png

Please let me know if you have any questions!

Link to comment
Share on other sites

Hi everyone,

I have another KSPTOT update I want to share this evening.  Coming to LVD in the next pre-release is going to be the ability to set constraints to not only fixed values and bounds, but also to an equivalent value in another event.  Here's what I mean.

8wQKWTZ.png

Note the new "evaluation type" drop down menu is set to "state comparison.  In this mode, the quantity to be constrained (here, delta-v expended over an event) at the end of Event 1 will be compared to the delta-v expended over Event 2.  The constraint is satisfied when the two values are equal (in this case).  You can also set the constraint to be satisfied when the quantity in Event 1 is greater than or less than that of Event 2.

Let's take a look at an example of how this works in practice.

lO0l7rZ.png

In this example, I have three burn "parts."  The first two burn prograde and the third burns retrograde.  I want the expended delta-v in the first segment to be exactly 0.05 km/s, and I want the delta-v in the second segment to be equal to exactly that.  In the third segment, I want to return the SMA back to what it was at the start of the mission, 700 km, by burning retrograde.

Notice that when states are compared instead, new tooltip text appears that shows you which state the constraint is using for comparison (always the last state of an event, same as with bound constraints).  It also shows you the value of both quantities at the end of their respective events and indicates how the comparison is being done (equals to, greater than, or less than).

What do you all think?  Happy orbiting!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...