Has anybody considered developing/using gain scheduling for Ardupilot?
Maybe something as simple as different sets of gains (P, I, D) for different airspeed intervals...
Would gain scheduling be something of interest for Ardupilot community?
Thanks!
You need to be a member of diydrones to add comments!
Replies
Your question has got me thinking and looking at the Ardupilot code. There is a nav_gain_scaler on the output of the PID loop to help navigate turns better in windy conditions. It uses airspeed and ground speed. For what you propose we would only need to consider airspeed. Instead of a lookup table, I think you could just scale the output of the PID loops(elev, ail, rud) based on airspeed. I have a hunch it should something like vel_scaler = Kv / (airspeed)^2. This value would scale the servo_out[] value. The hard part is coming up with Kv. This would be done through flight testing and a lot of thinking converting ect. I think I might have to work on this. Once Kv is tuned there would be no over/under controlling at high/low airspeed. Thanks for the idea.
Greg