Betaflight 4.0 から導入された双方向DSHOTの機能を使用するRPMフィルターは、モーター由来のノイズを大幅に取り除くことができ、スムーズなフライトにつながります。前回の記事で双方向DSHOTを有効にしたのでさっそくテストフライトを行ってみました。
前回記事はこちら
テストの条件
使用した機体は自作3インチ機で、こちらの記事で制作した物です。
フライトは出来るだけ、ローからフルまでスロットルを使用してフリップやパンチアウトを行いましたが、さすがに大きなスロットル開度はサンプル数が少ないです。
使用した設定は、Betaflight 4.1.0 RC5 のデフォルト設定から、RPMフィルターを使用するために少し変更しました。変更内容はダイナミックノッチフィルターの範囲を狭めました。これは前回の記事でコマンドから設定した内容です。
また、効果が簡単に分かるか不安だったので、以前クラッシュして曲げてしまったプロペラを、適当に手で少し修正した物を使用してみました。これで振動が大きくなりモーター由来のノイズも大きくなるはずです。
フライト結果
まずフライト中の感想は、ONとOFFでは私のような経験が浅い者には飛行特性の違いは分かりませんでした…たぶんもう少しPID設定を決めていくと分かるのかもしれません。
飛行中のモーター音は澄んだ音になった感じがします。元々静かな機体でしたが新品のプロペラならさらに静かになるんじゃないでしょうか。
フライトを終えた直後のモーターをさわってみて驚きました。ほんのりと温かいだけです。この機体に限らずいままでこれだけモーターが低温なのは初めてです。
なお曲がってるプロペラを使用しているので機体の振動があるはずですが、FPV映像では振動は感じられませんでした。後に録画した4K動画を見ると細かく振動しているのが分かりました。勘違いする方がいるかもしれませんが、RPMフィルターは機体の振動自体を取り除くことは出来ません。ジャイロに入って来る信号からノイズを取り除くだけです。
フィルターの効果を見てみる
PIDtoolbox v0.35 でRPMフィルターの ON と OFF でどれだけ違うか視覚的に見てみました。ログ取得のためのブラックボックスの設定は、ログレート:2KHz デバックモード:GYRO_SCALED でフィルタリングされる前のジャイロデータを記録するようにしました。
RPMフィルター OFF
RPMフィルターがOFFの時のノイズ分布図です。
左側の3つの図がフィルタリング前のジャイロデータです。上からロール、ピッチ、ヨーの各軸のデータになります。色が明るいほどノイズが多いことを表しています。図の中央に明るい右肩上がりの帯が見えますが、これがモーター由来のノイズになります。スロットルを開けるに従い周波数が高くなっていき 550Hz 付近で頭打ちになっています。図の下の方で周波数0から50Hzくらいに見える明るい横帯はRCの制御信号になりますので、ここはフィルタリングしてはいけない範囲です。
右側の図はフィルタリング後のジャイロデータです。モーター由来のノイズが薄くなっていることが分かります。
RPMフィルター ON
RPMフィルターをONにしてみました。
同じく左がフィルタリング前、右側がフィルタリング後になります。
フィルタリング後を見るとモーター由来のノイズが全く見えなくなっています。
恐るべしRPMフィルター!
まとめ
まだ一回だけのテストですが、RPMフィルターは凄いって事が分かりました。ではこれが実際の日々のフライトにどう影響するのでしょうか?
まず、モーターが熱くならないってことは電力が熱となっていない。すべて効率よくモーターの回転に電力が使用されているってことですね。つまり燃費(電費)が良くなるって事で若干フライト時間が伸びるかもしれません。
フィルタリングでの遅延が減るのでクイックな反応が必要なレースで有効になるのではないでしょうか。
また、少々バランスの悪い (手で直したような) プロペラでも使用できるってことは案外大きいかもしれない・・・(経済的にも)
ただし前述したようにモーター由来の機体の振動や、フレームの共振等の振動はありますので、HD撮影機などではジェロは出るでしょう。RPMフィルターはモーター由来のノイズを除去するだけです。
私としては全機にRPMフィルターを使用したいですね。ただ ESC の BLHeli_S のファームウェアが有料なのがネックですが・・・