Jump to content

[WIN/MAC/LINUX] KSP Trajectory Optimization Tool v1.6.10 [Major LVD Improvements!]


Recommended Posts

Oh! I guess I misunderstood "MA graphs." Whoops. :)

Meh I'd blame my poor communication skills. I even went back and added the () after the fact cause I realized it probably wasn't clear but still coulda just re-wrote it to be properly clear...

I also just remembered something I came here last night to post and farted out of my brain at some point before getting to this thread. I think I asked before too so sry if it's a repeat request but is it possible to transfer the name of the spacecraft you select when you load data from KSP or SFS into the Other Craft window's Spacecraft Name text box?

Also, I can confirm the the Mission Animator view frame issue is solved for my Kerbin satellites, can see the top/bottom of both high polar orbits - however I've a similar problem with this MAT file that has some large circular Other Craft orbits around Minmus that don't show up when I play around with the Range Offset and View Angles.

Edited by Gaiiden
Link to comment
Share on other sites

I also just remembered something I came here last night to post and farted out of my brain at some point before getting to this thread. I think I asked before too so sry if it's a repeat request but is it possible to transfer the name of the spacecraft you select when you load data from KSP or SFS into the Other Craft window's Spacecraft Name text box?

Let me see if that data is available from KSPTOTConnect. :)

Also, I can confirm the the Mission Animator view frame issue is solved for my Kerbin satellites, can see the top/bottom of both high polar orbits - however I've a similar problem with this MAT file that has some large circular Other Craft orbits around Minmus that don't show up when I play around with the Range Offset and View Angles.

Yeah, this is just an extension of the problem I put a band-aid on yesterday. I'll come up with a better solution this weekend. :)

Link to comment
Share on other sites

Hey Arrowstar, you have a really helpful tool that I would love to use however I have run into a problem and was hoping you or anyone else could help me out. The KSPTOT.app folder is just a normal temp folder. I set Norton to exclude the file from the Auto-Protect, SONAR, and Download Intelligence Detection. I've restarted my computer several times and reinstalled MATLAB and still no luck. Do you have any ideas how to fix this problem?

Link to comment
Share on other sites

Hey I cant wait to use this program, but when I try to compute a Kerbin-Eve-Duna trajectory, it comes up blank with information? I don't know if I am using this wrong :P I am just using the default entries and I am not getting anywhere?

Good catch Sarge, looks like a bug. Arrowstar I can replicate the issue and here's the log file

                               Best          Mean         Stall
Generation f-count Penalty Penalty Generations
1 1000 5.882 37.52 0
2 1500 5.95 58.82 1
3 2000 5.95 61.18 2
4 2500 5.95 34.73 3
5 3000 9.445 35.09 4
6 3500 9.583 35.31 5
7 4000 11.16 49.22 6
8 4500 7.523 40.84 0
9 5000 6.119 38.47 0
10 5500 10.81 114.9 1
11 6000 10.13 34.33 0
12 6500 5.238 31.28 0
13 7000 8.991 55.35 1
14 7500 7.573 33.27 0
15 8000 8.566 33.18 1
16 8500 5.927 33.89 0
17 9000 6.293 63.9 1
18 9500 5.927 33.84 0
19 10000 7.767 37.1 1
20 10500 5.927 36.65 0
21 11000 9.038 55.88 1
22 11500 7.152 59.57 0
23 12000 3.701 50.73 0
24 12500 6.003 43.07 1
25 13000 9.403 39.79 2
26 13500 4.296 34.88 0
27 14000 4.296 47.41 1
28 14500 4.209 33.59 0
29 15000 4.296 37.55 1

Best Mean Stall
Generation f-count Penalty Penalty Generations
30 15500 4.296 33.68 2
31 16000 4.296 34.34 3
32 16500 7.397 72.5 4
33 17000 5.943 94.39 0
34 17500 6.235 36.88 1
35 18000 6.718 35.66 2
36 18500 5.609 35 0
37 19000 5.609 35.3 1
38 19500 5.361 32.77 0
39 20000 5.776 45.11 1
40 20500 2.927 38.33 0
41 21000 8.922 36.26 1
42 21500 5.811 96.95 0
43 22000 7.756 31.67 1
44 22500 6.752 38.11 0
45 23000 5.977 31.78 0
46 23500 3.795 32.58 0
47 24000 6.751 41.05 1
48 24500 6.808 49.17 2
49 25000 6.808 34.84 3
50 25500 5.59 49.8 0
51 26000 6.808 72.84 1
52 26500 5.775 38.59 0
53 27000 5.764 33 0
54 27500 3.803 35.82 0
55 28000 3.481 35.47 0
56 28500 3.481 32.39 1
57 29000 3.481 41.23 2
58 29500 3.481 37.07 3
59 30000 3.481 34.7 4

