【Betaflight ノート #3】Firefly 1S FR16 PIDチューニング

目次

Section 1

PIDチューニング

【Betaflight ノート #2】に引き続き、Flywoo Firefly 1S FR16 Nano Baby V2の設定を進めていきます。

今回はいよいよPIDチューニング作業を行います。

ここでPIDとは何かという点を説明すると長くなってしまいますので割愛します。

Betaflightのウィキにも分かりやすい説明が掲載されていますし、随分前に掲載した下記の記事をご覧頂いてもなんとなくイメージは理解できるかと思います。

Armattan Badger 5" Kit (バンドル) <7> PID Tuning 1
https://dayscape.jp/blogs/all-blogs/armattan-badger-5-kit-bundle-7-pid-tuning-1

さて、今回作業するPIDチューニングなのですが、「Basement Tuning」法と呼ばれている方法を参考に作業していきます。

「Basement Tuning」法とはこれだ、という訳ではないのですが、自分の理解の範囲では、下記のような流れで作業を行います。

まず [ダンピング(D強度)]を調整します。

次に[基準値倍率設定(Multiplier)]を調整。

自分の場合、この辺りで[ピッチトラッキング(Pitch:Roll P,I&FF)]を調整します。

ここまでで大枠は完成、というイメージかなと思います。

今回機体が小さいこともあり、「Basement Tuning」ではここまでAngleモードを使用できますので、屋内でも比較的安全に作業できました。

この先はAcroモードで激しい動きを試す必要がありますので、小さい機体であっても屋外や広い室内で作業した方がスムーズです。

狭い空間だと激しい動きが実施しづらいというのももちろんありますが、仮にクラッシュして少しでもプロペラが損傷した場合は、その都度交換しなくてはならない、などという事情もあります。

屋外ではまず、[スティックレスポンス(FF 強度)]を決めます。

FF(フィードフォワード)の調整には、フリップなど激しい動きを試す形になりますので、これは広い方が良いでしょう。

次に[ドリフト(I 強度)]を決めていきます。

[ドリフト(I 強度)]についてはLogデータも見るのですが、カーブの追従性など感覚的な部分も評価の対象として大きなウェイトになるものと思います。

ここまでで基本的な設定は完了です。

Betaflightにはさらに沢山のオプションがあるので、好みでさらにオプションの設定を行います。

今回はその後に[動的ダンピング(D Max)]を設定しました。

[動的ダンピング(D Max)]は機体の目的によっては設定しなくても良い、オプション的な位置付けです。

さらに追加でPID Profile設定ページの右側についてはメーカーの設定値を参考にしつつ、[動的アイドル]を120に変更しました。

オプションを含めて一通り設定が完了したら、しばらく遊んでみて、たまにLogデータを確認し、体感的にもしくはデータ上で気になるところがあればさらに微調整を行ってブラッシュアップすると、さらに機体が馴染んでくるように思います。

今回も詳しい手順は省きますが、雰囲気だけでも感じられるよう流れを簡単に紹介した上で最後に今回の作業前と作業後のデータを比較してみたいと思います。

Section 2

屋内での作業

まずはPID profileページのスライダーの中で、一番上の[ダンピング(D強度)]を決めるのですが、最適なDの値を解析しやすくする目的でFFは0にします。

[動的ダンピング(D Max)]は急激な動きの時だけDゲインを最大まで引き上げ、通常飛行の時は低く保つという内容のオプションですので、 [動的ダンピング(D Max)]も0にしましょう。

デメリットもあるので、この機能は最後まで利用しなくても良いですし、使用したい場合でも、最適なD Maxの値がわかっていれば設定は簡単です。

[ドリフト(I 強度)]は0.2にすることが推奨されていますが、これはログデータ取得の為のフライト時に機体制御をしやすくする目的で、少しだけ、邪魔にならない程度に入れておくという形になります。

この設定の状態で、 [ダンピング(D強度)]を0.6、0.8、1.0、1.2、1.4、1.6と言った形で一段づつ数値を上げてデータをとり、PIDtoolboxで解析を行う流れとなります。

