Jump to content

Can someone explain new 1.0.2 Engine ISP scaling?


Recommended Posts

So as background to this question:

Prior to 1.0 I realized that the ISP of a rocket engine in KSP (I'm not considering airbreathing engines in this thread) scaled linearly with atmospheric pressure. Thus if you had an engine with 200 ISP vacuum and 100 ISP at 1atm you would get 150 ISP at 0.5 atm. And I was under the impression that this is exactly how real world rockets work. Now I also like to go to Eve and I realized Squad was doing us a huge favor by making ISP not drop any lower once atmospheric pressure got higher than 1atm.

So when I heard they had changed this in 1.0 I was pretty excited for the new challenge and I figured I could just design my rockets using the linear extrapolation idea: If a rocket has 300 ISP at Vac 250 at 1atm then it must have 200 @ 2atm, 150 @3, and so on. But after some Eve tests didn't make sense I just peaked in the config file and lo and behold that's not at all how it works. Instead each engine seems to have some (arbitrary?) pressure (between 4 and 20 atm as I have seen so far) at which it goes to (almost) zero.

So my question is: Is this a real physics phenomenon that Squad has worked to model? Or is this a game-play related decision?

And then the follow-up of: Why? I'd be fascinated to know what physics would cause one engine to scale: 0: 300, 1:280, 7:0 (when a linear approach would say 7:160) and another engine to scale: 0:340, 1:170, 4:0 (here a linear approach would say 4:-340 or rather 2:0). Like for real I think rocket engine design is super interesting stuff.

And if it's a gameplay decision does anyone have insight to how a more confusing and less consistent system helps gameplay? It baffles me.

Thanks for any help you guys can provide to any or all of the questions! Yall rock!

Edited by gm537
Link to comment
Share on other sites

IRL rocket thrust varies with ambient pressure, and will indeed drop to zero if ambient pressure is high enough (that is, so high that the engine can no longer force its exhaust out the nozzle).

Forum user OhioBob has posted in previous threads about the exact (IRL) relationship between thrust and pressure and between thrust and Isp.

I'm on my phone right now, so it might take a while, but I'll try to find you some links.

EDIT: Here is the link to a post by OhioBob

Try this link (OhioBob's web site) if you really want to go down the mathematical rabbit hole.

Edited by AlexinTokyo
Link to comment
Share on other sites

You are correct, in real life Isp should scale linearly with ambient pressure. The thrust equation is

F = á¹ÂVe+(Pe-Pa)Ae

where F = thrust, á¹ = mass flow rate, Ve = exhaust velocity, Pe = pressure at nozzle exit, Pa = ambient air pressure, and Ae = area of nozzle exit.

For a bell nozzle, Ae is constant, and for a given value of á¹Â, Ve and Pe are constant. F and Pa are the only variables.

We can rearrange the thrust equation as follows,

F = (á¹ÂVe+PeAe)-(PaAe)

Thus we see that thrust varies by an amount that is directly proportional to the ambient air pressure. Since Isp is proportional to thrust,

Isp = F/(á¹Âgo)

then the change in Isp is also directly proportional to ambient pressure.

I don't know why Squad has chosen to use non-linear curves. It seem to me that it would have been easier just to do it the correct way and use a linear function. After Squad has finished making all of their tweaks and bug fixes, I'm likely to go into the engine config files and change it myself. For example, the following is the existing 'atmosphereCurve' for the LV-T30,

}
atmosphereCurve
{
key = 0 300
key = 1 280
key = 7 0.001
}

Changing it to the following would produce a correct straight line function with the thrust going to zero at 15 atmospheres.

}
atmosphereCurve
{
key = 0 300 0 -20
key = 1 280 -20 -20
key = 15 0 -20 0
}

Edited by OhioBob
Link to comment
Share on other sites

You are correct, Isp should scale linearly with ambient pressure.

For a bell nozzle, Ae is constant, and for given value of á¹Â, Ve and Pe are constant. F and Pa are the only variables.

Thus we see that thrust varies by an amount that is directly proportional to the ambient air pressure. Since Isp is proportional to thrust,

Isp = F/(á¹Âgo)

then the change in Isp is also directly proportional to ambient pressure.

I don't know why Squad has chosen to use non-linear curves. It seem to me that it would have been easier just to do it the correct way and use a linear function. After Squad has finished making all of their tweaks and bug fixes, I'm likely to go into the engine config files and change it myself. For example, the following is the existing 'atmosphereCurve' for the LV-T30,

}
atmosphereCurve
{
key = 0 300
key = 1 280
key = 7 0.001
}

Changing it to the following would produce a correct straight line function with the thrust going to zero at 15 atmospheres.

}
atmosphereCurve
{
key = 0 300 0 -20
key = 1 280 -20 -20
key = 15 0 -20 0
}

Thanks man that definitely helps! It's good to know I'm not crazy. I will probably also make the said config changes. Of course it's a bit annoying that my install is then not stock and thus there are some forum challenges I might not be able to enter, maybe at some point Squad will come back through and change things to be linear as we hoped. Regardless thanks for the answer and the math for this!

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