Vivian Meazza wrote:
> The attached diff models the output of a gear-driven
> supercharger

I just now got a chance to sit down and puzzle this out.  I see where
it's going: instead of ignoring the RPM contribution to boost, it adds
an extra factor that reduces the boost at lower RPMs.  It works by
normalizing the "rpm" value to the range [0:1] (expressing it as a
fraction of the engine's solution RPM) and then applies this as an
extra factor on top of the turbo-mul value from the configuration

    -0.25*rpm^3 - 0.15*rpm^2 + 1.11*rpm

Now, one mild criticism of the code here is the use of the pow()
function to compute integer powers.  Just in case you don't know the
trick, you can express that equation in a C expression as something

   rpm * (1.11 - rpm * (0.15 * rpm + 0.25))

But that's more or less irrelevant.  My real confusion is that while
this function reaches its maximum at a normalized RPM of slightly more
than 1.0 (sounds about right), it maximum value is only about 0.7 or
so.  This will have the effect of reducing turbo-mul by about 30% from
pre-existing aircraft configurations.  Is that the intent?  Or should
the function be re-scaled to equal 1.0 at maximum boost?

The other issue is that this function drops off really fast in
overspeed situations.  I'd intuitively expect some drop-off in MP at
high RPMs (compressor stall) before reaching a constant asymptote, but
this thing plunges like a rock, crossing zero (negative MP?) at about
1.8. Remember that the normalization RPM isn't always guaranteed to be
the maximum engine speed, so this regime might actually be close to
what you can do in the cockpit in a fast dive, for example.

Anyway, let me know what you want to do.  Probalby the easiest thing
to do would be to rescale the equation such that it has a value of 1.0
at an RPM of 1.0.


Flightgear-devel mailing list

Reply via email to