Jump to content

KSP Orbit Mechanic 1.2a: Optimize Your Orbits


WX_Echo

Recommended Posts

Epic! Well done! :D

For the benefit of other Mac users, what solved the problem? I would be grateful for your input, as I can add this solution into future release notes.

Just double clicked the .jar file and that puppy fired right up.

Keep It Simple Stupid.

I had (wrongfully) assumed your program was using a .exe suffix (like the orbital calculator) ... which upon closer inspection also has the .jar file hiding in there so I could use that one as well I suppose, if I wanted to, I guess.

Link to comment
Share on other sites

Wow! Nice work. I can\'t even imagine the math that went into making this. Glad you put it in your signature.

Ha - thanks! The theoretical side of the project was easier for me than the coding. I studied Aerospace Engineering as an undergrad and graduate student, so the orbital Mechanics review was a wonderful trip down memory lane. The programming side, however, was more tricky; I had to learn Java from scratch in order to develop the calculator.

Coding began about a month ago, and I\'ve worked diligently to complete each section in a timely fashion. The inclined orbit transfers section was definitely the most challenging, as the number of logical statements/tests (e.g. if/then checks) required to account for every possible user input was significant. I also enjoyed producing the reference graphics and the raw data/graphs in Excel. Some of those graphs are just beautiful for the elegant mathematics they bring to life.

The signature graphic was an attempt to responsibly advertise the calculator and provide a convenient download link.

Thanks again for the feedback. Let me know if you have questions on specific features. ;)

Link to comment
Share on other sites

Hey, I think this is really amazing. I feel like it adds so much to the game experience without damaging the challenge of it, and is a great tool for learning about available transfer methods besides. I had never attempted a bi-eliptic transfer before using this, and without it, likely never would have.

I\'m going to ask if something is possible while having no experience of real programming, so if what I ask is impossible or outrageously difficult, please forgive me: Is there any way to allow the Orbit Mechanic program to get its information directly from the game? I only ask about this possibility because I remember following the development of other stand-alone applications used to display a graphical representation of ship orbit, in a time before that feature was implemented in the game proper. I believe the developers of these applications were attempting to find ways for their programs to read information stored in system RAM, where, I presume, active game data is located. Could a similar approach be applied here to allow the program to fetch the necessary values automatically?

Perhaps a wiser question: would this even be a good idea? I can also see the enjoyment of entering one\'s data by hand. It makes one feel they have a more active role in these calculations.

Best I let the people smarter than me figure it out...

Link to comment
Share on other sites

Hey, I think this is really amazing. I feel like it adds so much to the game experience without damaging the challenge of it, and is a great tool for learning about available transfer methods besides. I had never attempted a bi-eliptic transfer before using this, and without it, likely never would have.

I\'m going to ask if something is possible while having no experience of real programming, so if what I ask is impossible or outrageously difficult, please forgive me: Is there any way to allow the Orbit Mechanic program to get its information directly from the game? I only ask about this possibility because I remember following the development of other stand-alone applications used to display a graphical representation of ship orbit, in a time before that feature was implemented in the game proper. I believe the developers of these applications were attempting to find ways for their programs to read information stored in system RAM, where, I presume, active game data is located. Could a similar approach be applied here to allow the program to fetch the necessary values automatically?

Perhaps a wiser question: would this even be a good idea? I can also see the enjoyment of entering one\'s data by hand. It makes one feel they have a more active role in these calculations.

Best I let the people smarter than me figure it out...

Thanks for the feedback! If you like optimal transfer orbit analysis, which is really what the calculator is all about, then give the three-impulse bi-elliptic orbit inclinations a try. Coplanar bi-elliptic transfers are fine, and can save you fuel in the right circumstances, but the bi-elliptic maneuver really shines when performing inclined transfers. My friend (and chief beta tester) just successfully executed a 45 deg plane change maneuver around the Mun using KSP Orbit Mechanic, and it worked like a charm. For plane changes between 50 and 60 deg, the bi-elliptic inclined orbit transfer can really save you a significant amount of fuel.

49Aff.png

I\'ll have to do some research into your suggestion. I don\'t currently know a way to grab the game\'s current orbital data from memory and import that into the calculator automatically. If it\'s possible, however, I would love to do it. I\'ll try to give you an update after the holidays.

