Skip to content
View in the app

A better way to browse. Learn more.

The AVSIM Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

New to helicopters

Featured Replies

2 hours ago, Murmur said:

Sounds like a classic PID controller could be perfect for the task (or maybe even a simpler PD controller), maybe it can be easily coded in your plugin.

thats the current source of the misbehavior in the default imho. 

the governor (especially in the R22) is never really active, the correlator does all the hard work.

Governor only kicks in when the rotor rpm is heading to far out of bounds adding a little or taking a little away (and if you grip the handle too hard you override it completely - I made that mistake once on landing after a very long flight, resulting in the low rpm horn and a fairly panicked "your command, my command" transfer of controls to my instructor)

Edited by mSparks

AutoATC Developer

  • Replies 56
  • Views 7.4k
  • Created
  • Last Reply
20 hours ago, Matchstick said:

Of the other XP12 friendly freeware helos the Bel Oh-58 Kiowa Warrior

Tried that one as well. Equally FPS costly. And it's a bit of a turnoff that it's purely military. Not really blaming the developer though. The Kiowa uses SASL to render its custom displays, which has great performance issues with large scripts in XP12.

If you know a payware helo for XP12 and does not use SASL, only xlua, feel free to recommend it. Maybe I'll consider it during the next sale.

 

12 hours ago, mSparks said:

yes, there are lots of "spot on" little but important details in X-Plane helicopters (now), that is one of them.

So I had another stab at it.

https://github.com/mSparks43/R22_governor/releases/tag/v1

My conclusion is that default is far to aggressive in attempting to maintain rotor rpm, there should be a lot more "slack" in the rotor rpm range and the governor should move the throttle much more graciously. I went back to the maintenance manuals:

They got this much right, but then the rate they run throttle changes with the governor on is basically "lock rotor rpm at 53 rads/sec", I watched it spin the throttle from 50% to 100% in a fraction of a second at times - that's the "bump".

I instead wrapped it in a dual speed governor that very gently changes the throttle if it goes outside 52.6 - 53.4 and more aggressively if it goes outside 52 - 54 and the prop speed is still going in the wrong direction.

Now to do exactly the same for VSLs R44.

The script makes the throttle behavior quite weird. If I am at 100% throttle, engine and rotor RPM are way out of bounds.

Maybe a true P(I)D controller as per @Murmur's suggestion would be better, although tuning it can be an awful and lengthy process.

Edited by Bjoern

7950X3D + 7900 XT + 64 GB + Linux | 4800H + RTX2060 + 32 GB + Linux
My add-ons from my FS9/FSX days

1 hour ago, Bjoern said:

. If I am at 100% throttle, engine and rotor RPM are way out of bounds.

Yes, it should do that (to an extent). The governor is a small electric motor that turns the throttle housing on a fairly loose clutch.

https://robinsonheli.com/wp-content/uploads/2023/03/r22_poh_full_book.pdf

OVERSPEEDS DURING LIFTOFF
Helicopters have been severely damaged by RPM overspeeds during liftoff.
The overspeeds caused a tail rotor drive shaft vibration which led to
immediate failure of shaft and tailcone. Throughout the normal RPM range,
tail rotor shaft vibration is controlled by damper bearing. However, damper
is not effective above 120% RPM.
Mechanical correlation can cause overspeed during liftoff if RPM is increased
to normal flight settings and collective raised before governor is switched on.
Overspeeds can also occur if throttle is gripped too firmly during liftoff
causing governor to be overridden. Inexperienced pilots, who are most likely
to be nervous or distracted, are particularly susceptible to this type of
overspeed.
To avoid overspeeds during liftoff:
1. Always confirm governor on before increasing RPM above 80%.
2. Verify governor stabilizes engine RPM near top of green arc.
3. Maintain relaxed grip on throttle allowing governor to control RPM.

and

CAUTION
When operating at high density altitudes,
governor response rate may be too slow to
prevent overspeed during gusts, pull-ups, or
when lowering collective.

 

Edited by mSparks

AutoATC Developer

re: Helicopter controllers

Any suggestions for a joystick and modifications to handle a helicopter reasonably well?

Jim Morgan

@mSparks

