Earth Venus Mars Earth - a computational design tutorial

smol

Registered
#1
1 Introduction

I get the feeling a lot of folks are stuck in a rut. We can launch above earth's atmosphere. We can get into orbit. The more persistent of us can get to moon. A lucky few can even fly home. But what about the outer planets? How can I get to Mars? How can I take off from Venus? Some of the brave few who have solved these issues and post about them generally fly what in my opinion are massively overbuilt craft. I think is a waste of money, time, and your device's computer power (i.e. lag). My goal for this tutorial is to demonstrate a program I'm working on that can take rocket building skills to the next level.

While I know not everybody can run or modify a python program, I hope that you can follow along as best you can, and pick up a tip or two about proper rocket design so that you don't spend so much time repeating trial and error and frustration and overbuilt rockets. Proper planning and good design can save a lot of effort in the long run.

Inspiration

I was browsing Reddit the other day, and a buddy of mine posted a flight in SFS 1.5 that was a manned mission from Earth to Venus to Mars to Earth. No refueling. No docking. Landings, not crashes. It sounded like an interesting challenge, and I solved it with the help of my program that afternoon. Comparing notes with the author of the post, I learned that his rocket was four times as large as mine, and he said it took him four months to design, test, fly, crash, redesign, etc., and finally complete the mission. SFS pilots ought to have the tools to do better.

Mission Requirements

