Piston Engine: target specific RPM and HP? (engines.cfg)

I want to configure a piston engine that provides maximum 77 HP at 2500 RPM. I do not have information on displacement, compression ratio etc …

I am playing with modifying engines.cfg.

I tried googling around, and found some formulas for RPM and HP, but playing with the engine parameters displacement, compression ratio and cylinders I am struggling to do this. I can get the RPM or the HP, but not both.

Maybe through trial and error I can get there, but I feel I’m missing some fundamental that would allow me to calculate the values I need?

I got to 77 HP, but with 4086 RPM. Using 4 cylinders, displacement 21.5 and compression ratio of 5.0.

Note, for me these parameters can be anything, even unrealistic values. But if I can go about this with reasonable realistic values, even better of course.

Note: if this is a weird question, it’s because I’m not very knowledgeable about engines.

use a constant speed prop to lock the rpm to 2500

well 77hp is less than half of the 180 hp engine of the 172.
go with less than half of the displacement there.

the engine will probably stall at idle, reduce the friction to prevent that.

i tried realistic numbers on the Austro engines, but ended up getting more than 2x the power.
you are gonna have to use scalars to bring it down

Thanks! The fundamental I was missing was the relation between the prop and the engine RPM. I assumed the engine ran at a certain RPM no matter what, but I understand now that is not the case.

With that information, I probably will be able to do what I want by adjusting the propeller.

That explains a lot!

size your propeller correctly and the angle will set itself. use that angle as a reference and increase the pitch until you get good static and moving rpm

I ended up configuring the desired properties of the engine using the engine properties and the gear ratio on the propeller. I think it roughly resembles what I wanted now.

How does the gear ratio work? I’m trying to increase engine power but without pushing the engine too hard?

[VERSION]
major = 1
minor = 0

[GENERALENGINEDATA]
engine_type = 0 ; 0=Piston, 1=Jet, 2=None, 3=Helo-Turbine, 4=Rocket, 5=Turboprop
fuel_flow_scalar = 1 ; Fuel flow scalar
min_throttle_limit = 0 ; Minimum percent throttle. Generally negative for turbine reverser
master_ignition_switch = 0
starter_type = 0 ; 0=Electric, 1=Manual, 2=Bleed Air
max_contrail_temperature = -1
Engine.0 = -5.3, 0, 3.2
ThrustAnglesPitchHeading.0 = 0, 0

