I want to offer a way to remove the instability of the helicopter to RATE_RLL_P. I believe that this is caused by the lead-lag of the blades coupling with the body dynamics which is a well known rotor instability for manned helicopters. Could someone send me data of a helicopter oscillating due to the RATE_RLL_P gain being too high? I would need the IMU data and RCOU data. I know the IMU data is at 50hz. Is it possible to get the RCOU data at 50hz? I will also need to know the distance from the center of the hub to the blade mounting bolt, the rotor radius and the rotor RPM.My idea to cure this problem is to put a 10hz low pass filter on the output of the p gain in the rate PID. This shouldn't affect the pilot inputs but will remove the chance of the p gain exciting this instability. This way the p gain can be set as high as needed to obtain necessary control like the multirotors. I will use the data to prove my theory and hope to engage the developers to implement the change so it can be tested.

You need to be a member of diydrones to add comments!

Join diydrones

Replies are closed for this discussion.


  • Hi Bill,

    Sorry, don't have any data for you.  But you can actually get the IMU output at 400Hz if you want.  Just need to set the logging to high rate.

    It's already possible to essentially do an LPF on the P-gain.  There's a parameter called RATE_ROLL_LPF, and this LPF's the error coming from the IMU.  So since the P-output is s simple linear equation, this should also LPF the output.  The LPF defaults to 20Hz, which is already less than half the RPM of a small copter with higher RPM (typically 3-4000) and these still suffer from instability with high P-gains.

    Honestly, I don't think lead-lag as anything to do with it.

    The problem is that the rate response is highly non-linear with swashplate angle.  The rate response has a strong time-dependent function. This is why you cannot control rate with rate P-gain.

    • Rob,

         I've currently have Copter 3.2.1 loaded and I don't see the RATE_ROLL_LPF parameter.  Now there is a RATE_RLL_FF paramter.  What is this parameter?  What does it actually do?  I have conducted a few short hovers with trying to tune the RATE_RLL_P gain.  I've gotten to 0.024 so far with no instability.  I also have the following ATC params set


      Please let me know if I'm doing something wrong.  Not sure why the _LPF parameter is not there.

This reply was deleted.