Motor redundancy and PID

Hi everyone,

I built an hexa in order to have additional motors and be able to handle a motor/prop failure, I tuned my copter for perfect stability and quite decent response (a little too smooth maybe). First time a motor failed, the whole thing flipped and smashed on the ground. Luckily I was one meter high and with no camera on it.

I'm entering now deeper into PID regulation to achieve the failproof behavior I was looking for at the beginning so, what I want to discuss with you is where to tweak.

From my understanding the RATE_P parameter balances the difference in inclination speed (regarding pitch for example) and the one required (acting like an ideal STABILIZE_D parameter). So RATE_I would ack as a steady state error compensation for inclination speed and could be a good candidate for failproofness.

Am I totally wrong, or does it make sense?

Has anyone done any tests or knows something more about the topic?

I might be doing some test as soon as I find time to make a safe testing setup and the ability to turn off a single motor.

 

Thanks anyone

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

Join diydrones

Email me when people reply –

Replies

  • Ok, I did some tests and got some results.

    I have 90 MB for 25 videos of tests on different PID settings so whoever wants them can have them (or is there anywere I can upload them)... The RATE_I parameter is the one that does the trick but pretty high values are needed and can lead to instability. Against my odds the STABILIZE_P doesn't play such an important rule and actually it does seems that the less STABILIZE_I the faster the copter recovers... which doesn't make sense. I also tried negative STABILIZE_I which gave me good results... what does this means? How are negative values treated?

    Also the whole recovering thing looks more difficult when higher throttle is applied.

    The ideal settings for my hexa are:

    STABILIZE_P    3.2
    STABILIZE_I    0.005
    RATE_P        0.075
    RATE_I        0.120

     

  • Developer

    The PIPI loop is like this:

    Angle of copter * Stabilize P = desired rate

    (actual gyro rate - desired rate)  * Rate P = output

    output is converted to PWM and sent out to the motors.

    We have a basic crash avoider that reduces the speed of the opposing motor. if the required PWM goes past 100%. I'm sure we could do more if your up for some investigation and testing.

    Jason

This reply was deleted.

Activity