Best Mean Stall
Generation f-count Penalty Penalty Generations
60 30500 3.481 30.8 5
61 31000 3.481 35.02 6
62 31500 3.481 34.9 7
63 32000 3.481 31.33 8
64 32500 3.481 68.36 9
65 33000 3.481 68.36 10
66 33500 3.481 68.47 0
67 34000 3.481 30.53 1
68 34500 3.481 53.89 2
69 35000 3.473 32.2 0
70 35500 3.473 31.32 1
71 36000 3.473 30.65 2
72 36500 3.473 61.88 3
73 37000 3.473 61.95 4
74 37500 3.459 30.26 0
75 38000 3.459 67.3 1
76 38500 3.459 35.61 2
77 39000 3.459 30.93 3
78 39500 3.459 92.79 4
79 40000 3.459 32.52 5
80 40500 3.423 30.02 0
81 41000 3.423 31.15 1
82 41500 3.423 31.02 2
83 42000 3.423 31.58 3
84 42500 3.423 29.34 4
85 43000 3.423 44.19 5
86 43500 3.423 28.31 6
87 44000 3.423 31.26 7
88 44500 3.326 30.9 0
89 45000 3.326 45.76 1

Best Mean Stall
Generation f-count Penalty Penalty Generations
90 45500 3.326 30.82 2
91 46000 3.326 30.84 3
92 46500 3.326 30.7 4
93 47000 3.309 26.07 0
94 47500 3.309 20.81 1
95 48000 3.309 22.22 2
96 48500 3.309 20.08 3
97 49000 2.943 16.19 0
98 49500 2.943 5.354 1
99 50000 2.943 4.42 2
100 50500 2.943 13.81 0
101 51000 2.943 9.06 1
102 51500 2.943 7.372 2
103 52000 2.943 6.347 3
104 52500 2.943 3.76 4
105 53000 2.943 3.771 5
106 53500 2.943 3.711 0
107 54000 2.943 3.594 1
108 54500 2.943 6.084 2
109 55000 2.943 3.553 3
110 55500 2.943 3.794 4
111 56000 2.943 5.194 5
112 56500 2.934 10.11 0
113 57000 2.934 3.437 1
114 57500 2.901 3.503 0
115 58000 2.901 3.562 0
116 58500 2.901 4.031 1
117 59000 2.836 9.789 0
118 59500 2.805 5.684 0
119 60000 2.788 12.37 0

Best Mean Stall
Generation f-count Penalty Penalty Generations
120 60500 2.788 5.172 0
121 61000 2.782 23.95 0
122 61500 2.776 6.499 0
123 62000 2.771 7.28 0
124 62500 2.765 7.732 0
125 63000 2.735 5.291 0
126 63500 2.735 22.66 1
127 64000 2.727 9.672 0
128 64500 2.727 7.68 1
129 65000 2.722 9.902 0
130 65500 2.721 3.543 0
131 66000 2.718 3.388 0
132 66500 2.718 6.283 1
133 67000 2.718 3.606 2
134 67500 2.718 3.499 0
135 68000 2.718 5.299 0
136 68500 2.717 5.043 0
137 69000 2.717 3.204 1
138 69500 2.717 4.277 0
139 70000 2.717 3.422 0
140 70500 2.717 2.956 0
141 71000 2.717 2.806 1
142 71500 2.717 3.043 0
143 72000 2.717 4.848 1
144 72500 2.717 4.28 0
145 73000 2.717 4.343 0
146 73500 2.717 3.063 0
147 74000 2.717 4.249 0
148 74500 2.717 6.884 1
149 75000 2.717 5.599 0

Best Mean Stall
Generation f-count Penalty Penalty Generations
150 75500 2.717 4.558 0
151 76000 2.717 2.825 0
152 76500 2.717 2.797 0
153 77000 2.717 2.876 0
154 77500 2.717 4.314 1
155 78000 2.717 2.767 0
156 78500 2.717 2.885 0
157 79000 2.717 4.235 1
158 79500 2.717 4.386 0
159 80000 2.717 4.609 0
160 80500 2.717 4.716 0
161 81000 2.717 3.381 1
162 81500 2.717 2.765 0
163 82000 2.717 4.15 0
164 82500 2.717 2.889 0
165 83000 2.717 2.733 0
166 83500 2.717 2.907 0
167 84000 2.717 2.762 0
168 84500 2.717 2.839 0
169 85000 2.717 5.5 1
170 85500 2.717 2.834 0
171 86000 2.717 3.114 0
172 86500 2.717 2.856 0
173 87000 2.717 2.769 0
174 87500 2.717 2.992 1
175 88000 2.717 4.189 0
176 88500 2.717 4.615 1
177 89000 2.717 5.043 0
178 89500 2.717 2.872 0
179 90000 2.717 3.375 1