As I said, the goal is to fly a manned mission from earth - Venus - Mars - earth, landing safely on each planet. DLC is allowed (we should all financially support Stef's efforts). Ion engines are allowed. In-flight stages are allowed. Parachutes allowed. Spent stages do not need to be recovered or landed. Docking or refueling is prohibited - one staged and shrinking vehicle, one mission.

The following, while not required, is a general part of my design strategy: I design for lowest total weight (you can call me "smol"). I use Hohmann transfers only. I don't use booster rockets, just simple staging. My design was intended to only use one stage at a time, but I had to bend that personal requirement a little as you will see... like Apollo 13, sometimes you have to improvise mid-flight to get the astronauts home safely.

Audience

I am assuming you can fly to the moon and back. I'm assuming you understand Thrust Weight Ratios (TWR). I'm assuming you understand the concept of delta-V. I'm assuming, if push came to shove, you could calculate a delta-V, although you are kind of lazy and maybe use a spreadsheet, calculator, or an app. I bet you are tired of running calculations over and over again, wondering if a better solution is just one more iteration or modification away. If this paragraph makes no sense to you, I suggest you read and study Horus Lupercal's The Basics thread, and then worship the almighty SFS Delta V 1.5 Map by Altaïr. Then you can come back and continue reading.

Table of Contents

1 Introduction (this document)
2 Preliminary Design Planning
3 Mars ... ?
4 Venus and Mars ... !
5 Venus Liftoff
6 LEO to Venus
7 Earth to LEO
8 Trip Report
9 Conclusions

If you came here just for the Venus lift off (a common request around here), you can skip ahead to chapter 5

Enough talk already. Let's get started!
 

smol

Registered
#2
2 Preliminary Design Planning

Since parachutes are allowed, and the three destination planets all have an atmosphere, we can save on a lot of fuel by aerobraking to land. We will only use fuel to take off / orbit and for interplanetary injections.

Thus the whole flight plan looks like this:

(1) Earth - Low Earth Orbit (LEO)

The start of any good mission.

(2) LEO - Venus ("Trans-venusian Injection")

Note we only have to hit Venus (preferably at an angle!), so entering Low Venus Orbit is unnecessary. With sufficient parachutes, retroburning should be unnecessary.

(3) Venus - Low Venus Orbit (LVO)

A lot of forum threads complain about how difficult this is. I will show you how. Yes, I had some problems myself!

(4) LVO - Mars ("Trans-martian Injection")

Again, we only need to fly to Mars at a low angle, and let parachutes do the rest. Mars is notorious for a weak atmosphere, so we will use a lot of parachutes.

(5) Mars - Low Mars Orbit

Thankfully Martian gravity is weak and the atmosphere is thin, so this shouldn't require too much effort.

(6) LMO - Earth ("Trans-earth Injection")

I hope we saved some parachutes for the landing!


So far that's a lot of words and not a lot of results. Check out my next post for some rockets.
 

smol

Registered
#3
3 Mars ... ?

As I'm sure you have learned by now, multistage rockets are best designed backwards. That is, design the last (upper) stages first, and work your way down. The more astute amongst us have also probably noticed that a smol savings in the last stage will result in a huge savings in the rocket overall.

The last stage of our mission is to fly from LMO to earth. According to the Delta V 1.5 map, that is a deltaV of 230 + 44 + 23 + 145 + 82 = 524m/s. That seems pretty smol. Why did I stop at 82 on the map and not include 17 + 664? Because remember, we only need to hit the earth, not orbit it (and then deorbit it). Getting to an Earth capture trajectory is good enough.

With the python program I wrote, you can tell it the stage requirements, and it will calculate the optimum fuel & engine count for each engine type. You need to supply the payload weight, tank width, engine types to consider, deltaV, TWR, and a nifty name. The program produces the combination of engine type, engine count, fuel size with the lowest weight, and a bill of materials. It also generates some useful data about the stage, including stage weight, deltaV, and TWR(earth).

In this particular case, the payload is a capsule (required to be a manned mission) and two parachutes (to eliminate retrobraking). We will use width 4 tanks. deltaV is 524 as calculated above. TWR is irrelevant (this is an orbital transfer, not a liftoff). We will consider all engine types.

Input:

Code:
    payload5 = capsule + 2 * parachute
    tank5 = tank_4_2
    delta_v_min5 = 230 + 44 + 23 + 145 + 82
    twr_min5 = 0.01
    stage5 = Stage("LMO-Earth", delta_v_min5, twr_min5, all_engines, tank5, payload5)
    if not stage5.find_best_engine():
        raise ValueError(f"could not produce stage {stage5.name}")
    stage5.print()
Output:

Code:
Stage LMO-Earth Report:
  Bill Of Materials
    1 x capsule
    2 x parachute
    1 x Kolibri engines
    5 tons tanks
  total weight 10.30 tons; deltaV=1463.281m/s (>524.000); TWR(earth)=1.46 (>0.01)
Yup, that's a pretty smol rocket to get home. Just my style!

IMG_0065.png


It looks more like a little insect or a bug to me. Now we could proceed with the rest of the stages and calculations, but let's have ourselves a think first. After all, any monkey can use a calculator, spreadsheet or python program. It takes a real SFS rocketeer to recognize an opportunity and strike when one presents itself...
 

smol

Registered
#4
4 Venus and Mars ... !

Recap... here is the Low Mars Orbit - Earth proposal.

Output:

Code:
Stage LMO-Earth Report:
  Bill Of Materials
    1 x capsule
    2 x parachute
    1 x Kolibri engines
    5 tons tanks
  total weight 10.30 tons; deltaV=1463.281m/s (>524.000); TWR(earth)=1.46 (>0.01)
First, look at the TWR. If it were on earth, this little bug has a TWR of 1.46. It could lift itself off of the surface of the earth! It could certainly lift off of puny Mars.

Now look at that delta-V = 1463m/s. By gum, that is almost enough delta-V to get from the surface of Mars to Earth. Mars to Earth requires Mars-LMO (1000m/s) plus LMO-Earth (524m/s) equals 1524m/s. So the stage necessary to lift this bug off of mars would require 1524-1463 = 61m/s. Oh come on, that is absurdly smol. I'm not building an entire stage for a measly 61m/s. Let's just combine the last two stages of this mission and see what happens!

To update the requirements, we will need to add four more parachutes to aerobrake in the thin Mars atmosphere, and also update the twr requirement from "nothing" to "lift off from Mars" (this shouldn't be a problem, the TWR is already 1.46 on earth). Note that this vehicle has no landing legs. I'm going to assume that with four parachutes we can do a gentle landing onto the engine itself. I think this is acceptable risk.

Input:

Code:
    payload5 = capsule + 2 * parachute + 4 * parachute
    tank5 = tank_4_2
    delta_v_min5 = mars.delta_v + 230 + 44 + 23 + 145 + 82
    twr_min5 = mars.twr
    stage5 = Stage("Mars-LMO-Earth", delta_v_min5, twr_min5, all_engines, tank5, payload5)
    if not stage5.find_best_engine():
        raise ValueError(f"could not produce stage {stage5.name}")
    stage5.print()
Output:

Code:
Stage Mars-LMO-Earth Report:
  Bill Of Materials
    1 x capsule
    6 x parachute
    4 x Ion engines
    5 tons tanks
  total weight 13.40 tons; deltaV=4812.232m/s (>1524.000); TWR(earth)=0.45 (>0.44)
WHAT?!? Didn't see that one coming!!! By swapping the Kolibri for four ion engines, we added a teeny bit of weight (yes, I know, every ton counts at this stage, but still...), eliminated an entire stage of our mission, and QUADRUPLED our delta-V.

The new and improved bug 2.0:

IMG_0066.png


Now we have an enormous 4812 - 1524 = 3288 delta V remaining. That's more than enough for a Venus to Mars injection (consults deltaV map) 620 + 76 + 59 + 82 + 145 = 982m/s. Remember we stopped at the 145m/s mars capture because we only need to hit Mars, not orbit / deorbit Mars.

Why stop here? Could this bug lift off of Venus as well? No, the TWR is insufficient to lift off the surface of Venus.

Let's recalculate the bug as LVO-Mars-Earth and start working on lower stages. We will add to the deltaV and recalc.

Input:

Code:
    payload5 = capsule + 2 * parachute + 4 * parachute
    tank5 = tank_4_2
    delta_v_min5 = 620 + 76 + 59 + 82 + 145 + mars.delta_v + 230 + 44 + 23 + 145 + 82
    twr_min5 = mars.twr
    stage5 = Stage("LVO-2-Mars-2-Earth", delta_v_min5, twr_min5, all_engines, tank5, payload5)
    if not stage5.find_best_engine():
        raise ValueError(f"could not produce stage {stage5.name}")
    stage5.print()

Output:

Code:
Stage LVO-2-Mars-2-Earth Report:
  Bill Of Materials
    1 x capsule
    6 x parachute
    4 x Ion engines
    5 tons tanks
  total weight 13.40 tons; deltaV=4812.232m/s (>2506.000); TWR(earth)=0.45 (>0.44)
The only thing that changed in the output is the stage's minimum deltaV, as expected. Onward!
 

smol

Registered
#5
5 Venus Liftoff

So far, we have designed a bug to fly from Low Venus Orbit (LVO) to Mars surface to Earth surface. It weighs 13.40 tons. Many an SFS rocketeer has asked themselves "however am I to launch from Venus to LVO?" Let me show you the way.

First, what are the requirements for such a launch? We will need the previous stage as a payload of course, a separator from the payload to our current stage, smol fuel tanks, enough delta-V to achieve LVO (we're assuming 3000m/s for my calculations, same as earth), and enough TWR to lift off the surface of Venus. Let's go! After my python program runs through all the combinations, it produces the following:

Input:

Code:
    payload4 = stage5.part() + separator_4
    tank4 = tank_4_2
    delta_v_min4 = venus.delta_v
    twr_min4 = venus.twr
    stage4 = Stage("Venus-LVO", delta_v_min4, twr_min4, all_engines, tank4, payload4)
    if not stage4.find_best_engine():
        raise ValueError(f"could not produce stage {stage4.name}")
    stage4.print()
Output:

Code:
Stage Venus-LVO Report:
  Bill Of Materials
    1 x separator-4w
    1 x (stage LVO-2-Mars-2-Earth)
    1 x Frontier engines
    55 tons tanks
  total weight 74.80 tons; deltaV=3080.766m/s (>3000.000); TWR(earth)=1.34 (>1.09)
All right, let's build it and take a look:

IMG_0067.png


Seems legit. We are basically on spec for delta V and just a tiny bit over budget for TWR, but seems reasonable to me. I wonder if it will fly? Stay tuned for the trip report... it was an Apollo 13 moment for sure, and we almost didn't make it, like so many SFS Venusian astronauts before me.
 

smol

Registered
#6
6 LEO to Venus

So far we have built a 74.8T vehicle that can get from Venus surface to Mars surface to Earth surface. Next, let's go compute the Trans-venusian Injection.

The TWR for such a stage should be irrelevant, as we are not fighting gravity. The delta-V requirements for this maneuver, per the DeltaV 1.5 map, are 664 + 17 + 82 + 59 + 76 = 898m/s. Huh, that's a lot less than it takes to lift off of Venus, so this stage won't be very big.

What kind of equipment should we bring along? Well, let's bring along a couple parachutes. Venus has a thicc atmosphere (so thicc), so we shouldn't need more than a couple. We need a separator from the previous stage. We need some smol 4-wide fuel tanks. I will also bring along some landing legs. Previous experiments at Venus lead me to believe I do not have the piloting skills to land directly on a low thrust injection engine. Maybe if I brought some more parachutes? Maybe if I went back to flight school? Whatever, let's show Venus some leg!

Input:

Code:
    payload3 = stage4.part() + separator_4 + 2 * landing_leg + 2 * parachute
    tank3 = tank_4_2
    delta_v_min3 = 664 + 17 + 59 + 76
    twr_min3 = 0.01
    stage3 = Stage("LEO-Venus", delta_v_min3, twr_min3, all_engines, tank3, payload3)
    if not stage3.find_best_engine():
        raise ValueError(f"could not produce stage {stage3.name}")
    stage3.print()
Output:

Code:
Stage LEO-Venus Report:
  Bill Of Materials
    2 x landing-leg
    1 x separator-4w
    1 x (stage Venus-LVO)
    2 x parachute
    1 x Ion engines
    10 tons tanks
  total weight 87.50 tons; deltaV=1276.432m/s (>816.000); TWR(earth)=0.02 (>0.01)
HAHAHAHA! Yes, per my specification ("all_engines") I suppose a single ion is all that is ever necessary for any outer space maneuver. I actually built this stage for the hell of it, and the results were disappointing to put it mildly. Basically, the transfer to Venus takes hours, the moon can get in the way, and it just doesn't seem realistic. If you want to fly this potato, be my guest, but I don't want to spend my play time gradually transferring it from earth to Venus. You can't even do the burn all at once because the transfer window closes, and then you have to loop around the earth one more time to catch it again. Ugh.

Let's specifically prohibit ion engines, and try again:

Input:

Code:
    payload3 = stage4.part() + separator_4 + 2 * landing_leg + 2 * parachute
    tank3 = tank_4_2
    delta_v_min3 = 664 + 17 + 59 + 76
    twr_min3 = 0.01
    stage3 = Stage("LEO-Venus", delta_v_min3, twr_min3, no_ions, tank3, payload3)
    if not stage3.find_best_engine():
        raise ValueError(f"could not produce stage {stage3.name}")
    stage3.print()
Output:

Code:
Stage LEO-Venus Report:
  Bill Of Materials
    2 x landing-leg
    1 x separator-4w
    1 x (stage Venus-LVO)
    2 x parachute
    1 x Kolibri engines
    35 tons tanks
  total weight 112.50 tons; deltaV=837.028m/s (>816.000); TWR(earth)=0.13 (>0.01)
Wow, merely jumping to a Kolibri means increasing the weight by 50%. Sigh. Maybe putting multiple ions would be a reasonable alternative? I leave this exercise to the reader.

Another problem crops up when you try to build this rocket: where do you put the parachutes? This stage is so smol compared to the above stages that if I put the parachutes on my stage as planned, we will land as a "flying spear" nose-first orientation, and we will have to start an impromptu Venus colony. An impromptu upside down Venus colony. Therefore, let's put the parachutes on the stage above us. This will require recomputing stage 3 and stage 4 above it. Hopefully this doesn't change things too much.

Input (moving the two parachutes from stage 4 to stage 3):

Code:
    payload4 = stage5.part() + separator_4 + 2 * parachute
    tank4 = tank_4_2
    delta_v_min4 = venus.delta_v
    twr_min4 = venus.twr
    stage4 = Stage("Venus-LVO", delta_v_min4, twr_min4, all_engines, tank4, payload4)
    if not stage4.find_best_engine():
        raise ValueError(f"could not produce stage {stage4.name}")
    stage4.print()

    payload3 = stage4.part() + separator_4 + 2 * landing_leg
    tank3 = tank_4_2
    delta_v_min3 = 664 + 17 + 59 + 76
    twr_min3 = 0.01
    stage3 = Stage("LEO-Venus", delta_v_min3, twr_min3, no_ions, tank3, payload3)
    if not stage3.find_best_engine():
        raise ValueError(f"could not produce stage {stage3.name}")
    stage3.print()
Output:

Code:
Stage Venus-LVO Report:
  Bill Of Materials
    1 x separator-4w
    2 x parachute
    1 x (stage LVO-2-Mars-2-Earth)
    1 x Frontier engines
    55 tons tanks
  total weight 75.60 tons; deltaV=3022.527m/s (>3000.000); TWR(earth)=1.32 (>1.09)
Stage LEO-Venus Report:
  Bill Of Materials
    2 x landing-leg
    1 x separator-4w
    1 x (stage Venus-LVO)
    1 x Kolibri engines
    35 tons tanks
  total weight 112.50 tons; deltaV=837.028m/s (>816.000); TWR(earth)=0.13 (>0.01)
And here's a pic of the growing girl:

IMG_0068.png
 

smol

Registered
#7
7 Earth to LEO

All right. So far we have a 112.5T rocket that can get from LEO to Venus to Mars to Earth. We just need to lift this bad girl into orbit and we are done. Hopefully this is an easily solvable problem for most SFS rocketeers. I see this forum littered with posts like "50T to space", "500T to LEO!!!1!", and there's even a Kiloton Club. Perhaps I shall try lifting a kiloton as a future project?

Anyway, let's build a two stage rocket to lift her into space. We are going to need some fuel (let's use 12 wide this time), some separators, specifically a 12 wide between the two liftoff stages, and a 12 wide and an 8 wide in order to aesthetically transition from a 12 wide tank to a 4 wide tank. These are the lower stages, and I'm willing to drag along an extravagant 8 wide separator to keep her beautiful (and aerodynamic). The initial stage needs a TWR of 1.2 to lift off of earth, and for the upper stage we can relax a little and use a TWR of 1.0 since we won't be fighting earth gravity so much.

Calculating the optimum stage separation is what separates the Bottle Rocketeers from the SFS Rocketeers. Some folks like to use the rule of thumb that the bottom stage should weigh "about twice as much" as the upper stages, but I can find no source for this tradition, and my empirical testing suggests that the ideal ratio is often wildly different. Many times my first stage weighs LESS than the upper stage, and this is probably due to the artificial limits of our engine types and our noncontinuous fuel tank sizes. To find the optimum answer (as documented in actual rocket literature algorithms), you'd have to run multiple simulations, gradually adjusting the fraction of weight carried by each half until you find the fraction that generates the lowest cost stage (however you define cost). This is way too much work for me, so I just sit back and let my python program run hundreds of simulations for me and tell me the optimum results.

Input:

Code:
    payload2 = stage3.part() + separator_8 + separator_12
    tank2 = tank_12_2
    delta_v_min2 = None
    twr_min2 = 1.0
    stage2 = Stage("EA-LEO", delta_v_min2, twr_min2, all_engines, tank2, payload2)

    payload1 = separator_12
    tank1 = tank_12_2
    delta_v_min1 = None
    twr_min1 = earth.twr
    stage1 = Stage("Earth-EA", delta_v_min1, twr_min1, all_engines, tank1, payload1)

    stage1, stage2 = optimize_stages(stage1, stage2, earth.delta_v)
    if stage1 is None:
        raise ValueError(f"could not produce stages 1 and 2")
    stage2.print()
    stage1.print()
Output:

Code:
Stage EA-LEO Report:
  Bill Of Materials
    1 x separator-12w
    1 x (stage LEO-Venus)
    1 x separator-8w
    3 x Frontier engines
    150 tons tanks
  total weight 282.50 tons; deltaV=1846.875m/s (>1722.000); TWR(earth)=1.06 (>1.00)
Stage Earth-EA Report:
  Bill Of Materials
    1 x separator-12w
    1 x (stage EA-LEO)
    2 x Titan engines
    240 tons tanks
  total weight 547.70 tons; deltaV=1179.520m/s (>1153.125); TWR(earth)=1.46 (>1.20)
And there you have it. A manned Earth - Venus - Mars - Earth in five stages and clocking in at only 547.70 tons. Pretty smol for the mission she's been assigned. Here she is in her full beauty:

IMG_0069.png


She's a little shy. STOP LOOKING UNDER HER SEPARATORS!!!

Sure she looks good on paper, but will she fly? Stay tuned for my trip report!

P.S. I have an iPad and therefore I do not have access to the blueprint files. If an SFS fan would be willing build this and post the blueprint, I'm sure the SFS general community would be most obliged.
 

smol

Registered
#8
8 Trip Report

Well, the rocket is fully assembled and on the launching pad. Let's light the candle and head into space!

IMG_0070.png


The first stage has a delta-V of about 1200 and soon peters out. Shut off the engines, drop stage 1, turn on the Frontiers in stage 2, and resume.

IMG_0073.png


There we are, low earth orbit and still have 15% in the tank. What gives? Well, I've been using a deltaV of 3000 to get from earth to low earth orbit. It turns out that this is now likely an overestimate. As my piloting skills improve, my personal deltaV earth goes down. I should probably use 2900 or even 2800 in the future.

Next up, the flight to Venus. Since we still have some deltaV in the stage 2 tank, let's spend it, drop stage 2, fire up that Kolibri, and take the slow boat to Venus. Remember, we just need to aim for the Venus atmosphere. Parachutes and that thicc (so thicc) atmosphere can do the braking for us.

IMG_0074.png


And we are landed. Impact was at about 8m/s, within spec of the landing legs. Glad we landed on a relatively flat spot.

So about the liftoff... originally the plan was to light up the hidden Frontier in stage 2 and quickly detach the useless stage 3. But that stage 3 still has 48% fuel in it (that girl has some junk in the trunk!), and it would be a shame to leave it on the surface. Only firing up the Kolibri in stage 3 is a fool's errand. It isn't powerful enough (doesn't have enough thrust or TWR) to lift us off the surface of Venus. Firing stages 3 and 2 simultaneously would mean dragging around some extra weight unnecessarily. So how about we get creative?

IMG_0075.png


Let's set up a fuel transfer from stage 3 to stage 2, and then fire up both engines. That way, the stage 3 tank will be supplying both engines until it is empty, and then we can drop stage 3 and run. At that point we will be off the surface, have an upward velocity, and have a fully fueled stage 2. Win-win-win. Don't forget to raise the landing legs for decreased drag!

And now we fly to low Venus orbit...

HOUSTON WE HAVE A PROBLEM!!!

There was not enough delta V to leave Venus, even with the extra fuel and kolibri boost! The astronauts are going to follow a parabolic arc and lithobrake into the Venus surface. Unless... unless... unless there is enough deltaV in the bug to achieve LVO and resume the mission. Remember the bug? Despite its smol 5 ton tank, it has an enormous reserve of deltaV. Will she make it?

IMG_0079.png


Well, we achieved low Venus orbit anyway and only burned 9% of the 5T tank. What happened there? We used all the deltaV from stage 2, plus had to borrow from stage 3 and stage 1, just to reach LVO. Clearly we underestimated the deltaV required to leave Venus. Since this mission, in public and private conversations with SFS experts, I've concluded that the deltaV to leave Venus is more like 3500 to 4000m/s. In fact, I consulted the Reddit guy who originally wrote about and inspired this mission, and he calculated that he spent slightly over 4000m/s to get from Venus to LVO. I'd better make some adjustments to my calculator for next time!

Let's have the bug do the Trans-martian Injection, again aiming for the (thin) martian atmosphere, deploy four parachutes, and gently land on those engines.

IMG_0076.png


That was gentle. Now it's just a matter of firing up the ions, achieving LMO, following a transfer window to the earth atmosphere, and coasting home. Don't forget to deploy the two remaining parachutes on the way down.

IMG_0077.png


Made it!!! Obligatory achievements sheet:

IMG_0078.png
 

smol

Registered
#9
9 Conclusions

So there you have it. A manned mission Earth - Venus - Mars - Earth with landings (not crashes) on each. Designed and built in an afternoon, with the help of my trusty python program. My buddy on Reddit said his mission design and testing took four months of experiments, and weighed almost 2200 tons. My fully fueled rocket weighed less than his dry weight.

As we compared notes, we realized he was morally opposed to ion engines, and he used a kolibri on stage 1. I reran the same project without ion engines, and sure enough the ionless version of my apparatus clocks in at closer to 1500T. That's right, the simple change of swapping those four ions with a kolibri caused the final weight of the complete rocket to almost TRIPLE.

I hope you had fun following along with my rocket design process, and I hope I inspired you to keep your own rockets are as smol as possible.

Here are some other random thoughts:

True to her reputation, it really was difficult to leave Venus. But I'm sure updating my assumed deltaV for leaving Venus would solve that problem.

Can the parachutes be optimized more? Can I eliminate some? Would it make more sense to move more (or all) of them to the tip, to reduce drag?

Should the Trans-venusian injection and the Venus liftoff apparatus be merged? It's weird to have such a smol injection stage.

Should stage 2 be narrower, like 8 wide?

Would the rocket benefit from boosters instead?

Special Thanks

My rocket stands smol and tall only because I built it on the shoulders of SFS giants. I want to specifically thank Horus Lupercal for his SFS Basics thread, and Altaïr for his delta V map (updated to SFS 1.5). I also thank the SFS developer Stef via my purchase of the DLC package, and you should too.
 

Altaïr

Space Stig, Master of gravity
Staff member
Head Moderator
Team Kolibri
Modder
TEAM HAWK
Atlas
Deja Vu
Under Pressure
Forum Legend
#10
That's quite a smol mission :p

Thanks for sharing this. I also like to optimize my ships to make them as small as possible, though I rely more on navigation tricks, and splitting the ship.

In this case for example, I would have made a refueler that would have gone to Mars from LEO by its own means, so the ship can refill its tank when coming from Venus. Of course that makes you add some probes, engines, docking ports and RCS, but you'll need far less fuel in the end, because you avoid sending to Venus the fuel you will need on Mars.

I had a laugh too when you wanted to design a stage for the injection from LEO to Venus, and the program answered "ion engine" :D
To avoid that, maybe you can specify a burn time, so that your program gives an engine combination that allows you to make your injection burn in an acceptable time.
Another cheap way to do it is to specify a higher TWR. The Thrust/Weight ratio is also the acceleration measured in g units, so it's directly tied to how long will last your injection burn.

But personally I don't go into deep programming like that to compute a mission. I have some tools (spreadsheets) to make the task easier, but I like to do the job myself :p
 

Horus Lupercal

Primarch - Warmaster
Professor
Swingin' on a Star
Deja Vu
Biker Mice from Mars
ET phone home
Floater
Copycat
Registered
#11
I think someone is after my post word count record...

Like what you're doing here dude. And cheers for the mention, though I'd blame Altair for the Basics as well as most of the maths behind it stems from background conversations with him. I've simply made it into a lesson.

Is the program capable of selecting engine combinations / accounting for effective TWR? And also, does it ignore the non-DLC engines, as I found its results quite surprising considering it's after peak efficiency.

I'm going to ignore ions as well, cos they're broken in 1.5 and render all other engines obsolete under all conditions now that they can lift themselves.

Reason I say this is it doesn't suggest multiples of valiant and hawk engines, which it should do.
Allow me to explain.
Valiant has a lower ISP than frontier. But it has a lower dry mass per lb of thrust (its naked TWR) which usually (not always though) results in it being more efficient to use Valiant. The case is even more pronounced with Hawk as the isp is identical to Titan, but the TWR is better meaning you get more bang for your buck.

For example. Your Venus lift stage, 3000m/s, 13.4t 'payload' with a 4w separator (another 0.4t).
With a frontier underneath, looks like this:
TWR in yellow adjusted for Venus gravity

Screenshot_2020-07-01-18-20-18.png


Whereas under the same conditions with an engine swap with multiples of Valiant (in this case a pair of them), you get this result.

Screenshot_2020-07-01-18-20-07.png


And making the same stage as you created with 55t of fuel tanks gives you 3126m/s Dv rather than 3080m/s.

With the LEO to Venus transfer and landing stage, same happens.

816m/s with a kolibri looks like this
Screenshot_2020-07-01-19-48-16.png


Same Dv and upper stage weight, but armed with valiant is:
Screenshot_2020-07-01-19-48-36.png


And rounding that up to whole tanks (like yours, 35t) with a valiant makes:
Screenshot_2020-07-01-20-04-36.png


More Dv, more thrust, lighter stage weight.

The same happens with the next stages. Quick point though, I absolutely agree with you that the 1:2:4 ratio isn't the most efficient despite being widely touted, including by me in The Basics, as the way to go. I recommend it not because it's the best, but because it allows a huge margin for error for beginners. I've also found the same conclusion as you based upon splitting the Dv at a certain ratio works better and the results are usually of equal sized or a slightly larger second stages.
Also, boosted rockets and getting rid of unused dry mass (especially engines) is always better than un-boosted, in terms of absolute efficiency.

With the LEO lift vehicle, the frontiers are a good choice. First stage though, it should have picked out Hawks. 6 of them.
Screenshot_2020-07-01-20-17-09.png


And saved a few more tons.

All up, using your fuel weights and my engines, I save a bit of weight, nearly all the stages are more powerful and get a higher overall Dv

Screenshot_2020-07-01-20-55-03.png


Don't take this as me trying to kill your idea dude. It's good thinking and I like it, but remember that the non-DLC engines need love (cos they're better) and sometimes experimentation is better than computer simulation.

I can get the same mission off the ground for under 530tons using roughly the same Dv budget, but the totals juggled a little in the LEO lift vehicle (the balance python gave you isn't the most optimised).

Also, making this ^^ rocket with 6 hawks, 4 on a 140t core and one on a 50t booster each side, gives the same launch weight almost (depending on attachment method and cones) and easily another 50m/s Dv to play with.
 

smol

Registered
#12
Excellent points, sir! I think I have found the source of most of our differences, and I can use it to update the mission (and adjust the program).

The software does consider all engine types, I promise. There are two main differences between your spreadsheet approach and my software approach.

First, when I select a tank size, it limits the width of the engines to that tank size (and optionally +1, if it is permitted to "go wide"). With a 4-wide tank and an engine width of 4, I didn't allow the program to consider two valiants in my stage 4. I will make that adjustment below. Although, doesn't two valiants look weird, sticking out the side of an otherwise 4-width column?

Second, I'm using strict unmodified fuel tank sizes with no fractional parts (or trapezoids). If I choose 4-wide tanks, fuel comes in multiples of 5T. If I choose 12-wide tanks, fuel rounds up to the next 15T. I am considering having the program try all the fuel tank sizes as well, just to see which combo is truly the most smol. In retrospect it is a little weird the way I start the rocket design process by first fixing the width of the stage. What was I thinking?

One thing I've noticed, when ultra-optimizing for lowest total weight, a smol change might require an additional 1T of fuel which requires 5T more of tank (or 15T!) which now requires an entirely new engine and completely revamps the lower stages. My smol rockets are VERY sensitive to the defined parameters.

Anyways, if I readjust the mission parameters and
(1) allow each stage to "go wide" with an extra half enginesticking outside the column
(2) I adjust the bottom most stage 5 (liftoff from earth) to use 24-wide tanks (i.e. two 12-wides strapped together horizontally), which could now accommodate a maximum of 7 hawks (or 5 titans), we get the following BOM:

Code:
Stage LVO-2-Mars-2-Earth Report:
  Bill Of Materials
    1 x capsule
    6 x parachute
    4 x Ion engines
    5 tons tanks
  total weight 13.40 tons; deltaV=4812m/s (>2506); thrust=6.0T; TWR(earth)=0.45 (>0.44); burn time=900s (>514)

Stage Venus-LVO Report:
  Bill Of Materials
    1 x (stage LVO-2-Mars-2-Earth)
    2 x parachute
    1 x separator-4w
    2 x Valiant engines
    55 tons tanks
  total weight 73.60 tons; deltaV=3063m/s (>3000); thrust=80.0T; TWR(earth)=1.09 (>1.09); burn time=173s (>171)

Stage LEO-Venus Report:
  Bill Of Materials
    2 x landing-leg
    1 x separator-4w
    1 x (stage Venus-LVO)
    1 x Kolibri engines
    35 tons tanks
  total weight 110.50 tons; deltaV=855m/s (>816); thrust=15.0T; TWR(earth)=0.14 (>0.01); burn time=546s (>525)

Stage EA-LEO Report:
  Bill Of Materials
    1 x separator-12w
    1 x separator-8w
    1 x (stage LEO-Venus)
    3 x Frontier engines
    135 tons tanks
  total weight 265.50 tons; deltaV=1739m/s (>1605); thrust=300.0T; TWR(earth)=1.13 (>1.00); burn time=117s (>111)

Stage Earth-EA Report:
  Bill Of Materials
    1 x (stage EA-LEO)
    1 x separator-12w
    7 x Frontier engines
    210 tons tanks
  total weight 518.70 tons; deltaV=1288m/s (>1261); thrust=700.0T; TWR(earth)=1.35 (>1.20); burn time=78s (>77)

rocket deltaV = 11757.322m/s; mission deltaV = 9188.260m/s
Two valiants on stage 4 (never mind how silly that looks, and it would require testing to make sure the drag doesn't degrade performance too much), I'm keeping the Kolibri on stage 3 because with the given parameters it is superior to a Valiant (again, remember to round your fuel up to the next size... the conditions here are very tight and swing back to a valiant with the slightest adjustment), and baby let's load her up with 7 damn frontier engines for earth liftoff. ISP! ISP! ISP FTW!!!!!1!

I promise you, I give non-DLC engines all the love they deserve, and my stage 2 / stage 1 fractional separation is optimized to the nearest tenth of a percent between 10.0% and 90.0%.

P. S.
Does anybody think they can complete the mission in less than 500T? I made some more optimizations and I'm at 479.2T now, and I managed to get the stage 5 bug into LVO with completely full tanks this time!
 

Horus Lupercal

Primarch - Warmaster
Professor
Swingin' on a Star
Deja Vu
Biker Mice from Mars
ET phone home
Floater
Copycat
Registered
#13
Second, I'm using strict unmodified fuel tank sizes with no fractional parts (or trapezoids)
Same here. The final screenshot example uses whole 5t fuel tanks. You can even get it to the nearest 2.5t and not have any trapezoidal shapes anywhere if you're canny enough.


In retrospect it is a little weird the way I start the rocket design process by first fixing the width of the stage
Yeah, I'm not sure why that is a thing. Mine gives me the total amount of fuel tanks I'm gonna need for a budget and then I decide on how that is going to be distributed during the build phase.


I'm keeping the Kolibri on stage 3 because with the given parameters it is superior to a Valiant
Nyet Tovarish. Valiant is superior to Kolibri.
Screenshot_2020-07-02-00-21-27.png

You just have to be canny with your building. Remember, you can increase by 2.5t multiples using whole tanks so 32.5t is absolutely achievable. And makes that stage alone a ton lighter for the loss of 3m/s Dv.


my stage 2 / stage 1 fractional separation is optimized to the nearest tenth of a percent between 10.0% and 90.0
What if I told you I can get 3041m/s (instead of 3026) on those 2 stages, using whole tanks for 340t (rather than 345t), whilst still staying above a TWR of 1.2 and changing nothing else above it...?


Does anybody think they can complete the mission in less than 500T
Depends on the use of Ions and other little tricks really. Chemical engines, not a chance. Ions as they are at the moment, yeah, easily.
 

smol

Registered
#14
Valiant is superior to Kolibri.

...

You just have to be canny with your building. Remember, you can increase by 2.5t multiples using whole tanks so 32.5t is absolutely achievable. And makes that stage alone a ton lighter for the loss of 3m/s Dv.
THANK YOU!!! That is exactly what I was overlooking in my calculations. Using only whole non-trapezoidal tanks, I guess the acceptable tank weights are 5.0, 7.5, 10.0, ...

And sure enough, if I allow half-size tanks my program also switches stage 4 from the Kolibri to the Valiant. We seem to agree on the last two stages getting to 73.6 tons, so here is my output for the lower three stages:

Code:
Stage LEO-Venus Report:
  Bill Of Materials
    1 x (stage Venus-LVO 73.6T)
    2 x landing-leg
    1 x separator-4w
    1 x Valiant engines
    32.5 tons tanks
  total weight 109.50 tons; deltaV=853m/s (>816); thrust=40.0T; TWR(earth)=0.37 (>0.01); burn time=205s (>197)

Stage EA-LEO Report:
  Bill Of Materials
    1 x separator-8w
    1 x separator-12w
    1 x (stage LEO-Venus 109.5T)
    3 x Frontier engines
    157.5 tons tanks
  total weight 287.00 tons; deltaV=1935m/s (>1917); thrust=300.0T; TWR(earth)=1.05 (>1.00); burn time=137s (>136)

Stage Earth-EA Report:
  Bill Of Materials
    1 x separator-12w
    1 x (stage EA-LEO 287.0T)
    6 x Frontier engines
    172.5 tons tanks
  total weight 496.70 tons; deltaV=1065m/s (>1065); thrust=600.0T; TWR(earth)=1.21 (>1.20); burn time=75s (>75)
What if I told you I can get 3041m/s (instead of 3026) on those 2 stages, using whole tanks for 340t (rather than 345t), whilst still staying above a TWR of 1.2 and changing nothing else above it...?
Looks like I hit 3000m/s on the nose for the bottom two stages, shaved off a Frontier engine, and went below half a kiloton. Note that I've always assumed stage 2 can get away with TWR=1.0 because it's higher and already in motion.

If I force both stage one and stage two to be minimum TWR=1.2 (which is what I think you did), and we accept stage 3 is 109.5T, I get the following:

Code:
Stage EA-LEO Report:
  Bill Of Materials
    1 x (stage LEO-Venus 109.5T)
    1 x separator-8w
    1 x separator-12w
    3 x Frontier engines
    120.0 tons tanks
  total weight 249.50 tons; deltaV=1612m/s (>1590); thrust=300.0T; TWR(earth)=1.20 (>1.20); burn time=104s (>103)

Stage Earth-EA Report:
  Bill Of Materials
    1 x (stage EA-LEO 249.5T)
    1 x separator-12w
    7 x Frontier engines
    222.5 tons tanks
  total weight 515.20 tons; deltaV=1399m/s (>1388); thrust=700.0T; TWR(earth)=1.36 (>1.20); burn time=83s (>82)
If you indeed held both lower stages to a minimum of TWR=1.2 and found a total weight less than 515.20T, I would be absolutely delighted if you could show me where you made the slice and how you powered each half. I'm here to learn!
 

Altaïr

Space Stig, Master of gravity
Staff member
Head Moderator
Team Kolibri
Modder
TEAM HAWK
Atlas
Deja Vu
Under Pressure
Forum Legend
#15
The same happens with the next stages. Quick point though, I absolutely agree with you that the 1:2:4 ratio isn't the most efficient despite being widely touted, including by me in The Basics, as the way to go. I recommend it not because it's the best, but because it allows a huge margin for error for beginners. I've also found the same conclusion as you based upon splitting the Dv at a certain ratio works better and the results are usually of equal sized or a slightly larger second stages.
Yeah, doubling the mass of each stage is quite an usual recommendation, but I made some ugly maths calculations to find what should be the ideal ratio, and what should be considered an acceptable ratio.

I did this in theory: you have a payload, what's the most efficient fuel tank size to propell it? I neglected the engine mass at first (+ separators...). The reasonning is the following: with a small fuel tank, the overall ship is still light, but you don't get too much delta-V. When you add fuel, you add mass, but you add less and less delta-V, because of the logarithmic behaviour of the rocket equation. So my idea is to evaluate the efficiency as the delta-V per mass unit, and to maximize it. That's an interesting indicator to maximize, because each stage is the payload of the previous one, and it should have as much delta-V as possible while still being the lightest possible.

And the optimal fuel tank size is: when m_fueltank = 1.516 * m_payload, which corresponds to 2144 m/s with a Valiant, 2222 m/s with a Frontier (Isp influences the result independently of the mass ratio).

That's the best value, but because you can't exactly hit that value, what should be considered an acceptable range of values then? Here is a summary:
  • For the best efficiency (defined as 100%), the ratio between fuel tank and payload has to be 1.516. Delta-V is 2144 m/s (Valiant), or 2222 m/s (Frontier)
  • For an efficiency of 90% and above, that ratio has to be between 0.760 and 3.053. Delta-V goes from 1350 to 3063 m/s (Valiant), or from 1398 to 3172 m/s (Frontier)
  • For an efficiency of 80% and above, that ratio has to be between 0.552 and 4.245. Delta-V goes from 1058 to 3577 m/s (Valiant), or from 1096 to 3705 m/s (Frontier)
Note that the mass ratios themselves are not exact, because I neglected the engine mass (+ separators and other stuff), but that gives a good idea. To make the calculation exact, you can simply add that dead weight to the payload (whether you like it or not, you'll have to propell it too). The dry mass from fuel tanks is already taken into account (I made the ugly maths for you :p). Or to make things simple, just have a look at the delta-V values :)

In the end, the general advice to make each stage 2-3 times bigger than the one above is quite good, it allows to hit the 90%+ efficiency. However, for more accurate mission design, a stage should ideally provide... 1400 to 3000 m/s to be considered efficient. It's possible to go slightly higher without too much damage, but if you start hitting 3500 m/s with a single stage, you should really consider staging.
Here is an example:
Screenshot_20200702-215604_Spaceflight Simulator.jpg
The design on the left has 3459 m/s. The one on the right is compound of 2 stages that can provide 3416 m/s overall, so practically the same while being lighter by 4.1 tons. And this, despite the mass of an additional separator and a kolibri engine (which is not a negligible mass for such a light payload)!
 

Altaïr

Space Stig, Master of gravity
Staff member
Head Moderator
Team Kolibri
Modder
TEAM HAWK
Atlas
Deja Vu
Under Pressure
Forum Legend
#16
Does anybody think they can complete the mission in less than 500T? I made some more optimizations and I'm at 479.2T now, and I managed to get the stage 5 bug into LVO with completely full tanks this time!
Depends on the use of Ions and other little tricks really. Chemical engines, not a chance. Ions as they are at the moment, yeah, easily.
This sounded like a challenge to me... Less than 500 tons without ion engines sounded hard indeed...
So instead I did it in less than 400 tons :p
Screenshot_20200705-130548_Spaceflight Simulator.jpg

Yeah, I know my TWR is really high, but ideally I would have needed engines that were inbetween small and big engines. At least the boosters are short, so my TWR won't go crazy in practice.

Here is the detailed mission:
Screenshot_20200705-131405_Spaceflight Simulator.jpg Screenshot_20200705-131614_Spaceflight Simulator.jpg
My main stage runs out of fuel shortly before reaching orbit. That was intentional, to let that stage reenter, I never leave debris in space.

The main ship achieves satellization, and makes some reassembly:
Screenshot_20200705-131718_Spaceflight Simulator.jpg Screenshot_20200705-132923_Spaceflight Simulator.jpg
The main ship will go to Venus, the small one is a refueler that will go to Mars.

Transfer to Venus, satellization handled mainly by aerobraking, and landing on Venus while the main ship remains in Venus orbit:
Screenshot_20200705-133609_Spaceflight Simulator.jpg Screenshot_20200705-140708_Spaceflight Simulator.jpg Screenshot_20200705-141016_Spaceflight Simulator.jpg

Then lift-off from Venus to join the ship in orbit. It has some fuel left to allow my small ship to perform the transfer to Mars:
Screenshot_20200705-141108_Spaceflight Simulator.jpg Screenshot_20200705-141230_Spaceflight Simulator.jpg Screenshot_20200705-141250_Spaceflight Simulator.jpg Screenshot_20200705-141902_Spaceflight Simulator.jpg
Originally, I planned to refuel the ship at 75% of its capacity, but I could refill it completely while letting a few drops in the main ship to deorbit it.

Then the transfer to Mars (the refueler is still on its way and is visible there):
Screenshot_20200705-142924_Spaceflight Simulator.jpg

Both ships meet in orbit, I can refuel and land on Mars:
Screenshot_20200705-145119_Spaceflight Simulator.jpg Screenshot_20200705-150148_Spaceflight Simulator.jpg

Finally, I go back to orbit to refuel once again:
Screenshot_20200705-150326_Spaceflight Simulator.jpg Screenshot_20200705-150947_Spaceflight Simulator.jpg

I can totally refuel the ship, which was unexpected. I initially planned to refuel it partially, with just enough fuel to go back to Earth, but I could save more fuel than expected. I had a good margin.

The refueler is deorbited, and finally:
Screenshot_20200705-151420_Spaceflight Simulator.jpg Screenshot_20200705-152234_Spaceflight Simulator.jpg
Home sweet home :cool:
 

smol

Registered
#17
This sounded like a challenge to me... Less than 500 tons without ion engines sounded hard indeed...
So instead I did it in less than 400 tons :p
And this is why I post here instead of Reddit or Discord.

Congratulations on an awesome build that taught me new ways of planning a mission.
 

Altaïr

Space Stig, Master of gravity
Staff member
Head Moderator
Team Kolibri
Modder
TEAM HAWK
Atlas
Deja Vu
Under Pressure
Forum Legend
#19
And this is why I post here instead of Reddit or Discord.

Congratulations on an awesome build that taught me new ways of planning a mission.
And this is why Altair is Space Stig.
Thanks guys! :cool:

In a more general way, that's how I do my most ambitious missions: I send refuelers everywhere they are needed. That avoids having to carry more fuel than necessary.
For example, on Mars you can leave in orbit the fuel you will need for the return to Earth. Otherwise you'll have to lift-off that extra-weight from Mars, so you need a bigger stage and so on...
Same logic for the refueler: instead of sending to Venus the fuel I'll need for Mars... I send it directly to Mars. :)