Here is a true PID controller governor. With it, I do not get any extreme RPM fluctuations anymore and no undesired kick at takeoff. But the R22 flies rather weird. Guess the P,I and D gains need more tuning.

--[[

PID Governor for the default XP12 R22 and any other piston powered helicopter

By BK and msparks

Licensed under the EUPL 1.2

]]
--[[

SETTINGS

]]
local Debug = 1                 -- Print debug output to developer console or terminal and Log.txt
local Axis_Index = 4            -- The index of the hardware axis for throttle input
local Eng_RPM_Target = 2630     -- Target RPM for the engine
local K_p = 0.000005             -- Proportional term gain --> Controls reaction to error
local K_i = 0.0000125           -- Integrative term gain --> Controls prediction of error
local K_d = 0.00000075           -- Derivative term gain --> Dampening of overshoots
local Time = 0.25               -- Look ahead time for intergral and derivative terms
--[[

VARIABLES, DO NOT TOUCH

]]
local Eng_RPM_Error = {} -- Delta between target and current engine RPM
local P_out,I_out,D_out=0,0,0 -- PID control term outputs
--[[

DATAREFS

]]
simDR_Engine_RPM = find_dataref("sim/cockpit2/engine/indicators/engine_speed_rpm")
simDR_Governor = find_dataref("sim/cockpit2/engine/actuators/governor_on")
simDR_Joystick_Axis = find_dataref("sim/joystick/joy_mapped_axis_value")
simDR_Num_Engines = find_dataref("sim/aircraft/engine/acf_num_engines")
simDR_Throttle_Override = find_dataref("sim/operation/override/override_throttles")
simDR_Throttle_Use = find_dataref("sim/flightmodel/engine/ENGN_thro_use")
--[[

FUNCTIONS

]]
function R22_Governor()
    for i=0,(simDR_Num_Engines-1) do -- Do for all engines
        if simDR_Governor[i] == 1 then -- Only do if governor is on
            Eng_RPM_Error[i] = Eng_RPM_Target - simDR_Engine_RPM[i] -- Error
            P_out = K_p * Eng_RPM_Error[i]         -- Proportional term, current error
            I_out = K_i * Eng_RPM_Error[i] * Time  -- Integral term, future error
            D_out = K_d * Eng_RPM_Error[i] / Time  -- Derivative term, change rate of error
            simDR_Throttle_Use[i] = simDR_Throttle_Use[i] + (P_out + I_out + D_out) -- Output
            if simDR_Throttle_Use[i] > simDR_Joystick_Axis[Axis_Index] then simDR_Throttle_Use[i] = simDR_Joystick_Axis[Axis_Index] end -- Clamp output to axis input
        end
    end
end
function Console_Output()
    for i=0,(simDR_Num_Engines-1) do -- Do for all engines
        if simDR_Governor[i] == 1 then -- Only do if governor is on
            print("Axis: "..string.format("%05.3f",simDR_Joystick_Axis[Axis_Index])..", RPM Error: "..string.format("%+010.4f",Eng_RPM_Error[i])..", P: "..string.format("%+09.6f",P_out)..", I: "..string.format("%+09.6f",I_out)..", D: "..string.format("%+09.6f",D_out)..", Out: "..string.format("%+09.6f",P_out+I_out+D_out)..", Throttle: "..string.format("%+.4f",simDR_Throttle_Use[i]))
        end
    end
end
--[[

X-PLANE RUNTIME

]]
-- Runs at flight start
function flight_start()
    simDR_Throttle_Override = 1 -- Overrides the default throttle
end
-- Runs every frame before physics
function before_physics()
    R22_Governor()
end
-- Timers
if Debug == 1 then run_at_interval(Console_Output,1) end -- Debug output timer

 

2 hours ago, jcjimmy said:

re: Helicopter controllers

Any suggestions for a joystick and modifications to handle a helicopter reasonably well?

Depends on how much you wish to spend. My Thrustmaster T.16000M isn't the best option for prolonged heli flying due to its stiff center spring, unless you appreciate the muscular training effect. I think the more expensive systems like X52 and Warthog allow removal or softening of their springs to make fine control easier. For the latter, and other sticks like Virpil, there are also extensions to increase the lever arm. Or you can go overboard and outright buy a dedicated helicopter input system from MaxFlightStick.

Edited by Bjoern

7950X3D + 7900 XT + 64 GB + Linux | 4800H + RTX2060 + 32 GB + Linux
My add-ons from my FS9/FSX days

37 minutes ago, Bjoern said:

@mSparks

Here is a true PID controller governor. With it, I do not get any extreme RPM fluctuations anymore and no undesired kick at takeoff.

 

But that is also not how the Robi governor works.

The governor drives a 1.5Amp motor that rotates the throttle a tiny bit if rpm is less than 102.5% or more than 105.5% (104+/-1.5%, or 102% to 104% depending on who you believe) (R22, R44 is slightly different). not timed it exactly, but it turns the housing at roughly 0.5 revolutions per second. afaik there is no speed control of its rate, its all or nothing.

Nearly all the throttle input is done by the throttle correlator

That varies the throttle by 70% of its range from collective down to collective up

Verify throttle correlation. Set MAP to 22 inches and turn governor off. Without
twisting throttle, lower collective to 12 inches MAP then raise it to 22.5 inches
MAP. RPM must stay in green arc.

That second video suggests maybe it should just be the fast one always....

Edited by mSparks

AutoATC Developer

Hi Bjoern,

Thanks for your reply regarding joysticks for helicopters. I am using a Thrustmaster 1600 and the spring tension is too high for comfortable flight. None of my other joysticks have a means of reducing the spring tension either - except, perhaps, by disassembly. I hope some some manufacturer will make an adjustable spring tension for more realistic forces. Helicopters are tricky enough............

Jim Morgan

23 hours ago, Bjoern said:

Tried that one as well. Equally FPS costly. And it's a bit of a turnoff that it's purely military. Not really blaming the developer though. The Kiowa uses SASL to render its custom displays, which has great performance issues with large scripts in XP12.

If you know a payware helo for XP12 and does not use SASL, only xlua, feel free to recommend it. Maybe I'll consider it during the next sale.

I've had a look through the XP12 friendly helos I have installed and they seem to break down into 3 camps

Ones based around plug-ins that have a SASL label:

Nimbus UH-1s
Freeware Bell 429
Cowan Airbus H125/Eurocopter AS350 B3e
Cowan Bell 206B3 Jetranger
Cowan Bell 206L3 Longranger
Cowan Bell 222B
Cowan Bell 222UT
Cowan McDonnell Douglas MD500
Freeware OH-58 Kiowa Warrior
Virtavia Westland Sea King
Virtavia Westland Commando

Ones based around plug-in that don't have a SASL label:

X-Trident Bell 412
X-Trident Boeing Ch-47D Chinook
Rotorsim Eurocopter EC135

Ones that aren't showing a core plug-in

X-Rotors Agusta Westland AW109 Power Elite
HSF Eurocopter EC130 B4
JRX MBB Bo 105 DBS-4
JRX Aérospatiale SA S341B & SA 342J Gazelle
Philip & Khamsin Aérospatiale SA 315B Lama
VSKYLABS Cicare-8
VSKYLABS Dynali H3
VSKYLABS Guimbal Cabri G2
VSKYLABS Robinson R44
VSKYLABS Robinson R66
VSKYLABS Revolution Mini-500
 

Of that last group I like the JRX  MBB Bo 105 DBS-4 and especially Philip & Khamsin Aérospatiale SA 315B Lama very much and the new HSF Eurocopter EC130 B4 is also shaping up to be something extremely good as well

Edited by Matchstick

On 9/14/2023 at 11:40 PM, mSparks said:

But that is also not how the Robi governor works.

...

Oh. Well, at least my approach is universal.

Does the governor ever apply 100% throttle?

 

13 hours ago, jcjimmy said:

Hi Bjoern,

Thanks for your reply regarding joysticks for helicopters. I am using a Thrustmaster 1600 and the spring tension is too high for comfortable flight. None of my other joysticks have a means of reducing the spring tension either - except, perhaps, by disassembly. I hope some some manufacturer will make an adjustable spring tension for more realistic forces. Helicopters are tricky enough............

If you google "T.16000M spring mod", you will get various results and instructions from people who modded theirs. I'm not too keen to try them myself, but if you're good at tinkering, definitely take a look.

The Thrustmaster T.Flight sticks, on the market for over a decade now, still appear to have an easily adjustable spring and are quite cheap.

 