Best Mean Stall
Generation f-count Penalty Penalty Generations
180 90500 2.717 5.769 0
181 91000 2.717 5.729 0
182 91500 2.717 4.34 1
183 92000 2.717 2.749 0
184 92500 2.717 4.966 1
185 93000 2.717 4.855 2
186 93500 2.717 3.032 0
187 94000 2.717 4.54 1
188 94500 2.717 2.892 2
189 95000 2.717 2.893 3
190 95500 2.717 4.397 4
191 96000 2.717 2.765 5
192 96500 2.717 4.593 6
193 97000 2.717 4.589 7
194 97500 2.717 4.432 0
195 98000 2.717 3.022 1
196 98500 2.717 5.149 2
197 99000 2.717 2.784 0
198 99500 2.717 2.779 1
199 100000 2.717 4.497 2
200 100500 2.717 2.82 3
201 101000 2.717 4.742 0
202 101500 2.717 4.063 0
203 102000 2.717 2.74 1
204 102500 2.717 4.46 2
205 103000 2.717 2.944 3
206 103500 2.717 2.753 0
207 104000 2.717 2.832 0
208 104500 2.717 2.829 1
209 105000 2.717 4.543 0

Best Mean Stall
Generation f-count Penalty Penalty Generations
210 105500 2.717 3.095 0
211 106000 2.717 3.023 0
212 106500 2.717 4.951 1
213 107000 2.717 2.864 0
Optimization terminated: average change in the penalty fitness value less than options.TolFun
and constraint violation is less than options.TolCon.

Run Local Local Local Local First-order
Index exitflag f(x) # iter F-count optimality
1 -2 0.9777 1 4 1.463e-11
2 -2 5.175 3 16 0.000738
3 -2 5.175 9 49 2.938e-09
4 -2 5.175 8 47 1.602e-09
5 -2 0.9904 5 27 0.03554
6 2 0.9911 10 51 8.442e-12
7 -2 5.175 10 58 7.823e-09
8 2 0.9911 7 39 3.775e-11
9 2 5.172 8 35 2.681e-10
10 -2 5.175 29 111 1.621e-09
11 2 0.9911 7 30 8.632e-10
12 2 0.9911 7 29 7.237e-10
13 2 0.9911 8 39 2.175e-11
14 -2 4.214 1 38 2.865e-09
15 2 0.9911 7 29 9.376e-08
16 2 5.172 12 46 2.681e-10
17 -2 5.175 5 32 0.02009
18 -2 5.175 4 19 0.003275
19 -2 5.175 2 12 0.0003129
20 2 0.9911 11 44 4.024e-12
21 2 5.172 7 28 1.951e-10
22 -2 5.175 4 19 0.003091
23 -2 5.175 33 115 1.531e-09
24 2 5.172 6 29 7.19e-14
25 2 0.9911 9 45 8.442e-12

MultiStart completed some of the runs from the start points.

12 out of 25 local solver runs converged with a positive local solver exit flag.
Error using plot3
Specified string is an invalid color value. <a href="matlab:helpview([docroot,'/techdoc/ref/colorspec.html'])">Please click for more information on specifying color.</a>

Error in plotOrbit (line 65)



Error in plotOrbit (line 5)



Error in plotAllFlybys (line 55)



Error in multiFlyByManeuverSequencer>dispAxesSelectSlider_Callback (line 795)



Error in multiFlyByManeuverSequencer>computeFlybyManSeqButton_Callback (line 563)



Error in gui_mainfcn (line 95)



Error in multiFlyByManeuverSequencer (line 42)



Error in @(hObject,eventdata)multiFlyByManeuverSequencer('computeFlybyManSeqButton_Callback',hObject,eventdata,guidata(hObject))


Error while evaluating UIControl Callback

Error writing to output stream.

Also Arrowstar you forgot to list the orbital line fattening as a known issue when large coast timespans are used for a single Set State peroid

Edited by Gaiiden
Link to comment
Share on other sites

Cheers, here I was going mental. Might I also add the following:

-KSPTOConnect is not working. KSP unblocked in firewall, running as admin. KSPTO running as admin, and ublocked in firewall. Still not getting anything.

I can get a log if you need it? Just tell me where to go to get it.

Link to comment
Share on other sites

Hey guys, thanks for the heads up regarding the issues. Turns out I updated the orbit plotting function's inputs (which is used literally everywhere) and missed updating some of the calls to that function in other parts of the code. Silly me! This is what happens when you don't have a rigorous testing program before releases...

Anyway, Sarge, your issue should be resolved in the pre-release I link to below. Will you test it for me and make sure it's working?

Also Arrowstar you forgot to list the orbital line fattening as a known issue when large coast timespans are used for a single Set State peroid

No longer an issue in the aforementioned pre-release! :)

Here are some other changes in this pre-release:

  • Fixed the line fattening issue.
  • Gaiiden, your issue with orbits getting cut off in Mission Animator should be solved with your use of the Scale Factor slider within Animator. Let me know how that works for you.
  • Added some logging to the execution settings updates in Mission Architect.
  • Added the ability to set the number of state log entries (aka points) per coast event within the MA GUI. See Script -> Execution Settings.

Here's a link to the pre-release: https://dl.dropboxusercontent.com/u/29126891/KSPTOT_v131_prerelease1.zip

Hey Arrowstar, you have a really helpful tool that I would love to use however I have run into a problem and was hoping you or anyone else could help me out. The KSPTOT.app folder is just a normal temp folder. I set Norton to exclude the file from the Auto-Protect, SONAR, and Download Intelligence Detection. I've restarted my computer several times and reinstalled MATLAB and still no luck. Do you have any ideas how to fix this problem?

Can you describe the problem a bit more? Do you get error messages? Is your AV software catching it? You're not trying to run it from the temp folder, are you? You should just run the executable as packaged...

- - - Updated - - -

Cheers, here I was going mental. Might I also add the following:

-KSPTOConnect is not working. KSP unblocked in firewall, running as admin. KSPTO running as admin, and ublocked in firewall. Still not getting anything.

I can get a log if you need it? Just tell me where to go to get it.

Yup, log would be good. There should be a ksptot.log file right next to your KSPTrajectoryOptimizationTool.exe executable. What does that say?

Link to comment
Share on other sites

Here are some other changes in this pre-release:

Awesome, everything works great and I can finish up a new feature for my Flight Tracker to release next week. Ironically it makes me wish I hadn't told you to disable the craft markers in the MA orbital renderings but at the same time I'm still not a fan of them without the full integration of individual display settings. So I'm not complaining.

Link to comment
Share on other sites

Fixed the line fattening issue.

'fraid not. Well, you may have fixed the line growing fat but....

WRkE11J.png

At least it looks cooler! :P

Also, download and have a look at this MAT in the Mission Animator. Just load it up and press play and you should see the render flip out within a second or two. Works fine if you step through it, but try to animate and the whole thing goes berserk.

You had nothing better to do this weekend anyways right? ;)

Edited by Gaiiden
Link to comment
Share on other sites

'fraid not. Well, you may have fixed the line growing fat but....

http://i.imgur.com/WRkE11J.png

At least it looks cooler! :P

I could not reproduce. Could you duplicate it using the starting initial state and show me what coast parameters you have (screen shot of the dialog) would be great.

Also, download and have a look at this MAT in the Mission Animator. Just load it up and press play and you should see the render flip out within a second or two. Works fine if you step through it, but try to animate and the whole thing goes berserk.

You had nothing better to do this weekend anyways right? ;)

Right, this is a weird one. Wow. The error message is completely cryptic and doesn't yield any Google hits. I have no idea... I will investigate though...

Link to comment
Share on other sites

If I load the MAT file I sent you and press play it runs fine, but as soon as I check to display other spacecraft it seizes up. You can still click controls in any window but nothing changes or updates. You can close the mission animator but neither the mission architect or main KSPTOT window. I have to task kill it. The two times something showed up in the error log this is what it said:

Error while evaluating TimerFcn for timer 'timer-1' 

Invalid or deleted object.

------

Subscript indices must either be real positive integers or logicals.

Error in ma_OtherSpacecraftGUI>removeSCButton_Callback (line 448)



Error in gui_mainfcn (line 95)



Error in ma_OtherSpacecraftGUI (line 42)



Error in @(hObject,eventdata)ma_OtherSpacecraftGUI('removeSCButton_Callback',hObject,eventdata,guidata(hObject))


Error using waitfor
Error while evaluating UIControl Callback

Subscript indices must either be real positive integers or logicals.

Error in ma_OtherSpacecraftGUI>removeSCButton_Callback (line 448)



Error in gui_mainfcn (line 95)



Error in ma_OtherSpacecraftGUI (line 42)



Error in @(hObject,eventdata)ma_OtherSpacecraftGUI('removeSCButton_Callback',hObject,eventdata,guidata(hObject))


Error using waitfor
Error while evaluating UIControl Callback

Error while evaluating TimerFcn for timer 'timer-1'

Invalid or deleted object.

I deleted all the craft from the mission file after I reloaded the program and the mission animator stayed running when I clicked the other spacecraft checkbox. I added the other craft back in and got the same behavior as before with the program sort of locking up. I made sure too to try it with my main ship orbit outside of Minmus, and that still didn't work. It seems to be just the option to show other craft.

I could not reproduce.

Yea me neither I forgot what I did. But if you just open the default MA situation and coast ahead 100 days, you'll get a plane that extends into the planet instead of a circular line. Furthermore, if you coast to True Anomaly 0 over something like 100 orbits, it will render a proper line but moving the view around will be very laggy. If you then convert that coast event straight to a UT event, the orbit render will be much more responsive. If you start a new mission file and coast to True Anomaly 0 over 500 orbits, the orbital render will be very laggy. If you convert that coast event straight to UT the line will go from circular to this:

t4qZRPn.png

Link to comment
Share on other sites

If I load the MAT file I sent you and press play it runs fine, but as soon as I check to display other spacecraft it seizes up. You can still click controls in any window but nothing changes or updates. You can close the mission animator but neither the mission architect or main KSPTOT window. I have to task kill it. The two times something showed up in the error log this is what it said:

Okay, that's weird but I'll investigate more. Strange that it only occurs with other spacecraft on.

