Re: [Flightgear-devel] YASim and Windmilling
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
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