5 hours ago, Matchstick said:

Ones that aren't showing a core plug-in

X-Rotors Agusta Westland AW109 Power Elite
HSF Eurocopter EC130 B4
JRX MBB Bo 105 DBS-4
JRX Aérospatiale SA S341B & SA 342J Gazelle
Philip & Khamsin Aérospatiale SA 315B Lama
VSKYLABS Cicare-8
VSKYLABS Dynali H3
VSKYLABS Guimbal Cabri G2
VSKYLABS Robinson R44
VSKYLABS Robinson R66
VSKYLABS Revolution Mini-500
 

Of that last group I like the JRX  MBB Bo 105 DBS-4 and especially Philip & Khamsin Aérospatiale SA 315B Lama very much and the new HSF Eurocopter EC130 B4 is also shaping up to be something extremely good as well

VSL, P&K, JRX and HSF all use Xlua, so exactly what I want. X-Rotors appears to use something else (Gizmo?) because they only support Windows and Mac (Xlua always comes with a Linux binary).

Thanks for the comprehensive overview. I think I'll keep an eye on some of these during the upcoming sales.

Edited by Bjoern

7950X3D + 7900 XT + 64 GB + Linux | 4800H + RTX2060 + 32 GB + Linux
My add-ons from my FS9/FSX days

26 minutes ago, Bjoern said:

Does the governor ever apply 100% throttle?

maximum take off weight, hot, humid, high altitude is going to be very close to full throttle (there is probably some margin for pushing it that bit extra at risk of damaging the engine).

I guess that will also be why there is the warning it might overspeed at high altitude, because if you transition from a climb needing nearly full throttle to descent needing almost idle, the time it takes to throttle down is going to tend to be fairly significantly slower than required.

The mechanical governor in the robis is different from the electronic governors that manage it all by the fuel injection/engine management system (like we did recently in the 744), those can react instantly and with a lot more granularity. 

26 minutes ago, Bjoern said:

The Thrustmaster T.Flight sticks, on the market for over a decade now, still appear to have an easily adjustable spring and are quite cheap.

I 3D printed mine, been through a couple of iterations now. hoping the next version is a keeper, it just needs minor changes, and hopefully getting force feedback on the throttle robust (it did work but its broken).

Edited by mSparks

AutoATC Developer

  • 2 weeks later...
On 9/13/2023 at 12:52 AM, Bjoern said:

Cockpit complexity principally isn't an issue, but at the moment, I'm more focused on a quick startup sequence, good outside visbility and little other potential distractions in terms of systems to completely focus on flying.

I've looked at some freeware and payware helos already, but nothing really struck my fancy yet for various reasons (price, visuals, FPS). Maybe during the next sale. And I'm open to payware recommendations as long as they're not using SASL and have minimum FPS impact.

The freeware EC-145 was kind of perfect in XP11 for me, but sadly has not been updated to XP12.

Based on all the above, you might really enjoy the Khamsin/Ubben SA 315B Llama.

My absolute favorite X-Plane helo - period end of story (I have most of them and THIS is the one that gets the majority of my time).

I haven't done any FPS comparos, but it runs fine on my relatively modest rig (years old). I even have room to turn up the Sim Rate (recommended for helos, esp).

IIRC, it's one of the only helo addons to have scored a Perfect 10 over at HeliSimmer.com (review by an IRL pro pilot). The review is for v11, and the v12 update addressed the exceedingly few niggles they noted: https://www.helisimmer.com/reviews/philip-ubben-khamsin-studios-sa-315-lama-x-plane

Well, the problem with the Lama is the subject matter itself. 😅

But I'll keep a look out for it during the next big sale.

 

In the meantime, I'm making progress with the R66. While I still have a bit of trouble judging the correct speed, rate of descent and collective setting for a landing without subsequent correction to touch down at the intended point, I did narrow laps around and hovering exercises near an airport fuel tank (learning by risk of pain) and everything worked pretty well, even without head tracking. Gotta admit that the (unrealistic) rotor trim that VSKYLABS implemented in the Robinson helps a lot with controllability.

7950X3D + 7900 XT + 64 GB + Linux | 4800H + RTX2060 + 32 GB + Linux
My add-ons from my FS9/FSX days

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.