[PISTON_ENGINE]
power_scalar = 1 ; Piston power scalar
cylinder_displacement = 20.6 ; Cubic inches per cylinder
compression_ratio = 11 ; Compression ratio
number_of_cylinders = 4 ; Number of cylinders
max_rated_rpm = 5800 ; Max rated RPM
max_rated_hp = 150 ; Max rated HP
min_cruise_rpm = 0
max_cruise_rpm = 5500
max_indicated_rpm = 7000
fuel_metering_type = 0 ; 0=Fuel Injected, 1=Gravity Carburetor, 2=Aerobatic Carburetor
cooling_type = 1 ; 0=Cooling type Air, 1=Cooling type Liquid
normalized_starter_torque = 0.3 ; Starter torque factor
starter_time = 1.5 ; Time the Starter stays active when pressed
turbocharged = 0 ; Is it turbocharged? 0=FALSE, 1=TRUE
max_design_mp = 38 ; Max design manifold pressure, (inHg)
min_design_mp = 1 ; Min design manifold pressure, (inHg)
critical_altitude = 10000 ; Altitude to which the turbocharger will provide max design manifold pressure (feet)
emergency_boost_type = 0 ; 0=None, 1=Water Injection, 2=Methanol/Water injection, 3=War Emergency Power
emergency_boost_mp_offset = 0 ; Additional manifold pressure supplied by emergency boost
emergency_boost_gain_offset = 0 ; Multiplier on manifold pressure due to emergency boost
fuel_air_auto_mixture = 1 ; Automixture available? 0=FALSE, 1=TRUE
auto_ignition = 0 ; Auto-Ignition available? 0=FALSE, 1=TRUE
max_rpm_mechanical_efficiency_scalar = 1 ; Scalar on maximum RPM mechanical efficiency
idle_rpm_mechanical_efficiency_scalar = 1
max_rpm_friction_scalar = 0.24 ; Scalar on maximum RPM friction
idle_rpm_friction_scalar = 0.24 ; Scalar on idle RPM friction
BestPowerSpecificFuelConsumption = 0.30 ; SFC at Best Power mixture ratio
egt_tuning_constant = 1
egt_peak_temperature = 2100 ; typical peak EGT: 1200 degF + 460
egt_tc = 0.05
cht_tuning_constant = 1
cht_cooling_constant = 0.65
cht_heating_constant = 960 ; max temp degrees Rankine
cht_tc = 0.015
oil_press_tuning_constant = 1
oil_press_max = 12500 ; max oil pressure (psf)
oil_press_tc = 0.8
oil_temp_tuning_constant = 1
oil_temp_cooling_constant = 0.21
oil_temp_heating_constant = 620 ; max oil temperature degrees Rankine
oil_temp_tc = 0.03
radiator_temp_tuning_constant = 1
radiator_temp_cooling_constant = 0.015
radiator_temp_max = 670 ; max radiator temperature degrees Rankine
radiator_temp_tc = 0.02
fuel_press_tuning_constant = 1
fuel_press_max = 2376 ; max fuel pressure (psf)
fuel_press_tc = 2
number_of_magnetos = 2
two_stroke_cycle = 0
supercharged = 1
supercharger_boost_low_end=1.0
supercharger_boost_high_end=2.6
supercharger_power_cost=0.1
radiator_cooling_constant = 0.015
radiator_heating_constant = 670
radiator_tc = 0.02
radiator_tuning_constant = 1
magneto_order_left_right_both = 0
engine_mechanical_efficiency_table = 0:0.5, 1000:0.6, 5000:0.7, 5100:0.7, 5500:0.7, 6000:0.5
engine_friction_table = -600:-65, 600:65, 1000:17, 6000:17
manifold_efficiency_table = 0:0.25, 1:0.97
rpm_to_oil_pressure_table = 0:0, 0.1:0.2, 0.3:0.7, 0.519:0.9, 0.74:1
rpm_to_fuel_pressure_table = 0:0, 1000:0.3, 2800:1, 4000:1
oil_temp_factor_from_rpm = 0:0.5, 500:0.8, 2000:1.0
diesel = 0 ; Is it diesel engine?
induction_air_temp_tc = 0.7 ; Induction Air Temp time constant
carb_heat_delta_temp = 55 ; Delta of temperature when the Carburator Heater is activated (In Rankine)
single_magneto_efficiency = 0.97 ; Efficiency ratio of the engine if it is designed for 2 magnetos but only 1 is currently active.
oil_temp_to_oil_pressure_table = 0:0, 500:-1, 700:-600 ; Pressure differential (in psf) of the oil depending on its temperature (in K).
shaft_torque_tc = 2 ; Gives the speed at which the shaft torque reaches its target value.
recip_stop_arc_degrees = 90 ; Gives the amplitude of the motion made by a reciprocating engine while it is having a spring compression behaviour after it stops producing work.
recip_stop_arc_restitution = 0.8 ; Gives the amount of torque in % restituted when reaching its max arc by a reciprocating engine while it is having a spring compression behaviour after it stops producing work.
recip_stop_arc_max_pct_rpm = 0.04 ; Gives the % max rpm at which a reciprocating engine that stopped producing work will start having a spring compression behaviour.
recip_stop_arc_friction_factor = 2 ; Factor on how much friction affects the reciprocating engine while having a spring compression behaviour.
egt_factor_from_pct_power = 0:0.5, 0.5:0.894, 0.64:0.956, 0.75:0.98, 1:1 ; Gives the EGT temperature factor (to egt_peak_temperature) from the pct of power (HP/maxHP)
egt_delta_from_mixture_ratio = 0.043:-100, 0.05:-89.7, 0.067:-50, 0.07:0, 0.075:-4.9, 0.083:-80, 0.108:-120.5 ; Gives the EGT temperature delta (to current egt value after factor is applied) from the mixture ratio

