BetaFlight セットアップ (3) 4.0.2Power & Batteryタブ・4.0.2PID Tuningタブ前編・4.0.2PID Tuningタブ後編

4.0.2Power & Batteryタブ

引き続き、BetaFlight 4.0.2の設定を進めましょう。

もたもた記事を書いている間に次のバージョンが出てしまっては残念ですからね。

しかし、本当はしっかり検証した方が良さそうな項目は山ほどあるものの、毎度テストフライトで一日が終わってしまうのも本末転倒の気がします。

あまりよく分からない人は似たハードウェアセッティングの人の設定をとりあえず真似して練習し、気になる所は調べて設定を調整してみる、というのが良いのではないかと。

感覚的な所になってきてしまうので、「もっとこういう感じにしたい」という感じを明確にする事と、その方法を調べる必要があります。

「もっとこういう感じにしたい」を明確にする為にリファレンス(基準)として比較する機体があると何が正しいのか分からなくならずに心強いですね。

僕の場合Mr.SteeleのAlien (4S)
https://dayscape.jp/blogs/all-blogs/mr-steele-alien-4s-full-kit-build-1

この機体をリファレンスとして考えています、現状モーターを変更してしまっているのですが、また戻すつもりです。

上記の記事からRatesは随分変えてしまっていますが。

このMicro Alienがリファレンスになる位追い込めれば良いのですが、この記事のシリーズでは一旦飛ばす所までの予定で、飛ばしながら徐々に変更して調整しようかなと。

毎度お伝えしていますが、この記事で使用しているパーツはマイクロエイリアンの組み立てブログで使用しているもので、パーツリストは下記のURLでご確認頂けます。

BetaFlightセットアップ(1) 下準備
https://dayscape.jp/blogs/all-blogs/betaflight-setup-1

さて、前置きが長くなりましたが今回はPower & Batteryタブです。

こちらでの設定が前回全部オンのまま放置したブザーのトリガーになったり、LEDの色が変化するトリガーになったり、OSDで表示されたりします。

本当は電流計もやった方が良さそうなのですが、ちょっとやり方がマスター出来てないので試したら追記することにして、今回は電圧計の部分だけ校正しましょう。

まず、右側のPower Stateの区画のVoltageが、つまりV(ボルト)=電圧ということなのですが、この数値は現在フライトコントローラーが認識している数値であり、実際はどうか分からないと。

そこで左側の上から2段目の区画Voltage Meter内の一番上、Scaleの数値を変更してPower Stateの区画のVoltageの表示が正しい数値になるように設定してあげる必要があります。

正しい電圧の計測方法なのですが、これはもうテスターで測ります。

バッテリーを接続し、バッテリー用のワイヤーをハンダしている部分にテスターのテストピンを押し当てますが、テストピンがずるっと滑ってプラスマイナス両方のハンダ部分に接触して、回路全体をショートさせたりなんて事は絶対に無いようにしましょう。

そうなってしまったら全てが水の泡になる可能性があります。

先ほどのBetaFlightのGUIのスクリーンショットでVoltage Meter内のScaleが113になっていると思いますが、デフォルトが確か110で、これはもう設定後になります。

Power StateのVoltageが16.62Vで計測値が16.59なのでまぁ、大体良いのかなと。

僕の場合基本的にはOSDの電圧表示とタイマー、プロポ側で設定したタイマー、あとはフライトの内容で大体着陸するタイミングを決めているのですが、OSDで正確にバッテリーの状況を知りたい方はこのタブの設定を追い込む必要があります。

バージョンが古そうですが下記のURLで電流計などの設定のやり方が紹介されるので、気になる方は是非ご参考ください。
https://github.com/betaflight/betaflight/blob/master/docs/Battery.md

次回はいよいよPID Tuningタブ、気になるところはがんばって調べて理解を深めたいところです。

4.0.2PID Tuningタブ前編

今回はPID Tuningタブ。

日頃NHKラジオ英会話で鍛えようとしている雰囲気程度の英語力を発揮する時が来たようですね、学生時代にもっと真面目に勉強しておけばよかった。

下記のBetaflightのチューニングノートを参考にしつつ、設定していきます。
https://github.com/betaflight/betaflight/wiki/4.0-Tuning-Notes

ところで、前回懸念していましたがもうBetaFlight4.0.3がリリースされていますね!

バグ修正みたいなので、これから設定と言う方はBetaFlight4.0.3で設定し直しても良いかと思います、この記事はとりあえず中途半端なのも良くないので4.0.2のまま進めます。

Betaflightのチューニングノートによると、4.0.〜は以前の設定値を利用せずに1から設定してくださいというのが基本的なスタンスのようですね。

「オヤジ、いつもので。。」という常連客さながらのオーダーはここでは許されないと。

では早速。 

これがBetaFlight 4.0.2のPID Tuning初期設定ですね。

ぱっと見た感じ、GUI的には2枚目の写真のD Minが今回の一番大きな変更でしょうかね。

順を追って見ていきましょう。

まずPID Settingの左上、PIDのメインの設定画面ですね。

なんか、数字がいっぱい並んでて難しそうだなぁと思う方にとりあえずこれが何なのかざっくり説明すると、一覧の表になっていますが左から4つ、頭文字でいうとPIDFのところまでが基本的にはPIDsと呼ばれるものです。

PIDsはプロポ操作によって指示された姿勢と現在の姿勢とのズレをフライトコントローラーが自動で補正してくれる強度などをコントロールします。

一方右側の4つ、RC Rate、Super Rate、Max Vel、RC Expoはレーツと呼ばれ、プロポのスティック操作で中央付近は細かな舵が、外側に行くほど大きな舵が効くような感じにしたりとプロポ側の設定で言う所のデュアルレートみたいな事がここで設定できます。

Max Velのみ入力するのではなく、入力された数値から割り出される計算結果になっており、単位がdeg/sなので最大一秒間に何度回る設定かが表示されています。

すぐ右側にグラフが表示されていますが、これはRatesの設定が視覚的にわかるグラフです。

僕の設定は結構全体的にグラフに傾斜が付いていますが、もっと中央付近の傾斜がなく両サイドに行くほど急激に角度がつくような設定を好む方も多いと思います。

とりあえず、Feedforwardよりも右のRC Rate、Super Rate、RC Expoの部分に自分の気に入っているレーツを入力しましょう。

「え、そんなに遅いの!?」と思われるかもしれませんがこれが僕の最近使っているRatesで、PITCHのSuper Rateとかを確か少しいじっていますが、下記のURLで紹介されているLe Drib氏の数値をほとんど真似で使っています。

https://www.youtube.com/watch?v=qUZfv6D4BP4

結構ぐりぐりスティックを動かして操作する感じで僕は気に入っているのですが、フリップにつぐフリップ!という感じのスタイルには向かないかも。

ちょっと初めてで何言ってるのか良くわからない方で、とりあえずフリースタイル的な事をやりたい方は以前ブログで紹介したMr.SteeleのRatesを参考にしてみるのも良いかも知れません、Mr.Steeleの設定は中央付近が比較的なだらかで、外に行くほど急激に角度がつくタイプの典型かと思います。

KISS FC セットアップ(後半) PIDとRATEと追記

Ratesを変更すると出来ていた事が全然出来なくなったりするので、なるべくRatesは気に入っているパイロットの真似からはじめるのが良いのかなと。

特に気にしないのであればデフォルトで始めるのもひとつの方法で、基本的な飛行が出来るようになってしまえば多少の変更もすぐに対応できるかと思います。

ちなみにRC Rateは全体のスティックの感度、RC Expoはスティックが端にある時の最大回転速度を維持しながら中央付近の感度を下げなだらかにし、Super RateはRC RateとRC Expoを混ぜたような効果がありますので微調整の時に参考にしてください。

さて、PIDsを変更しました。

チューニングノートによると、BetaFlight 4.0〜のデフォルトは5インチの4S機体でGoproなどを搭載している状況を想定したものだそうで、軽量の機体の場合はまず全てのPID値1/3カットして飛ばしてくれと。

飛ばしてみないと様子がわからないのですが、何も考えずに1/3カットでとりあえずここからテストフライトを繰り返して数値を変更していこうと思います。

ここでPIDsとは何ぞやという話になるのですが、ちょっと詳しく申し上げる自信がないですので、そこで。

Joshuaさんがこの動画でPの値に付いてすごくわかりやすく解説されています。

この動画シリーズはBlack Boxの活用方法についてのチュートリアルシリーズなのですが、グラフで視覚的に値の働きがわかるので、全て通しで見ていただけるとイメージが掴みやすいかと。

とは言え英語ですし、動画が長すぎて『それ見てる時間があるなら飛ばしに行きたいよ』という方に向けて本当にざっくり説明します。

まずPは指示された姿勢と現状の姿勢の差を見て、指示通りの姿勢に補正する働きをします。

その為、Pの値が上がってくると動き出しが力強くなってくる感じ。

P、I、Dの3つがありますが基本的にフリップ後の跳ね返りや振動を止める働きを担うのはPのみになります。

では、Pは高ければ高い方が良いのかと言うとそうではなく、この値にはちょうど良い加減があり、大きくしすぎるとフリップ後に逆に細かい振動が発生したり、さらに高すぎるとスロットルをあげて勢いよく上昇する際に振動が発生し、飛ぶ音が変になってきます。

指示と現状との差に敏感に反応する上に補正を強力にかけすぎる為に、逆に振動を自ら起こしてしまうというような状況です。

なので、フリップ後の大きな跳ね返りや振動が少なく、大きすぎない値が良いと思います。

次にIの値なのですが、これは唯一多少幅があると言うか、個人の好みが介入できる部分です。

これは例えば機体が直進している状況で、モーターが取り付けられている角度の関係で潜在的に機体は水平の姿勢になる力が働くのですが、その中で前傾姿勢を維持したり、風に吹かれている状況で向きを維持したり、主に動きの継続中にそれを妨害する継続的な要因に反応して補正をかける数値です。

言葉でにすると硬いとか柔らかいとか、そう言う感じに近いと思いますが、数値を変えると動き出しも含めて全体の感触が変わってきます。

Iの値もPID全体に関わってくるので、ここだけ好きにあげたり下げたり出来るわけではなく、Iの変更後は全体を見直す必要があります。

そしてDの値ですが、これはPの補助的なものと考えられます。

Pが指示通りの姿勢になるまで補正を続けるのですが、その際に補正する→行きすぎる(オーバーシュート)→行きすぎを補正する→行きすぎるというプロセスを繰り返すのでその行きすぎを抑制し、反復をより早く収束させる働きをします。

ならDの値は大きい方が良い感じがしますが、Dの値が大きすぎるとモーターやESCが熱くなってしまい、最悪の場合機器の故障に繋がる可能性があるとのことです。

そのため、Dの値を上げる時はモーターやESCの温度に注意して、触れられないくらい熱くなってしまう場合はすぐにDの値を下げる対応が必要です。

今回D Minと言う項目が追加され、これは下記のURLの記述によるとスティック操作に応じて動的にD値が変更する仕様になり、ロースティック時のDの値を個別に設定出来るようになった部分みたいですね。

https://github.com/betaflight/betaflight/wiki/d_min

とりあえずこちらも1/3カットしてみたのですが、上記URLでD値の半分にしてくれ的な事が書いてあるのですが、それは文脈的に3.5で使用してた元の値の半分の意味なのか、現状のD値の半分の意味なのか、、え、英語力が足りない。。

とにかく、フリップ後の振動であったり、スロットルをカットした状態でのターン中のプロップウォッシュの改善にはこのD Minの値の方が影響が大きいっぽい事が書いてあるので、振動の出るタイミングによってはこちらを調整した方が良さそうですね。

最後にFeed Forwardですが、これはまたちょっと毛並みの違ったヤツで、フィードバックに対してフィードフォワードと言うことなので、他のPIDがフィードバックを得てから反応していくのに対しこれはフィードバックが返ってくる前に補正をかけてしまおうと言うことのようです。

https://github.com/betaflight/betaflight/wiki/3.5-tuning-notes#hello-feed-forwar
上記のURLに詳しく記載されていますが、具体的にはどの辺に関連してくるかと言うと、スティックが早く動かされるほど強くプッシュする形で機体の反応性を上げるというもの。

プッシュが大きすぎてオーバーシュートしてしまうのも問題なので、これも上げすぎは良くないよと。

各軸について4つも数値があり、ちょっと守備範囲が被ってる部分もあるのでこれを完璧に調整するのはなかなか難しそう、RollとPitchはまだなんとかなってもYawとかは評価も難しいですよね。

そういうわけで、飛ばしながらの微調整はどうしようかと言うと。。

初めのフライトでまずデフォルトのままで置いておいたFeed Forwardが気になります。

Feed Forward自体では振動は出ないとの話ですが、振動を止めるPに対して強力過ぎないか心配なので、飛ばしてみてマズそうならすぐPを少し上げるか、FFを下げた方がいいか考えつつ。

RollとPitchに関してはとりあえず1/3カットした数値からはじめてデフォルト値くらいを上限に意識し、少しずつPを上げて、まぁまぁ良い線まで来たらIをデフォルトに戻して試して、調整し、Iが大体決まって来たらPをもうちょっと上げてみて、大体この辺と言うところでモーターの熱に注意しながらDを少しずつ上げて、最終プッシュ感に不満があったらFeed Forwardでもいじろうかな、不満がなければそのままで。

テストフライトの内容は急上昇とRollフリップ、Pitchフリップ、鋭いターン(スロットルを切って少し流すのと、スロットルを切らずに曲がる)とかで振動をみます。

Yawに関しては数値が高いとYawロール時に上昇してしまうそうなので、今の値とデフォルトの値でYawロールしてみて、変に上昇しない方をベースに、どちらかに寄せるか、問題なければそのままで良いかなと。

あとはリファレンスとしているAlienと交互に飛ばして、ちょっとちょっと数値を変えたり変えなかったり。

AlienがKissFCなので、機体サイズも違い、FCも違うのでその感触まで持っていくのは僕のスキルでは難しい様で、大体いつも良いところで諦めてしまいます。

こんな感じで良いでしょうか、テストフライト後に修正した数値は今後掲載しようと思いますので、似たセッティングの方はご参考頂けたらと思います。

PIDFのバランスはやはり難しいのでデフォルトを凄く参考にしたいですし、全てデフォルトで問題なければ、それでも良いのではないかと思います。

レースとフリースタイルでは求める部分が変わってくるという話ですし、結局自分の好みも数値に影響してしまうのは仕方ないかと、ただDの高すぎだけは注意してくださいね。

まだもう少し設定項目があるのですが、長くなってしまったのでここまでを前編とし、続きは後編という形で掲載することにします。

こうやって設定ひとつひとつを見ていくと、本当に飛行するというのは大変なことだなぁと思います。

そしてフライトコントローラーに搭載されているテクノロジーと言うのか、高度なソフトウェアと言うのか、超高速な演算処理と言うのか、もう本当になんて言うか、頭が下がりますね。

もし間違った事が書かれていたら訂正しますのでお問い合わせからご連絡頂けたらと思います。

4.0.2PID Tuningタブ後編

ちょっと前回抜けてしまいましたがMin_Dの上にひとつ区画がありました。

Angle/Horizonの区画、今回Horizonはモードスイッチにも割り当てないつもりですが、Angleモードなどで水平に戻る補正の強さと角度の上限をここで設定できます。

今回この機体ではほぼ使うつもりがないのでデフォルトのままにしておきます。

次にPID Controller Settingsですが、上からFeedforward transition。

これは前回のFeedforwardがスティックを素早く動かした時にプッシュするという話なのですが、スティックの0付近でその効果を減衰させるかどうかと言う話です。

レースの人は0が良いみたいですが、フリースタイルは0.5〜0.1にとのこと、参考にしているパイロットが0.5なので0.5ではじめてみますが、場合によっては0.2とかまで下げても良いかもしれませんね。これはレーツにも関係して来そうですね。

次にVbat PID Compensationですが、これはバッテリーの電圧に応じてPID値を変更するというもので、元気がなくなってきてもしっかり止まるみたいです。オンにします。

その下のSmart Feedforwardですが、これは右側のハテナマークを翻訳したりした結果、PとFFが同時にアクティブになっている時にどちらかの大きい方だけ有効にする事でDを上げる事なくオーバーシュートを防ぐものだそうです。

3.5ではPとDとの比較だったような、なんか思ってたのと違うかもしれない。

これはONかOFFかで大きく設定が変わってきそうですね、参考にしているパイロットがOFFなのでOFFにしてやってみようと思います。

聞いた感じ、FFとPを参照するので、フィードバックとは無関係に動作するFFの特性と矛盾するような、処理するのにPを参照する必要があるなら反応性が落ちてしまうような、そんな感じがしますが、どういう事なんでしょう。

逆に、FFの上にPがガツンと来たら大きくなりすぎてまずいのかな、ちょっと混乱して来たので、また分かったら追記します。

その下のI Term Relaxに関してはフリースタイルの場合AxesをRPに、TypeをGyroにしましょうという事なので、この設定でいきます。

次の、Integrated Yawですが、これはYawのチューニングを簡単にできる可能性があるものの実験的なオプションだそうですので、とりあえずOFFで。

次に出てくる区画がAnti Gravity ModeとAnti Gravity GainですがAnti Gravityに関しては下記
BetaFlightセットアップ (2) 4.0.2Configurationタブ設定後編
で設定したものの詳細設定になります。

 smoothはスロットルの変化率に滑らかに比例してIの値をブーストするモードで、Anti Gravity Gainの方はとりあえず一旦5ではじめて、違和感があったら調整します。

次に右側に目を写すと前回紹介したレーツのグラフの下に、Throttle MID、Throttle EXPOの区画があります。

これはプロポの方の設定でいうスロットルカーブの様なもので、スロットルのゾーンに応じてなだらかにしたり急にしたり出来る設定ですが、これも飛ばしてから必要なら検討します。

機体の総重量に対して推力が高いor低い場合はここの調整でコントロールしやすくなったりするハズです。

次にTPAとTPA Breakpointの設定ですが、これはスロットルが上がるにつれてPIDを減衰させて高スロットル状態での振動を防ぐ機能の最大減衰量と減衰開始位置の設定になります。

BetaFlight4.0~からはこのTPAがデフォルトでDのみに対しアクティブだそうで、もしPもアクティブにしたい場合CLIから操作が必要みたいですね。

レースの場合や、ガンガンフルスロットルにする方はこの辺の設定が重要になって来そうですね。通常、フリースタイルの場合TPAの使用量は少ないとの事ですし自分はとりあえずデフォルトのままで様子を見ることにします。上の図のイメージがそのままデフォルトですね。

その下のThrottle LimitとThrottle Limit%、これは4.0~から追加された項目のようですね。

これはフルスロットルに近い状況下で瞬間的なノイズが発生した場合、Airmodeの特性でそのノイズがその他のモーターに反射され、急激な降下が起こりオーバーシュートやモーター信号のデジタルクリッピングの原因になると。

あるとないとでは、あった方が絶対に良さそうですが、あんまりフルスロットルしないので、とりあえず一旦オフで。

飛ばしながらフライトに影響を感じない程度に設定していけば安全対策になりそうな感じがしますね。

さて、PID Tuningタブのメインは一旦ざっと見たのですが、実はこのタブにはもうひとつページがあります。

Profileの下辺りにPID SettingとFilter Settingをさらに選ぶタブがあり、Filter Settingを選択するとフィルターの設定画面に移動できます。

ちょっと画像が別れちゃって変な感じで表示されてるかもしれませんが、これがデフォルトの設定でした。

ちょっと考えましたがデフォルトのままで、まずテストしようと思います。

Gyro Lowpass 1 Dynamic Max Cutoffの値は理想的には機体の実際の回転数に近い値にするのが良いようなので、3インチのこの機体は本当はあげた方が良いかもしれませんが。

典型的な5インチの場合最大回転時のノイズが450-500hzであるものの、小型のプロペラの場合一般的により速いとの事です。

フィルターとはそもそも何かという話ですが、フィルターは普通にフィルターの意味です、エアコンにもフィルターが付いてますし、春に花粉を吸い込まないように付けるマスクもフィルターみたいなものですよね、そう言うイメージです。

周波数の話なので音楽とかやってた方はかなりイメージが近いと思いますが、Lowpassは文字通りLow(低い)Pass(通る)という、低い周波数帯だけ通過させるフィルターという意味で、振動や電気的原因で生じるノイズをカットしてくれるものです。

ノイズが通過してしまうと、ジャイロがノイズを検出し、PIDによって増幅されてモーターにフィードバックされますが、モーターはノイズ周波数ほど早く回転できないため、ノイズの為に流れる電気は熱を発生させ、ESCやモーターなど機器の破損に直結します。

一方で、フィルターを沢山かければ良いかと言うとそうではなく、フィルターをかければかける程動作に遅延が発生し、遅れが大きいと姿勢の維持や振動の抑制も遅れるので、プロップウォッシュの原因になるそうです。

フィルターをできるだけかけずに済むようにするには、綺麗なフレーム、モーター、プロペラ、アンテナなどの固定と、キャパシターを使用して電気的にもクリーンにする、などハードウェア的な対策が重要との事。

自分の場合は曲がったプロペラも曲げ直して使ったりもしますし、モーターも結構痛んでいる感じですし、特にこの機体はフライトコントローラーもハードマウントだし、軽量化の為にキャパシターも外してしまったので、とてもクリーンとは言えないのではないかと。

レーシングカーのように繊細なセッティングはこの場合恐らくリスクが高く、もうちょっと雑なセッティングでも飛んでくれるのが良いな。

変更できる数値なのですが、察しの良いかたはすでにお気づきかと思いますがLowpassフィルターが共通して使われている所から、パスすべき重要な部分はローにあるという事。実際、下記のTuning Notesによるとスティック入力と必要なモーター応答は全て低周波数で発生し通常は50hz未満だそうです。

https://github.com/betaflight/betaflight/wiki/4.0-Tuning-Notes

つまり、数値は上げれば上げるほどより多くの帯域をパスする為ノイズを通すリスクも高まると同時に動作は速くなり、逆に下げれば必要な帯域以外の多くの部分をフィルタリングする為ノイズを防ぐ一方遅延は大きくなると。

PT1とBIQUADではBIQUADの方が強力なフィルタリング(少ノイズ、遅延大)、PT1はその逆との事です。

Dynamicと書いてあるのは状況に応じて可変できるフィルターらしく、MaxとMinの設定がありますね。

Notchと書いてあるのはある特定の帯域だけをカットするフィルターでその範囲が狭いものの事だそうです。ピンポイント悪いノイズをカットするのに使うみたいですね。その悪い帯域の特定はBlack Boxでログをとって探す以外に方法がないのではないかと思います。

ギリギリを攻める場合はやりがいのある設定とも考えられますが、リスクもあるのでフィルター設定の変更は慎重にしなくてはならないです。

新しく調べて分かったことや間違っていた事が分かったら随時追記していきます。

ここが済めば残りはもう少しですね。そもそもアームしないとか、うまく飛ばなかったら急いで設定を見直さないといけないですが。

今回はここまで!

続き(4)は、4.0.2modeとOSDタブ・BLHELI CONFIGURATOR になります。

Betaflight

JACK によるブログ

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

ピックアップ