Autotune method

Hi!

This is more of a curiosity question: Would you know what control method Autotune uses in order to determine the PID gains? I thought it would be something similar to ziegler-nichols, but that would make the quad oscillate during the tuning process, and not twitch.

Thanks!

Hello,

From http://discuss.px4.io/t/how-to-autotune-the-pid-params/3395/6

  • a) invokes 90 deg/sec rate request
  • b) records maximum “forward” roll rate and bounce back rate
  • c) when copter reaches 20 degrees or 1 second has passed, it commands level
  • d) tries to keep max rotation rate between 80% ~ 100% of requested rate (90deg/sec) by adjusting rate P
  • e) increases rate D until the bounce back becomes greater than 10% of requested rate (90deg/sec)
  • f) decreases rate D until the bounce back becomes less than 10% of requested rate (90deg/sec)
  • g) increases rate P until the max rotate rate becomes greater than the request rate (90deg/sec)
  • h) invokes a 20deg angle request on roll or pitch
  • i) increases stab P until the maximum angle becomes greater than 110% of the requested angle (20deg)
  • j) decreases stab P by 25%

Marc

1 Like

Thank you!

Would you also happen to know how it calculates the reference point orientarion in order to determine the yaw input value to the controller? This field of research has been tested in my university for 2 DOF anthena orientation control, and is quite interesting to us.

Best place to see how it works is where that has been implemented on ArduPilot

https://github.com/ArduPilot/ardupilot/blob/master/ArduCopter/control_autotune.cpp#L26

This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.