Jump to content

RadHazard

Members
  • Posts

    161
  • Joined

  • Last visited

Everything posted by RadHazard

  1. One thing I'd like to see, and I think they are already considering, is the ability to research improvements to parts. I think it'd be interesting to decide things like whether to research more efficient versions of the engines you have now or developing larger engines to lift heavier payloads. It could work well with the multicolored science that's been mentioned, and it'd interact well with money when that gets added (Choose between more efficient rockets to save money or larger rockets to carry more valuable payloads). I'd also like choosing experiments to be a more difficult process. Right now, if I can launch a Mystery Goo canister and a Science Jr. somewhere, I can slap on the rest of the scientific instruments without worrying about anything. I'd like it if there were more heavy experiments to carry around. It'd also make sense if scientific instruments had a heavy power requirement. Managing your power budget on early missions before you get solar panels is fun, as it adds a sense of planning. If the more advanced science instruments had a constant power draw that they needed to work, it would encourage either sending smaller probes with a few solar panels or much larger ships with the power generation capacity to run more at a time. Additionally, if some instruments need power to run, it could be changed that those instruments accumulate science over time rather than all at once, which would make establishing an orbit around a body more valuable than a flyby.
  2. I've been playing with KSP Intersteller 0.7.2 in my career game. I've just started unlocking the early power generation and transmission tech nodes in preparation for building a plasma-engine based rocket. I was playing around with the plasma stuff and ended up making this: I call it the PlasmaJetTM (I'm... not very good at naming things). It has a top speed of 30-60 m/s, depending on how your receivers are angled toward the transmitter tower, and it can't maneuver for nothing, but it flies. I'd probably get much better performance if I swapped fuel types, but I'm enjoying it's obscene fuel efficiency.
  3. Thanks for all the help, tavert. I've been busy with college work for the past week or so, so I haven't had much time to work on this. I've been hoping to find a native java MILP solver to avoid platform-specific binaries, but it looks like there aren't any of those around. I'm not exactly up to the task of writing a solver myself, so I think I'll end up using the one you linked. I looked at my code, and I remembered that I used 9 OX-4's because it's equal to the output of exactly one gigantor, which is what is generally recommenced for Ion engines, as far as I've seen. Perhaps at some point I'll end up adding in a second calculator to find the ideal number of solar panels to power an electrical engine with a given power draw. As for the FL-T100 bug, thanks for that. I must have spaced out when putting in values from the wiki and added wrong. The name of the tank certainly makes more sense now
  4. It means "redone" or "brought back". I believe this version of Orbital Construction was either a remake or an update of an older version meant for an older KSP.
  5. It required some trickery. It actually happened somewhat accidentally. In my code I had created a variable that I used multiple times when calculating the inverted rocket equation. I had solved the rocket equation for the wet/dry mass ratio, which is equal to e^(dV / (g0 * ISP)). I also noticed that the dV of a rocket is dependant only on the ratio of these masses, assuming ISP is constant. If a rocket had a greater wet/dry mass ratio, it would always exceed the dV requirement. wetMass ------- >= DMR (desired mass ratio) dryMass After looking at this for a bit, I realized I could multiply both sides by the dry mass without disturbing the greater-than operator as I knew that dry mass would always be positive and non-zero. I then subtracted that from both sides, leaving me with wetMass - DMR*dryMass >= 0 which when expanded becomes m[SUB]p[/SUB] + m[SUB]e[/SUB]x[SUB]e[/SUB] + (wm[SUB]1[/SUB]x[SUB]1[/SUB] + ... + wm[SUB]n[/SUB]x[SUB]n[/SUB]) - DMR * (p + m[SUB]e[/SUB]x[SUB]e[/SUB] + dm[SUB]1[/SUB]x[SUB]1[/SUB] + ... dm[SUB]n[/SUB]x[SUB]n[/SUB]) >= 0 where mp is the mass of the payload me is the mass of each engine wmi is the wet mass of the ith fuel tank dmi is the dry mass of the ith fuel tank xe is the number of engines xi is the number of the ith fuel tanks Te is the thrust of each engine. I rearranged it and got (m[SUB]p[/SUB] - DMR * m[SUB]p[/SUB]) + (m[SUB]e[/SUB] - DMR * m[SUB]e[/SUB])x[SUB]e[/SUB] + (wm[SUB]1[/SUB] - DMR * dm[SUB]1[/SUB])x[SUB]1[/SUB] + ... + (wm[SUB]n[/SUB] - DMR * dm[SUB]n[/SUB])x[SUB]n[/SUB] >= 0 Looking at, it makes sense to me. (wm - DMR * dm), the constant portion, is basically a measure of how much each part contributes to the DMR, and therefore the dV constraint. I did a similar thing for the TWR constraint, which gave me T[SUB]e[/SUB]x[SUB]e[/SUB] - (TWR * m[SUB]p[/SUB]) - (TWR * m[SUB]e[/SUB])x[SUB]e[/SUB] - (TWR * m[SUB]1[/SUB])x[SUB]1[/SUB] - ... - (TWR * m[SUB]n[/SUB])x[SUB]n[/SUB] >= 0 Again, (TWR * m) ends up being a measure of how much each part subtracts from the desired TWR.
  6. Thanks for the help. I'd rather not restrain my code to shortcuts based on the properties of stock parts as I'd like to add mod support at some point, but that solver looks like it might be really helpful. I've actually managed to reduce the problem of single engine types to a mixed-integer linear optimization. Unfortunately, mixed-integer linear programming is still NP-hard, so that doesn't help much. I'm guessing that at this point I'm probably going to have to use some kind of solver in order to make any progress.
  7. New Version Released: v1.2 - Ion engine support added. Correctly calculates the ion engine using the mass ratio of the larger xenon tank. The engine shows up three different times on the chart, one for using a single Gigantor to power the engine, one for using 9 OX-4 panels (same power as 1 Gigantor but less weight), and one without solar panes (assumes your ship has some other form of power generation included in the payload). - You can also add a custom engine using the boxes at the bottom, in case you want to calculate with a mod-added engine. However, only engines that use LFO or Xenon are currently supported. - Finally, I changed the way fuel is calculated so it no longer overshoots the amount of fuel to add. Previously, the calculator would find the minimum number of engines needed, and then added as much fuel as possible. This produced close-to-optimal fuel levels in most cases. However, in extreme situations, such as where a single engine was overkill (A one-ton space probe with a mainsail, for example), it would gleefully keep piling on fuel until it reached the TWR you specified, resulting in a 1-ton probe with 800 tons of fuel attached to it. It now adds the minimum amount of fuel necessary to meet your dV requirement, choosing mass-efficiency over extra dV. I'm attempting to add proper fuel-tank count for the next version. However, this is proving more difficult than simply modifying my analytic approach, as adding non-infinitely-divisible fuel tanks with differing mass ratios results in a non-linear optimization problem.
  8. It's also worth mentioning that in the KSP universe, the Isp given for all the engines is calculated with g0 = 9.82m/s^2. I'm not sure why, but that's the constant used in the code. As previously mentioned, this is just a conversion factor, independent of the actual gravity of your SoI.
  9. Thanks, I'm glad you like it. New Version Released: v1.1 I polished up the interface a lot. It's nicer now, and it has a column for total mass and payload fraction as well. I removed the Max Load, Max dV, and Max Payload columns, as those were only really useful for debugging. I added some needed code for Ion-Engine support, although it's not functional yet.
  10. Finally put up a new version, with a proper GUI. You no longer need the console to use it. I also found a bug in the calculations that resulted in the wrong numbers (I had accidentally had a multiplication instead of division in one place). If the numbers are still very far off from what MechJeb/Kerbal Engineer report, let me know. Edit: Oops, it was still broken. NOW the calculation bug should be fixed.
  11. You are somewhat correct. The effectiveness of atomic motors vs other engines is dependent on the TWR of your craft. The higher the TWR of your craft, the worse the LV-N performs compared to the other rockets, due to it's relatively low TWR. The cutoff is roughly at 1 TWR. Below 1, it's more efficient to use LV-N. Above 1, it's more efficient to use the LV-30 or the LV-45. Efficient in this case means you get more dV for a given amount of fuel. There are several tools and charts available that can show you which engine is best for which situation.
  12. I've made a simple calculator with Java that might help. You input the mass of your payload (without fuel), how much dV you want (You can use one of the interplanetary calculators available on the forums to see how much dV it will take to get to a particular planet), and what TWR you want (As stupid chris mentioned, 0.3 is pretty good for the interplanetary stage). The calculator is not very easy to use right now, but I've been meaning to update it once I can get a handle on my college workload.
  13. This is a simple Java program I threw together for myself to help me design interplanetary transfer stages. After some people showed interest, I decided to share it. It takes three design parameters and outputs the number of engines and amount of fuel you'd need in order to meet that design. Instructions The Java Runtime Environment is required to run the program. You can download it at java.com/en/download/ The program takes three inputs: Minimum TWR: This is the minimum TWR you want your ship to have. This can be as low as you have patience for. Lower TWR results in higher fuel efficiency, especially when using the LV-N. Minimum dV: This is the minimum amount of dV that your ship will have. There are many dV charts available to help you plan your mission. Increasing this will reduce your ship's payload fraction. Payload Mass: This is how much your payload weighs. In this context, "payload" is defined as everything that's not an engine or a fuel tank, including RCS, landers, and upper stages. You can design multi-stage craft with this program by designing the final stage, then using the total weight of that stage as the payload of the next stage, and so on. The program outputs a table of all the stock LFO engines, Ion Engine, and an optional custom engine you can enter values for, along with various number related to each: Name: The name of the engine Engines Required: This is the number of engines required to meet your design specifications for your given payload weight. When designing the stage, add this many engines and ensure they all have equal amounts of fuel (or that they all draw from the same fuel tank) Total Fuel Mass: This is how much fuel, in tons, that you need to add to your ship if you use the specified engine. You will either need to round up or down to the nearest small fuel tank or you will need to use the procedural fuel tanks mod in order to get exactly this amount. The ability to accommodate non-infinitely-divisible fuel tanks is coming in a future version. Total Ship Mass: This is the total mass of your ship, assuming you meet the design parameters exactly. This will help you design a mass-efficient ship. Payload Fraction: This is the fraction of your ship that is payload, as opposed to engines and fuel. If any of the rows are empty, that means that specific engine cannot meet your design requirements. You will need to reduce either the minimum dV or the minimum TWR. This is independent of payload mass because carrying a payload twice as large simply requires twice the engines and twice the fuel. When choosing the engine to use, note that the best engine for the job depends on your preferences. Lower mass results in a smaller launch vehicle, whereas lower part count reduces lag. A smaller Engines Required makes your ship somewhat lighter and drastically reduces part count, while lower fuel mass drastically reduces weight, with a less drastic reduction in part count. I hope to include part count (not including your payload, of course) as part of the readout in a future implementation. Custom Engine Version 1.2 supports custom engines. Simply enter the mass, thrust, and vacuum ISP of your desired engine, along with the type of fuel it uses (only LFO and Xenon are supported right now). The chart will update the custom engine automatically. How it works The program works in four steps 1) Figure out how much mass each engine can lift while still maintaining the given T/W ratio. This depends only on engine thrust, engine mass, and target T/W. 2) Use the inverted rocket equation to figure out how much mass each engine can carry as payload while still meeting the dV requirement (that is, the payload fraction). This changes depending on the above max load and the given dV. 3) Divide the payload mass by the payload mass/engine to figure out how many engines are required to lift your given payload. This uses the previously calculated payload fraction and the given payload mass. 4) Again using the inverted rocket equation, calculate the exact amount of fuel needed to achieve the desired dV, given the number of engines attached. This approach is analytic, so it should be perfectly correct (barring any rounding errors). If you build your ship with the given instructions, it should meet or exceed both the given TWR and dV you provided. Also note that this program is meant for designing interplanetary stages only. The difference in engine ISP in-atmosphere means that your ship will have less dV than what my program predicts, so if you try to design a launcher with it you'll need to pack extra dV. Changelog v1.2 - Modified fuel weight calculation to better adhere to payload mass. It will no longer overshoot the total fuel required. In most cases the difference was minor, but in certain edge cases (e.g. a 1-ton probe with a Mainsail) it would pile on a ridiculous amount of fuel. - Added Ion support (3 different modes: Gigantor, 9 OX-4, or No solar panels) - Added custom engine support v1.1 - Removed the Max Load, Max dV, and Max Payload columns. They weren't really useful to designing your ship and they cluttered the interface. - You can now sort columns by clicking the column header - If an engine cannot meet the requirements, it now displays a dash rather than nonsensical negative numbers v1.0 - Now has a GUI! - Fixed a bug in calculations resulting in incorrect numbers v0.5 - First public release. Download Download Here Source Here Liscense Copyright © 2013, Ryan Schneider All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  14. Here's a basic copy of my program. It takes input from the console, so you'll need to run it through the command prompt using the "java -jar <filename>" command. it takes three inputs: The T/W ratio you want, the minimum vacuum dV that you want, and the mass of your payload in tons. It will output a table of the more popular engines (I'll eventually add all the engines) along with stats on each. The important numbers are the last ones on the table, Engines Required and Fuel Mass. Engines Required is the number of engines your ship must have, and Fuel Mass is the amount of fuel you need to have, in tons (including the tank, assumes the 8/9 fuel ratio of the large tanks). If either of these numbers is negative, that means that engine physically cannot provide that T/W ratio and dV, so you'll want to reduce one parameter or the other. The best engine for the job is either the one with the least Engines Required (if you're shooting for low part count) or the least Fuel Mass (If you're shooting for smallest mass). My program works in three steps: 1) Figure out how much mass each engine can lift while still maintaining the given T/W ratio. This depends only on engine thrust, engine mass, and target T/W. 2) Use the inverted rocket equation to figure out how much mass can be payload while still meeting the dV requirement (that is, the payload fraction). This changes depending on the above max load and the given dV 3) Divide the payload mass by the payload mass/engine to figure out how many engines and how much fuel is required to lift your given payload. This uses the previously calculated payload fraction and the given payload mass. This approach is analytic, so it should be perfectly correct (barring any rounding errors). If you build your ship with the given instructions, it should meet or exceed both the given T/W and dV you provided. Also note that this program is meant for designing interplanetary stages only. The difference in engine ISP in-atmosphere means that your ship will have less dV than what my program predicts, so if you try to design a launcher with it you'll need to pack extra dV. I'll probably throw together a thread for it tomorrow, along with a version with a proper GUI.
  15. I was attempting to build a multi-stage ship in orbit for a Jool mission. I was bringing in the third module to dock using docking control mode. I was looking around in map view and swapped back to staging mode instead of docking mode, which for some reason caused my main engine to start thrusting. My living quarters ended up plowing through the engine module and damaging both beyond salvaging in the few seconds it took me to react.
  16. An important thing to note is that you only need a TWR > 1 for lifting off Kerbin. Once you're in space, you can get by with TWR as low as 0.1-0.2, if you don't mind splitting up your burns into multiple parts. When making landers, the minimum TWR you need to take off or land is equal to the ratio of the body's surface gravity to Kerbin's surface gravity. For example, Duna has a surface gravity of 2.94 m/s^2 compared to Kerbin's 9.81 m/s^2, so a Duna lander would only need a TWR > 0.3 to be able to take off. If you're trying to get a lot of dV, a good rule of thumb is to use the nuclear engines for any ship larger than a few tons. Tavert has a great series of charts that can help you decide what engines to use.
  17. That's a very thorough series of graphs. Certainly more impressive than my simple java program. Looks like I'll have to bookmark it. Great job!
  18. I made a chart comparing fuel efficiency of the most commonly used engines, and I found that the total weight of the craft isn't important when it comes to fuel efficiency, but rather the TWR. If your TWR is <1, LVNs are the way to go, but beyond that the other engines win out. The chart was made with the basic assumption that the craft consists of nothing but one engine and as much fuel as it could carry while still achieving the given TWR. While that is obviously a simplification, using MechJeb's dV readout, I was able to confirm that replacing the LV-Ns with LV-909s on a 4-engine craft with a TWR close to one did not change the dV significantly, which matches what my chart predicts. This is valid because A) both engines have similar thrust values, and the payload/fuel ratio did not change significantly. The only change was the ISP and the weight of the engines, as well as a small change in thrust (60 for the LV-N vs 50 for the LV-909). For small craft in which even a single LV-N provides >1 TWR, I recommend an LV-909 or one of the radial engines (not graphed). If TWR is important, I recommend using LV-T30s or Mainsails. Otherwise, for the most extreme range, use as few LV-Ns as you can get away with. 1 would obviously be best, but sometimes impatience wins out over fuel efficiency. If anyone is interested, I also wrote a simple java program that calculates how many engines and how much fuel is necessary to propel a given payload at a given TWR, while still having at least as much dV as you specify, assuming the combination of numbers you gave is achievable, of course.
×
×
  • Create New...