Delta Vee with different stage exhaust velocities

BruceJohnJennerLawso

Dread Lord of the Idiots
Addon Developer
Joined
Apr 14, 2012
Messages
2,585
Reaction score
0
Points
36
Hey everyone.

So Im working on an equation that solves for maximum payload mass on a 2-stage rocket, given needed Delta-V, and mass, vexh, propellant mass, etc for each stage. Im a bit confused with whether I can solve this all in one go, since I want to keep the exhaust velocities for each stage separate.

Double checking my log rules again, I see that



Not Earth shaking, just basic rules for working with logs

But my equation looks like this



Problem is, I need to get Md2 (dry mass, second stage) out of the logarithms, in order to get payload mass. That would be easy if both stages had a common exhaust velocity, just factor out the common Vexh & apply the log rule. I cant figure out how to do this for a case where I have different Vexhs though.

Any thoughts?

:hailprobe:
 

BLANDCorporatio

New member
Joined
May 29, 2013
Messages
67
Reaction score
0
Points
0
If we start with (simplifying here ...)

a = x1*log(b) + x2*log(c)

we have

e^a = (b^x1)*(c^x2)

by basic log rules.

The real problem I see is that your equation is not enough to determine payload. It determines mass ratio(s) which is a different thing. Payload (Md2) can be as big as you want. Assuming a value for Md2, and knowing the required deltaV and exhaust velocities, allows you to work back. Even then, there's a choice of how much deltaV to put in one stage versus the other.

So what I'd do- working on this now- is do a spreadsheet for some dummy values of deltav and exhaust velocities, and one other parameter to tune how much of the final deltav needs to go in each stage. This is enough to plot the mass ratios, and given some other parameter (like payload and tankage Md1) you could get the optimal amount of propellant.

Anyway, here's what I suggest, broken down as a procedure.

Givens: deltaV, vex1, vex2, Md1, Md2. Optional, cost parameters ($/kg?) for propellants.

Variable parameter: fraction of deltaV for first stage.

Use the second half of your equation to compute propellant mass for the last stage.

Use the first half of your equation to compute propellant mass for first stage.

Compute a total propellant mass (or total propellant cost, if $/kg available).

Cheers.
 

BruceJohnJennerLawso

Dread Lord of the Idiots
Addon Developer
Joined
Apr 14, 2012
Messages
2,585
Reaction score
0
Points
36
If we start with (simplifying here ...)

a = x1*log(b) + x2*log(c)

we have

e^a = (b^x1)*(c^x2)

by basic log rules.

The real problem I see is that your equation is not enough to determine payload. It determines mass ratio(s) which is a different thing. Payload (Md2) can be as big as you want. Assuming a value for Md2, and knowing the required deltaV and exhaust velocities, allows you to work back. Even then, there's a choice of how much deltaV to put in one stage versus the other.

So what I'd do- working on this now- is do a spreadsheet for some dummy values of deltav and exhaust velocities, and one other parameter to tune how much of the final deltav needs to go in each stage. This is enough to plot the mass ratios, and given some other parameter (like payload and tankage Md1) you could get the optimal amount of propellant.

Anyway, here's what I suggest, broken down as a procedure.

Givens: deltaV, vex1, vex2, Md1, Md2. Optional, cost parameters ($/kg?) for propellants.

Variable parameter: fraction of deltaV for first stage.

Use the second half of your equation to compute propellant mass for the last stage.

Use the first half of your equation to compute propellant mass for first stage.

Compute a total propellant mass (or total propellant cost, if $/kg available).

Cheers.

Aha, I see now, Thank you

never considered prices though, rather hard to set them accurately when factoring in every single overhead associated with the launch system.

Edit: one more problem though. How do I write b^x1 in code? I know that exp(); from math.h is the equivalent of e^(whatever you pass within the brackets), but I dont know how to write that in C++ with a variable in place of e.

Edit: Never mind, found what I wanted. I really need to print off the reference stuff on Math.h
 
Last edited:

BLANDCorporatio

New member
Joined
May 29, 2013
Messages
67
Reaction score
0
Points
0
Right-o, seems I forgot to think about one important thing regarding Md1 and Md2.

Some of that is payload. Some of that is tankage, and it depends on the amount of propellant. If you have two tons of water, say you need 100kg of stuffium to hold it in. Four tons of water, and your stuffium tank (if dry) now weighs 200kg.

So basically follow the steps outlined above, but Md2 is now payload + (some fraction of)Mp2, and Md1 is (some other fraction of)Mp1.

This is complicating my spreadsheet a bit, and I can't follow it properly at this hour. I'll return tomorrow.

Meanwhile, this page may interest you: So you wanna build a rocket: Multistage. (Last sections about optimizing a multistage in particular).

It's the same procedure I described.

Cheers!
 

BruceJohnJennerLawso

Dread Lord of the Idiots
Addon Developer
Joined
Apr 14, 2012
Messages
2,585
Reaction score
0
Points
36
Right-o, seems I forgot to think about one important thing regarding Md1 and Md2.