Yea me neither I forgot what I did. But if you just open the default MA situation and coast ahead 100 days, you'll get a plane that extends into the planet instead of a circular line. Furthermore, if you coast to True Anomaly 0 over something like 100 orbits, it will render a proper line but moving the view around will be very laggy. If you then convert that coast event straight to a UT event, the orbit render will be much more responsive. If you start a new mission file and coast to True Anomaly 0 over 500 orbits, the orbital render will be very laggy. If you convert that coast event straight to UT the line will go from circular to this:

http://i.imgur.com/t4qZRPn.png

So honestly, the problem here is that you're hitting the limits of the software. Trying to render 100 days of orbits is just not feasible in this case. I have code in place that prevents KSPTOT from spitting out millions of points to plot because it gets laggy, as you see. The reason you see the poor orbit plots is because you're hitting that limit and MA is artificially lowering the number of points computed to something more manageable. The solution here is that you may need to find a way to plan your missions without resorting to 100s of days of orbiting. :P

(Btw, the reason you can do 100s of days of orbiting around, say, the sun, but not around Kerbin or Minmus has to do with how MA chooses how many points to plot. It computes your orbital period and tries to stick N position points around each full orbit rev for plotting purposes. So 100 days around the sun is still less than one orbit and gets therefore N orbit position points. 100 days around Kerbin is, say 20 orbits per day (or whatever) and therefore gets 20*100*N points. This latter case doesn't work well as it requires much more CPU time to process.)

Link to comment
Share on other sites

I just found this program a few days ago, and I'm loving it already. The ability to plan out whole missions in detail is something that I've sorely needed for a long time and should, once I get it figured out, alleviate some of my reliance on MechJeb flight planning. The problem is, I can't seem to get it to work correctly... After working through the mission architect guide and several practice missions, I'm able to build a mission fairly easily in TOT, but then when I try to implement any of the maneuvers in KSP, they never produce the desired results.

I've been trying to use TOT to build a mission to Moho which will leave a relay satellite in a high equatorial orbit and then land a probe on the surface. Here are the steps I took to create the mission:

  1. Set earliest departure and arrival times by pulling current UT from KSP

  2. Set synodic periods to 2 because otherwise I get 10k+ dV numbers

  3. Compute porkchop plot - best departure is Year 3, Day 84 at 05:39:52.324

  4. Compute departure burn using SMA 700km circular orbit:

    • Prograde dV: 2316.35111 m/s

    • Normal dV: -1162.77573 m/s

    • Radial dV: 0.00008 m/s

[*]

[*]Set initial vessel state to SMA 700km circular orbit at UT several days prior to departure

[*]

[*]Insert coast to departure UT with Opt +/- 10k seconds

[*]

[*]Insert coast to true anomaly with Opt +/- 15°

[*]

[*]Insert dV maneuver

[*]

[*]Insert coast to Moho periapsis

[*]

[*]Optimize coast to Moho for minimum distance from planet

[*]

[*]Optimize previous results for minimum inclination at periapse with the following constraints

  • Central Body: Moho

  • Inclination Min / Max: 0

  • Radius of Periapsis Min / Max: 2900 / 3200

[*]

[*]Optimized departure burn:

  • Prograde dV: 2305.8294941143

  • Normal dV: -1159.0174318261

  • Radial dV: 11.9272340622

[*]

[*]Disable all previous Opt boxes

[*]

[*]Insert dV maneuver to circularize at Moho

[*]

[*]Optimize Moho insertion maneuver to minimize eccentricity

[*]

[*]Insert initial Moho orbit coast to periapse after 1 revolution

[*]

[*]Optimize Moho orbit coast to minimize inclination at 0 eccentricity

[*]

[*]Optimized cirularization burn:

  • Prograde dV: -2194.7112021294

  • Normal dV: -40.4700621799

  • Radial dV: -0.0013898961

Some notes:

- I've included the initial coast to UT because it seems to improve the results. When I try to create a dV maneuver without it, there seems to be a 50/50 chance that the resulting maneuver will be oriented such that instead of departing Kerbin to Moho, the orbit would send the vehicle off into the outer system. Also, I have left the Opt selected in the hopes that this will allow the optimization process to find the actual best departure time.

- With or without an initial coast, I've yet to get the planned encounter when I import the maneuver into KSP. The best I've been able to achieve is a close approach of about 600Mm. TOT seems to always plan maneuvers to be a few days too late to get a proper encounter with the target.

- I have tried getting encounters with other planets in the system with the same results. I'm able to get close approaches on orbits that look like they should be perfect fits, but never encounters.

- I have tried creating a new bodies.ini to load with the same or similar results

- I do have a couple of mods which might affect the positions of planets, namely Outer planets mod and its associated system modifications, but I've spent a decent amount of time in the last couple of days looking through the configs for those mods to see if they change anything in the default system, and, aside from Eeloo which has been made into a moon of one of the OPM planets, nothing seems to have been changed there

- The initial porkchop and departure burns seem to have some strange variation in their results where multiple iterations of the process will return the same results, only to have the next return a departure date or burn true anomaly different from the previous ones.

- I can't rule out huge amounts of user error, obviously.

Any help would be greatly appreciated as I really do love this tool already and want to be able to use it effectively. Please let me know if I should upload the mission file, or if any screenshots would be helpful.

Thanks.

EDIT: One additional note, I am planning this mission 60 days ahead of departure, if that makes any difference in the calculations / potential issues.

Edited by SpacedInvader
Link to comment
Share on other sites

So honestly, the problem here is that you're hitting the limits of the software.

Cool, I figured as much. This isn't really something I've had to do for an actual mission, but it was something I noticed and wanted to make sure wasn't a real issue. Similar to the constant-time graph rendering.

thanks for looking more into the mission animator issues

Link to comment
Share on other sites

SpacedInvader, I see your message but I don't have time to answer it tonight. I will reply here tomorrow after work with more info. :)

Cool, I figured as much. This isn't really something I've had to do for an actual mission, but it was something I noticed and wanted to make sure wasn't a real issue. Similar to the constant-time graph rendering.

thanks for looking more into the mission animator issues

Oh no worries. And I hope I didn't come across as disgruntled or something, I'm really not. In fact, it's a pleasure that I have someone who cares enough about this (besides me!) that they're willing to bug me about issues and requests! So thank you. :)

