きょうはVELOCIDRONEのPIDチューニングについて自分なりの方法をまとめてゆきます。
べろしーは現状Betaflight 3.3までしか選択できないので現行のものと比較して、だいぶ設定できる項目が少ないのですが、実際に飛ばしてみて変化をすぐに確認できるので、PID調整について基礎を学ぶにはかなり勉強になります。
今回の記事はあくまで自分の体感としてのおまとめなので、一般的なPID解説とは表現が多少異なります。詳細な理論など技術的な側面について気になる方は「FPV PID設定」などのワードでネット検索するか、GitHub Wikiなどの情報を参考にしてみてください。
■■各設定項目の役割について■■■
① PID制御に関するパラメータ設定
Propotional〔比例制御〕:スティックの入力値に対する機体動作の反応量の調整 [0-255]
Integral〔積分制御〕:入力値と実際の機体動作量との誤差を近づける速さの調整 [0-255]
Derivative〔微分制御〕:上記の誤差修正を短時間に収束させるための補正値 [0-255]
② 機体の操作感に関する設定
RC Rate:スティックの中心付近の入力値変化量の調整 [0.00-2.55]
Super Rate:スティックの両端付近の入力値変化量の調整 [0.00-1.00]
Max Vel:Rate設定に基づく現在の機体回転速度の値、Rateの設定値により変化する
RC Expo:スティックの中心付近の入力値の緩慢・遅延の調整 [0.00-1.00]
③ ジャイロによる制限の設定
アクロモードでは設定値を使用しないので特に変更しません。ANGLE/HORIZONモードでのジャイロ補正値の設定ができます。
④ D値による補正の詳細設定
D Setpoint Transition:スティックの急激な入力値変化を平滑化するポイントの調整 [0.00-1.00]
D Setpoint Weight:上記補正に要する速度の調整 [0.00-2.55]
⑤ スロットル上限付近のPIDオーバーシュートへの制限
TPA:フルスロットルのPID設定値を下げる割合 [0.00-1.00]
TPA Breakpoint:TPAの制限値が適用されはじめるスロットルの位置 [0-2000]
⑥ Anti Gravity
Anti Gravity Gain:急激な操作の際にⅠ値をブーストする強さの調整 [1.00-30.00]
Anti Gravity Threshold:設定が適用されるスロットル変化量 [20-1000]
⑦ スロットルの設定
Throttle MID:スロットルのセンター位置の設定 [0.00-1.00]
Throttle Expo:スロットルスティックの中心付近の入力値の緩慢・遅延の調整 [0.00-1.00]
■■PIDを設定するときの流れ■■■
調整するときの流れとしては、
1. 各種補正がかかっていない状態にする
2. 機体に応じたPIDの適正値を設定する
3. 自分の操作しやすいように各種調整する
という順番で進めていきます。
■■実際にPIDを設定する■■■
1. 各種補正がかかっていない状態にする
今回のPID調整では、機体振動から制御可能な上限を割り出して設定します。Expoやブーストは標準あたりに戻し、できるだけクリーンな状態にします。
② RC Rate:1.00 / Super Rate:0.00 / RC Expo:0.00
④ D Setpoint Transition:0.5 / D Setpoint Weight:1.50
⑤ TPA:0.00 / TPA Breakpoint:1500
⑥ Anti Gravity Gain:0.5 / Anti Gravity Threshold:350
⑦ Throttle MID:0.50 / Throttle Expo:0.00
2. 機体に応じたPIDの適正値を設定する
PIDはプロポを操作したときに機体がどういう反応をするかの設定です。様々な質量や負荷、慣性力など各種特性のある機械を制御する際に発生する入力と動作のラグを補正する役割を担うのがPID制御です。
モーターが入力値により指定された回転速度になるまでにバシっと素早く合わせるか、だら~っとゆっくり合わせてくるのか、ここで指定した数値によって制御の特性が変化します。
P値は指定した入力値と動作量を最初に合わせにいく速さ、I値はP値による制御で行き過ぎたブレを入力値付近に戻す速さ、D値はI値で収束できない誤差を入力値に合わせるための補正をかける速さです。
ちょっとわかりにくいぞっという人は、コップにいれた水を水平にするときに持っている手がどういう動きをしているのかをイメージしながら、数値と機体の動作の変化を観察すると理解しやすいかもしれません。
●PID設定を最小にする
はじめにPIDの数値を下げた値を入力します。
YAWはROLL/PITCHよりも下位制御になるようで、他の2つより大きめな数値を入れないと際立った変化として現れないようです。
● ROLLとPITCHのP値を設定する
まず、ROLLのP値を設定します。ある程度スロットルを上げてフライトしながらROLL操作を試し、振動が出るP値のポイントを探します。
機体にガタガタと振動が出るまでP値を上げ、最初に振動が出た値を70%にしたものが適正値です。ROLLのP値が確定したらその値を入力し、続いてPITCHのP値を探しています。
ROLLのときと同様に、スロットルを上げてフライトしながら、PITCH操作を繰り返します。ガタガタと振動が発生し始めるP値のポイントが確定したら、これも同じく70%にした値をPITCHのP値として入力します。
これらの振動はP値を100あたりまで上げると発生しやすいので、ある程度目星をつけて振動がでるのを確認してから、10刻み、5刻みと徐々に数値を細かく下げながら調整していくと効率がいいです。
● ROLLとPITCHのI値を設定する
PITCHの場合も同じように前に機体を傾ける動作をして、一定角度を維持しながらスロットルを上げたときの機体高度の変化をみていきます。
ただ、PITCHの場合はI値を上げすぎると、スティックで前傾角度を合わせる際に変化速度が過敏になり、逆に操作しにくくなる場合があります。そのような場合には自分でコントロールしやすいようにあえてI値を少し下げた設定にしてあげると、ちょっと操作しやすくなります。スティックをほぼ動かさない状態で角度を微調整できる範囲が許容範囲だと思います。
● ROLLとPITCHのD値を設定する
上記でROLLとPITCHのP/I値を適正に設定すると、ほぼほぼ狙ったポイントに操作がぴたっと合わせられるようになっているのですが、ポイントに合わせるときに若干もたつく感じが残ります。
これはI値による補正の特性として、冗長的な入力値と動作値の不一致が残留するために起こるラグなので、D値によって補正を行ないます。
ROLL/PITCHの操作でスティックを早く動かしてからぴたっと止めたときに刹那的にクッという感じでラグが発生していたのが、D値を上げていくと徐々にその状態が改善されていき、機械的に狙った位置でぴたっと止まるように変化します。D値の設定でも、適正値を越えて数値を上げすぎると補正がオーバーシュートし逆に合わせにくくなるので、その場合には数値を戻してあげます。
D値も調整する際にその変化がわかりにくい場合には、ゲートをターンするなど目標物を決めてスライド具合をみて調整することができます。入力値と動作値の補正のズレのぶん狙ったポイントがスライドしていたのが徐々にぴちっと合うように変化していきます。
D値は適正値に近づくにつれて流動的な操作感から機械的な操作感に変化していきます。ポイントを合わす際に機体動作にあまり支障がない範囲で自分のフィーリングに合うようなタッチで調整できる項目です。
また、D値による補正はクルマでいうところの急制動をかけているような無理のある状態なので、実機で設定する場合にはモーターやESCに過剰な負荷がかかり、焼損・破損といった事態につながります。数値を大きく上げたからといって操作しやすくなるわけでもないので、適正値から下げていく方向で自分に合った設定にするのがいいです。
● YAWのP/I値を設定する
YAWのP値は定点での旋回や、コーナーでROLLと併用した際に機体の角度変化が遅いと感じられる場合に上げていきます。数値を上げるとよりクイックにターンができるようになりますが、上げすぎると回転が速くなりすぎてカウンターをあてる無駄な動作が増えることになるので、自分のコントロールできる範囲で調整します。
YAWのI値は、上記のP値に合わせる感じで設定します。数値が少ないときはYAW回転した際にふにゃふにゃと不安定なのが、数値を上げていくとバシッと回転を制御できるようになります。
この場合も過剰に数値を上げすぎると補正がオーバーシュートし、逆にフラフラと不安定になってくるので、P値を越えない範囲で自分の操作感に合うよう調整していくといいです。
3. 自分の操作しやすいように各種調整する
Rate/Expoの設定では、プロポを操作したときのスティック位置による入力値の変化量が調整できます。センター付近の変化を緩やかにして機体姿勢の微調整をしやすくしたり、両端の動作を鋭角にしてスティック操作の反応を早くしたり、指先がぷるぷるするのを入力しないように消してみたりとか、自分なりのコントロールしやすい操作感に設定していくことができます。
RC/Super Rateを変更すると、3番目のMax Velの値も変化していきます。これはRate設定による現在の機体の回転速度を示し、単位はdeg/s。一秒間に最大何度回転するかを表していて、360deg/sなら一秒間に一回転します。この値がおおむね1000を超えてくると速すぎて操作しにくくなくなってきます。
● RC Rateを設定する
RC Rate:1.00/Super Rate:0.00で設定すると一直線の正比例のグラフで入力値が変化するので、スティックを動かした分だけ機体の動作も同量変化しようとします。これをベースにして0.5ずつぐらい上下させていき、自分の操作しやすい値を探していきます。
RC Rateの数値を下げるとグラフの傾斜が緩やかになりスティックの操作が鈍感になり、上げるとグラフの傾斜が急になり操作も敏感になります。
機体を操作したときに動作が速すぎて狙った位置に合わせにくい場合には、この値を下げてあげると反応が緩やかになり、コントロールしやすくなります。逆に操作がもたつくと感じる場合には、数値を上げると反応が機敏になり、機体操作を速くすることができます。
あまり過度に調整すると、機体が出力不足で逆に不安定になったり、また速すぎて対応できなくなるので、操作に不慣れな場合には0.5-0.85、機敏に操作したい場合には1.25あたりを目安に設定するのが妥当値みたいです。
● Super Rateを設定する
Super Rateでは、数値を上げていくと曲線が両端を持ち上げる形でグラフ変化し、数値を増やすとスティック両端付近の操作が敏感に、減らすと鈍感になります。中心付近はRC Rateの影響下にあるので、設定した傾斜を保ったなだらかな形になります。
Super Rateを上げることで、両端に向かう動作が機敏になり、急激な機体角度の変化を細かいスティック操作でしたいといったフィーリング調整をすることができます。
● RC Expoを設定する
RC Expoはスティック中心付近の操作に対する機体の反応を鈍くする設定です。RC Rateを下げた場合の調整と混同しがちですが、こちらはセンターあたりのスティック操作を緩慢かつ遅延するような感じで機能します。
スティック操作をセンターで安定させたいときに、指先の微細動反応で微妙に入力がふらつく場合や、反射的に反応してしまう無駄な動作を入力値に反映させたくない場合に使用します。
数値を上げることでセンターの機体の反応が鈍くなるので、あまり数値を上げすぎるとPID設定で打ち消したスライドする動きが再発してくるので、自分の操作感に合う最小限で調整するのがいいです。
機体の操作を全般的に安定させたい場合には、無理にRC Expoを上げるよりもRC Rateの数値を下げてあげた方がよいと思います。
● D Setpoint Transition/Weightを設定する
D Setpointの項目ではD値補正にかかわる詳細な設定ができ、スティックを急激に戻した際の振動を滑らかにします。これまでの設定である程度、自分に合う操作感は得られていますが、狙ったポイントでスティックを止めた際に感じる微妙な違和感を調整するときに使用します。
D Setpoint Transitionは、下記のWeight設定が適用される範囲の調整です。0がスティック中央、1がスティック外側を表し、0.01刻みで補正動作の開始する位置を設定できます。設定したポイントからセンターにかけてWeight補正値が0になるように線形変化します。
D Setpoint Weightは数値を上げるとスティックに対するD値補正の反応が早くなり、0.00だとスムーズな反応、1.00にすると機敏な操作感へと変化します。この項目は0.00-2.55の範囲で設定でき、数値を上げるほどに機械的なターゲッティングができるようになります。
通常、D Setpoint Transitionは0.10-0.30、Weightは1.00あたりで設定するようですが、好みで調整するとおもしろい項目です。
● TPA/TPA Breakpointを設定する
TPAはスロットル上限での制限をかける設定で、0.00が0%、1.00が100%を示します。フルスロットルにした場合にPIDによる補正がオーバーシュートして機体振動が生じる場合に変更し、PIDの制御値を減衰させるかたちで機能します。
他の操作はせずにフルスロットルで垂直上昇を試し、ガタガタと振動が生じる場合には数値を1.00から下げていき、発生しなくなる数値を設定します。
TPA BreakpointではTPAがPID減衰をはじめるスロットルの位置を指定できます。2000がスロットル上限を示し、設定したポイントから上限に向けてTPAの制限値になるように線形変化します。2000から数値を下げ、振動が発生しなくなるスロットルの値を見つけて設定します。適正なスロットル値を指定することにより、通常はPID設定の通りに制御され、機体に振動が発生するゾーンだけリミットがかけられるようになります。
● Anti Gravity Gain/Thresholdを設定する
Anti Gravity Gainは急激な操作の際にI値をブーストする強さの設定で、1.00-30.00の範囲で設定したものがPIDのI値に乗算されるかたちで機能します。急激なスティック操作をしたときにもたつく場合に数値を上げるとクイックな動作へと改善されますが、I値の設定と同様に過度に上げすぎるとオーバーシュートして逆に操作しにくくなります。通常、1.00-0.50あたりで設定します。
Anti Gravity Thresholdは設定が適用されるスロットル変化量の設定でThresholdとはしきい値の意味です。過去0.1秒の間にスロットルが設定値の割合以上変化したときにAnti Gravityが作動するように設定でき、20-1000の範囲で設定できます。この数値の単位は1が0.1%のスロットル量の変化を表します。通常、初期値の350を使用します。
● Throttle MID/Expoを設定する
Throttle MIDではスロットルのセンター位置を0.00-1.00の範囲で調整することができ、0.00がスティック下端、1.00が上端を示します。センターの0.50から数値を上下させることで、スロットル操作を高速域主体で使うのか、低速域主体で使うのかといった設定ができます。
Throttle ExpoはPID設定のRC EXPOと同じように、スロットルに対してスティック操作の遅延と緩慢さを付与することができます。スロットルは元からモーターの出力が上がるまでのラグを機構的に含むものなので、通常は設定しなくてもいいと思います。
以上、VELOCIDRONEのPID調整をする上での自分なりの流れと予備知識のおまとめでした。
まだ、PIDは覚えはじめたところなので、間違っているとこや変なところがあればぜひぜひ教えてください。長い記事ですが、読んでいただいた方、ありがとうございました☆


















































