Immersive Vehicles (Formerly Transport Simulator)

Immersive Vehicles (Formerly Transport Simulator)

4M Downloads

Propeller pitch calculations seem to be wrong for "jet" engines.

fsendventd opened this issue ยท 3 comments

commented

I've been working on a single-engine turboprop (the turboprop part might be what's causing the issue, more on that later) and it just won't go fast enough. I can only get it up to about 34 m/s, when in reality it should be able to exceed 50. Tested most of it with a prop pitch of 250 and diameter of 105, though reducing the pitch to 220 seemed to actually increase the performance (it only went to about 30 m/s at 250, whereas the 34 I mentioned earlier was on 220). Weighs 2700 kg, wingspan of 16.3, area of 26.5. What I think the problem might be lies in the pitch calculations. When I bring the engine up to full throttle, the pitch increases to max regardless of what the engine RPM is (I tested this by putting the pitch to 500, which obviously overloaded even a 10.0 FC "testing mode" engine and brought the RPM down significantly, but it didn't reduce pitch to compensate), which puts strain on the engine and causes a blade stall.

What may be causing this issue is that the engine's max RPM is 43,000, to allow for a max safe RPM of 39,000, which is what the PT6's is. Then it's geared down by a 0.436 reduction gear so that the prop only spins at about 1700 RPM, also like a PT6. Is this because the getSafeRPMFromMax code is hardcoded into the prop pitch adjustment code, and it's attempting to use the "piston" safe RPM (which I think would be somewhere in the 28,000-32,000 range, if not lower) and continuing to increase the pitch so that the engine doesn't "overspeed" since it's over 30,000ish, instead of looking at the engine and seeing that MTS thinks it's a jet (because the max RPM is over 15,000), and as such using the 91% max safe figure that engines over 15,000 max RPM use? When I put the pitch to 500, I know the RPM didn't drop below 37,000, which would still be too high for a piston engine at the max possible I'm using.

Or am I just doing something really wrong?

commented

Looks like I hard-code the propeller to try to manage pitch at 80%-85% maxRPM rather than managing it at max safe. That would indeed cause an issue on your high-revving engine.

if(definition.propeller.isDynamicPitch && !(vehicle instanceof EntityVehicleG_Blimp)){
if(vehicle.reverseThrust && currentPitch > -MIN_DYNAMIC_PITCH){
--currentPitch;
}else if(!vehicle.reverseThrust && currentPitch < MIN_DYNAMIC_PITCH){
++currentPitch;
}else if(connectedEngine.RPM < connectedEngine.definition.engine.maxRPM*0.80 && currentPitch > MIN_DYNAMIC_PITCH){
--currentPitch;
}else if(connectedEngine.RPM > connectedEngine.definition.engine.maxRPM*0.85 && currentPitch < definition.propeller.pitch){
++currentPitch;
}
}

commented

Looks like a simple enough fix. I take it it'll probably be in the next version, whenever that comes out?

commented

I'mma close this, since I fixed it.