I'm a bit stumped on the animator issue right now, but I will continue looking at it tomorrow. It's really strange, never seen anything like that...

Link to comment
Share on other sites

SpacedInvader, I see your message but I don't have time to answer it tonight. I will reply here tomorrow after work with more info. :)

Ok, thank you, though I might have figured part of it out already through a hunch and some trial and error. I was doing all of my flight planning as much as 60 days ahead of time and then placing the maneuver node as a point to warp to, only to find that the node would never give me an encounter, and then ensuing frustration of trying to get it to work as described in my previous post. After reading something about rounding errors in another part of this thread, it occurred to me that 60 days worth of physics calculations might be at least part of the issue, so I tried instead warping to only a couple of hours before the intended departure date before doing the orbit planning. The end result was a much more accurate maneuver node, though still not exactly what I plotted out through TOT. It's close enough, though, that I decided to run the mission anyway so I built the probe and it's awaiting launch.

My plan this time around is to get the probe into orbit, then warp to within a single orbit of the departure before optimizing the maneuver and uploading the result to KSP. I'm hoping that if the trend continues, I should be presented with a final orbit as close as possible to that planned in TOT.

I would still like your input here, but please let me know if I'm on the right track at least or if this a fluke. Also, I'm wondering how to go about using the 'Convert Impulsive Maneuver' option from the Script menu. I gathered from reading previous posts of yours that this is a better approximation of a non-instantaneous change in dV, and as such seems to make more sense to use. That said, the few times I've tried to use it, the resulting changes to the mission have thrown all prior optimizations out the window and then I was never able to get them back in line so I had to start over without the conversion. I'm 100% sure I'm either not understanding the function, I'm doing something wrong, or both, but I would like to figure out how to use this.

Thanks for your help and I'm looking forward to hearing your thoughts.

PS: Since you just mentioned requests, I wonder if it would be possible at some point down the line to implement an option to clamp dV in maneuvers to one or two decimal places since that's pretty much all that KSP can actually handle. This might give a more accurate result in the mission planning phase as it would only give you optimizations which KSP could handle, allowing you to include course corrections as part of the planning phase rather than on the fly. Just a thought.

Link to comment
Share on other sites

Ok, thank you, though I might have figured part of it out already through a hunch and some trial and error. I was doing all of my flight planning as much as 60 days ahead of time and then placing the maneuver node as a point to warp to, only to find that the node would never give me an encounter, and then ensuing frustration of trying to get it to work as described in my previous post. After reading something about rounding errors in another part of this thread, it occurred to me that 60 days worth of physics calculations might be at least part of the issue, so I tried instead warping to only a couple of hours before the intended departure date before doing the orbit planning. The end result was a much more accurate maneuver node, though still not exactly what I plotted out through TOT. It's close enough, though, that I decided to run the mission anyway so I built the probe and it's awaiting launch.

So it could very well be some kind of round off error or whatnot. Honestly, I don't recommend planning out missions more than a day or two before launch. In fact, you really shouldn't have tons of "coast" time in your mission plans at all, nor should you need to warp for days and days in KSP. Try and keep things close and it'll work out.

Btw, could I see the mission plan MAT file you're working with? Maybe I can find some things there.

My plan this time around is to get the probe into orbit, then warp to within a single orbit of the departure before optimizing the maneuver and uploading the result to KSP. I'm hoping that if the trend continues, I should be presented with a final orbit as close as possible to that planned in TOT.

Perfect, that should work out well. Believe it or not, this is what we do in real life for commercial comm. sats, so there is real life operational precedent for working this way. :)

I would still like your input here, but please let me know if I'm on the right track at least or if this a fluke. Also, I'm wondering how to go about using the 'Convert Impulsive Maneuver' option from the Script menu. I gathered from reading previous posts of yours that this is a better approximation of a non-instantaneous change in dV, and as such seems to make more sense to use. That said, the few times I've tried to use it, the resulting changes to the mission have thrown all prior optimizations out the window and then I was never able to get them back in line so I had to start over without the conversion. I'm 100% sure I'm either not understanding the function, I'm doing something wrong, or both, but I would like to figure out how to use this.