A quick update on version 1.2: I just completed the code change to revamp the syzygy calculations for the Hohmann transfer. In the next version, the user only has to input the game time (in HH:MM:SS format) of the last opposition or conjunction and the program will automatically tell you when to execute your transfer burn (i.e. when the burn will satisfy the intercept condition). As currently implemented, the user ha to input the game time for the last time the intercept condition was satisfied.

The new version won\'t be ready until sometime in early January, but I\'ll post updates as they become available.

Link to comment
Share on other sites

This looks like an amazing tool and I\'ve downloaded it immediately! I have no real understanding of what info it\'s displaying at the moment, but hopefully with time I will learn it\'s secrets! :P

PD

Link to comment
Share on other sites

Although I\'m no expert with Apple computers, I\'m not aware of any reason why an executable JAR file could not run on a Mac. I\'ll do some research and get back to you.

And Android app is very possible, but it will have to wait for a while. It will also have to be a stripped-down version of what\'s currently included in the calculator; there are simply far too many menus, options, and data fields for a smartphone application.

You could make a full-featured app for larger android tablets, and a simplified or scrollable app for smartphones.

Link to comment
Share on other sites

This looks like an amazing tool and I\'ve downloaded it immediately! I have no real understanding of what info it\'s displaying at the moment, but hopefully with time I will learn it\'s secrets! :P

PD

Thanks for the positive feedback! Are there any particular sections, functions, or features you have questions with? Other users may benefit from your questions too.

As a side note, I intend to add a few YouTube walkthroughs demonstrating basic features of the calculator and a few sample orbit transfers. With some luck, they may be available in the next revision (v1.2).

You could make a full-featured app for larger android tablets, and a simplified or scrollable app for smartphones.

The full-featured app you mentioned for larger tablets is a good idea. I\'ll see what I can come up with after I finish the next revision of the calculator (hopefully) in early January.

Link to comment
Share on other sites

This is most definitely an excellent program. Will be using this well into the foreseeable future. One request: would it be possible to input a desired orbital period, and get a list of Apoapsides and periapsides for that period?

Link to comment
Share on other sites

This is most definitely an excellent program. Will be using this well into the foreseeable future. One request: would it be possible to input a desired orbital period, and get a list of Apoapsides and periapsides for that period?

It is possible, but with one caveat. Kepler\'s Third Law shows that an orbit\'s semi-major axis can be determined from the orbital period (i.e. T^2 is proportional to a^3).

If the user specifies the orbital period, the calculator can easily determine the associated semi-major axis. Since the semi-major axis is really just the average of the periapse and apopase radii, the user would need to provide either to uniquely determine its companion distance. For example, the user could supply the orbital period and periapse altitude; alternatively, the period and the apoapse altitude would work too.

A dynamic graph of results would be useful too, but I\'m still working on implementing this in the project. If I can figure out how to do it properly, I could show you a plot of apoapse and periapse data that would satisfy the orbit period provided.

Unless there is an unforseen conflict, this should be easy to work into v1.2.

Thanks for the feedback!

Link to comment
Share on other sites

Gents,

Just a quick update on my plans for v1.2. I picked up a great text on holiday break that gave me some interesting ideas for new features in the calculator. A quick summary of planned changes thus far:

- YouTube how-to videos demonstrating how KSP Orbit Mechanic can help you execute Hohmann, bi-elliptic, and inclined orbit transfers.

- A modification to the intercept condition sections in the Hohmann and bi-elliptic forms; specifically, the syzygy reference times will be changed so that the user will need to supply the time of the last opposition or conjunction so that the game time of the next intercept opportunity can be determined. In v1.1, the time between syzygies is provided (which is not as useful).

- Orbit phasing: if your spacecraft is leading or lagging a target in an identical circular orbit (e.g. trying to intercept the Mun, but not within its SOI), an orbit phasing transfer can be conducted to place your spacecraft on a trajectory designed to intercept the target on the original circular orbit.

