Dropbox

PIDチューニングには以前から挑戦したいと思っていたものの、難解な部分もあり、また単純にめんどくさいということもありで手が出せませんでした。

Betaflight 4.1になりフィルターとPIDのチューニングがスライダーで行えるようになりました。これはもしかして自分でもチューニングが出来るのではないかと挑戦してみることにしました。ということで、まずは調査です。YouTube上にたくさんの情報があります。だいたいはJoshua Bardwellさんのチャネルをサブスクライブしておけば必要な情報は得られます。さらにBetaflightの仕組みに基づいたテクニカルな解説を必要とする場合はUAV Techにとても詳しい解説があります。どちらも英語の解説ですが、前者は分かりやすい英語ですし、キーとなる部分は画面を見ているだけでも理解できそうです。UAV Techの方がより詳細な内容ですが、英語が分かりづらいのが難点です。

Betaflight 4.1のPIDチューニングに関する解説として下に埋め込んだビデオに注目したいと思います。ただし英語が分かりづらく、YouTubeが自動的につけている英語字幕もあまり役に立ちません。自動字幕なので専門用語が正しく記述できないのは仕方がないとして、普通の単語も間違っていたりします。

詳しく読み解くついでに日本語字幕を作成して送ったのですが、なかなかレビューが終わらず反映されていません。もっとも、日本語字幕を見たとしても、やはり分かりづらい気がします。そこで、ここにポイントだけかいつまんでわたしの解釈を書いておきたいと思います。

このビデオはチュートリアル的なものではなく、UAV Techの人の設定例にいくらかの解説を加えたものです。ただし、いくつかの良い説明がありますので、眺めてみてください。

以下、タイムスタンプと興味深い部分のみ、わたしの解釈について書いておきます。

00:19 セットポイント(setpoint)はクワッドに対するコマンドなんです。それが全てなんです。
-> スティック操作はBetaflightにより解釈され、それぞれthrottle, yaw, roll, pitchのsetpoint値に変換されbetaflightはsetpointに従ってクワッドの姿勢を制御する。

00:36 もし実際のジャイロの読みに(セットポイントが)正しく一致出来たときに、それ以上望むべくもない良いパフォーマンスを得られたと言いたい。
-> つまりthrottleを除くセットポイントは、そのまま機体が示すべきジャイロの値を示しているのでログ上セットポイントとジャイロの読みが常に一致していることが理想である。

00:56 PIDチューニングのために通常することはトレースの設定です。それは誇張(exaggeration)をオフにすることです。なぜならば、もうノイズには関心がなくトレースで見る必要がありません。
-> exaggerationと言っているのはExpo On/Offのことではないかと想像します。ノイズについてはBetaflight 4.1のフィルターリングがとても優秀なので、特別な機体の固有振動でもない限り気にしないということでしょう。

01:22 ロール軸を見てみましょう。セットポイントは緑の線でスティックから来ます。ジャイロの奇跡はクワッドが何をしているかを示します。
01:37 もしこれが正しくスクリーンの線に沿っていれば完璧なフライト経験が得られます。

01:49 ここでいくらかのオーバーシュートがあります。このようなオーバーシュートとぐらつきがあると、すぐさま推進(push)が強すぎ、そして抑制(dampening)が十分でないと考えるべきです。
-> ジャイロの軌跡に振動が見られる、すなわち機体がロールの後にバウンスしているということ。Pが強すぎるか、もしくはDが弱いということらしい。

02:11 もしここで遅延があり、そしてオーバーシュートがなくここまで上がる場合は、おそらく抑制(damening)が効きすぎています。

02:30 コンフィグレーションの新しいツールチップでは、平易な言葉で説明します。
-> Betaflight Configuratorでは各項目について詳細かつ分かりやすい表現の説明がポップアップします。これは本当に役立ちます。なんとなく見た目からConfiguratorを英語にしていましたが、この説明を日本語で読むために今は日本語でconfiguratorを立ち上げています。日本語化に尽力されている まっくさん(@t_mac116) に感謝です。

02:40 Pタームを自動車のスプリングと考えてみます、、、
-> ここからPタームをスプリング、Dタームをオイルダンパーとして自動車のショックアブソーバーに例えた話が続きます。あまり深く考えずにPタームがスプリングでDタームがオイルの入ったダンパーに近いと思うくらいが良いと思います。話しの中では路面をセットポイントと捉えていますが、ショックアブソーバの目的は路面の凹凸を吸収するためのものでPIDループとは少し目的が違うので、細かく考えない方が良いかも知れません。

04:19 もし思い切った動きをクワッドに与えた時にある種の揺れを起こしたら、Dタームを増やさないといけないということです。
04:30 もし鋭い動きをさせても動きが遅いならば、それはセットポイントへの追従が良くないということです。つまりPタームを増加する必要があります。

-> これがPID調整の基本ということだと思います。ただしPとDのバランスということで、どちらも増やし続けるものではないことは覚えて置く必要があります。

04:48 再びこれを見ていきます。セットポイントに対する良い追従が見られます。こそれは私にしてみるとPタームとフィードフォワードがともに良く働いているということです。
-> フィードフォワード(FF)は素早いスティック操作への反応を良くすると漠然と考えていたけどPを補足するような感じなのでしょうかね。

05:22 ここは通常のオーバーシュートです。
-> EXPO OFFで眺めてみてわずかにジャイロがセットポイントに対してオーバーシュートしているのは問題ないもよう。

05:26 ここはセットポイントを少し行ったり来たりする一種の振動が見られます。これはPDバランスが取れていないように見えます。

06:30 何かしら行った後に与えられたフィルター設定はほぼ確信があります。しかしPIDチューニングはいくらかの行ったり来たりの試行錯誤で上手く行くことを確認します。
-> PID値の決定は試行錯誤が必要である。逆にフィルターは一発で決まるということなのか?

06:41 覚えておくことは、プロップウォッシュの中で、、、、
-> しばしDとD minの説明が続きますが、別の資料をあたった方が良い気がします。

08:10 結局のところ次に試すことをお勧めするのがこのスライダー式構成です。その2つを既定値にしますそしてP and D gainで両方同時にを少し上げます。
-> ここからスライダーでのPID調整に入ります。この例ではPD BalanceとP and D Gainのを既定値に戻してから、それぞれ動かしています。実際のところ、飛行させながら様子をみたりBlackboxログを見て考えなればなりません。なかなか具体的に説明するのは難しいですが、以前のようにたくさんの数値を変更するよりはスライダーを動かす方が簡単だと思います。

09:33 その他の変更としては、わたしはこのD Min Advanceを0にD Min Gainを30にちょっと切り上げます。
-> これは、この人の設定例という理解で良いのか? 特に理由は述べられていないです。

09:47 このSetpointはBetaflightの既定値です。
-> I Term RelaxのType=Setpointは既定値で、かつレース向き、Type=GyroでCutoff=10がフリースタイル向きとおっしゃっています。

10:10 Rateprofileタブに行きましょう。TPAが0.6で1250で開始するようになっています。これは必要ならば上げても良いです。
-> おそらくBrakepointを上げても良いと言う意味かと思います。ここでの説明も今ひとつわかりにくいです。このTPA値の意味はスロットル値1250(おなじみの1000-2000の可動範囲の中での数値)からPID値を減少し始めて最終的にはPID値が元の値の60%になるというものです。プロップウォッシュの出方によっては減少を遅らせた方が良いこともあるのかも。

以上ですが、気がついてみるとIタームについては何も述べられていません。Betaflight 4.1では既定値のままで良いということなのでしょうかね。

Trackback

no comment untill now

Add your comment now