So, Convert Impulse Maneuver takes the instantaneous delta-v from the impulsive maneuver and basically applies Newton's second law to demonstrate what it looks like if you were to apply it over the course of a finite duration of time (I numerically integrate the equations of motion for that event). It will NOT give the same result as the impulsive maneuver, nor should it be expected to. It's not trying to match the same pre- and post-orbits or something like that, all it's doing it trying to hit the same delta-v in the same general direction (in some reference frame) as the impulsive maneuver. If you want to use finite duration maneuvers, I recommend working with them directly (don't create an impulsive maneuver then convert, create the finite duration maneuver to begin with), or only convert small maneuvers whose actual duration does not subtend a large arc of the orbit. Converting large maneuvers probably will not give the desired effect.

PS: Since you just mentioned requests, I wonder if it would be possible at some point down the line to implement an option to clamp dV in maneuvers to one or two decimal places since that's pretty much all that KSP can actually handle. This might give a more accurate result in the mission planning phase as it would only give you optimizations which KSP could handle, allowing you to include course corrections as part of the planning phase rather than on the fly. Just a thought.

Sadly, this isn't really possible. KSPTOT works exclusively with double precision numbers, and I can't artificially limit that. I would recommend doing your own rounding if you feel so inclined. ;) A few hundredths of a meter per second will not matter much anyway. :)

Does that answer your questions? Can I answer anything else?

Link to comment
Share on other sites

So it could very well be some kind of round off error or whatnot. Honestly, I don't recommend planning out missions more than a day or two before launch. In fact, you really shouldn't have tons of "coast" time in your mission plans at all, nor should you need to warp for days and days in KSP. Try and keep things close and it'll work out.

How does this coast time issue apply to the flight to a planet? My next mission launch is going to be a probe to Sarnus (OPM mod gas giant beyond Jool) which is going to include a nearly 7 year coast. Will I need to make any special accounting for such a long stretch without control input?

Btw, could I see the mission plan MAT file you're working with? Maybe I can find some things there.

Sure, I'll upload it when I get home tonight.

Perfect, that should work out well. Believe it or not, this is what we do in real life for commercial comm. sats, so there is real life operational precedent for working this way. :)

So, Convert Impulse Maneuver takes the instantaneous delta-v from the impulsive maneuver and basically applies Newton's second law to demonstrate what it looks like if you were to apply it over the course of a finite duration of time (I numerically integrate the equations of motion for that event). It will NOT give the same result as the impulsive maneuver, nor should it be expected to. It's not trying to match the same pre- and post-orbits or something like that, all it's doing it trying to hit the same delta-v in the same general direction (in some reference frame) as the impulsive maneuver. If you want to use finite duration maneuvers, I recommend working with them directly (don't create an impulsive maneuver then convert, create the finite duration maneuver to begin with), or only convert small maneuvers whose actual duration does not subtend a large arc of the orbit. Converting large maneuvers probably will not give the desired effect.

I'll have to try flight planning in this way to see how much it affects the final orbits in KSP. I know that KSP maneuver node editing expects instantaneous maneuvers, but perhaps by using this method I'll be able to more accurately plan out long term missions where very small amounts of error could mean missing the target by millions of km. I am curious though how the warp to delta time that is inserted when you convert a maneuver to a finite burn comes into play?

Sadly, this isn't really possible. KSPTOT works exclusively with double precision numbers, and I can't artificially limit that. I would recommend doing your own rounding if you feel so inclined. ;) A few hundredths of a meter per second will not matter much anyway. :)

I'll give this a try to see how it affects the final flight plan. Considering that this will most certainly limit the per-maneuver accuracy and lead to corrective burns, what would you recommend as a good procedure for planning out the best / most efficient time along the flight plan to place such a maneuver? Is it as simple as adding a coast to UT before the mid-course maneuver and allowing both the maneuver and coast time to be optimized?

I did have another question regarding aerobraking, specifically how to use it in a flight plan. Since my next mission is going to a gas giant with several moons, I'd like to minimize the amount of dV I'm going to use for capture so I can have more to explore around the system. I understand how to find the cD through your calculator, but when I attempted to use an aerobraking maneuver to capture, the optimizer would always result in diving my vessel right into the planet and never do much to reduce the final orbit. I also almost always get the error message stating that the aerobrake cannot be executed because the orbit doesn't intersect the atmosphere. I find this odd as the atmosphere height from the bodies.ini file for Sarnus is 303km and my close approach is 260km. Anyway, some guidance here would be greatly appreciated.

Thanks again.

Link to comment
Share on other sites

Oh no worries. And I hope I didn't come across as disgruntled or something, I'm really not. In fact, it's a pleasure that I have someone who cares enough about this (besides me!) that they're willing to bug me about issues and requests! So thank you. :)

Nope we're cool! Glad to have a responsive tool author to work things out with.