Some of that is payload. Some of that is tankage, and it depends on the amount of propellant. If you have two tons of water, say you need 100kg of stuffium to hold it in. Four tons of water, and your stuffium tank (if dry) now weighs 200kg.

So basically follow the steps outlined above, but Md2 is now payload + (some fraction of)Mp2, and Md1 is (some other fraction of)Mp1.

This is complicating my spreadsheet a bit, and I can't follow it properly at this hour. I'll return tomorrow.

Meanwhile, this page may interest you: So you wanna build a rocket: Multistage. (Last sections about optimizing a multistage in particular).

It's the same procedure I described.

Cheers!

Actually I dont worry about tankage scales, that's up to the user (at least for now it is)

The last problem I see is that exhaust velocity exponent that gets left over. How do I remove that from the mass fractions?
 

BLANDCorporatio

New member
Joined
May 29, 2013
Messages
67
Reaction score
0
Points
0
What you actually need doing depends on what your ultimate purpose for the program is (duh :p). And, if I understand correctly, your ultimate goal is to design the two rocket stages. Specifically: given certain parameters on the engines, tanks and payloads, find the best deltav split between the two stages.

Actually I dont worry about tankage scales, that's up to the user (at least for now it is)

You kinda need to worry about that. You can leave it as a parameter, is what you mean, for an optimizing program. But when doing the stage optimization, you will need to know it.

The last problem I see is that exhaust velocity exponent that gets left over. How do I remove that from the mass fractions?

Assuming what you need is what I described above, here's what you can do.

Given: payload for second stage Mdp2, tankage scale for second stage tf2, deltaV fraction for stage 2 (1-dvf), total deltaV required dV, exhaust velocity for stage 2 vex2;

Need to find: propellant mass for stage 2:

(1-dvf)*dV = vex2*log((Mp2*(1+tf2) + Mdp2)/(Mp2*tf2 + Mdp2))

comes down to

exp( (1-dvf)*dV/vex2 )*(Mp2*tf2 + Mdp2) = Mp2*(1+tf2) + Mdp2

rearrange etc

(exp( (1-dvf)*dV/vex2 ) - 1)*Mdp2/(1 + tf2*(1 + exp( (1-dvf)*dV/vex2 ))) = Mp2

stage 1 equation will look a little worse but it's the same principle. Remember, Mp2 is now known.

Also given: dry mass stage 1 (excluding stage 2) Mdp1, tank fraction for stage 1 tf1, exhaust velocity stage 1 vex1, and everything from before, we have:

dvf*dV = vex1*log((Mp1*(1+tf1) + Mdp1 + Mp2*(1+tf2) + Mdp2)/(Mdp1 + Mp1*tf1 + Mp2*(1+tf2) + Mdp2))

so as before

exp( dvf*dV/vex1 ) = (Mp1*(1+tf1) + Mdp1 + Mp2*(1+tf2) + Mdp2)/(Mdp1 + Mp1*tf1 + Mp2*(1+tf2) + Mdp2)

exp( dvf*dV/vex1 )*(Mdp1 + Mp1*tf1 + Mp2*(1+tf2) + Mdp2) = (Mp1*(1+tf1) + Mdp1 + Mp2*(1+tf2) + Mdp2)

rearrange

(exp( dvf*dV/vex1 )*(Mdp1 + Mp2*(1+tf2) + Mdp2) - (Mdp1 + Mp2*(1+tf2) + Mdp2))/(1+tf1*(1 + exp( dvf*dV/vex1 ) )) = Mp1


It's a good idea to double check my math, but basically that's it.

Observation: I compute Mp2, then Mp1, assuming a value for dvf (the deltaV fraction for each stage). Actually, dvf is the parameter you want to tune. The easiest way to do that is, pretty much, try several values for dvf. That's why I suggest a spreadsheet. Basically, plot some propellant mass or cost function of parameter dvf, and choose the best dvf from the plot. (Another way is to derive the propellant mass or cost function by dvf, and choose the dvf value which makes the derivative 0 ... I'll leave that as an exercise to the reader).

Cheers.
 
Last edited:

RGClark

Mathematician
Joined
Jan 27, 2010
Messages
1,635
Reaction score
1
Points
36
Location
Philadelphia
Website
exoscientist.blogspot.com
Hey everyone.

So Im working on an equation that solves for maximum payload mass on a 2-stage rocket, given needed Delta-V, and mass, vexh, propellant mass, etc for each stage. Im a bit confused with whether I can solve this all in one go, since I want to keep the exhaust velocities for each stage separate.

Double checking my log rules again, I see that



Not Earth shaking, just basic rules for working with logs

But my equation looks like this



Problem is, I need to get Md2 (dry mass, second stage) out of the logarithms, in order to get payload mass. That would be easy if both stages had a common exhaust velocity, just factor out the common Vexh & apply the log rule. I cant figure out how to do this for a case where I have different Vexhs though.

Any thoughts?

You could try using Dr. John Schilling's calculator:

Launch Vehicle Performance Calculator.
http://silverbirdastronautics.com/LVperform.html

Bob Clark
 
Top