[PROPELLER]
thrust_scalar = 2 ; Propeller thrust scalar
propeller_type = 1 ; 0=Constant Speed, 1=Fixed Pitch
propeller_diameter = 6 ; Propeller Diameter, (feet)
propeller_blades = 3 ; Number of propeller blades
propeller_moi = 0.5 ; Propeller moment of inertia
use_propeller_rpm = 0;
beta_max = 43 ; Maximum blade pitch angle for constant speed prop, (degrees)
beta_min = 15 ; Minimum blade pitch angle for constant speed prop, (degrees)
min_gov_rpm = 1100 ; Miminum governed RPM
prop_tc = 0.01 ; Prop time-constant
gear_reduction_ratio = 2.43 ; Propeller gear reduction ratio
fixed_pitch_beta = 20 ; Fixed pitch angle of fixed pitch prop, (degrees)
low_speed_theory_limit = 0 ; Speed at which low speed theory becomes blended in (feet/second)
prop_sync_available = 0 ; Prop synchronization available? 0=FALSE, 1=TRUE
prop_deice_available = 0 ; Prop de-icing available? 0=FALSE, 1=TRUE
prop_feathering_available = 0 ; Prop feathering available? 0=FALSE, 1=TRUE
prop_auto_feathering_available = 0 ; Prop auto-feathering available? 0=FALSE, 1=TRUE
min_rpm_for_feather = 0 ; Minimum RPM for prop feathering
beta_feather = 0 ; Feathering pitch angle (degrees)
power_absorbed_cf = 0 ; Coefficient of friction for power absorbed by propeller
defeathering_accumulators_available = 0 ; Defeathering accumulators available? 0=FALSE, 1=TRUE
prop_reverse_available = 0 ; Prop reverse available? 0=FALSE, 1=TRUE
minimum_on_ground_beta = 0 ; Miminum pitch angle on ground, (degrees)
minimum_reverse_beta = 0 ; Minimum pitch angle in reverse, (degrees)
prop_reverse_max_vel = 2 ; Max uvel when reversing
prop_governor_p = 0 ; Propeller governor controller P
prop_governor_i = 0 ; Propeller governor controller I
prop_governor_d = 0 ; Propeller governor controller D
prop_governor_iboundary = 0 ; Propeller governor controller I Boundary
prop_governor_dboundary = 0 ; Propeller governor controller D Boundary
prop_efficiency_table = 0.000000:0.000000:0.200000:0.400000:0.600000:0.800000:1.000000:1.200000:1.400000:1.600000:1.800000:2.000000:2.200000,15.000000:0.150000:0.400000:0.710000:0.860000:0.720000:0.500000:0.340000:0.230000:0.150000:0.110000:0.080000:0.060000,20.000000:0.100000:0.300000:0.620000:0.790000:0.860000:0.800000:0.550000:0.420000:0.300000:0.190000:0.120000:0.090000,25.000000:0.080000:0.230000:0.490000:0.720000:0.820000:0.870000:0.820000:0.600000:0.410000:0.280000:0.180000:0.130000,30.000000:0.070000:0.180000:0.330000:0.500000:0.720000:0.820000:0.870000:0.850000:0.560000:0.420000:0.260000:0.190000,35.000000:0.060000:0.160000:0.260000:0.400000:0.550000:0.720000:0.820000:0.860000:0.870000:0.700000:0.400000:0.300000,40.000000:0.050000:0.120000:0.230000:0.330000:0.450000:0.570000:0.700000:0.810000:0.860000:0.870000:0.850000:0.500000
prop_power_cf = 0.000000:0.000000:0.200000:0.400000:0.600000:0.800000:1.000000:1.200000:1.400000:1.600000:1.800000:2.000000:2.200000:2.400000,15.000000:0.048000:0.043000:0.038000:0.028000:0.009000:-0.057000:-0.188000:-0.338000:-0.522000:-0.705000:-0.915000:-1.092000:-1.220000,20.000000:0.072000:0.065000:0.059000:0.050000:0.037000:0.010000:-0.074000:-0.188000:-0.338000:-0.525000:-0.726000:-0.942000:-1.120000,25.000000:0.098000:0.094000:0.088000:0.080000:0.070000:0.050000:0.020000:-0.040000:-0.134000:-0.272000:-0.468000:-0.717000:-0.933000,30.000000:0.138000:0.132000:0.128000:0.120000:0.110000:0.099000:0.078000:0.040000:-0.017000:-0.110000:-0.248000:-0.468000:-0.741000,35.000000:0.206000:0.198000:0.188000:0.178000:0.163000:0.150000:0.130000:0.105000:0.070000:0.023000:-0.074000:-0.254000:-0.510000,40.000000:0.250000:0.242000:0.233000:0.223000:0.214000:0.204000:0.190000:0.175000:0.150000:0.118000:0.072000:0.019000:-0.059000

