Special Aircraft Service

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: Variable pitch prop question  (Read 417 times)

0 Members and 1 Guest are viewing this topic.

Ol Willy

  • member
  • Offline Offline
  • Posts: 78
Variable pitch prop question
« on: March 12, 2024, 08:03:54 PM »

I find it curious that Il-2 engine supports variable pitch props but the feature is barely utilized as the majority of both stock and modded aircraft have constant speed props.

To try one is enough to pick any of the stock 109s and disable auto prop control. Voila, you have a bona fide variable pitch prop.

Now, 109s of series B-2, all Cs, all Ds, E-1s and E-3s had only variable pitch prop. Germans started installing auto units on 109s sometime in 1940 with E-4 series.

I've decided to fix this for early models present in 109 pack and thus, set PropAnglerType 6 - which is denoted as manual pitch control.

In effect, on the start the pitch goes full coarse and refuses to accept any changes.

My second thought was to fix PropAnglerMinParam. As far as I understand, it means the lowest RPM at which prop pitch changes. So I set it to 0 to allow pitch adjustment at idle or before start-up

In effect, at 100% pitch the prop goes full fine, at any setting below it, be it 95% or 0% it goes full coarse within the setting given by PropPhiMin and PropPhiMax.

Thus, what I am doing wrong or PropAnglerType 6 is set to represent old two pitch only props?
Is it possible to have variable pitch from the get go without setting PropAnglerType 7 and then disabling auto in the game?
Logged

Frankiek

  • SAS Team
  • member
  • Offline Offline
  • Posts: 2318
Re: Variable pitch prop question
« Reply #1 on: March 12, 2024, 08:32:30 PM »

It ain't easy to deal with the variable pitch parameters as you need to modify fmd emd and classes. In addition of the prblems mentioned above I also add engine overheating and stopping to function immediately at startup when declaring that pitch was fixed.
Logged

Ol Willy

  • member
  • Offline Offline
  • Posts: 78
Re: Variable pitch prop question
« Reply #2 on: March 12, 2024, 09:08:22 PM »

It ain't easy to deal with the variable pitch parameters as you need to modify fmd emd and classes.
Access to EMD and FMD files is not a problem. Also I am not modifying the prop data itself as with propanglertype 7 with auto disabled in the game everything works just as it should.

In addition of the prblems mentioned above I also add engine overheating and stopping to function immediately at startup when declaring that pitch was fixed.
This is overspinning. If you give full throttle with prop at full fine you can easily exceed max RPM and kill the engine

Watching the RPM is very important when operating aircraft with a variable pitch prop
Logged

Frankiek

  • SAS Team
  • member
  • Offline Offline
  • Posts: 2318
Re: Variable pitch prop question
« Reply #3 on: March 12, 2024, 10:52:00 PM »

No is not over spinning is purely and simply engine overheating and stop working as plane spawn it is a problem linked to game internal calculations and the complex relationship between fmd emd parameters and base classes used for the flight model calculations
Logged

Ol Willy

  • member
  • Offline Offline
  • Posts: 78
Re: Variable pitch prop question
« Reply #4 on: March 13, 2024, 03:12:27 AM »

No is not over spinning is purely and simply engine overheating and stop working as plane spawn it is a problem linked to game internal calculations and the complex relationship between fmd emd parameters and base classes used for the flight model calculations
Well, I didn't encounter it then. As I said, I've tried propanglertype 6 and it just allowed me to switch between full coarse and full fine like in some older props from 1920s
Logged

Ol Willy

  • member
  • Offline Offline
  • Posts: 78
Re: Variable pitch prop question
« Reply #5 on: March 14, 2024, 10:20:46 PM »

Did some more testing with E-1

  PropAnglerType 6 - to enable manual change
  PropAnglerSpeed 0.102143
  PropAnglerMinParam 0.0 - to enable adjustment before take off
  PropAnglerMaxParam 2368.0
  PropAnglerAfterburnerParam 2426.0
  PropPhiMin 23.0 - fine pitch approximately 90% in standard game measurement
  PropPhiMax 42.0 - coarse pitch approximately 50% in standard game measurement

Yep, it works like an old two pitch propeller. 100% gives fine while 95% and below gives coarse. I can take off on fine and then switch to coarse for cruise. The settings are arbitrary just for testing and have no relation to real E-1 pitch settings

I-16 Type 18 had this type of propeller though
Logged

Ol Willy

  • member
  • Offline Offline
  • Posts: 78
Re: Variable pitch prop question
« Reply #6 on: March 16, 2024, 10:51:03 AM »

I think I managed to make it work.

I was looking at motor.java for a while in the evening and after several cigs (which are very helpful as I don't really understand java) it became clearer.

PropAnglerMin/MaxParam is RPM for constant speed props but phi for variable pitch props as it is the parameter you can regulate. So I had to repeat PropPhi values and everything should work.

I did that and what Frankiek described has happened. Instant overheat, engine death and fire.

Which is not unexpected as I was warned, but then, when I tried quasi two-pitch props everything worked fine.

After playing around with various values I found out that not touching PropAnglerAfterburnerParam prevents the engine death. I have no idea really what this parameter means.

Thus, for the relevant .emd file it looks like

  PropAnglerType 6
  PropAnglerSpeed 0.102143
  PropAnglerMinParam 17.0
  PropAnglerMaxParam 73.0
  PropAnglerAfterburnerParam 2468.0
  PropPhiMin 17.0
  PropPhiMax 73.0
  PropAoA0 11.0

No changes to .fmd

And thus E-1 has a proper variable pitch prop.

I wouldn't be writing it over here like this but I used the search function extensively and found no info on this aspect on the forum
Logged

Knochenlutscher

  • Flying Ass Clown #10
  • Modder
  • member
  • Offline Offline
  • Posts: 4476
  • aka Segfej
Re: Variable pitch prop question
« Reply #7 on: March 16, 2024, 01:21:52 PM »

This entry is from ancient (closed) Dispersalfield Website. R.I.P.
it resides at FM Forum

Hope it helps, it's all greek to me

Code: [Select]
RLLAMASL wrote:
hi

I found this (complete descripction of fmd and emd files) and think it could be useful for people here ;)

Original link
http://dispersalfield.ru/main/index.php ... opic=595.0

Just copy &paste for clarity

BTW this may help - the detailed explainations of the EMD file structure that I have gathered from modders all over the web - I include also in this post the emd file of the Gnome&Rhgone Jupiter engine, so we can see that all the entries are now decrypted and explained:


[Generic]
//Entries in this section will apply to all engine subtypes mentioned in the emd unless otherwise specified in the subtype section;
On the first column you will have default parameters

Type Inline
//Type of engine: Inline; Radial; Jet; Rocket; Rocketboost; Tow; PVRD; Unidentified;

Autonomous 1
//Capacity of the engine to start autonomously in air:
0=disabled 1=enabled;
In most of the engines is set to 1 - not sure that this function always works as intended
In fact, autonomous 0 mean that plane can't restart his engine in air, but not sure that this function always works.
The autonomous 1 is also required for seaplanes to restart their engines on water. If you don't have it, they may start the first time (or sometimes may not) but they will NOT restart if you then shut them down. Making the 0 into 1 will ensure that they will restart.

Cylinders 12
//number of active cylinders in a piston engine
//Strangely enough also turbo-jet engines have cylinders in Il2!

Carburetor 0
//Type of carburetor:
Inline Suction=0 Carburetor=1 Injector=2 Float carburetor=3

Direction Right
//Propeller rotation direction: Right; Left;

TowFactor 1.0
//??? Unexplained yet, but in nearly all the emd it is set to 1.0.

PropMass 30.0
//Weight of propeller in Kgs

EngineI 1.0
//??? Unexplained yet

EngineAcceleration 1.0
//This determines how fast engine will increase RPM's when throttle is opened

Extinguishers 0
//1 = you have them,0 = you don't have them

CompressorType 0
// None = 0; Manualstep = 1; Wm_komandgerat = 2; Turbo = 3;

CompressorSteps 0
// Number of compressor stages. Normally 1; 2; 3;

CompressorPAt0 0.3
//Suspected explaination: Starting pressure of the compresseur in atmosphere

AfterburnerType 0
//Type of WEP System:
0 Generic
1 MW-50
2 GM.1
3 Afterburner Chamber (Firechamber)
4 Intercooler Water Injection
5 NO2 Injection System
6 C3/Fuel Feed @ Carburetor System (Fuel injection)
7 Fuel _ILA5
8 Fuel _ILA5Auto
9 WaterMethanol
10 P-51
11 Spit

MixerType 2
0 Generic
1 Rolls-Royce Automatic (Brit_FullAuto)
2 NII Carburetor @ Manifold Pressure Limits (limited_Pressure)


MixerAltitude 4500
// Upper limit of good performance of the mixer

cThrottle 1
// Activates throttle control: 0; 1;

cAfterburner 0
//Activates WEP control: 0; 1;

cProp 1
// Activates Variable Pitch control: 0; 1;

cMix 1
// Activates Mixer control: 0; 1;

cMagneto 0
// Activates Magnetos control: 0; 1;

cCompressor 0
//Activates Compressor stages control: 0; 1;

cFeather 0
//Activates Propeller Feathering: 0; 1;

cRadiator 1
//Activates Radiator flaps opening: 0; 1;

TESPEED 0.01
//Speed of mean temperature increase.
It is the increment use for temp increase.
If you raise this number (0.012 for example) temp increase faster.

TWATERMAXRPM 75
//Minimum (critical)water temp for max RPM in Celsius

TOILINMAXRPM 70
//Minimum (critical)Oil temp for max RPM in Celsius

TOILOUTMAXRPM 107
//Water temp out of the engine when Max RPM applied

MAXRPMTIME 240
//Max time you can run the engine at max RPM without overheating; time in seconds
It is also the time allowed for the engine to sustain overheating after this time, you will sustain engines damages and engine will die if you persist. So, when you overheat, you have to reduce temp to stop overheating before this time is spent. After this time, you will sustain engines damages.

MINRPMTIME 999
//This is underheat.Max time you can run the engine at max RPM when temperatures are under minimum allowed...
This seems to be a remain of Oleg’s original damage code: 999 = infinite time

TWATERMAX 115
// Max (critical)water temp

TWATERMIN 60
//Minimum (critical) water temperature to rev up the engine

TOILMAX 132
// Max (critical) oil temperature

TOILMIN 40
// Minimum (critical)Oil temperature to rev up engine

SoundName Fiat_Radial_A_74
//Name of the sound (prs) file

PropName middle
//Name of the propeller type file

StartStopName std_e
//Name of the start/stop prs file

[A30RAbis]
//Entries in this section are engine sub-type specific and will override the entries in the [Generic] section,

HorsePowers 600
//Horse power taken into consideration as a starting point before other factors are applied;
//It can end up in being much more or much less after il-2 engine calculations;
//Please note that what matters is the HP delivered to the propeller

BoostFactor 1.0
//Factor increasing power availability with 1 Power stays at 100%;
// This value is set at 1.1 in most of the engines (110% power available),but you can put any number you want
//Different from WEP (AfterBurner)

WEPBoostFactor 1.16
//Seems to be the multiplier for power when applying WEB,
//WEP with 110% throttle means 1.1*1.16*base HP

TowFactor 1.0
// ?? Still unexplained

Thrust 0
// for jet engines.Amount of thrust delivered by the engine (in Kgs).
//If this is used,HP is set to 0

RPMMin 200
// RPM when engine is idle (it may end up in being different as Il-2 will consider also the other parameters)

RPMNom 2000
//Nominal RPM values used in the base calcutations for the engine (it may end up in being very different as Il-2 engine will consider also the other parameters)
// A Smaller value here than that defined in RPMMax gives the engine more torque and power at the lower RPM needed in take-off with fixed pitch prop.

RPMMax 2600
//Max RPM that can be reached considering boost it is also subject to further calculations in Il2
// Optimal engine RPM with best power..

RPMMaxAllowed 2800
// Max (Critical) RPM allowed;
//If you pass this mark, the engine will progressively be damaged and ultimately die.
//Above this RPM, the engine starts to get overrevving damage, between this and RPMMax the engine just overheats quicker with higher RPM

Reductor 1.0
//Reduction gear ratio for prop
// engine RPM * reductor = prop RPM.
//This also this serves as prop efficiency coeficient.
//Engine HP * reductor = HP at the prop
// Some one must explain the following remark have found somewhere:
This si just used for rotation. So, you can have more HP at the propeller with something like 0.80 or 0.90. For example, the engine can have 1000 hp and the propeller 1100 hp with a little prop and reductor like 0.8 or other. Don't confuse rotation speed and efficiency that is only a side effect.

PropDiameter 3
// Diameter of propeller in meter

PropAnglerType 0
// Type of pitch control:
0 Fixed Prop
1 Retain RPM (1) Constant Speed
2 Retain RPM (2) Constant Speed
3 Retain AOA (1) Constant Speed
4 Retain AOA (2) Constant Speed
5 Friction to Throttle (E_prop_Friction)
6 Manual (Prop_Manualdriven)
7 Messerschmitt Komandgerat (Prop_WM_Komandgerat)
8 Focke Wulfe Komandgerat (Prop_FW_Komandgerat)

PropAnglerSpeed 0.08
// Speed of automatic prop angle adjustments
//Speed of changing the propeller blades angle in seconds
//Larger value means faster adjustments here, with 0.20 the Skyraider has an almost constant RPM, but with 0.04 it is easy to overrev the engine by opening throttle in fast dive

PropAnglerMinParam 1200.0
// miniumal rpm at which auto prop pitch starts to respond.
//It is miminum pitch below 1200rpm

PropAnglerMaxParam 2600.0
// maximal rpm at which auto prop pitch reaches max pitch angle
//The RPM of engine that a constant speed propellor tries to maintain at 100% prop pitch

PropAnglerAfterburnerParam 2900.0
//The RPM of engine that a constant speed propellor tries to maintain at 100% prop pitch when WEP is used

PropPhiMin 20.25
// min angle of prop blades in degrees
//Minimum angle of prop blades, larger value causes RPM drop at slow airspeed

PropPhiMax 20.25
// max angle of prop blades in degrees
//Maximum angle of prop blades, smaller value causes overrevving at high speed dives

PropAoA0 11.0
//Propeller Angle of Attack

CompressorPMax 1.18
//MAX gauge manifold pressure in ATA when WEP is used
// max pressure that compressor can deliver (ATA).
// This value is used when an afterburner is used

Voptimal 300.0
//Optimal Cruise speed (used by AI).
//It is the speed at which the propeller has the best efficiency
//It is really usefull to tweak acceleration capability of a plane.
//Lowest speed for good propellor efficiency, 0.0 gives best possible take-off acceleration


VmaxAllowed -
//speed at which Gear and Doors blow off.
//Then you're happy to survive with a belly landing after crossing the VmaxAllowed. //You usually lose control surfaces and even wings if you try to fly faster than VmaxAllowed.

CompressorAltitude0 2600.0
//Full throttle height.
//Max altitude at which compressor can deliver its max pressure.
//Theoretical most of the time - this parameter is further elaborated by Il2 engine and must be tested in game.
//FTH in meters for first supercharger gear without ram-air

CompressorMultiplier0 1.012
// compressor eficiency.
// A small multiplier will give a small speed difference between sea level and full throttle height.
// Increasing the multiplier increases that difference.
//multiplier for power at FTH compared to power at SL with first supercharger gear, higher value improves performance at all altitudes above SL

CompressorAltitude1 4400.0
//FTH in meters for second supercharger gear without ram-air

CompressorMultiplier1 0.755
//multiplier for power with second supercharger gear, smaller value reduces performance with second supercharger gear

CompressorRPMPMax 2600.0
//Engine rotations at which max compression is reached
//engine RPM that gives those FTHs, if engine runs with higher RPM when WEP is used, then the FTHs with WEP will be higher


CompressorMaxATARPM 1.18
// Manifold pressure at max rotation in Atmosphere
//MAX gauge manifold pressure in ATA at and below FTH without WEP

CompressorSpeedManifold 0.77
//Strength of ram-air effect
// Larger value will give more manifold pressure in high speed above FTH thanks to ram-air effect and thus make the altitude of top speed higher compared to FTH and the drop in climb performance above that. Thus larger value here increases the altitude difference between top speed and drop in climb performance abuve FTH.

CompressorRPM0 400
//Engine rotation at wich compressor start to work

CompressorATA0 0.65
// Manifold Pressure at minimum RPM in Atmosphere

CompressorRPM1 2400
// Setting that helps to finetune manifold pressure at different RPM
// It can be more than one

CompressorATA1 1.146
// Manifold Pressure at RPM1

DisP0x 2400
// Better rpm for propeller efficiency.

DisP0y 0
// The DisPLy are used to calculate compressor curves but the rules are still unexplained

DisP1x 0
// The DisPLy are used to calculate compressor curves but the rules are still unexplained

DisP1y 50
// The DisPLy are used to calculate compressor curves but the rules are still unexplained



FMD file data

[Mass] //Masses in kg
Empty //Empty weight of the aircraft
TakeOff //Take-off weight
It is the mass on takeoff used as reference to determine the envelope of flight. It should be known that this mass is probably different from the one you can have on a mission, because the latter is related not only to the empty weight, but also to the fuel mass, the mass of oil, weight of the pilots, weight of the armaments and carried ammunition, etc…
Oil //Oil capacity (in Kgs)
Fuel //Fuel capacity (in Kgs)
Nitro //WEP-fuel capacity (in Kgs)

[Controls] //Usually 1 when that is controllable, 0 if not
CUndercarriage 1 //0 for fixed landing gear

[Squares] //Surface areas of different plane parts in m2

It is important to enter here historically exact data, as the Il2 engine bases its calculation upon these basic data. The remaining entries in the FMD file (together with the engine parameters entered in the EMD file) will enable to refine the basic performances,

It is not recommended to tweak these entries in order to “change speed” or such. Obviously, modifying wing area results in modifying the lift of the aircraft. An increase or decrease wing area will result in more or less lift, and a plane flying respectively 'slower' or 'faster'. However increasing to much the wing area will result in a plane gliding over the ground and being unable to land.

Wing (in square meters) //Wing area of the aircraft
Wing area = (Wing_In area + Wing_Mid area + Wing_Out area) x 2
Aileron //aileron area
Flap // flap area
Stabilizer //stabilizer area
Elevator //elevator area
Keel //keel area
Rudder //rudder area
Wing_In //wing_in area
Wing_Mid //wing_mid area
Wing_Out //wing_out area

all these subsurfaces areas are best calculated/approximated on the 3ds model or the plans

FuselageCxS 0.0 //Additional drag for plane, nonzero for example in IL-2 perhaps to simulate radiator drag
AirbrakeCxS 0.0 //Drag created by airbrake

[Toughness] //Damage toughness of different parts
Numbers here are possibly not damage levels but rather part numbers (left and right keel of the tail, for example). Note that part size also affects the probability of hits. Vator means elevator like in mesh names.

[Arm] //Distances in meters from the center of plane for various parts, i.e. the moment arms of forces
Best measured on the 3D model or on the plans

Aileron //how far ailerons are from centerline
Flap //how far flaps are from centerline
Stabilizer //how far vertical stabilizer (stab) of tail is from plane center
Keel //how far horizontal stabilizer (keel) of tail is from plane center
Elevator //how far elevators are from plane center
Rudder //how far rudder is from plane center
Wing_In //how far inner wing is from centerline
Wing_Mid //how far midwing is from centerline
Wing_Out //how far outer wing is from centerline
GCenter 0.05 //This parameter possibly moves the aerodynamic center (action point of total aerodynamic force) relative to the center of gravity (should thus affect pitch)
– this need to be checked
GC_AOA_Shift 0.45 //possibly controls how much aerodynamic center moves forwards when angle of attack increases
– this need to be checked
GC_Flaps_Shift 0.15 //possibly controls how aerodynamic center moves when flaps are lowered, i.e. pitch change caused by flaps
– this need to be checked
GC_Gear_Shift -0.15 //possibly this controls how aerodynamic center moves when gear is lowered, i.e. pitch change caused by landing gear
– this need to be checked

[Engine] //emd file names and sections for each engine

[Params]
The various coefficients have a suffiix H_0 or H_1 and L_0 or L_1.
H indicates horizontal normal flight,
L indicates inverted flight
_0 means “without flaps (flaps closed)”
_1 means “flaps fully extended”

Pn min (hp) //Minimum Power required

V Pn min //Speed corresponding to Pn min

P_max //Maximal power delivered by the propellor

Vz or Vz_climb (m/s) //Maximum clim rate (in m/s)

V climb (km/h) //Maximum climb speed (in Km/h)

T_turn or T turn (s) //Mimimum time needed for a 360o turn

V_turn or V T turn (km/h) //Speed corresponding to T turn

R turn (m) //Mimimum Turn Radius

V R turn (km/h) //Speed corresponding to R Turn

Vmax (km/h) //max horizontal speed at Sea Level
//It is the maximum speed which the plane can reach, at altitude 0, by using the emergency power. This speed corresponds necessarily to a defined engine output (hp), therefore a traction on the propeller shaft (in Newton) which is calculated by the Il2 engine on the basis parameters related to the engine.

VmaxFLAPS (km/h) //Maximum speed at altitude 0 with flaps fully extended
//above this speed flaps will get jammed if kept extended beyond combat setting.

VmaxAllowed (km/h) //max dive speed. Above this speed wings and control surfaces will begin to be randomly lost

VmaxH (km/h) //max speed at altitude, however, actual speed is a result of complex FM calculations

HofVmax (m) //altitude of max speed, however, this is really defined by engine parameters

Vmin (km/h) //stall speed

VminFLAPS (km/h) //Minimum possible speed with extended flaps.
Under this speed, stall will occur.

CruiseSpeed //speed at which the plane is perfectly trimmed with neutral trim (“cruise speed”)

K_Max //It is the maximum Cy/Cx ratio.
This value is used by the Il2 engine as a control limit parameter – enabling to check that the value the ratio Cy/Cx remains in the range 0.6K_Max to 1.3K-Max.

V K_max //Speed corresponding to Kmax

AOACritH_0 //Maximum incidence angle corresponding to stall without flaps
(lift coefficient at that AoA is CyCritH_0)

AOACritH_1 //Maximum incidence angle corresponding to stall with flaps fully extended

AOA_land //Maximum incidence angle of stall at landing.
This value is hardcoded in Il2 and fixed at 12°

AOACritL_0 //Maximum angle of stall, without flaps, in inverted flight
This value is hardcoded in Il2 and fixed at -16°
(lift coefficient at that AoA is CyCritL_0)

FlapsAngSh //See AOACritL_1

AOACritL_1 //As AOACritH_0, but in inverted flight with flaps extended.
Calculation of this coefficient is based upon AOACritL_0 (hardcoded in Il2, with a fixed value of -16°) and upon FlapsAngSh.
The calculation uses a simple formula
AOACritL_1 = AOACritL_0 – FlapsAngSh

CriticalAOA //angle of attack for highest lift

[Polares]

Cy
//Coefficient of lift
The lift coefficient Cy is a straight line of slope lineCyCoeff and intercept coordonate Cy0_0 at x=0, and connects with two parabolas of coefficients parabCyCoeffH (positive incidence) and parabCyCoeffL (negative incidence = inverted flight)
Cy = Cy0_0 + lineCyCoeff*AoA

lineCyCoeff //slope of the Cy lift coefficient line
Cy = Cy0_0 + lineCyCoeff*AoA

CyCritH_0 //Coefficient of maximum lift Cy for altitude 0, in horizontal flight flat and without flaps. With this value (corresponding to stall), the incidence is maximum and speed is equal to Vmin.

CyCritH_1 //As CyCritH_0 but with flaps fully extended
Calculation of this parameter is based upon Cy0_1, AOACritH_1 et lineCyCoeff.

CyCritL_1 //As CyCritL_0, but with flaps fully extended.
Calculation culminates with a choice between two possible values (when the smaller value is chosen). Depending upon this chosen value, AOACritL_1 may be taken into account for further calculations by the Il2 engine. If AOACritL_1 is not taken into consideration, Il2 engine uses a default value of 0,7.

CriticalCy //biggest possible lift coefficient
- This needs to be checked

Cyo_max 0.15
//possibly the lift coefficient for zero angle of attack with landing flaps
- This needs to be checked

Cx //Coefficient of drag
The coefficient of drag Cx is schematized by a parabola of coefficient parabCxCoeff_0 positioned by two values Cy0_0 and AoAMinCx_Shift.
This parabola is replaced by a linear function (straight line or part of a sinusoid) beyond two critical values: AOAparabH and AOAparabL (symmetrical when compared to the top of the AOAMinCx parabola).
It should be noted that these two values (AOAparabH and AOAparabL) are hardcoded in Il2 and equal to +6 and -6° , for all aircraft.

Cx = CxMin_0 + parabCxCoeff_0*(AoA - AoA0 - AOAMinCx_Shift)2,
where AoA0 is AoA with Cy = 0, thus AoA0 = -Cy0_0/lineCyCoeff.

CxMin_0 //It is the minimum coefficient of drag Cx (without flaps) and corresponds to the top point of the parabola related to the ParabCxCoeff_0 coefficient.
This coefficient is calculated on the basis of P_Vmax, Vmax, Wing, ParabCxCoeff_0, AOAMinCx_Shift and also depends upon the position of the lift curve Cy.
//minimum profile drag coefficient for wings

CxMin_1 //As CxMin_0 but with flaps fully extended.
Its calcualtion is similar to the calculation of CxMin_0 but is based upon parameters for configuration with flaps extended (_1).
//affects flap drag

AOAMinCx_Shift //This parameter is used to position the coefficient of drag. In practice, it enables to set up the minimum coefficient of drag Cx by comparaison to the null value of the coefficient of lift Cy.
You can get more drag at high AoA with smaller AOAMinCx_Shift or with larger parabCxCoeff_0, but those also cause significantly more energy loss in turns.
The difference between those two parameters is that larger parabCxCoeff_0 makes also inverted flight slower, but smaller AOAMinCx_Shift makes inverted flight faster.
AOAMinCx_Shift and parabCxCoeff_0 seem to be useful parameters for adjusting turn performance and ceiling.
AOAMinCx_Shift possibly moves the increase of drag to higher AoA and parabCxCoeff_0 increases induced drag making the drag increase with AoA steeper.
Changing AOAMinCx_Shift from 0.8 to 0.0 causes a bit slower speed, climb and especially turn at all altitudes, and changing it to 2.0 improves turn performance and high-altitude speed significantly indicating less drag in high AoA situations.
A larger AOAMinCx_Shift causes less drag in normal flight and more drag in inverted flight.

ParabCxCoeff_0 //It is the coefficient of the parabola being used by Il2 to simulate the curve of the coefficient of drag Cx (without flaps).
An Higher parabCxCoeff_0 causes more drag in high AoA situations like tight turns and flying just below ceiling, thus ceiling is lowered a bit and turn time increases significantly, but SL speed stays almost the same.
Changing parabCxCoeff_0 doesn't affect performance with landing flaps, but for flaps there is parabCxCoeff_1.
parabCxCoeff_0 and parabCxCoeff_1 have direct influence on energy bleed in turns (loss of speed).
A larger parabCxCoeff means stronger drag increase when AoA increases to get more lift for turning. So, higher parabCxCoeff simply means more energy loss in turns and also worse high altitude performance because high AoA is needed to get enough lift in thin air at high altitude.
parabCxCoeff_0 and parabCxCoeff_1 have direct influence on energy bleed in turns (loss of speed).

Cy0_0 //First critical value of the Cx parabola
//the lift coefficient for AOA0 (zero angle of attack)
(AOA0 = -Cy0_0/lineCyCoeff.)
Cx = CxMin_0 + parabCxCoeff_0*(AoA - AoA0 - AOAMinCx_Shift)2,
where AoA0 is AoA with Cy = 0, thus AoA0 = -Cy0_0/lineCyCoeff.

Cy0_1 //As Cy0_0 but with flaps fully extended
Calculation of this parameter is based upon TakeOff, Wing, VminFlaps, lineCyCoeff et AOA_Land (this last parameter is hardcoded in Il2 and has a fixed value of 12°, no matter what aircraft is considered)

AoAMinCx_Shift //Second critical value of the Cx parabola

FlapsMult //It is a multiplication coefficient used for the calculation of the coefficient of the parabola used by Il2 to simulate the curve of the coefficient of drag Cx (without flaps).

ParabCxCoeff_1 //As ParabCxCoeff_0, but with flaps extended
Calculation of this coefficient is simple:
ParabCxCoeff_0 = ParabCxCoeff_0 x FlapsMult

CxCurvature 00.70
//possibly a coefficient for induced drag (if is that, then it should affect energy bleed in turns). A possible suitable equation may be
Cx = CxStraightness +( CxCurvature * Cy2) + wing profile drag as determined by the [Polares] parameters

CxStraightness 00.05
//possibly drag coefficient for drag caused by other parts than wings

CriticalAOAFlap 21.00
//angle of attack for highest lift with landing flaps

CriticalCyFlap 01.80
//biggest possible lift coefficient with landing flaps

SpinTailAlpha 17.00
//some parameter for spin, maybe affects difficulty of spin recovery

SpinCxLoss 0.10
// possibly drag loss for outer wing in spin, if that then it should adjust horizontal radius of spinning
– this need to be checked

SpinCyLoss 0.04
//possibly lift loss for inner wing in spin, it that then it should adjust how much inner wing drops in spin
– this need to be checked

parabAngle //parabAngle defines for how many degrees in AoA that quick drop of lift after AOACritH continues
// The parameters parabAngle, Decline and maxDistAng affect the deepness of stall.

Decline //Decline defines how quickly lift drops after AOACritH
// The parameters parabAngle, Decline and maxDistAng affect the deepness of stall.

maxDistAng //maxDistAng affects what happens for AoA larger than AOACritH
// The parameters parabAngle, Decline and maxDistAng affect the deepness of stall.

In lift coefficient function there is linear part for AoA close to 0 with slope lineCyCoeff and y-intersect Cy0.
Then for larger AoA that linear behaviour becomes non-linear so that maximum lift coefficient CyCritH is reached at AOACritH.
For more negative AoA in inverted flight that linear behaviour also becomes non-linear so that maximum lift coefficient CyCritL is reached at AOACritL.

Drag coefficient function is a parabola between AOACritL and AOACritH with a minimum drag coefficient CxMin at AoA = [zero lift AoA] + AOAMinCx_Shift.