I'm a bit stumped on the animator issue right now, but I will continue looking at it tomorrow. It's really strange, never seen anything like that...

I wouldn't file this as a huge issue, since in this case I don't consider myself using the animator in the way it was originally designed, so it's no real surprise I'm breaking it. But of course, solving this will only make it more robust. Just want you to know I'm not held up on anything at my end because of it.

I'll have to try flight planning in this way to see how much it affects the final orbits in KSP. I know that KSP maneuver node editing expects instantaneous maneuvers, but perhaps by using this method I'll be able to more accurately plan out long term missions where very small amounts of error could mean missing the target by millions of km. I am curious though how the warp to delta time that is inserted when you convert a maneuver to a finite burn comes into play?

I think the finite duration maneuvers are primarily for low-thrust drives like ion engines, which (if you use them realistically with modded configs, stock ones are overpowered a lot) burn for long periods at a time (see this paper on the Dawn mission, which shows how much the spacecraft is thrusting versus coasting). Regular chemical rockets and nuclear engines have enough thrust that even large Dv burns will only take a couple of seconds or a few minutes, in which case plotting via impulse maneuver is perfectly fine for long-distance accuracy. My only interplanetary trip so far has been to Duna, but it was planned via impulse maneuvers. Initial burn out of Kerbin orbit met with a successful Duna intercept and then several weeks later I did a very small correction burn to arrive on-target to within 1.8°, 5.4km. You can follow its journey starting here, using the Next buttons. State info is in the pop-up box in the craft image.

I'll give this a try to see how it affects the final flight plan. Considering that this will most certainly limit the per-maneuver accuracy and lead to corrective burns, what would you recommend as a good procedure for planning out the best / most efficient time along the flight plan to place such a maneuver? Is it as simple as adding a coast to UT before the mid-course maneuver and allowing both the maneuver and coast time to be optimized?

Best way to practice this is a trip out to Minmus. It has an SOI so small that there are times KSPTOT will show you on course to hit it and KSP will not! (spoiler, KSPTOT wins). Anyways, you will normally need to do a correction burn - best time to do this is as far away from Kerbin as possible, but it also becomes more expensive the closer you get to Minmus. I generally go 3/4 of the distance and do my correction burn. Here's an example of a probe I recently sent to Minmus.

edit: hey that was actually a cool paper on Dawn maneuvers...

Edited by Gaiiden
Link to comment
Share on other sites

So the new question I have is how would I go about using the split impulsive maneuver tool correctly? My current tech level leaves me in a situation where departing from Kerbin requires something on the order of 5-8 mins of continuous burning. The problem is that long burns like this leave much to be desired for the accuracy of the final orbit. As such I've been trying to use the split tool to allow for 2-3 shorter burns which result in better accuracy. The problem is that every time I try to use this, I get the requisite number of burns, but no amount of optimization puts the final orbit back on target (I let one run will all of the opt's checked for an hour with no satisfactory results). Are there some other variables that I have to introduce to get this to work correctly?

Link to comment
Share on other sites

So, I've identified the cause of my difficulties with the split maneuver tool. When I try to split a maneuver into two separate maneuvers, the tool works just fine, allowing me to choose how much dV I want each maneuver to have and then splitting the final output accordingly. However, instead of creating two different maneuvers matching each needed dV, the tool creates two maneuvers with identical thrust vectors. You can tell that this isn't the intention, as the second has different limitations set on the right side, but the left is locked to match the first maneuver. Attempting to manually change the left side values to match those proscribed on the right will not correctly save, having returned to the previous values on re-opening. In order to get around this, I've had to delete the second maneuver and then manually input the values into a new dV manuever.

Link to comment
Share on other sites

So, I've identified the cause of my difficulties with the split maneuver tool. When I try to split a maneuver into two separate maneuvers, the tool works just fine, allowing me to choose how much dV I want each maneuver to have and then splitting the final output accordingly. However, instead of creating two different maneuvers matching each needed dV, the tool creates two maneuvers with identical thrust vectors. You can tell that this isn't the intention, as the second has different limitations set on the right side, but the left is locked to match the first maneuver. Attempting to manually change the left side values to match those proscribed on the right will not correctly save, having returned to the previous values on re-opening. In order to get around this, I've had to delete the second maneuver and then manually input the values into a new dV manuever.

So, all the split maneuver tool does is take the delta-v unit vector of the burn you want to split and multiple it by the various delta-v magnitudes that come out of the tool. I believe it spaces the burns by the orbital periods between burns.

I admit I didn't really understand the problem you were trying to describe. Could you maybe show me with some pictures or something?

- - - Updated - - -

Arrowstar - just noticed the new colors didn't make their way into the Graphical Analysis selection list

Okay, added them in. Thanks for the note.

Btw, can you try this build out and see if it resolves the animator issue with Other Spacecraft? I think I got it to stop freezing, but the performance may not still be great. Please let me know. This is a really deep bug, probably has some roots in MATLAB's internal plotting code itself.

https://dl.dropboxusercontent.com/u/29126891/KSPTOT_v131_prerelease3.zip

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...