The gear ratio will decrease the prop RPM. Its the gearing between the engine and prop.

If you want to increase power then increase the mechanical efficiency.

Sorry to hijack the thread; can anyone give a brief explanation of how these work? Trying to finetune my prop governor and engine behaviour.

To the OP - best practice is to of course get real data. Failing that get data from a similar engine, you should be able to find something. If you can get an idea of max HP and RPM limits, it shouldn’t be too difficult to reverse engineer and approximate the rest of the data. You can then finetune with scalars once you have a decent balance.

Thanks, eventually I found an engine similar in performance. The problem is I was playing around trying to make the piston engine behave like the electric engine Pipistrel E-811. I managed to get it in kind of a similar performance range now, except for idle rpm (which should be 0!)

Hello. I know this is a little old topic, but I’m struggling with my engine. When I set it to Constant speed I can get the correct MIN and MAX RPM, but when in flight the engine does not reduce the RPM. It decreases just a little. The friction you mentioned is in the propeller section or engine section. You appreciate if you can help :slight_smile: Thanks in advance

A couple of thoughts. You said you set it to constant speed and the engine won’t reduce RPM. If I understand correctly, are you adjusting your propeller pitch lever to alter RPM or the throttle?

The friction values are in the [PISTON_ENGINE] section.

When I was tuning the 307 mod, I’d put the aircraft at KSFO, which is roughly sea level, and the weather for clear skies and I set zero wind, too. The barometer also set at 29.92.

On the apron, I’d run the engines up to full power (turn off all the engine damage functions, while you’re doing this) and alter the engine_friction_table for my maximum RPM until I found a value that would limit propeller RPM to the power level specified for the engines. In my case that was 2400 RPM @ 43". The final value in the table, in my case, ended up being 2400:25.

The table will have a number of values that are defined as RPM:friction_value and I found it easiest to find the highest RPM limit at the full power setting and then work backwards towards idle making adjustments, as necessary, to achieve desired power output at various RPM ranges.

If you have a prop that can feather, you may need to go with some negative values (both negative RPM and negative friction value) to get the prop to not windmill backwards when the aircraft is moving though the air at speed.

Thanks for the fast response. I’m adjusting the pitch for get the correct RPM (I don’t know if this is correct) The fact is that I got the right parameters for the min and max rpm. But in flight when I set the throttle to idle the RPM drops just a little. For example. My max RPM is 5100, and it’s dropping to about 4600, 4700.The aircraft in real life is a fixed pitch prop. When I set it to fixed pitch in Engines.cfg the RPM drops normally in flight. But, I can not get the correct MIN and MAX RPM. I’m really lost. :slight_smile:

Do you have any value(s) at all for engine_friction_table?

The default is 0:0, which isn’t going to provide any friction at all.