- Patched conic analysis: basic interplanetary mission design with the ability to select the aiming radius and/or the peripase fly-by altitude for hyperbolic orbits. In theory, this would allow the user to select the desired fly-by altitude of the target object (e.g. depart a 200km parking orbit around Kerbin to intercept a Venus-equivalent planet with a periapse fly-by altitude of 500km).

- Incorporate mean orbital motion into elliptic orbits.

- Transfers utilizing only one tangential burn (i.e. not Hohmann) between two coplanar orbits. This should be used when the user desires orbit transfers that will optimize time (vice fuel).

- Miscellaneous UI tweaks.

I will also attempt to incorporate a user-requested feature that displays apoapse and periapse data for a supplied orbital period. The math is simple, but I have to find a clean way to design the UI and present the data in a meaningful way.

I hope to have the next version out in early January but, as with any software revision, I can\'t make any promises. Hope everyone had a happy holiday and is on track for a great start to the new year. :)

Link to comment
Share on other sites

how to launch app? i dont know how to launch app writed on Java

To ensure you have the latest version of Java installed, please visit this site and verify your version: http://java.com/en/download/installed.jsp

If you don\'t have Java installed on your machine, you can download the latest version here: http://java.com/en/download/chrome.jsp?locale=en

Hope this helps!

Link to comment
Share on other sites

To ensure you have the latest version of Java installed, please visit this site and verify your version: http://java.com/en/download/installed.jsp

If you don\'t have Java installed on your machine, you can download the latest version here: http://java.com/en/download/chrome.jsp?locale=en

Hope this helps!

In case that wasn\'t the question, it should open like any .exe file; if you double-click on it, it opens (assuming everything\'s up to date).

Link to comment
Share on other sites

As you can tell, I really like this calculator. On that note, I have a few suggestions.

1) Could you make the displayed information customizable, to allow for less screen-crowding? It would make things somewhat easier to read when you\'re looking for specific information.

2) Given that we know the radius of the spheres of influence, it would be useful to have a display of the allowable margin of error in angle or ?v of transfer orbits.

3) How difficult would it be to use a given transfer orbit and angular offset at apoapsis to calculate time or number of orbits until intercept?

Link to comment
Share on other sites

what are the keo orbit nubmers again?

Keostationary Altitude is 2868.378 km; Keostationary circular orbit speed is 1008.9102 m/s. You can find this information, and other celestial body reference data, in the Astronomical Objects form in the calculator.

FChPq.png

Let me know if you have any other questions!

Link to comment
Share on other sites

As you can tell, I really like this calculator. On that note, I have a few suggestions.

1) Could you make the displayed information customizable, to allow for less screen-crowding? It would make things somewhat easier to read when you\'re looking for specific information.

2) Given that we know the radius of the spheres of influence, it would be useful to have a display of the allowable margin of error in angle or ?v of transfer orbits.

3) How difficult would it be to use a given transfer orbit and angular offset at apoapsis to calculate time or number of orbits until intercept?

I\'m glad to hear you\'re enjoying the calculator. I\'m working hard on the next version, and I hope it will add to the current features in a meaningful way. I\'ll drop an ETA as soon as I can.

As for your questions:

1) I\'ll look into ways of streamlining the data. I can appreciate the desire to make the most important information easily accessible. As for the user-customized data, that may be more difficult to code than it would seem (at least with my Java programming skills). I\'ll play around with some design tweaks and see what I can come up with.

2) I think I know what you\'re getting at here, but I\'m not sure how to implement this in a meaningful way. If I understand correctly, you would like to know how small perturbations in the intercept angle or impulse will affect your proximity to the edge of the sphere of influence? Perhaps a context would help me understand how you would like to use the data.

3) I\'m already working on an improved intercept algorithm that provides the user with more meaningful information. Specifically, you will be able to enter the game time of the last sysygy (i.e. opposition, conjunction, inferior conjunction, or superior conjunction) and the game will use the synodic period and the transfer geometry to compute the game time of the next intercept opportunity (i.e. the time the user should initiate the transfer, or burn). I\'ve done some simple tests with this method and IMO it\'s far superior to methods that require the user to estimate the relative angular separation. If this doesn\'t seem helpful, please feel free to give me additional feedback.

I\'m also hoping that the YouTube how-to videos will help to demonstrate how many of these features work.

Thanks again for the feedback!

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

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