【Arduino自作ドローン】No.9 PID制御のゲイン調整

ドローン製作記のメインページ 【完全自作】Arduinoを使用した自作ドローンの製作記(完成)


今回は,ドローンのPID調整方法について,経験からもとに書いていきたいと思います.. ステップ入力の応答からPIDゲインを求める方法などもありますが,今回は地道に最適なゲインを求める方法(頭は使わない)を書いていきたいと思います.


最適PIDゲインの求め方

よいPIDゲインを求めるためには,だいたいの手順があります.それらを順番に説明していきます. まず,文字での説明より,このGIFを見るのが一番説明になると思います.(右上から,Pゲイン,Iゲイン,Dゲイン)

* https://ja.wikipedia.org/wiki/PID制御 より

Pゲインを発振(振動)する程度まで増やし,(Iゲインで偏差(赤線との差)を無くし,)Dゲインで発振をなくすという手順です.  個人的意見だとIゲインはいらないと思います.Iゲインは積分動作であるので,位相遅れが発生します.そのために,減衰性や即応性が悪くなります. また,そもそも積分動作とは,目標値との差をなくすためにあるものであり,人間が5度ドローンを傾けたいと思った時に,4度になっていたとしても,人間側でフィードバックして5度になるまで操作量を増やす動作をしてくれるのではないかと思っています.必要があればIゲインを使うという認識で良いと思います. それでは,自分の経験をもとにしたPID調整法を書いていきます.


その1

まず,PIDゲインのうちPゲインだけを調整します.Pゲインを0から増やしていくとある程度したところで,ドローンが発振(振動)し始めるポイントがあると思います.このポイントをメモしておくと後で便利です.以下の動画のような動きをするポイントです.

その2

次にDゲインを増やしていきます.上のGIFのように振動がなくなり,安定するポイントを探していきます. 自分の場合は,Pゲインが2程度だったのに対して,Dゲインは70程度でした. まさが,こんなに大きな数字になるとは思っていなかったので,すこし時間がかかりました.

安定したゲインが得られたら,必ずコメントと共にメモを残さないと,後でどのような挙動だったか忘れてしまいます.(低速で揺れる,③よりも良い,など)

その3

安定したゲインが得られたら,再度Pゲインを増減し,それに合うDゲインを探していきます. これを数回繰り返すことで,よいゲインが得られると思います.


基本的に,
遅めの振動:Pゲインが大きすぎる(1秒に約2,3回程度の振動)
素早い振動:Dゲインが大きすぎる(1秒に約5回程度以上の振動)
姿勢が崩れる:Dゲインが小さすぎる
という特徴があります.


最初は全く飛ばずに地面をぐるぐる回っていましたが,数十分もすると安定し,数時間後には空を飛び始めていました.
初めて空を飛んだ時の感動はとてつもなく大きいので,頑張ってください.

 

3件のコメント

返信を残す

メールアドレスが公開されることはありません。