このデータ取得の為に実施したフライトは、ANGLEモードでROLL、PITCH方向にひたすら最大舵を切るというシンプルなものです。

データを解析して、 [ダンピング(D強度)]が決まったら、次にスライダーでは一番下に当たる、[基準値倍率設定(Multiplier)]を調整します。

やることは[動的ダンピング(D Max)]の調整と同じなのですが、ここまでの作業で変更しているのはDの値なので、前回作業した[Dtermフィルター]が過剰に薄いと、この作業中に暴走したりモーターが焼けたりする可能性もあります。

なるべくスライダーを一気に動かすことはせずに、飛行中にいつもと違う音がするようなら速やかに中断しましょう。

自分はここまで作業した辺りで、[ピッチトラッキング(Pitch:Roll P,I&FF)]を調整しました。

スライダーでいうと下から2番目になります。

このスライダーはPitchとRollのバランスを変更するもので、例えば今回のFlywoo Firefly 1S FR16 Nano Baby V2はTrueX型(隣り合うプロペラ間の長さがPitch方向もRoll方向も同じ)という分かりやすいバランスの機体ですが、バッテリーは前後に長い重量物として搭載されていて、FPVカメラなども前後方向の軸上に搭載されています。

そういった重量の配分のズレはほとんどの機体で見られるものですし、機体によってはPitch方向とRoll方向でモーター同士の距離が同じものばかりではありません。

そういった原因でPitch方向とRoll方向とでは回転させるのに必要な力が若干変わってしまうのですが、その調整を行うスライダーが[ピッチトラッキング(Pitch:Roll P,I&FF)スライダー]になります。

この調整に関しては、Logデータを見ながらPitch方向とRoll方向の動作の遅延が大体同じになるよう、スライダーを調整する作業になります。

上記は全て設定が終わってしまった画像なのですが、この段階では矢印で示した3箇所を設定しました。

次のセクションで紹介しますが、[ダンピング(D強度)][動的ダンピング(D Max)]の設定時にスライダー位置が変更になりますので、元からこの設定値だった訳ではありません。

また、[基準値倍率設定(Multiplier)]は全ての設定が済んだ後に、ログデータをみながら更に調整を加えるなど、多少工程を行ったり来たりしています。

Section 3

屋外での作業

次に[スティックレスポンス(FF強度)]を設定します。

Logデータを見ながら、セットポイントに対してジャイロの追従を評価するのですが、ここでPIDのPとFFの動きも合わせて確認し、Feedforward(FF)の影響でGyroがセットポイントに対してオーバーシュートし、Pの値がFeedforward(FF)を押さえ込もうとする方向に転じる手前のポイントを探ります。

簡単にいうと、オーバーシュートがなく、なるべく遅延の少ないところを探るイメージでしょうか。

[スティックレスポンス(FF強度)]の調整からはANGLEモードでは評価できませんので、ACROモードでフライトを行い、なるべくスナップロールとフリップなどの激しい動作を行うと、見やすいLogデータが取得できます。

最後に[ドリフト(I 強度)]を設定します。

[ドリフト(I 強度)]は、特に低いところから始めると顕著にハンドリングが変わるのが体感できると思うのですが、ここは割と好みも重視して決めます。

好みがよく分からないので、飛ばしながら考えたい、という場合はI 強度の設定をデフォルトの1にしておきましょう。

レースのような飛ばし方をしたい、フリースタイルのトリックをやりたい、スムーズな映像を撮影したい、など、その機体で何かをやりたいと思った時に不満があるなら、その都度微調整する形でも良いのかなと思います。

そういったパラメーターになりますので、テストフライトではなるべく普段通りに飛ばして、反応をみましょう。

ただし、 [ドリフト(I 強度)]に関しても完全にどんな数値でも良い訳ではありません。

特に [ドリフト(I 強度)]でヨーの追従性は変わるようなので、感覚的に差を感じにくい細かい追い込みまでしたい場合は、ヨーの追従性を確認すると一つの目安になると言われています。

これで一通りの作業は完了です。

上記の印を付けた2箇所を設定しましたが、 [スティックレスポンス(FF強度)]が最大になってしまっています。

これで良いのかと不安になるものの、ログデータ上は問題ないようなので、この設定で行く事にしました。

Firefly 1S FR16は1Sマイクロ機なので、5インチなどと比較するとパワーがない、と言う要素が多少影響しているのかも知れません。

さらにお好みでオプションを追加します。

オプションに感して、初めは設定しなくても良いと思うのですが、BetaflightはメインのPID設定だけでなくオプションの影響力も高いので、オプションについても、いずれ気になったものから取り上げてみたいと考えています。

オプションには特定の条件下でPIDに大きく影響を及ぼすものもありますので、オプションパラメーターの変更時はモーターの熱やログデータに少し注意した方が良いかもしれません。

ちなみに、今回は下記のオプションを設定しました。

まず、PID調整タブの本体に組み込まれている[動的ダンピング(D Max)]

設定方法は、まず [動的ダンピング(D Max)]のスライダーが0の状態で、ページ上部、スライダーの上にあるPID表に表示されている、D Maxの値をメモします。

次に、 [動的ダンピング(D Max)]のスライダーを1に変更します。

すると表に表示されているDMaxの値は大きくなってしまっているはずですので、表のDMaxの値がメモした値に戻るまで [ダンピング(D強度)]のスライダーを下げましょう。

これで [動的ダンピング(D Max)]は設定完了です。

続いて[動的(ダイナミック)アイドル]

この機能は、低スロットル域でのモーター回転を制御して、プロペラの惰性や空気抵抗に負けないようにし、スロットルレスポンスと安定性を向上させる目的で設定するものです。

具体的には下記の効果があり、特にモーターのパワーが弱いマイクロ機では効果が強く実感できるかと思います。

  • フリップや急降下後のモーター再スピンアップ遅延を防止
  • 低スロットル時のスロットルレスポンス向上
  • 低速飛行時のスムーズな姿勢制御(prop wash 軽減)

今回はこの [動的(ダイナミック)アイドル]を140に設定しました。

ちなみにこの設定をする事で、フリースタイルなどで頻発する上下反転した姿勢での滞空時間が減るというデメリットもあります。

赤で囲った範囲はFLYWOOのデフォルト設定を参考に設定していきました。

自分が追加で設定したのは、青で囲った [動的(ダイナミック)アイドル]の部分と、緑で印を付けた [動的ダンピング(D Max)]の部分です。

Section 4

PID調整の成果

では早速設定の成果を見ていきましょう。

何度も同じ画像が出てきていますが、上記が今回セッティングした内容です。

比較するのはBetaflightのデフォルト設定と今回設定した設定。

Flywoo Firefly 1S FR16 Nano Baby V2にはあらかじめメーカー側で調整されたPIDが設定されており、今回その設定も比較したいと思います。

今回メーカーのセッティングとして使用するのは上記画像の設定です。

ただし、使い始めてからしばらく経つので、設定を変更してしまっている可能性が高く、本当にメーカーのセッティングか確証が持てません。

恐らく触ったとしてもI強度だけだとは思うのですが、メーカーのセッティングは、本当にメーカーセッティングか怪しいと考えて頂けたらと思います。

前回同様PIDtoolboxで[SP-gyro delay]で遅延を比較します。

上記は前回紹介したものと同じ画像なのですが、フィルターとPID設定がデフォルトの状態のままで取得したログデータの数値です。

おさらいとして遅延を確認しておきましょう。

Roll軸遅延 8.375ms

Pitch軸遅延 10.375ms

Yaw軸遅延 2.875ms

上記の結果になりました。

Flywoo Firefly 1S FR16 Nano Baby V2で遊んでみるとよくわかると思いますが、このままでは使い物にならない、という事は全くなく、あまり気にしない人ならそのまま使い続けても不満を感じないレベルのものと思われます。

次に今回設定したフィルターとPID設定で取得したログデータの数値です。

Roll軸遅延 4.875ms

Pitch軸遅延 4.25ms

Yaw軸遅延 -0.125ms

遅延が半分程度になっている他、Roll軸とPitch軸のバランスも改善されています。

Yaw軸の遅延がマイナスになってしまっているのはよくわかりませんが、ほぼ遅延なしで追従していることがわかりました。

最後はFLYWOOのデフォルトセッティング、と思われる設定で取得したデータ。

フィルターはデフォルトのままでテストしましたので、フィルター分の遅延はデフォルトと同じ条件です。

Roll軸遅延 7.375ms

Pitch軸遅延 8.5ms

Yaw軸遅延 1.75ms

フィルターの影響があるので、今回設定したPIDほどの速度はでていませんが、Betaflightのデフォルトと比較すると速度の面でもRollとPitchのバランスの面でも優れた結果になっています。

ちなみに今回設定を行ったフィルターセッティングで、PIDのみFLYWOOの条件で取得したのが上記のデータ。

Roll軸遅延 7.75ms

Pitch軸遅延 8.125ms

Yaw軸遅延 1.875ms

上記の結果を見る限り、先程のデータからほとんど変化がなく、フィルターセッティングだけの変更では遅延の短縮に十分な効果がでていないという事は非常に興味深いですね。

むしろ遅延がでている点に関しては、まずテストフライトの内容によって若干の数値的なブレがあると考えられます。

また、次に見ていく波形でわかるのですが、オーバーシュートが結果的に遅延として算出されている可能性も高いです。

続いて、BETAFLIGHT Blackbox Explorerで波形を見てみましょう。

上記の波形はデフォルトフィルター、BetaflightのデフォルトPIDで、90度程度のロールフリップをして止める動作を行った際の、Roll軸の波形です。

マイクロ機なので、SetpointにGyroが完全に追従している訳ではありませんが、比較的綺麗に追従しています。

Betaflightは5インチフリースタイル機を基準していると言われているものの、Firefly 1S FR16のようなマイクロ機でも非常にバランスは良いのではないかと思います。

ここまでBetaflightのデフォルト設定で取得したLogデータを見てきて、デフォルトとしては非常に優れているという印象を受けました。

次の波形はフィルターもPIDも今回設定した内容で先程と同様の動きを行った波形です。

あまり変わらないですね。

デフォルト設定でもそうでしたが、大きなオーバーシュートもなく、ちゃんと追従していることがわかりますので、全体として今回の設定は悪くないものと考えられます。

最後にFLYWOOのPID設定と思われる数値で飛行したデータです。

フィルターはデフォルトで飛行しています。

他の2つと比較すると、Gyroの波が大きくオーバーシュートしていて、うまく収束していないのがわかります。

基本的にはSetpointにGyroが完全に追従している状態が良いとされていますので、その点ではあまり良くないのですが、機体によっては、他に犠牲にしなければならない要素との優先順位の中で調整していく形になるのがPID調整。

Goproなどを搭載した5インチ機などで撮影を行う際、このグラフはあまり良くないものと思いますが、マイクロ機であれば好みや飛ばし方によって、こういう形もありなのかもしれません。

最後に今回設定したPIDの飛行時のフィーリングですが、Betaflightのデフォルトと比較すると非常にクリアな感じになりました。

時間をかけて設定作業を行っているので、どうしてもひいき目になってしまう部分もあり、良く思えてしまうものではあるのですが、個人的には随分良くなったと感じます。

D関連のフィルターはあまり攻めていないということもあり、今回設定したPIDはモーターが焼けるリスクもそこまで高くないと思いますので、Firefly 1S FR16をお持ちの方はご参考にして頂けたらと思います。

うまく行くと機体とダイレクトに接続されるような感触を得られますので、是非みなさんもPID調整にトライしてみてください。

 

---
いつもご覧いただきありがとうございます。
DAYSCAPEのブログは、皆さまからの応援によって成り立っています。
「いいね」と思っていただけたら、無理のない範囲でご支援いただけると嬉しいです。
下記のボタンより、PayPalを通じて応援いただけます。

応援はこちら

※この応援は任意のものです。商品やサービスの購入を伴うものではありません。

BetaflightFlywooPid tuning

JACK によるブログ

DAYSCAPE ( DIYドローン オンラインショップ ) では、FPVドローン、産業開発ドローンの分野に関する商品の紹介やドローンの組み立て、使用方法などの情報発信を行っています。