Re: [Flightgear-devel] YASim and Windmilling

2003-03-29 Thread Andy Ross
David Megginson wrote:
> In YASim, propellers start turning backwards instead of windmilling.
> This code in PropEngine.cpp might be the problem:
>
> // Euler-integrate the RPM.  This doesn't need the full-on
> // Runge-Kutta stuff.
> float rotacc = (engTorque-propTorque)/Math::abs(_moment);
> _omega += dt * rotacc;

Sorry, you send this to me privately and I haven't looked at it. :)

I think it's more complicated.  The propTorque value comes out of
Propeller::calc(), and by design the point of zero torque is *not* the
same as the point of zero thrust.  When the propeller is below the
windmilling speed, propTorque should come out negative and accelerate
the rotation to the appropriate value.

Propeller::calc() is a rat's nest, sadly.  I had some cool ideas about
how to get props to auto-tune to specified performance numbers (the
same goal as the solver, though the method was radically different),
and this is the result.  The math doesn't show through the code very
well.  I wrote up a LaTeX document at one point, although it was never
finished and the code implements something slightly different.  I'll
see if I can dig it up.

If someone wants to try debugging this, I'd write a wrapper that runs
the calc method over a range of airspeeds and engine speeds (omega, in
the code) and graph the results.  You should see that torque reaches
zero at some positive value of omega depending on airspeed.  Hopefully
I just flipped a sign somewhere and there isn't a big logic gaff in
there.

But I promise, I'll come back someday. :)

Andy

-- 
Andrew J. RossBeyond the OrdinaryPlausibility Productions
Sole Proprietor   Beneath the Infinite   Hillsboro, OR
  Experience... the Plausible?



___
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel


[Flightgear-devel] YASim and Windmilling

2003-03-29 Thread David Megginson
In YASim, propellers start turning backwards instead of windmilling.
This code in PropEngine.cpp might be the problem:

// Euler-integrate the RPM.  This doesn't need the full-on
// Runge-Kutta stuff.
float rotacc = (engTorque-propTorque)/Math::abs(_moment);
_omega += dt * rotacc;

If then engine is idling (or close to it), it never manages to produce
produce the torque required by the propeller, so rotacc is negative;
very quickly, _omega (the revolution velocity) ends up negative as
well.

In real life, the propeller will keep spinning in a positive direction
(a bit below the current airspeed divided by its advance ratio, I
think), and will instead impose a negative thrust on the airplane --
the plane is pushing the propeller, rather than the propeller pulling
the plane.  In a 100 kt gliding descent, the propeller may well be
spinning at 2000 rpm, but it's also adding drag (or negative thrust)
to get there.

This is a very important effect for approach: pulling the power below
a certain point (often about 1500 rpm at approach speed) in a typical
fixed-pitch C172 or Cherokee will have a significant effect on how
fast the plane comes down.  It also matters for modelling an
engine-out in a twin.


All the best,


David

-- 
David Megginson, [EMAIL PROTECTED], http://www.megginson.com/

___
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel