New Propeller | CFD | Soft Body Simulation - Aircraft List

I’ve been tinkering with my script to pick out NPS,CFD, and SBS, and redone it several times now. I’d be concentrating on the files to check rather than the planes, and this led to some pain when trying to loop through planes, and their different files. I’ve refactored it so it now concentrates on the plane folder itself, so there is only one loop.

I’ve also tidied up the output so that it prints out a table, and tosses out missing values so as to avoid clutter. It works really well of the “Official” folder, but gets a bit messy if you include the top level folder above that. If you are like me you may have multiple backup “Community” folders that you have not sorted through, due to sim upgrades, so this led to many duplicate planes being found. Valid data, but messy, but avoidable if you store your backup “Community” folders outside the main sim folder.

In any case here is the code, with a sample of of its output below. On the back of this it looks like the DC3 now has NPS! Further edit, chopping out the guts of the loop, and turned it into a Function removing 20 lines.

cd 'D:\Flight Simulator\'

$fm_files = (Get-ChildItem -Recurse flight_model.cfg).DirectoryName

$plane_table = @([pscustomobject]@{Plane="";Model="";NPS="";CFD="";SBS=""})

Function FeatureCheck($content, $feature) {
    if ($content | select-string $feature) {
        $value = ($content | select-string $feature).ToString().Split("=")[1].Trim()
        }
    Else {
        $value = $null
    }
Return $value
}

foreach ($fm_file in $fm_files) {
    $fm_content = get-content $fm_file\flight_model.cfg
    $eng_content = Get-Content $fm_file\engines.cfg
    $plane = $fm_file.Split("\")[-4]
    $model = $fm_file.Split("\")[-1]

    $CFD = FeatureCheck $fm_content "CFD_EnableSimulation"
    $SBS = FeatureCheck $fm_content "fuselage_rigidity"
    $NPS = FeatureCheck $eng_content "prop_mod_use_modern"

    $plane_table += [pscustomobject]@{Plane=$plane;Model=$model;NPS=$NPS;CFD=$CFD;SBS=$SBS}
}

$plane_table | ft -AutoSize

Read-Host "Press Enter to quit"

Output looks like this:

Plane                                       Model                              NPS CFD SBS
-----                                       -----                              --- --- ---
                                                                                          
asobo-aircraft-208b-grand-caravan-ex        Asobo_208B_GRAND_CARAVAN_EX        1          
asobo-aircraft-a320-neo                     Asobo_A320_NEO                                
asobo-aircraft-b7478i                       Asobo_B747_8i                                 
asobo-aircraft-b787-10                      Asobo_B787_10                                 
asobo-aircraft-baron-g58                    Asobo_Baron_G58                               
asobo-aircraft-bonanza-g36                  Asobo_Bonanza_G36                             
asobo-aircraft-c152                         Asobo_C152                         1          
asobo-aircraft-c152-aerobat                 Asobo_C152_Aerobat                            
asobo-aircraft-c172sp-as1000                Asobo_C172sp_AS1000                1   1   30 
asobo-aircraft-c172sp-as1000                Asobo_C172sp_AS1000_Floaters                  
asobo-aircraft-c172sp-as1000                Asobo_C172sp_AS1000_Skis                      
asobo-aircraft-c172sp-as1000                Asobo_C172sp_AS1000_TowPlane       1   1   30 
asobo-aircraft-c172sp-as1000bak             Asobo_C172sp_AS1000                           
asobo-aircraft-c172sp-classic               Asobo_C172sp_classic                          
asobo-aircraft-c172sp-classic               Asobo_C172SP_Classic_Floats                   
asobo-aircraft-c172sp-classic               Asobo_C172SP_Classic_Skis                     
asobo-aircraft-cabri-g2                     Asobo_Cabri_G2                     1          
asobo-aircraft-cap10c                       Asobo_Cap10C                                  
asobo-aircraft-cj4                          Asobo_CJ4                              0      
asobo-aircraft-da40-ng                      Asobo_DA40_NG                                 
asobo-aircraft-da40-tdi                     Asobo_DA40_TDI                                
asobo-aircraft-da62                         Asobo_DA62                                    
asobo-aircraft-dg1001-e                     Asobo_DG1001E_Neo                      1      
asobo-aircraft-dr400                        Asobo_DR400                                   
asobo-aircraft-dv20                         Asobo_DV20                                    
asobo-aircraft-e330                         Asobo_E330                                    
asobo-aircraft-fa18e                        Asobo_FA18E                                   
asobo-aircraft-flightdesignct               Asobo_FlightDesignCT                          
asobo-aircraft-generic-airliner-quadengines Asobo_Generic_Airliner_QuadEngines            
asobo-aircraft-generic-airliner-twinengines Asobo_Generic_Airliner_TwinEngines            
asobo-aircraft-generic-piston-multiengines  Asobo_Generic_Piston_MultiEngines             
asobo-aircraft-generic-piston-singleengine  Asobo_Generic_Piston_SingleEngine             
asobo-aircraft-generic-privatejet           Asobo_Generic_PrivateJet                      
asobo-aircraft-generic-turbo-multiengines   Asobo_Generic_Turbo_MultiEngines              
asobo-aircraft-generic-turbo-singleengine   Asobo_Generic_Turbo_SingleEngine              
asobo-aircraft-icon                         Asobo_Icon                                    
asobo-aircraft-kingair350                   Asobo_KingAir350                   1          
asobo-aircraft-longitude                    Asobo_Longitude                        0   -1 
asobo-aircraft-ls8                          Asobo_LS8                              1      
asobo-aircraft-nxcub                        Asobo_NXCub                                   
asobo-aircraft-pipistrel                    Asobo_Pipistrel                               
asobo-aircraft-pitts                        Asobo_Pitts                                   
asobo-aircraft-savage-cub                   Asobo_Savage_Cub                              
asobo-aircraft-savage-shockultra            Asobo_Savage_ShockUltra                       
asobo-aircraft-savage-shockultra            Asobo_Savage_ShockUltra_Floats                
asobo-aircraft-savage-shockultra            Asobo_Savage_ShockUltra_Skis                  
asobo-aircraft-sr22                         Asobo_SR22                                    
asobo-aircraft-tbm930                       Asobo_TBM930                                  
asobo-aircraft-vl3                          Asobo_VL3                                     
asobo-aircraft-xcub                         Asobo_XCub                                    
asobo-aircraft-xcub                         Asobo_XCub_Floats                             
asobo-aircraft-xcub                         Asobo_XCub_Skis                               
AssetGroups                                 singleprop-empty                              
microsoft-aircraft-bell407                  microsoft-aircraft-bell407         1   1      
microsoft-aircraft-dc3                      douglas-dc3                        1   1   -1 
microsoft-aircraft-dhc2                     BlackbirdSims_DHC2_Floats          1          
microsoft-aircraft-dhc2                     BlackbirdSims_DHC2_Wheels          1          
microsoft-aircraft-g-21                     microsoft-aircraft-g-21            1   1      
microsoft-aircraft-hughes-h4-hercules       Microsoft_Hughes_H4_Hercules       1   0      
microsoft-aircraft-jn4                      microsoft-aircraft-jn4             1   1      
microsoft-aircraft-pilatus-pc6              Microsoft_Pilatus_PC6_G950_Floats             
microsoft-aircraft-pilatus-pc6              Microsoft_Pilatus_PC6_G950_Wheels             
microsoft-aircraft-pilatus-pc6              Microsoft_Pilatus_PC6_Gauge_Skis              
microsoft-aircraft-pilatus-pc6              Microsoft_Pilatus_PC6_Gauge_Wheels            
microsoft-aircraft-spirit-of-st-louis       Microsoft_Spirit_of_StLouis        1   0      
microsoft-aircraft-wright-flyer             Microsoft_Wright_Flyer
4 Likes

That’s awesome! Fantastic job and thanks for sharing!
Big update to the list thanks to your findings!

Douglas DC-3: NPS + CFD
BlackBird Simulations DHC-2 Beaver: NPS
Grumman G-21A Goose: NPS + CFD
Hughes H4 Hercules: NPS
JN-4 Jenny: NPS + CFD
King Air 350i: NPS
Spirit of St Louis: NPS

4 Likes

Adverse yaw will be the tricky one. There isn’t a single value that affects it, but several, and these probably aren’t the only ones.

Variable Default/Notes
wing_dihedral Dihedral angle
vtail_span Height of vertical stabiliser in ft
aileron_up_drag_coef 0.5
aileron_down_drag_coef 1
rudder_lift_coef 5

They aren’t simple 0/1 values, but combinations.

I took the Savage Grravel for example, and checked these values:

Variable Default/Notes
wing_dihedral 1
vtail_span 5
aileron_up_drag_coef 0.5
aileron_down_drag_coef 1
rudder_lift_coef 5

So the last three values are set to the defaults. Does that really mean it has adverse yaw configured? I have no idea. Maybe, and only flying it would you be able to tell rather than just looking at the numbers. That said, it could be argued that any plane where “aileron_up_drag_coef” is less than 0.5, and “aileron_down_drag_coef” is higher than 1 indicates that the plane developer has at least tried to improve how adverse yaw is simulated.

From the SDK section on Fine Tuning:

To increase the adverse yaw effect, increase the drag of the down aileron and decrease it for the up aileron.

For wing dihedral, I had a look at another plane, the 172, to see what I could find. The steam gauge 172 in the sim has a dihedral of 2°. When looking to the real world, depending on which page I looked at it was either 1° 44’ or 3° 30’ so guess Asobo went with 2° to meet things half way.

A higher wing dihedral will cause larger adverse yaw, while a higher vertical stabiliser height will help to counter this.

I’m no expert on this stuff, merely parroting back what I’m reading while rubbing my chin going “Yeah, some of this stuff is beginning to sink in!” so don’t shoot me if I’ve misunderstood anything. :slight_smile:

Long and the short of it seems to be that a more trained eye might be able to look at these numbers and go “Yeah, that will produce a lot of adverse yaw”, or “No, that’s wrong”, but certainly not me.

1 Like

Updated Community planes to re-run report:

Plane Model NPS CFD SBS
antsairplanes-tiger-moth_1.1.0 antsairplanes-tiger-moth 0
atsimulations-aircraft-piaggio_2.15 ATSIMULATIONS_AIRCRAFT_PIAGGIO
bksq-aircraft-analogcaravan_0.1.4 bksq-aircraft-analogcaravan 1
flysimware-cessna-414aw_3.4.4 flysimware_cessna_414AW
gotgravel-savage-grravel_2.1.2 Asobo_Savage_Grravel 1 1
justflight-aircraft-pa28-arrow-iii_0.10.5 JF_PA28_Arrow
justflight-aircraft-pa28-turboarrow_0.5.5 JF_PA28_TurboArrow_III
justflight-aircraft-pa28-turboarrow_0.5.5 JF_PA28_TurboArrow_IV
justflight-aircraft-pa28-warrior-ii_0.3.5 JF_PA28_Warrior_II
sws-aircraft-kodiak-wheels__20221208 SWS_Kodiak_gear 0
sws-aircraft-kodiak-wheels__20221208 SWS_Kodiak_gear_CP 0
sws-aircraft-kodiak-wheels__20221208 SWS_Kodiak_tundra 0
sws-aircraft-kodiak-wheels__20221208 SWS_Kodiak_tundra_CP 0
wbsim-aircraft-c172sp-classic_1.0.6 wbsim_C172SP_Classic 1 1 30
wbsim-aircraft-c172sp-classic_1.0.6 wbsim_C172SP_Classic_Floats 1 1 30
wbsim-aircraft-c172sp-classic_1.0.6 wbsim_C172SP_Classic_NoPants 1 1 30
2 Likes

It probably does, but there is (sadly) much more to it to call it somewhat realistic, so far only one developer @GotGravel got adverse yaw correctly compared to any other aircraft. He also worked on the 3 listed FlyingIron Aircraft.

The numbers can give an indiactaion, but it’s more a question of:

Do I have to use the rudder at all while making a turn or does the aircraft make a smooth turn without any rudder usage?

No rudder needed = 99% No realistic adverse yaw

The MSFS Gliders gonna get adverse yaw improvement in SimUpdate 12.
They are the next candidates for realistic adverse yaw, maybe we can compare what they changed afterwards. The MSFS Gliders are developed by Flightsim-Studio AG, they are besides GotGravel the only other development team trying to implement realistic adverse yaw.

In this wishlist thread I also showcase how realistic adverse yaw (3rd Party Glider) looks like compared to the current MSFS Glider:
Adverse Yaw - missing in almost every Airplane

Nobody’s gonna shoot you, you are doing god’s work in here! Thank you very much for your help! :slight_smile:

2 Likes

New thread opened for the ground handling.

@hobanagerik doing god’s work there too!

2 Likes

Speaking of Flightsim Studio, now listed for realistic adverse yaw: Tecnam P2006T MKII

According to a youtube stream showcase, but can’t tell if it has NPS, CFD, SBS (at least not listed on their website).

Is the drag coefficient a sum figure for the entire area of the aileron or is it applied to the area as a multiplier? Is it applied only in the area the aileron spans, or throughout the wingspan (I assume the former)?

I also don’t like the generic “drag” coefficient because you’re dealing with different kinds of drag, and the two prime ones (induced and parasite) are on fairly opposing curves, based on AoA of the wing (including control surfaces) and overall dynamic pressure, respectively.

I’m guessing the difference takes into account aileron design, working in elements like Frise and differential, but it’s hard to know with just a quick glance at the data.

It also doesn’t take into account the differential change in lift vectors, just the drag aspect.

Good question. The SDK merely states that this number defines drag, is multiplied by the aileron deflection angle, and “internal coefficients”, but doesn’t detail what the latter are at all. The aileron area itself is defined by “aileron_area”. in sqft.

Both the up, and down coefficients can be further modified by a scalar, “aileron_up_drag_scalar”, and “aileron_down_drag_scalar” respectively.

…but like I said, currently it doesn’t make sense to look for any numbers.
The basic microsoft implementation of adverse yaw is very limited.

Every airplane with realistic adverse yaw has some additional custom code.

If Microsoft/Asobo would provide more/better developer options
we would see much more ‘‘Realistic Adverse Yaw’’ in airplanes…

Quote from my old/ closed adverse yaw thread:

1 Like

Looking for numbers can help us understand where the gaps are. It’s not enough to just say “it doesn’t do it well.”

Additionally, I disagree with the premise that you can’t get a plane to turn smoothly in real life without the rudder. It may not be coordinated, and the roll-in will have adverse yaw to varying degrees, depending on the plane and the roll rate. But the turn itself isn’t a big issue once it’s established, and even with bad technique, the momentary adverse yaw can be barely noticeable to most.

Not true. In most of the real sailplanes I flew you need to support a coordinated turn using a small but intentional bit of rudder. Uncoordinated turn trials end premature anyhow.

1 Like

I definitely accounted for the lack of turn coordination without rudder in my statement. You’re right in that sailplanes will be affected by adverse yaw more than most planes. And if you have to hold aileron to make up for stability, adverse yaw will continue. However, in most instances, most aircraft you don’t have to use rudder in order to maintain a smooth turn (just to roll into it, which is largely depends on roll rate in many aircraft). I should have qualified. My statement was in response to this:

(Emphasis mine)

1 Like

The problem is, currently every aircraft which is not listed here, doesn’t have any adverse yaw at all at any moment of the turn, so at least at the beginning of the turn there should be some adverse yaw for every aircraft. But it’s completely missing/ ignored.

1 Like

I was trying this out in the AT-6 Texan during last night’s stream. It did exhibit some adverse yaw during roll-in. Not a ton, and definitely varied with roll rate. This is the model that came with the Reno Air Races expansion.

However, I also don’t have a lot with which to gauge that behavior against the real aircraft because I haven’t flown one irl. Just saying when doing a hard right roll without rudder, the nose definitely went up and left momentarily before settling into the turn, and when using rudder correctly, it didn’t do that.

1 Like

I wonder if there are some SimVars that could be used to demonstrate this.

Perhaps comparing heading, and track? As you roll into a turn to the right, your track will change, but briefly your heading would move the other way, to the left, before coming back, assuming no rudder input is made.

This could be graphed with a tool like LiveFlightData. Find some flat place, set Clear Skies, and disable wind entirely to test.

1 Like

You mean listed as “realistic adverse yaw”? Then this is not correct, the Asobo C172 definitely has adverse yaw. It might be less than IRL but it is there.

How do you judge, if the adverse yaw is “realistic”? Just because it is very pronounced, does not necessarily make it realistic, that depends strongly on the aircraft. For example, the FI Spitfire has very little adverse yaw (even less than the Asobo C172 G1000). If this is realistic, I have no idea - never flown an spitfire IRL of course…

Yeah the realistic has to be taken with a grain of salt, at the end it will always be debatable if it’s realistic or not. It also depends on your input controller and settings.

It’s more like does the aircraft has any adverse yaw at all. Do you have to counteract the adverse yaw at any point of the turn or does the nose follow the turn “automatically” at all times.

The Asobo 172 G1000 was the showcase model for their adverse yaw improvement a year ago.
If you guys say the rudder doesn’t have to be used the whole time while making a turn then I can list that aircraft as well.

Could someone sanity check this for me please?

I’m in the WBSim 172, on autopilot. You can see at the top the SimVars I am plotting. The red line at the bottom indicates rudder deflection, just to prove that no rudder input is being made. I am using 200ms for the update interval.

I don’t have any of my gear plugged in so I’m flying with keyboard, and mouse only.

You can see a slight difference between the heading, and the track, but they are parallel. When I instigate a heading change via AP HDG mode, you see the plane turn, then some slight overshoot as the AP brings it back to the new heading. Adverse yaw I would have thought would be displayed as those lines either separating or converging, depending on the direction of the turn.

Perhaps that information is being lost due to the scaling.

Reduced to 50ms update interval.

20 ms.

In the Kodiak 100 it’s a different story.

Repeated this test with the yaw damper on, and it didn’t look much different to me.