here are all properties that are available currently:
- <[float64][NHLightUpFlatEnd] [0.34]>
- <[float64][NHLowIdle] [0.58]>
- <[float64][NHHighIdle] [0.60]>
- <[float64][NHRating] [1.00]>
- <[float64][NHTarget] [0.60]>
- <[float64][ThrottleMap] [ ( 0.0 0.0 ) ( 1.0 1.0 ) ]>
- <[float64][FuelFlowLowIdle] [0.01385]>
- <[float64][FuelFlowMaximum] [0.07]>
- <[float64][PFuelFlowNH] [0.4]>
- <[float64][PFuelFlowThrottle] [0.05]>
- <[float64][PFuelFlowReverse] [0.02]>
The FuelFlowLowIdle, Maximum control the fuel flow range (in kg/s) which are basically the hard limits for your low ground idle (where the engine can run without assistance and your full power (which melts your engine).
PFuelFlowNH is a constant that defines how much fuel is to be added per target NH increase, that is roughly: (fuel_max - fuel_idle) / (nh_max - nh_idle) - more means the engine will add a lot of fuel to accelerate up to target nh and less means not burning up in flames.
PFuelFlowThrottle is a feed forward control from the InputThrottle, that's like how much fuel goes in - can be tuned via throttle map
FuelFlowLightUpFlat controls how much fuel is injected for the first part of the engine start - that fuel should be enough to stabilize the flames but shouldn't flood the engine at such low speeds - NHLightUpFlatEnd is defines the NH at which the controller switches to NH governing mode. The NH start is when you manually introduce fuel but you could just use a logic_greater NH > some value to change your condition lever input.
NHTarget is the target rotation speed at the start of the simulation, needed because internally the FADEC ramps the target up and down slowly.
NHRating is the maximum takeoff power core rotation speed, which could be 1.07 or 107% or 1.04 (104% NH)
ThrottleMap is a mapping from your throttle input to a fraction between NHIdle and NHRating, for input 0.5 that mapping above returns the half way point between idle and rating. So basically nh_target = nh_idle * ( 1.0 - mapping_value ) + nh_rating * mapping_value. This is very useful because the actual thrust or power curve of the engine tends to be non-linear, this would be a way to counter that and could artificially increase the target NH early so that you have 50% thrust or power for 50% throttle input. Normally this would not be the case because the engine components get more efficient for higher power settings (towards their design power setting).
The condition lever has a cut off range from 0.0 to about 0.1 I think and above that it goes from low idle target to high idle target (which you can adjust if you need) - you can think of that as your engine start/stop switch if your helicopter has that, if not - it probably has a cut off switch, then use that.
Yes the ITT rises nearly instantly, this is realistic in a sense that the actual ITT follows very close to the fuel flow, if you burn more fuel you heat up the gases very quickly. What you have experienced in the real world is the time delay caused by the heat transfer within the ITT probe. You can't directly measure the temperatures, your probes would melt, so you use other methods with metal parts that don't melt, but those need to get hot first before you can see an ITT increase.
If you want to see your ITT increase slower you can use a first order delay:
This simulates the probe heating up and your indicated turbine temperature becomes slower.
Generally speaking this is how our engine stimulation works:
Each turbo component simulates the thermodynamic process of that part with compressor maps, turbine maps, efficiency coefficients, etc. etc. These parts together create what we call an engine. Currently the only place we can adjust is the fuel flow, but we might add stuff like reverser flaps, mach inlets, variable stator vanes, bleed air extraction, etc. And we have connections to the outside using gear boxes to the core shaft and also the power turbine shaft. Those connections are necessary for the generators and starters.
The fuel flow that we add to the combustion chamber is in kg/s and it can either be controlled fully manually if you create some form of mapping from the throttle lever or it can be fed through the simple fuel_controller, which is pretty stupid on its own, or it can be generated by the FADEC which can have more complex, fully digital control loops.
So far we have only implemented a few FADECs specifically for that particular engine (see q400) but I think when we add more FADECs for the turbofans for example, we might create a more generic FADEC which can handle a certain engine category (e.g. twin spool high bypass turbofans or an afterburning jet fighter engine or maybe even a helicopter one with rotor speed governing, etc.)
What I love about this
The problems that you will encounter with controlling the engine are actually really similar to real world problems. It helps me better understand the physics behind real world engines.