Thus, larger AOAMinCx_Shift causes less drag in normal flight and more drag in inverted flight.

The curvature of drag coefficient parabola is parabCxCoeff, thus larger parabCxCoeff means stronger drag increase when AoA increases to get more lift for turning. So, higher parabCxCoeff simply means more energy loss in turns and also worse high altitude performance because high AoA is needed to get enough lift in thin air at high altitude. For AoA beyond critical values drag coefficient increases linearly and quickly with hardcoded slope.

Then there are still unknown parameters parabAngle, Decline and maxDistAng.
All those three unknown parameters affect the deepness of stall.

With AoA higher than AOACritH there seems to be three parabola parts that form continuous curve. First of those parabolas starts from point defined by AOACritH and CyCritH, continues up to AoA = AOACritH + parabAngle and has curvature defined by Decline. Last of those parts seems to be hardcoded and is used for AoA from maxDistAng to 90 degrees. The middle part is then fitted to the ends of those two other parts and is used for AoA from AOACritH + parabAngle to maxDistAng.

Thus, Decline defines how quickly lift drops after AOACritH, parabAngle defines for how many degrees in AoA that quick drop continues and maxDistAng affects what happens for AoA larger than that.

draw_graphs 0
// – this needs to be checked
Logged
Wiseman : "Did you speak the exact words?" Ash : "Look, maybe I didn't say every single little tiny syllable, no. But basically I said them, yeah."

Baball

  • member
  • Offline Offline
  • Posts: 39
Re: Variable pitch prop question
« Reply #8 on: March 17, 2024, 09:39:32 AM »

Regarding the functioning of variable pitch props within IL-2, the only stock plane with true 2-pitch prop behaviour is the SM-79 for which the pitch goes in coarse position below its 50% setting. I really wish this behaviour wasn't tied to the airplane's class file besides not having to spam prop control keys to gradually change between fine and coarse settings.
From checking motor.class and my flight tests, only prop PropPhiMin and PropPhiMax are taken in account when PropAnglerType 6 is selected which means PropAnglerMinParam and PropAnglerMaxParam are not active in that particular case. The only thing changing "PropAnglerMinParam" would do is messing the manifold pressure neddle's course when moving the throttle.

Logged

Ol Willy

  • member
  • Offline Offline
  • Posts: 78
Re: Variable pitch prop question
« Reply #9 on: March 17, 2024, 12:57:30 PM »

Regarding the functioning of variable pitch props within IL-2, the only stock plane with true 2-pitch prop behaviour is the SM-79 for which the pitch goes in coarse position below its 50% setting. I really wish this behaviour wasn't tied to the airplane's class file besides not having to spam prop control keys to gradually change between fine and coarse settings.
I've explained how to achieve this before. Like this

  PropAnglerType 6
  PropAnglerSpeed 0.102143
  PropAnglerMinParam 0.0
  PropAnglerMaxParam 2500.0
  PropAnglerAfterburnerParam 2600.0
  PropPhiMin 23.0
  PropPhiMax 42.0

At 100% pitch will go full fine. At 95% and any setting below it will go full coarse. This happens because at 100% game's engine tries to do 2500 degree prop phi but gets stopped by PropPhiMin. When you set it to 95%, game's engine tries to go down but gets stopped by PropPhiMax

Not a particularly elegant method, but it works

From checking motor.class and my flight tests, only prop PropPhiMin and PropPhiMax are taken in account when PropAnglerType 6 is selected which means PropAnglerMinParam and PropAnglerMaxParam are not active in that particular case. The only thing changing "PropAnglerMinParam" would do is messing the manifold pressure neddle's course when moving the throttle.
Hmm, I don't think so as you can see from the example above, these two parameters are indeed considered by the game with PropAnglerType 6. Moreso, PropAnglerAfterburnerParam can ruin the entire emd.

I haven't tried ignoring them because it works fine

Besdes, what this code means then?

            if(propAngleDeviceType == 6 || propAngleDeviceType == 5)
                propAngleDeviceMinParam = (float)Math.toRadians(propAngleDeviceMinParam);

            if(propAngleDeviceType == 1 || propAngleDeviceType == 2 || propAngleDeviceType == 7 || propAngleDeviceType == 8 || propAngleDeviceType == 9)
                propAngleDeviceMinParam = toRadianPerSecond(propAngleDeviceMinParam);

There's clearly a difference between (float)Math.toRadians and toRadianPerSecond
Logged
Pages: [1]   Go Up
 

Page created in 0.211 seconds with 26 queries.