For example, here is the Asobo 172 G1000 table:
engine_friction_table = -1:-10, 1:10, 100:5, 1000:30, 2700:62

I don’t want to derail you, but have you setup your propeller? Its specifications will have an impact on engine performance, too. However, if you’re using the baseline prop values, then you should have a good starting point. You’ll need your beta_max and beta_min values in order for the prop to have the ability to alter pitch and be more or less easy for the engine to spin through the air.

For example, here is the Asobo Bonanza’s values:
beta_max = 29.2 ; Maximum blade pitch angle for constant speed prop, (degrees)
beta_min = 13.3 ; Minimum blade pitch angle for constant speed prop, (degrees)

Don’t be afraid to look through the default aircraft’s engines.cfg files to see if you can borrow some data if you’re unsure what to use. You can then tune it from there.

I can’t check right now if I have something in friction_table values. I’ll check that later. About the beta min and max I think the values are correct, at least in ground the RPM are very close to the real plane. In ground everything works as desired. I don’t understand why when I have the prop type set to fixed pitch I don’t have any problem in flight ( In Idle the engine drops the RPM as expected). Do you think that the friction_table is the problem here? Even if it’s the same for both Constant Speed and fixed pitch? I’m a rookie in this world :). I’m looking at the default airplanes config files to have a North. I’m using the NXCUB parameters as example. It uses the same engine of my aircraft (Rotax 912 UL). But the RPM settings are a little bit different in the NXCUB. By the way in the NXCUB, the weird thing is that the engine RPM does not drop too much in flight too.

I forgot to mention. In Fixed Pitch, I can reduce the RPM in flight but I couldn’t set the RPM accordingly to the real thing.

I can’t say that I am an expert, by any means.

What is difficult to fully grasp is how the various variables affect one and another.

In a real-world engine, compression ratio is going to absolutely affect the rotational resistance. Turning over a low compression engine, by hand, vs. a high compression engine is something you can physically feel.

However, does compression ratio, in the sim, have any bearing whatsoever on engine rotational resistance?

I don’t know.

Since I got my start with the sim’s SDK on constant speed propeller engines, I never saw how the engine would behave with a fixed pitch prop, so I can’t give you any personal experience/advice.

I just know, that in my case, the friction values had a direct effect on the engine’s ability to spin the prop. If I reduce the friction value for 2400, then the engine will be able to spin higher than 2400, which isn’t what I want for the specified manifold pressure.

Subsequently, the same can be said for MP/RPM values that I wanted to have control over below 2400 RPM.

If you’re able to control engine RPM on the ground via the throttle, and you see the RPM values doing what you want, are you seeing similar behavior when you open the throttle fully and then increase propeller pitch? Does the RPM drop to where it is expected? If the engine is idling and you increase pitch does the engine die or nearly die?

Maybe I didn’t understand your question, but I don’t have a propeller pitch controller in my aircraft. I have just a throttle controller. But sometimes when trying to set the pitch parameters I noticed that the engine really died. ( I don’t remember if lowering or increasing the pitch) . You gave me some light in the dark. I’m gonna try modifying the tables to see if we can get it.

If you don’t have a means to adjust pitch, then you either need to add one or switch to a fixed pitch propeller. A constant speed propeller is going to need a mechanism for setting its constant speed. Traditionally, that is via a lever that adjusts the propeller’s pitch.

Unless, of course, you have coded some specialized automatic mechanism, but that doesn’t sound like it’s the case.

Check the min and max beta

Hello @NixonRedgrave. Just to let you know I found the right parameters for my engine RPM. Now I´m getting 1950 RPM in Idle and 5100 RPM at full Throttle. in Flight when I set Idle the RPM now drops as expected. Very near to real thing I Fly. I set it to Fixed Pitch and by try and error adjusted the values in the engine table like you mencioned, max_rpm_friction_scalar and idle_rpm_friction_scalar. Thank you so much for your help. Thanks to @MrTommymxr too. You Rock guys! See You :slight_smile: