-
Notifications
You must be signed in to change notification settings - Fork 462
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
FGTurbine don't start windmilling until powered up at least once #494
Comments
Taking an initial look at the code in FGTurbine, it looks like windmilling is only implemented as part of the engine shutting down, i.e. jsbsim/src/models/propulsion/FGTurbine.cpp Lines 172 to 183 in 08d2f85
That's the only reference to windmilling in FGTurbine excluding the lookup to see if windmilling is disabled. jsbsim/src/models/propulsion/FGTurbine.cpp Lines 477 to 478 in 08d2f85
|
Yes, but the variable
so FGTurbine::Off should be called even if the engine has not yet been started:jsbsim/src/models/propulsion/FGTurbine.cpp Lines 154 to 162 in 08d2f85
However phase is not initialized in the constructor so that might be the cause of the problem.
@Octal450, does the issue vanish if you initialize |
I'll try my best to test this tonight or tomorrow. A little low on time. Thanks Bertrand! |
Hi @bcoconni, no difference. Added phase = tpOff; to the constructor below disableWindmill in the latest on FlightGear next and recompiled and rebuilt. Kind Regards, |
For testing I modified <event name="Set active engine">
<description>Only make one of the engines active</description>
<condition>simulation/sim-time-sec ge 19.0</condition>
<set name="propulsion/active_engine" value="0"/>
<notify/>
</event> So first off if (disableWindmill == false) {
N1 = Seek(&N1, in.qbar/10.0, N1/2.0, N1/N1_spindown);
N2 = Seek(&N2, in.qbar/15.0, N2/2.0, N2/N2_spindown);
} However the issue is that the |
So do we add a check for N1/N2 being 0 and use something like |
Sorry I've been away from home for my medical reasons. Can you be more specific, is the value for starting the engine? I've already found the values are pretty wrong by default for that I will play with the actual values regarding the other issue (windmill value) and let you know on that when I get the chance. Kind Regards, |
The particular issue at the moment is that when if (disableWindmill == false) {
N1 = Seek(&N1, in.qbar/10.0, N1/2.0, N1/N1_spindown);
N2 = Seek(&N2, in.qbar/15.0, N2/2.0, N2/N2_spindown);
} So since N1 is 0, the acceleration value |
Just a reminder to possibly address issue #195 at the same time when we fix this issue. |
Yes sir, I am currently awaiting responses from real pilot, and possibly from a mechanic. Kind Regards, |
Alternatively we could add a shift to |
I would suggest don't shift, clamp. And maybe 0.01. 0.1 is enough to show up on most aircraft displays. Kind Regards, |
Just to be clear the addition of 0.1 that @bcoconni is suggesting is to the acceleration value as opposed to some direct N1/N2 value to be displayed. So for example if N1 was say currently 0.5 then the acceleration value previously would've been 0.25 and now it would be 0.35. |
Ah I understand, thanks. |
Yes and the constant |
I'd suggest that we add the 0.1 increment to the acceleration value, push a commit for that and close this issue, and leave #195 open until we get some data to decide on what the target value should be for N1/N2 under windmilling conditions. |
I agree. I will test this and see if I can figure it out shortly on my build FGFS. Kind Regards, |
I did do a local test earlier today with the 0.1 shift, running the 737 script with the aircraft accelerating down the runway with only 1 engine started and confirmed that the non-running engine's N1 increased and matched |
PR #509 has been pushed to the code base. |
Compiling now with the fix. |
Fixed, works perfectly, thank you gents! Kind Regards, |
FYI the fix is now available on the FlightGear |
Thank you kindly! Josh |
I'm submitting a ...
Describe the issue
The engine stays at 0% N1/N2 and does not windmill unless it is started at least one time
What is the current behavior?
To reproduce start a simulation with FGTurbine but do not start one of the engines (example, in a twinjet, start only 1 engine), then takeoff and accelerate. Notice the engine stays at 0% N1 and N2. Then if you engage the starter and then shut down to get slightly rotation, then it seeks the windmill value properly
What is the expected behavior?
Engine should always windmill when off
What is the motivation / use case for changing the behavior?
So that he will work realistic
Please tell us about your environment:
Other information
Should also point out, when you do start the engine, it spools down fast as if it was at 0 before the start attempt.
The text was updated successfully, but these errors were encountered: