Armattan Badger 5" Kit (バンドル) <10> Dynamic Idle Val

今回取り上げたいのはDynamic Idle Valueという設定値です。

これは最近追加された項目で、ちょっと面白そうだったのでいくつかの設定を試してみたのですが、設定方法は下記のGithubのページにも記載がありますので合わせてご参考ください。何度も読んでみたのですが、ちゃんと理解できたという感じまでは行けず、今回の記事は参考程度にご覧いただけたらと思います。

Tuning Dynamic Idle
https://github.com/betaflight/betaflight/wiki/Tuning-Dynamic-Idle

 

Idle Valueと聞くと、Configurationタブにある上記画像の、Motor Idle Throttle Valueの事と思う方も多いのではないでしょうか。

Betaflight4.1で追加されたPID Tuningタブ内に追加されたDynamic Idle Valueと従来のMotor Idle Throttle Valueの違いに関しては、どうやらMotor Idle Throttle Valueは最小スロットルの割合(パーセント)を設定して管理するのに対し、新しいDynamic Idle ValueはRPMデータで管理するのが大きな違いのようです。

従来のMotor Idle Throttle Valueのスロットルの割合で管理する場合、回れという指示を出す所までの管理になるので、抵抗がある場合などに実際にどれくらいモーターが回っているかという所まではわからない事になります。

一方で、Dynamic Idle ValueはRPMデータを参照して実際に回っている回転数で管理するらしいので、より正確に管理できそうですね。
もちろん、上記画像赤い四角で示したBidirectional DSHOTを有効にしていないと利用できません。
今回はRPMフィルターも使用しているので、当然Bidirectional DSHOTは有効です。

設定方法を読んで、設定方法がよくわからなかったのですが、自分の理解の範囲だとまずMotor Idle Throttle Valueを決めるところからはじまるようです。

出発点として、とりあえず設定する事もできて、その場合はDynamic Idle Valueを20に設定します。この場合のMotor Idle Throttle Valueはどうしたら良いかという部分が見つけられなかったのですが、恐らくデフォルトの5.5で良いのではないかと思います。Motor Idle Throttle Value とDynamic Idle Valueは必ず合わせて設定する必要があるとの事。

ちなみにDynamic Idle Value=0がデフォルトで、これだとDynamic Idle Valueはオフで、Motor Idle Throttle Valueのみでの管理になります。

そもそも、モーターの最小回転数を減らす事にどんなメリットがあるのかという点ですが、これは分かりやすく、ハングタイム(背面状態での滞空時間)を伸ばす事が出来るという点がメリットとなります。

スロットルスティックを最小の状態で、機体が背面状態にある場合、なるべくモーターは回らない方が地面に向かって推進する力を生じないので、長く浮いていられる訳ですね。

一方で、デメリットもあります。というか、デメリットの方が多い感じもするのですが、スロットルカット状態での回転数が下がるということは、同時にモーター回転の立ち上がりが遅れることを意味します。

その為、バウンスバックやプロップウォッシュが発生しやすくなる、スロットルカット状態やスロットルカット状態からの立ち上がりで機体の応答性が下がる、などのデメリットがあります。

上記はMotor Idle Throttle Value=3.5、Dynamic Idle Value=14で飛行し取得したログなのですが、赤いラインがGyro[roll]、青いラインがSetpoint[roll]黄色いラインがRC Command [throttle]で示されています。

これだけ見てもちょっとよくわからないのですが、黄色いラインが下がりきって(スロットルカット)からの一番左の赤い山(Setpointから逸脱したGyro)に注目していただけたらと思います。

続いて、上記はMotor Idle Throttle Value=5、Dynamic Idle Value=20で飛行し取得したログで、ラインの色と対応する項目は先程の画像と同じです。

動きとしてはかなり近い瞬間をピックアップしました。もちろんスティック操作のタイミングや速度などが全く同じではないので比較は出来ないのですが、こちらの設定の方がスロットルカット時してからの一番左の赤い山(Gyro)が小さい事がわかります。

再び、Motor Idle Throttle Value=3.5、Dynamic Idle Value=14のグラフです。先程の画像の続きなのですが、スロットルカット状態でフリップを行いSetpointが大きく動いた時のGyryoの応答性を見てみましょう。

上記画像のように赤いラインで時間を表示するにはMac版の場合キーボードショートカットMで表示出来ます。そのままグラフをスライドすれば、もう一本ラインが現れて2本のライン間の時間を見ることが出来ます。

上記画像を見ると、GyryoがSetpointをふんわり追従しているので遅延を計測するのもざっくりになってしまうのですが、大体0.66msくらいの遅延でGyryoがSetpointを追従しているようです。

もう一度Motor Idle Throttle Value=5、Dynamic Idle Value=20のグラフに戻って、同じように計測すると大体0.28msくらいでGyryoがSetpointを追従している事がわかります。

GyryoがSetpointを追従する際にバウンスバックがほとんどない事や、比較すると全体としてシャープに追従しているのがパッと見でもわかるかと思います。

Motor Idle Throttle ValueとDynamic Idle Valueの設定値が低い場合、飛ばしていても応答性の遅れみたいなものは感られるかなと思います。特にスロットルカットから急激にスロットルを上げる時なんかは、機体の性格がほんのちょっと変わるような印象を受けるかも知れません。

とはいえ、Motor Idle Throttle Value=3.5、Dynamic Idle Value=14では全然ダメかというとそういう訳ではなく、スロットルカット時は制御不能になってしまうという程では全然なく、若干甘いくらいの話で(FFを高めにしていると恐らくバウンスバックはかなり出ますが)、何よりハングタイムは確かに伸びている感じがします。

びっくりする程落ちてこない、という感じではないのですが、ちょっとゆっくり落ちるようになったな、という感じになります。5.5インチなど表面積が大きく滞空時間が伸びるプロペラを合わせて使用したりすると、もっともっとハングタイムを伸ばす事が可能かも知れません。

何を優先するかは人それぞれになりそうですね。折角フリースタイルなので、個性的なスタイルを追求出来たら面白いのではないかと思います!
さて、肝心な設定方法なのですが、冒頭でURLを貼ったGithubのページを読む限り、モーターを実際に回してRPMテレメトリーの数値を計測して計算する方法と、紹介されている数値をそのまま入れる方法と、2パターンがあるのかな?と思います。この?は英語の読解力不足の現れなので、英語ができる方はそのまま原文を読んでしまう方が早いです。

組み合わせで使う場合。
Motor Idle Throttle Value=5+Dynamic Idle Value=20
Motor Idle Throttle Value=4+Dynamic Idle Value=16
Motor Idle Throttle Value=3.5+Dynamic Idle Value=14
Motor Idle Throttle Value=3+Dynamic Idle Value=12

という組み合わせで使って良さそうです。Githubのページには書かれていませんが、行間を適当に推測して下記の組み合わせも試しましたが、別に問題はありませんでした。
Motor Idle Throttle Value=5.5+Dynamic Idle Value=22
Motor Idle Throttle Value=4.5+Dynamic Idle Value=18

次に計算する方法なのですが、まずMotor Idle Throttle Valueを決めます。
例えばMotor Idle Throttle Valueを5.5%(デフォルト)に設定するとしましょう。

Betaflight Configuratorのmotorタブ、もしくはBLHeliSuiteで、現在設定しているMotor Idle Throttle Valueでモーターを回してみて、RPMテレメトリーの数値を確認します。

RPMテレメトリーの数値は緑の円で示した数値ですね。赤い円で示した数値を1055にしてモーターを回しているのですが、これが5.5パーセントという事です。

RPMテレメトリーで一番大きな数値は2番モーターの2100で、この数値を利用しましょう。

Githubのページによると、2100から2つのゼロを取り除いて21。さらにその80%(20%を引く)と16.8。Dynamic Idle Valueに小数点以下は入力出来ないので、この場合16か四捨五入して17を入力すれば良いのではないかと思います。

計算した結果を入力する方法も試したのですが、個人的には先程の決まった数値をそのまま入れてしまう方がそれぞれの効果を実感しやすくて良いように感じました。

また、モーターそれ自体に抵抗があったり、軸が少し曲がっていたり等、モーターそれぞれの個体によってどこまで下げられるかは違い、もしモーターが回れないほど低い値に設定してしまうと飛行中にモーターが停止して墜落(どこか1つが止まるので回転しながら墜落する、いわばデスロールと呼ばれる状況)する事になるので注意が必要です。

数値が高い場合はそんなに心配する必要がないと思うのですが、低い設定値を攻める場合は飛行前に必ず設定したMotor Idle Throttle ValueとDynamic Idle Valueでモーターが回転できるかの確認を行った方が安全です。

飛行中はプロペラに対し風の抵抗などの負荷もかかるので、Dynamic Idle Valueをベンチでモーターがギリギリ回る最小のRPMテレメトリー数値に設定してしまうとデスロールしてしまいます(デスロールしました)ので、特に低い値を設定する時はご注意ください。

さて、Armattan Badger 5" Kit (バンドル)の記事ももう10回目となりました。Betaflightはこのくらいにして、次回からはemuflightに切り替えて再度設定を行っていきたいと思います!

ArmattanBetaflight

JACK によるブログ

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

ピックアップ