You are currently viewing Betaflight 4.3 Tuning Notes 日本語訳

Betaflight 4.3 Tuning Notes 日本語訳

イントロダクション

Betaflight 4.3にアップデートした後は、必ず最新の10.8 Betaflight Configuratorを使用してください。10.8と10.7以前のコンフィギュレーターは4.3では正常に動作しません。

F4 プロセッサは、4k PID ループを実行する必要があります。F411 のユーザーは DShot600 ではなく DShot300 を使用する必要があり、8k PID ループがブロックされます。ほとんどのF411は120Mhzにオーバークロックされるべきですが、108Mhzまでしか許容できないものもあります。

4.3では、新しいスライダーチューニングアプローチとプリセットが追加されました。パラメータが変更されたため、以前のバージョンの CLI ‘diff’ や ‘dumps’ を貼り付けないでください。適切なプリセットが素晴らしい結果をもたらすはずです。スライダーは、チューニングの最終的な「調整」を簡素化します。

経験豊富なユーザーで、チューニングやフィルターに数値入力を使用したい場合は、まずスライダーを無効にしなければなりません。これはConfiguratorで行うのが最も簡単です。

初めてアーミングする前に、すべての設定を注意深くチェックしてください。PID、フィルター、レート、モーター設定、モーター回転を確認します。最初のフライトでは、安全な場所でアーミングし、静かに飛行し、セットアップやビルドに問題がないかを確認します。

最高のパフォーマンスを得るために、RPMベースのフィルタリングを使用することをお勧めします**。回転数フィルタリングの有効化と設定については、こちらをご覧ください。

250hzまたは500hz無線リンクのユーザーは、適切なプリセットを選択する必要があります。500hz 無線リンクでは、feedforward_smoothing を 65 ~ 70 に設定し、2 ポイント平均化する必要があります。250hz 無線リンクでは、feedforward_smoothing を 35-40 に設定し、2 ポイント平均を使用する必要があります。

CPU使用率が以前よりはるかに高い値で報告されるようになりました。これは、表示方法の変更にすぎませんので、問題ありません。75%程度になるまで気にしないでください。

Betaflight 4.3の特徴

より良いプロップウォッシュ性能と、よりスムーズで正確なフライト体験、そしてより簡単なセットアップとチューニング体験 – Betaflight 4 のポテンシャルをフルに引き出すために。

4.3は、自発的な開発・テストチームによる何千時間にも及ぶ作業で、熱心にコーディングされ、慎重にテストされたアップデートのおかげで、重要な進化を遂げました。ページ末尾にクレジットがあります。

新しいPIDベースのチューニングスライダー
チューンを微調整する必要がある場合でも、ゼロから構築する場合でも、コンフィギュレーターに、よりシンプルで包括的な、ファームウェアベースのチューニングスライダーが追加されました。これらはデフォルトでアクティブになっています。スライダーの位置はクアッドと一緒に保存され、OSDまたはLUAを介して変更することができます。新しいエキスパートスライダーは、ピッチ:ロールバランス、DMax:Dmin、Pに対するIの微調整を可能にします。

プリセット
素晴らしい、包括的な新しいプリセットシステムです。フープ、ツイッグ、5インチレーサー、フリースタイルセットアップ、Xクラスなど、あなたのクワッドに最適なチューンを箱から取り出して簡単に適用することができます。また、プロポの設定やVTXの設定などもプリセットされています。ユーザーは、「公式」Betaflightプリセットと「コミュニティ」プリセットから選ぶことができます。どちらもBetaflightの開発者によってチェックされています。外部プリセットリポジトリへのアクセスも提供されていますが、Betaflightはそれらのコンテンツを制御できないため、使用する際はご注意ください。

より高いPとDでより少ないジャイロフィルタリング、より良い’out of the box’性能を提供します。

D の設定方法を変更しました。Derivative と D_Max の設定があります。Derivative 値は、スムーズな飛行中の D 値を設定するものです。急旋回するときはDがDmaxまで上がり、速い動きに対してより効果的なダンピングを提供し、直進するときはDがDerivativeに戻ってDノイズとモーターの熱を抑えます。2つの数値の差が少なくなり、Derivativeの数値が大きくなっています。4.2とは異なり、クリーンなHDやシネマティックなビルドでより強い直進安定性を求めるのでなければ、通常はDスライダーを高くする必要はないでしょう。

より正確なループタイム
EXTIトリガーによるSPIジャイロ読み込み(サポートされているボード上)など、スケジューラーとDMAコードを大幅に改善し、非常に安定したループタイム、スムーズなフィルター性能、高速なロギング、CPU効率の改善を実現しました。注:4.3で報告されるCPU負荷は、計算方法の変更により、4.2で報告されるよりも高くなっています。負荷平均に基づく数値ではなく、プロセッサがタスクの実行に忙殺されている時間の割合を報告するようになりました。

マルチダイナミックノッチ
完全に書き直され、大幅に改善された、SDFTベースのマルチダイナミックノッチです。複数の共振ピークを同時に、より正確に、より速く、低レイテンシーで追跡することができます。これにより、全体的なローパスフィルタリングを低く抑え、パフォーマンスを向上させることができます。

上記の2つの変更により、入力される「ジャイロノイズ」が大幅に改善されました。これにより、デフォルトのジャイロフィルタリングを以前より高くすることができました。より高い D と相まって、これはプロップウォッシュを改善します。多くのクアッドがジャイロフィルタのスライダを強く右にした状態で飛ぶことができるようになりました。

PT3ベースのRCスムージング – RCスムージングが完全に見直され、最適化されたPT3(3次)スムージングを使用し、完全にフィルターベースとなりました。RCスムージングは、オーバーシュートがなく、非常にスムーズなレスポンスで理想的なフィルター形状が適用されるようになりました。オートスムージング値は、低レイテンシーから映画のような滑らかさまで、あらゆるものを提供します。

RPMクロスフェード
重複するRPMフィルタリングノッチを低回転域でスムーズに完全に無効にすることができるようになりました。これにより、低回転時のフィルター遅延が大幅に減少します。モーター音の違いをすぐに実感でき、低スロットルでのプロップウォッシュも少なくなります。

PT2 と PT3 ローパスフィルターオプション
古いバイクアッドローパスフィルターオプションは、遅延、オーバーシュート、レゾナンスの問題から、Gyro では使用できなくなりました。以前のGyro biquadローパスユーザーはPT2に変更する必要がありますが、4.3ではシングルまたはデュアル1次フィルタリングがGyroに最適であることがわかると思われます。Biquad フィルタリングは、PT2 よりもハードなカットが有効な D では、まだ利用可能です。

フィードフォワードジッターリダクション
4.3 では、フィードフォワードジッターリダクションが導入され、フィードフォワードトランジションが改良されました。フィードフォワードに「ダイナミックトランジション」効果を与え、遅いスティック入力時にはシルキーでスムーズなレスポンスを、速い入力時には即時でキレのあるフィードフォワードのレスポンスを得ることができます。通常、トランジションはもう必要ありません。ジッター低減は、トランジションタイプの効果を、どのようなスティック角度でも得ることができます。ジッター低減は、特に新しい高レートRxリンクの場合、低速動作時のRCリンクノイズを減衰させます。レーサーはフリースタイラーよりも低いジッター低減値を使用する傾向があります。なぜなら、スティックの反応を遅らせることなくリンクノイズを減衰させることができるからです。

その他のフィードフォワードの改善
ブースト時の2次スムージング、遅いスティック移動時のソフト補間、より正確な重複パケット補間ができるようになりました。ほとんどの低速無線リンクでは平均化が不要になり、デフォルトでオフになりました。高速無線リンク(250Hz以上)は、通常、2ポイント平均化とより強力なスムージングが有効です。一般的なリンクタイプに合わせたプリセットにより、無線リンクの設定が容易になりました。

アンチグラビティの改良
 Pブーストが追加され、Iブーストのタイミングが最適化され、最も必要な時にピークに達するようになりました。これにより、急激なスロットル操作時の安定性が向上しました。デフォルトの3.5は慎重にテストすることなく増加させないでください。

ダイナミックジャイロフィルターエキスポカーブ
フィルターエキスポカーブを調整することで、スロットルアップ時にダイナミックジャイロフィルターのカットオフ値をより早く上昇させ、プロップウォッシュを改善します。

ダイナミックアイドルの改良
ダイナミックアイドルコードが大幅に見直され、以前より速く、より正確に回転数を安定させることができ、新しいシングルサイドPIDコントローラーで微調整ができるようになりました。また、設定もよりシンプルになりました。回転数の測定やD_Shotアイドルパーセンテージの値を変更する必要はなく、その値は通常の設定のままです。DShotテレメトリーを有効にし(機能していることを確認し)、PIDチューニングページで適切なアイドル回転数を設定するだけです。一般的には3000-4000rpmが効果的です。これにより、低回転からのモーター回転が改善され、低スロットル入力の応答性が向上し、同期不良のリスクが減少します。また、モーター駆動をゼロにすることで、必要に応じてブレーキを強化し、逆ハングの時間を長くすることができます。

リニアおよびダイナミックミキサーオプション
これらは Betaflight の純正ミキサーコードの代替となるものです。ダイナミックオプションを使用すると、水平飛行モードやシネマティックフライトでのバンプやランディングのレスポンスが悪くなる場合があります。

レベルモードとホライゾンモードでのフィードフォワード
ホライゾン、レベル、レベルレースモードでフィードフォワードが有効になり、レベルモードの角度変更が速くなり、ホライゾンモードはフリップや他の速い動きでアクロと同じように反応するようになりました。これらのモードでのフィードフォワードの量は、他のPIDパラメータと同様にプロファイルで調整し保存することができます。

Actual Rates は新しい Betaflight のデフォルトです

Actual rates はよりシンプルで直感的なレート設定方法で、現在はデフォルトになっています。デフォルトのレートは、以前のデフォルトよりも、センターではあまりアグレッシブではなく、ミッドスティック付近でよりプログレッシブになっています。フルスティックのデフォルトの最大ロールレートは、以前と同じです。Betaflightのレートはオプションで、これまで通り使用できます。アップデートの際はご注意ください。古いレート値をコピー&ペーストする場合は、レートタイプもコピー&ペーストしてください。この計算機を使用して、古いレートを実際のレートに変換してください。

CrossfireV3とGhost RCリンクの改善
最新のCrossfire、ELRS、Ghostプロトコルのサポートに加え、betaflightのRCコードはフロートデータパスで12bit以上のRCデータをサポートし、16hzまでの非常に低いRCリンクの取り扱いを改善、1000hzまでの高速リンクに完全対応、ドロップアウト後のRCリンク復帰時にフィードフォワードグリッチをより減衰させることができるようになりました。

ELRS V2オンボードレシーバー用のELRS over SPIをサポートしました。これを実現するために協力してくれたPhobosと他のELRS開発者に感謝します。

FrSky OSD の修正
Asizon が修正してくれました。

Luaスクリプトの更新
LUA経由でOSDにRSSIを表示したり、無線機からスライダーをコントロールしたり、その他多くの変更がありました。

CLIコマンド名の変更
多くのCLIパラメータが再命名されました。その結果、多くのコピー&ペースト作業で、意図した変更をすべて行うことができなくなりました。CLI の ‘get’ コマンドを使用すると、関連する値をより簡単に見つけることができるようになりました。例えば、get gyro_lp はすべてのジャイロローパスフィルタ設定を見つけ、get feed はすべてのフィードフォワード値を見つける、などです。

**4.3はデフォルトでうまく飛ぶはずです。ほとんどの場合、あなたのハードウェアにうまくマッチすれば、プリセットは、追加の調整なしで、素晴らしい飛行を見せてくれるでしょう。上級者は、簡単なスライダー調整で実験したり、OSDやLUAを使ってフィールドでスライダーを使用することができます。

もしあなたがBetaflightの初心者なら、以前のチューニングノート(4.2, 4.1)を読んで、ここでカバーされていないトピックがあれば、読んでみてください。

問題解決

バウンスバック

4.2チューニングガイドを参照してください。ほとんどのバウンスバックは、低オーソリティのクアッドで過度のIが原因で、通常、iterm_relaxカットオフ値を下げ、トラッキングとD値を上げることで修正されます。フリップやロール、特にフライトの終盤の高速飛行の最後に起こるランダムなふらつきは、通常、過度の低アイドルによるモーターの起動遅れ、オーバープロップ、低回転による弱いESC起動(48kHzやダイナミックESCモード)が原因です。これらは、ダイナミック・アイドルを有効にして、最低回転数を適度に高くする(例えば3500-4000RPM)ことで対処できる。

HD映像のランダムな揺れ

これは、一般的に映画のようなHDアプリケーションの問題です。まっすぐ前に飛んでいるときに、水平線が低レベルでランダムに不安定になることがあります。通常、フレームが柔らかすぎるか柔軟であるか、わずかにバランスの崩れたプロップや摩耗したベアリングによって揺さぶられています。この問題を最小限にするために、次のようなことをお勧めします。

剛性の高いフレームを用意し、ベアリングやシャフトの遊びをチェックし、プロップのバランスをとり、何もかもがぐらつかないようにする。

セットアップが許容できる最大のDにチューニングし、Pを高く設定しすぎないようにする。

通常よりもDフィルタリングが必要かもしれません。モーター温度をチェックし、アイドリングの軋みやD共振の兆候に耳を傾けてください。

TPAをクルージングスロットル値の直下に設定し、スロットル値が高いときにDが大きくなりすぎないようにします。

Pが高すぎると、高速旋回時にふらつきが発生し、音も大きくなり、ランダムなふらつきの問題を悪化させる可能性があります。高速ターンをしないのであれば、Pを高くしてもよいかもしれません。

クアッドが威厳を欠く場合、エキスパートモードのI調整スライダでIを減衰させます。

OpenTxのハードウェア設定で、ADCにチェックが入っていないことを確認します!

フレームが超高剛性であることを確認し、ぐらついたり、バタバタするものがないことを確認します。

コンデンサが大きいことを確認してください。

ジャイロチップが正しく動作していないこともありますし、ESCがうまく動作しないこともあります。もし、すべて失敗したら、完璧に飛行するクアッドからこれらのパーツを変えてみてください。

ジッター低減係数を10-12にしてください。フィードフォワードが原因で悪化しているかどうかを調べるには、フィードフォワードをゼロにしてテスト飛行をしてください。変化がない場合、フィードフォワードは問題ではないので、通常の設定で使用することができます。

高レベルのRCスムージング(90以上のオートスムージング)は、古いジンバルや「親指ブレ」の不規則な挙動を減衰させることができます。RCリンクが問題かどうかをテストするには、一時的に広いデッドバンドを設定します。デッドバンドをあまり推奨しませんが、高いデッドバンドのテストでは、スティックが中央にあるときに、RCリンクのランダムなノイズをすべて除去することができます。もしそれで問題が解決しない場合は、RCリンクに原因があるわけではありません。

カメラには非常に柔らかいマウントを使用してください。

ゼロ・スロットル不安定
ESC を 48kHz に設定した場合、24kHZ の PWM に戻す。

3500- 4000 RPMでダイナミックアイドルを有効にします。

推力リニアを25%に設定。

全体のPIDを少し上げてみる。

プリセット

新しいプリセット・タブは、おそらく長い間コンフィギュレータの中で最も便利な改良点でしょう。

Betaflightのデフォルトは、もともと、公園で楽しく飛ぶための5インチフリースタイルマシンに合わせて作られたものでした。最近では、5インチレース機、フリースタイル機、シネマティック機には大きな性能差があり、フープ、小枝、ヘビーカメラ機、7-10インチ機、Xクラス機にはさらに大きな性能差があります。これらはすべて、非常に異なるパフォーマンスエンベロープを持っています。

4.3 Configurator リリース(10.8)では、プリセットシステムを提供し、CLIコマンドの1つまたは複数のセットを簡単に見つけることができ、あなたのクワッド、あなたの飛行スタイル、あなたの無線またはVTx設定などに適したチューンを簡単に見つけることができます。プリセットを適用したら、Saveを押してフライトしてください。

プリセットには「オプション」が含まれていることが多く、マシンの一部をデフォルトにリセットするために使用することができます。適用する前に説明書をよく読んでください。

プリセットページは、設定のバックアップと復元を簡単に行うことができます。

警告:何かを変更する前、そしてプリセットを保存する前には、必ずクアッドマシンのデフォルト設定をバックアップしてください。一度プリセットを保存すると、その変更は永久に続きます。保存された変更を元に戻す「簡単な方法」はありません! しかし、一度保存すると、以前の設定をバックアップしていない場合は、元に戻すことはできません。

プリセットはGitHubの「プルリクエスト」方式で評価された後に「承認」され、「十分」であると確信できない限りConfiguratorに含まれることはないのです。

Betaflightに新しいプリセットを追加するには、プルリクエストを開いてください。

外部のプリセットレポジトリもサポートされていますが、Betaflightによってチェックまたは検証されることはありません。

任意のプリセットに関するコメントやフィードバックは、元のプルリクエストを通じて提供されるべきです。リンクボタンはプリセットマネージャーに用意されています。

新しいチューニングスライダー

PIDチューニングスライダーを全面的に見直しました。フィールドでもコンピュータでも、クワッドをチューニングするための非常に迅速でシンプルな方法を提供します。

スライダーの位置はフライトコントローラーに保存され、フィールドでOSDまたはLuaを介して更新することができます。

PとDは、それぞれ独立したスライダーで設定できるようになりました。P:DレシオやP&Dゲインは不要になりました。

ベーシックモードでは、最も重要な3つのスライダー(PI、D、フィードフォワード)のみが表示され、調整範囲も限定されます。

エキスパートモードでは、I、Dmax、DとPのピッチ:ロール比、全体のマスターゲインの微調整が可能なスライダが追加で表示されます。

Expert モードのスライダーがデフォルトの位置にない場合、または Basic モードのスライダーが基本調整範囲外にある場合、基本表示では表示されますが、グレー表示されます。グレーアウトした」スライダーを調整するには、エキスパート表示に切り替えてください。

PI と D のスライダーを一緒に動かし、相対的な位置を同じように保つことで、P:D 比をおおよそ維持することができます。

マスターゲインスライダは、PID全体の強さを増減させることができ、すべてを正確な比率に保つことができます。

スライダはデフォルトでオンになっています。スライダが値を制御しているとき、Configuratorでは数値パラメータの入力がブロックされます。スライダーを使わない旧来の直接数値入力方法を使用したい場合は、まずスライダーをOFFにして無効化する必要があります。

通常のPIDスライダーのONモードはRPYです。これはRoll、Pitch、Yawの3軸すべてを制御することを意味します。クアッドでYawの特別な設定が必要な場合は、RPモードを選択し、Yawだけを直接数値入力で行うことができます。

P と D のバランスと全体の強さが、それぞれのスライダーの位置から視覚的にわかるようになりました。

警告:スライダが有効なときは、PIDやローパスの数値を手動で変更しないでください!スライダはまずOFFにします。まずスライダーをオフにしてください(コンフィギュレーターで簡単にできます)

注意:Configuratorでスライダーを使用する場合、オンフィールドでのチューニングの変更もスライダーで行うようにしてください。スライダーがアクティブな状態でCLI、OSD、LUAを使って数値を変更すると、スライダーと数値のセットアップが矛盾することがあります。数値を保存しておけば、その数値を飛ばすことができます – 消えることはありません。しかし、スライダーがONの画面からPIDやフィルターを保存すると、カスタム値はスライダーから計算されたものに上書きされます。消えてしまうのです。ですから、このような衝突を避けることがとても重要なのです。スライダーを使用する場合は、スライダーにこだわり、現場で調整し、数値は使用しないでください。数字を使いたい場合は、スライダーを無効にしてください。

私たちは、これらのスライダーが初心者と経験豊富なチューナーの両方にとって効果的に機能することを確信しています。基本的な」チューニング方法から「熟練した」チューニング方法への移行を簡素化します。経験豊富なチューナーも含め、ほとんどの人は、オン・ザ・グラウンドでもオフ・ザ・グラウンドでも、チューニングに必要なほぼすべての項目にスライダーを使用できるようになるはずです。

チューニング方法

新しいPIDスライダーは、YouTubeでおなじみのチューニング方法をはじめ、ユーザーが好むあらゆるチューニング「方法」をサポートしています。

簡単なチューニング

新しいスライダーでチューニングする最も迅速で簡単な方法は、PとDのスライダーを一緒に右に動かして、何か「悪い」ことが起こるまで動かすことです。これでP:Dの比率がおおよそ保たれます。モーターが熱くなったり、高速ターンやアーミングで悪い音がしたら止めるか、少し下げます。簡単なチューニングであれば、この方法で十分な結果が得られます。

次に、スティックレスポンス(フィードフォワード)スライダを好みに合わせて調整します。

また、エキスパートモードの「マスタースライダー」を使って、すばやくゲインを「大まかな範囲」にすることもできます。これは、すべてのPIDを厳密に比例して増減させます。一旦、ほぼ正しい状態になったら、個々のスライダーで結果を微調整することができます。

Dファースト」チューニング法

Dファースト」チューニング法は、何か悪いことが起こるまでDを段階的に上げていき、その後1~2クリック緩めて、それ以上上げないようにします。その後、Pについてこのプロセスを繰り返したら終了です。

これは、2つの基本的な考え方に基づいている。

Dを多くすればするほど、Pを多くすることができます。

一般的に、四輪駆動車は許容できる最高のPとDで最もよく追従します。

一般に、クアッドは許容できる最高のPとDで最もよく追従します。Dを増加させる一方で、次のような一般的な兆候があり、少し後退する時期が来ています。

モーターが熱くなる。

アーミングの際にグラインド音やハミング音が聞こえる。

アーミング時にクアッドが騒々しい。

プロペラが曲がっていると、モーターがすぐに熱くなる。

Dをどれだけ走らせることができるかの第一の制限は、ビルドがどれだけクリーンであるかということであることは分かっています。良いベアリング、バランスの良いモーター、硬いフレーム、硬いプロペラを持つ機体は、より多くのDを受け入れることができます。

Dを無理のない範囲で高めに設定したら、何か悪いことが起こるまでPを上げてください。

中高速スロットルのハードターンでPが振動し、フラッタリング音がする。

ステップレスポンスで減衰不足の短時間オーバーシュートやレゾナンスが発生する、あるいは

P振動が発生する。

通常、ほとんどのクワッドでは、PはD値付近か、それより少し高い値になります。

古典的なチューニング方法

この方法では、Dスライダーを通常より少し低く設定し(例えば、Pの⅔)、ユーザーはPを限界まで段階的に押し上げます。通常、フリップやロールの終わり、またはハードな高速ターンで、クアッドが「ぐらつき」、「ひらひら」、「揺れ」始めると停止します。次に、Pをそのふらつきがなくなるまで戻し、Dをできる限り段階的に、しかし通常はPより高くならないように徐々に上げていき、残っているふらつきをブロックしようとします。モーターの熱や騒音でDを上げられない場合もあります。ウォブルをコントロールできたら、Pを1クリック上げて、Dを1~2クリック追加して、コントロールできるかどうか確認することもあります。

目標は、フラッターや共振、モーターの過剰な発熱といった好ましくない問題を起こさずに、両方のパラメーターをできる限り高くすることです。

より正確なループ時間

Steve C Evansは、PIDループのジッターをほぼ完全に除去し、スケジューラの全体的な効率を向上させる大規模な変更を加えました。ほとんどの場合、特別な設定は必要なく、単に動作するだけです。フィルタの精度が向上し、モーターの温度が下がり、より長いフライトが可能になります。

スケジューラとタスクの変更でより正確なタイミングを実現

Betaflightは協調型マルチタスク方式を採用しています。つまり、スケジューラはタスクの実行時間を知る必要があり、ジャイロ/フィルタ/pidタスクの実行などの重要な操作の前に時間があるときのみ、そのタスクを呼び出します。もし、あるタスクの実行時間が予測より長ければ、他の重要なタスクが遅れてしまうことになる。4.2では特にRXとOSDのタスクでこのようなことが頻繁に起こりました。4.3のタスクは、スケジューラがより良いスケジューリング決定を行えるように、予想時間内に完了する確率を高めるように再構築されています。

4.3 では、RPM フィルタリングが有効な場合、F405 および F411 ボードを 8k ではなく、4k で実行するのが最善です。F411 プロセッサの場合、これは強制されます。

F411 は 120Mhz にオーバークロックすることができます。F405のように熱くなることはなく、ほとんどは120Mhzで完全にうまく動きます。ボードに使用されているチップのグレードやその他のボードに関連する要因によって、120Mhzでは不安定でも、108Mhzでは問題ないものもあります; 108Mhzでより安定している場合は、それを使用してください。GitHub経由でお知らせいただければ、ボードのTarget情報を更新できるかもしれません。

DShot300は常に4Kで使用する必要があります。エラーが報告されない場合もありますが、DShot600を使用すると、4Kでループが不安定になることがあります。

ジャイロシンクロと DMA ジャイロデータ転送

4.2では、ジャイロからデータを読み取る際に多くの問題がありました。

プロセッサはジャイロタスクでポーリングアクセスを使ってジャイロからデータを読み込みますが、これは読み込みが完了するのを待つ必要があり、他のことができないことを意味します。

MPU6000のジャイロは更新が不定期です。8回目の更新は125usではなく170usで、その後に80usの更新があります。そのため、ジャイロタスクは170usの間に125us間隔で2つのサンプルを読み、80usのサイクルでの更新を完全に逃してしまうことがありました。

ジャイロの更新レートとジャイロループが非同期であったため、ジャイロのデータが更新され(ジャイロ内で)、そのデータをフライトコントローラが受信して読み取り/処理するまでに、最大 125us のランダムな遅延が発生したのです。

4.3では、これらの問題は以下の方法で修正されています。

DMA(ダイレクトメモリーアクセス)によるデータ転送を行い、プロセッサがデータ転送を開始し、データ転送の完了を待つ間に他の処理を行うことができます。これにより、CPUの負荷が軽減されます。

ジャイロの更新とスケジューラを同期させる。ジャイロからフライトコントローラーへのハードウェア割り込みラインを使用する。使用するこの FC ピンは GYRO1_EXTI リソースによって設定されます。この同期が有効な場合、ジャイロの更新を1回ごとに確実に捕捉します。

EXTIから更新があったことを通知された後、すぐにジャイロからデータを読み込み、その後一定時間データを処理します。

ジャイロの更新をFCに同期させるために、ジャイロからFCへのハードウェア外部割り込み線が必要です。すべてのボードがこれを備えているわけではありません。すべてのボードがジャイロのデータ要求に DMA を使用できるわけではありません。

CLI コマンドの status は、DMA が使用されている場合は Gyros detected 行で dma を報告し(上記メリット 1)、ジャイロが EXTI によって FC にロックされている場合(上記メリット 2 と 3)は locked と表示されます。例えば、DMAとlockedの両方を使用した場合、次のように表示されます。

Gyros detected: gyro 1 locked dma

SPI経由のBlackboxロギングがより効率的に

より高いロギングレートは、より少ないギャップで動作します。ロギングは、上記のポーリングアクセスではなく、DMAを使用して処理されるようになりました。4.2 では、プロセッサはデータブロックが FLASH メモリに書き込まれるのを最大 90us 待つ必要がありました。4.3では、書き込みを開始するまでに5usを要し、その後、プロセッサが他のタスクに取り掛かっている間にバックグラウンドで転送が完了します。 それでも、ロギングはかなりの時間を消費しますので、不要な場合はオフにし、通常の用途では1kHz、フィルターチューニングでは2Khzというように、必要な分だけ高速にロギングするようにしてください。

テクニカルノート

上記のジャイロと FLASH の改良を動作させるためには、SPI DMA が必要である。以下の F745 FC の例では、SPI_MOSI/SPI_MISO が SPI バス 3 (両方とも FLASH アクセスに必要) と SPI バス 1 (両方ともジャイロアクセスに必要) に定義されていることがわかります。バス4にはSPI_MOSIのみが定義されていますが、これはSPI_MISOを使わないOSDにのみ使用されるので問題ありません。

# dma show

Currently active DMA:

——————–

DMA1 Stream 0: LED_STRIP

DMA1 Stream 1: FREE

DMA1 Stream 2: SPI_MISO 3

DMA1 Stream 3: FREE

DMA1 Stream 4: FREE

DMA1 Stream 5: SPI_MOSI 3

DMA1 Stream 6: FREE

DMA1 Stream 7: FREE

DMA2 Stream 0: SPI_MISO 1

DMA2 Stream 1: SPI_MOSI 4

DMA2 Stream 2: DSHOT_BITBANG 2

DMA2 Stream 3: SPI_MOSI 1

DMA2 Stream 4: ADC

DMA2 Stream 5: FREE

DMA2 Stream 6: DSHOT_BITBANG 5

DMA2 Stream 7: FREE

残念ながらF4プロセッサーのエラッタによりONLY

(https://www.st.com/resource/en/errata_sheet/dm00037591-stm32f405407xx-and-stm32f415417xx-device-limitations-stmicroelectronics.pdf, 2.1.10 節参照)、SPIバス1上のDMAとビットバングドDSHOTを同時に使用することはできません。したがって、ビットバングド DSHOT が有効な場合、ステータス出力に locked が表示され、dma は表示されないことがあります。DMAを有効にするためにビットバングドDSHOTを無効にしようとすると、MOTOR1~MOTOR4のDMAディスクリプタとFLASH、OSD、場合によってはLED機能に使用するSPIが競合し、DMAリソースの競合が発生する可能性があります。その場合、回転数フィルタリング、フラッシュ、LED、OSDが動作しないことがあります。

DMAがOSDに利用できない場合、データ転送にかかる時間を最小限にするため、非常にシンプルなOSDコンフィギュレーションが推奨されます。

以下は、上級ユーザがどのようにセットアップを最適化するかの例です。

例えば、MATEKF411 でビットバ ンド DSHOT を有効にした場合、SPI バス 1 と 2 は有効ですが、ジャイロ DMA は有効でありません。

# status

MCU F411 Clock=108MHz (PLLP-HSE), Vref=3.30V, Core temp=30degC

Gyros detected: gyro 1 locked

GYRO=MPU6000, ACC=MPU6000

# dma show

Currently active DMA:

——————–

DMA1 Stream 0: FREE

DMA1 Stream 1: FREE

DMA1 Stream 2: FREE

DMA1 Stream 3: SPI_MISO 2

DMA1 Stream 4: SPI_MOSI 2

DMA1 Stream 5: FREE

DMA1 Stream 6: FREE

DMA1 Stream 7: FREE

DMA2 Stream 0: SPI_MISO 1

DMA2 Stream 1: DSHOT_BITBANG 2

DMA2 Stream 2: FREE

DMA2 Stream 3: SPI_MOSI 1

DMA2 Stream 4: ADC 1

DMA2 Stream 5: FREE

DMA2 Stream 6: FREE

DMA2 Stream 7: FREE

ビットバングしたDSHOTを有効にすると、SPIバス1だけが有効になり、ジャイロDMAが使用できることがわかります。OSDに使用されるSPIバス2は、必要なリソースがMOTOR 4とMOTOR 1に使用されているため、DMAを使用できません。 したがって、この構成では飛行性能が向上する一方で、OSD更新はそれほど速く実行できないため、シンプルなOSD表示のみを使用する必要があります。

# status

MCU F411 Clock=108MHz (PLLP-HSE), Vref=3.30V, Core temp=30degC

Gyros detected: gyro 1 locked dma

GYRO=MPU6000, ACC=MPU6000

# dma show

Currently active DMA:

——————–

DMA1 Stream 0: MOTOR 3

DMA1 Stream 1: FREE

DMA1 Stream 2: FREE

DMA1 Stream 3: MOTOR 4

DMA1 Stream 4: MOTOR 1

DMA1 Stream 5: MOTOR 2

DMA1 Stream 6: FREE

DMA1 Stream 7: FREE

DMA2 Stream 0: SPI_MISO 1

DMA2 Stream 1: FREE

DMA2 Stream 2: FREE

DMA2 Stream 3: SPI_MOSI 1

DMA2 Stream 4: ADC 1

DMA2 Stream 5: FREE

DMA2 Stream 6: FREE

DMA2 Stream 7: FREE

FURYF4OSD では、ビットバングした DSHOT を有効にすると、ジャイロ DMA は使用できなくなりますが、OSD と FLASH にそれぞれ使用されるバス 2 と 3 は使用可能です。

# status

MCU F40X Clock=168MHz (PLLP-HSE), Vref=3.26V, Core temp=51degC

Gyros detected: gyro 1 locked

GYRO=MPU6000, ACC=MPU6000

# dma show

Currently active DMA:

——————–

DMA1 Stream 0: SPI_MISO 3

DMA1 Stream 1: FREE

DMA1 Stream 2: LED_STRIP

DMA1 Stream 3: SPI_MISO 2

DMA1 Stream 4: SPI_MOSI 2

DMA1 Stream 5: SPI_MOSI 3

DMA1 Stream 6: FREE

DMA1 Stream 7: FREE

DMA2 Stream 0: SPI_MISO 1

DMA2 Stream 1: DSHOT_BITBANG 1

DMA2 Stream 2: DSHOT_BITBANG 2

DMA2 Stream 3: SPI_MOSI 1

DMA2 Stream 4: ADC 1

DMA2 Stream 5: FREE

DMA2 Stream 6: FREE

DMA2 Stream 7: FREE

これを無効にすると、どのピンをモーター出力に使用するかを慎重に検討したおかげで、すべてのSPIバスがDMAをサポートし、最適な飛行性能を実現します。ただし、LED_STRIPはMOTOR 3によって使用されるため、DMA1ストリーム2を割り当てることはできません。LEDの点滅と最適な飛行性能の選択を考えると、これは簡単な決定ですが、最高の飛行性能を得るためには、いくつかの妥協が必要であることを表しています。

# status

MCU F40X Clock=168MHz (PLLP-HSE), Vref=3.26V, Core temp=51degC

Gyros detected: gyro 1 locked dma

GYRO=MPU6000, ACC=MPU6000

# dma show

Currently active DMA:

——————–

DMA1 Stream 0: SPI_MISO 3

DMA1 Stream 1: MOTOR 4

DMA1 Stream 2: MOTOR 3

DMA1 Stream 3: SPI_MISO 2

DMA1 Stream 4: SPI_MOSI 2

DMA1 Stream 5: SPI_MOSI 3

DMA1 Stream 6: MOTOR 1

DMA1 Stream 7: MOTOR 2

DMA2 Stream 0: SPI_MISO 1

DMA2 Stream 1: FREE

DMA2 Stream 2: FREE

DMA2 Stream 3: SPI_MOSI 1

DMA2 Stream 4: ADC 1

DMA2 Stream 5: FREE

DMA2 Stream 6: FREE

DMA2 Stream 7: FREE

4k PIDループのジャイロデータのアンチエイリアス処理

4k PIDループを実行する場合、ジャイロローパス2フィルタをアクティブにしておくことを強くお勧めします。もし、ジャイロのローパスフィルタを1つにしたい場合は、ローパス2を維持する。

ローパス2は、ジャイロを8kから4kにダウンサンプリングする際に、非常に有効なアンチエイリアスフィルタだからだ。ジャイロのローパス2が無効で、ボードが4kで動作している場合、単純な2点平均化フィルタがその代わりに有効になります。これは、1000hzのPT1フィルタほど良いアンチエイリアシングフィルタではなく、500hzのフィルタにも及ばない。

2k PIDループでは、500hzのPT1ローパス2ジャイロフィルターが絶対に必要です。

ほとんどのクリーンな4Kクワッドでは、ジャイロローパス1をオフにして、500Hzのジャイロローパス2フィルター1つで素晴らしい動作をします。 8k PID ループにはエイリアシングの問題がないため、エイリアシングの懸念なくジャイロローパス 2 を無効にできますが、すべてのジャイロフィルタリングをオフにするには、クアッドが「クリーン」である必要があります。

マルチダイナミックノッチ

SDFT(Sliding Discrete Fourier Transform)ベースのダイナミックノッチフィルタは、複数の独立したノイズピークを追跡することができ、それぞれのピークに独立したノッチフィルタを割り当てます。ユーザーは1軸あたり最大5つのノッチを指定することができます。通常は2つから3つまでで、多くは1つだけです。

SDFTは以前よりはるかに効果的にノイズソースを追跡します。コードは全く別のものです。RPMフィルタリングと組み合わせて使用した場合の共振問題を抑制するために最適化されています。回転数関連のノイズには、やはりRPMフィルタが最適です。

Q値は300-450程度がフリースタイルには有効です。最小値をできるだけ高く保ち(例えば200hz)、最小数のノッチのみを使用することで、ノッチに関連するフィルターの「遅れ」を最小限に抑えることができます。

ダイナミックノッチを適切に調整するには、ダイナミックノッチをオフにしたログを作成し、スペクトル分析を行って、制御する必要がある共振があるかどうか、そして共振周波数が何であるかを確認します。必要な周波数が完全にフィルタリングされるように、共振ピークを含むようにダイナミックノッチレンジを設定し、ノイズの両側に20hzの追加レンジを設定します。その後、もう一度飛行し、ジャイロのトレースから共振線が消えていることを確認します。その後、より高いQ値で繰り返し、それらの共振を十分に制御できる最高のQ値を見つけます。

RPMフィルタリングができないクワッドでは、3つか4つのノッチと120-150程度のQ値で構成すれば、SDFTコードはそれなりに効果的に機能します。マルチダイナミックノッチは、双方向DSショット駆動のRPMフィルターノッチほど速く反応することはできませんが、さまざまなクラフトで驚くほどよく機能します。

マルチダイナミックノッチは、ジャイロやDターム値に適用されるスタティックノッチと並行して使用することができます。静的ノッチは、一定周波数の共振をターゲットにした場合に最も効果的です。もし、強い定周波数の共振がある場合、SDFTから残ったノイズを捕らえるために、ジャイロやDタームの周波数共振の上に狭い静的ノッチを適用することが必要になる場合があります。フレーム共振のような特定の既知の静的周波数を持つ機体では、正しいカットオフを持つ静的ノッチを手動で追加すれば、マルチダイナミックノッチより性能が良くなり、またマルチダイナミックノッチの周波数範囲をより大きく使うことができるようになります。もし機体がスロットルや飛行状態のエンベロープ全体にわたって正確に1つの周波数で存在する特定の共振を持っている場合、静的ノッチを追加してマルチダイナミックノッチのカウントを1つ減らすことが推奨されます。

マルチダイナミックノッチの範囲を調整すると、SDFTアルゴリズムが使用するビンサイズを調整することになるが、2次推定ステップが含まれるため、隣接する両ビンのデータを使用して中心周波数の最も正確な推定値に各ダイナミックノッチを中心することになる。MinHz値とMaxHz値の間の範囲を広げると、より広い周波数範囲を考慮するために、いくつかの分解能をトレードオフすることになり、ダイナミックノッチシステムが周波数の変化に速く反応することができ、これは高い周波数で急速に変化する共振を抑制するのに役立つことがあります。

PT3によるRCスムージング

RCスムージングシステムが簡素化され、改良されました。シネマティックパイロットやHDパイロットは、以前は不可能だった驚くほど滑らかな結果を得ることができるようになりました。

古い線形補間法は、PT3フィルターベースの方法がより良く機能するため、削除されました(オーバーシュートなし、低遅延、より良い調整可能性)。

rc_smoothingを常に「オン」にすることを強くお勧めします(set rc_smoothing = ON)。これをオフにすると、モーターは非常にノッチな駆動信号を受け、より熱く、より騒がしくなり、低リンク速度ではリンク周波数でクアッドが揺れることになります。

自動スムージングアルゴリズムは変わっておらず、アーミング時にRCリンク速度を検出し、RCスムージングのカットオフを自動的に設定し、飛行中にリンク速度が変化するとその値を変更します(ただし、変更にはしばらく時間がかかります)。

デフォルトのオートスムージング値は30になり、適度にスムージングされたセットポイントラインが得られ、スムージングされていない信号と比較するとほとんど遅延がありません。

HDフリースタイルでは、オート値を60に設定すると、よりスムーズで、余分な遅延は全くありません。

絶対的な滑らかさが必要なシネマティックビデオの場合、90-120程度の自動値は、明らかなスティックディレイを犠牲にして、求める絹のように楽な滑らかさを提供します。ジッター低減やフィードフォワードスムージングと組み合わせることで、ほとんどのシネマティック映像は驚くほど滑らかになります。

オートスムージング機能は、与えられたリンク速度に対して最小の遅延を与えるようにフィルタを調整します。リンク速度が速い場合、スムージングフィルターはより速く動作し、スティックの反応もより速くなります。

高速の無線リンクによるシネマティックフライトや、非ロックモードでのクロスファイアでは、自動スムージングを手動でオーバーライドし、フライト中や異なる無線リンクのビルド間で一貫したスムージングを得るのが最適な場合があります。これは、CLIで固定値(非自動)を設定することで可能です。映画的な目的では、リンク速度に関係なく、10-15hzがうまく機能します。このスニペットは動作するはずです。

set rc_smoothing_setpoint_cutoff = 10

set rc_smoothing_feedforward_cutoff = 10

同じことが、50Hzと150Hzの間でランダムに入れ替わることがある、非ロックのクロスファイアにも当てはまります。ここでは20~30hzの値を設定することで、50hzモードでもそれなりに安定したスティックフィーリングとそれなりの滑らかさを得ることができます。

set rc_smoothing_setpoint_cutoff = 25

set rc_smoothing_feedforward_cutoff = 25

しかし、250hzや500hzのような高速リンクでは、遅延を最小限に抑えるために、20の値は、レースには適しているかもしれません。RCリンクの周波数はモーターに多少伝わりますが、それほどでもありません。もし、違いが感じられたり、モーターが暖かくなったりしたら、30に戻してください。

ほとんどの場合、デフォルトのオートスムージングを維持し、無線リンク速度が決まったら、または無線を変更したら、オートスムージング値を調整し、あなたの求める結果を得ることができます。

スロットルのRCスムージング値は、独立して、自動または手動で調整できます。リンク速度が速いレーサーで20を試している場合を除き、30に設定するのがベストです。シネマティックビルドでスロットルジャンプを避けるには高めに設定しますが、ダイブから引き上げる際のスロットルラグには注意が必要です 🙂

RCスムージングがAutoモードでセットポイントとフィードフォワードに等しく適用されるようになりました。ログヘッダーには、あなたのリンクで使用されている実際の周波数が表示されます。CLIでは、セットポイントに対するフィードフォワードのスムージング量を手動で設定することができます。現在までのテストでは、このオプションが実用的な意味で明らかに有用であることは示されておらず、将来的には削除される可能性があります。フィードフォワードスムージング (feedforward_smooth_factor) を使用してフィードフォワードのステッピングを制御する方がより理にかなっています。フィードフォワードの重い RC スムージングはリンクジッタに対して効果がなく、多くの遅延を追加します。

RPMクロスフェード

これは、通常の回転数フィルタリングの見事な改善で、低速から中速スロットルでのモーター信号がよりきれいになり、プロップウォッシュもかなり改善されます。基本的には、回転数フィルタリングの利点は必要なときに得られ、欠点は必要でないときに得られるということです。

ノッチフィルターは、指定されたカットオフ周波数で「アンチノイズ」信号を発生させることで動作することがわかりました。従来の意味での「遅延」は発生しません。ローパスフィルタのように「遅れ」を発生させるわけでもない。信号を作り、それを元の信号と混ぜ合わせると、元の信号のノイズを「打ち消す」のです。

つまり、オーディオミキサーのように、ノッチフィルタの「アンチノイズ」信号を「クロスフェード」または「ミキシング」することで、線形に減衰させることができるのです。

これは回転数フィルタリングに非常に有効です。以前は、モーターが最小回転数を下回ると、その3つの回転数ノッチはすべてアクティブなまま、その最小周波数に保持されました。除去すべきノイズはないものの、「遅れ」が発生して近くの周波数に反応し、相互変調歪みの一種となり、プロップウォッシュを悪化させる原因となっていました。

そこで、回転数フィルターが不要なときには「オフ」にし、最小回転数以上の「クロスフェード」領域でスムーズに「オン」にすることができるようにしました。

回転数フィルターが完全にオフになると、いかなる遅延や干渉も発生しないため、以前よりもクリーンで優れたジャイロトレースが得られます。

多くの場合、回転数関連のノイズは100hz(6000rpm)程度まで発生しません。そこで、回転数フィルタリングを例えば80Hzで開始し、50Hzでクロスフェードさせ、130Hz(10,000rpm)で再び回転数フィルタリングを有効にすることができます。

set rpm_filter_min_hz = 80

set rpm_filter_fade_range_hz = 50

ほとんどの場合、50hzのクロスフェードレンジが最適であることが分かっています。

デフォルトの最小回転数は、RPMが最初に「スイッチオン」し始める80hzで、ほとんどのクアッドでうまく機能します。プロップが非常にきれいで、固有のRPMノイズがほとんどないマシンは、この値を高くすることができます。

set rpm_filter_min_hz = 100

set rpm_filter_fade_range_hz = 70

低回転の大型クワッドでは、低回転で動作するため、比例して低い値を選択することになります。

クロスフェードのチューニングには、dshot_telemetryデバッグを有効にし、他のスティック入力がない状態でゼロから50%までスムーズに安定したスロットルアップを行い、スロットルカットを追加する必要があります。PID を低く設定し、D のノイズを除去するために D に重いフィルタをかけるとよいでしょう。デバッグトレースを使って、モーター回転数がクロスフェード領域に落ちるポイントを見て、モーター回転数に関連するノイズがジャイロトレースに入り込んでいないか確認します。最低回転数の設定が高すぎると、クロスフェード領域からかなりのモーターノイズが漏れてきます。よくわからない場合は、クロスフェードの最小値を非常に高く設定してください。これにより、低回転域での回転数フィルタリングが効果的に無効となり、ノイズが通過するようになります。クロスフェードの最小値を非常に低く設定した場合(例えば10)、回転数フィルタリングが作動するときに急激な変化が生じます。最小値は回転数ノイズが問題になるレベル以下に設定し、クロスフェードレンジは上方クロスオーバー領域で若干のブリードスルーが許容される程度まで拡大することが可能です。目標は、モーターノイズを適度に減衰させながら、最も高い値を設定することです。

フィードフォワード・ジッター低減

これは本当にエキサイティングな変更で、必要なときに本当のスムーズさを提供する一方で、素早いスティック入力で必要なだけのフィードフォワードの「スナップ」を提供します。スムーズな高速レースや、フリースタイルでの「フリック」入力に最適です。

従来のDterm/フィードフォワードの「トランジション」機能は、スティックが中央にあるときのみフィードフォワードが減衰するものでしたが、この機能は完全に不要になりました。これにより、スティックが静止しているとき、またはゆっくり動いているとき、どの位置でも同様の減衰が得られます。

フィードフォワード、特にブーストは「スティック反応性」パラメータとして知られていますが、これには理由があります。その理由は、スティックの入力に対して強力かつ即座に反応するためです。フィードフォワードを十分な量(例えば120-130)に設定すると、オーバーシュートすることなく、クアッドが非常に敏感に反応するようになります。また、レースパイロットはセットポイントからジャイロまでのタイムラグをほぼゼロにすることができます。

しかし、ラジコンのわずかな入力も強調され、飛行が不安定になったり、HDビデオでギクシャクしたりすることがあります。ラジコンの痙攣は、緊張から来るものなのか、ジンバルが少し固いのか、ノイズがあるのか、ラジコンリンクの接続問題なのか、関係なく、フィードフォワードによって誇張されてしまうのです… 今までは。

この「ジッター」を処理する「古い」方法は、フィードフォワード遷移を使用することでした。これは、スティックがセンターポジションに近いときにフィードフォワードをゼロまで直線的に減衰させるものです。これにより、スティックの中心位置での「フィードフォワードが多すぎる」という問題は解決されましたが、それ以外の場所では解決されませんでした。

トランジションにはいくつかの制限があります。スティックが中央にあるときのみ有効で、スムーズなターンでは、スティックは中央から外れていますが、それでもスムーズな飛行をしたい場合です。しかし、この設定ではトランジションはあまり効果的ではありません。また、スティックを中心からずらしながら滑らかに動かすと、トランジションはフィードフォワードを中心で急激に切り離すため、ふらつきの原因となり、トランジションレンジを狭くすると最悪です。トランジションレンジを広くすると、フィードフォワードの利点が中央で失われ、「スナップフリック」が難しくなります。

ジッター低減は、スティックの絶対位置にかかわらず、スティックをゆっくり動かしているときにフィードフォワードを強く減衰させます。

これは一種の「ダイナミックトランジション」機能だと考えてください。

デフォルトの jitter_reduction_factor は 7 で、通常の無線リンクを持つほとんどのクワッドに最適で、タイトターンと高速ストレートの両方がスムーズで応答性の高いレース用に適しています。

高速リンクの経験豊富なレースパイロットは、非常に小さな入力に対してフィードフォワードの「押し」が弱まるため、直線の感度が通常より少し低くなることに気づくでしょう。そのような方は、5を選択されることをお勧めします。数回のフライトの後、私たちは、クアッドが以前よりかなり良く「意図したラインにとどまる」ことを発見し、特にタイトなターンでは、以前より「レールに乗っている」ように感じられます。

12-15に設定すると、ゆっくりとしたスムーズな入力からフィードフォワードを取り除くことができ、フリースタイルやシネマティックに適しています。クアッドは、まっすぐなセンターフライトでも、持続的なタイトターンでも同じようにスムーズです。しかし、スティックをフリックすれば、すぐに反応します。

このマジックは、原理的には簡単です。RCコマンドの値がパケットごとにどの程度変化するかを調べ、直近の2つの変化量を平均化し、その平均値をユーザーが設定した閾値と比較します。そして、直近のRCコマンドの変化率が閾値以下の場合は、フィードフォワードの値をフェードアウトさせる。しかし、RCコマンドの変化量が閾値より大きい場合は、スティックを素早く動かしたときにすぐに反応が得られるように、フィードフォワードをそのまま、かつ遅延なく通過させる。

jitter_reduction_factor の値は、RCコマンドの変化のしきい値で、スティックの移動量の10分の1の単位で、それ以下ではフィードフォワードが減衰するように設定します。値が10であれば、RCコマンドの変化が1ステップあたり1%未満であれば、フィードフォワードが徐々に減衰することを意味します。閾値以下の減衰は一種の指数曲線を描き、値10の場合、RCコマンドの変更ステップが全RCレンジの0.1%~0.2%であっても、通常のフィードフォワードの10~20%がやっと存在することになる。

リンク周波数とリンクビット深度の両方が、適切なジッター低減値に影響を及ぼします。リンク周波数が低い場合(例えば50Hz)、ほとんどのRCステップは大きく、心配するほどのジッターの問題はありません。そのため、50Hzから150Hzでは、デフォルトとフリースタイルの推奨値で十分です。

250Hz以上の高速リンクでは、使用できるステップ数が限られ、変化を検出するための時間があまりないという問題が発生します。クロスファイアやFRSKのプロトコールは、RCの全範囲で800ステップ、中心から最大位置までで400ステップしか提供しません。もし、パイロットが1秒かけてゆっくりとスティックを動かすと、あるRCステップは1パケット、あるものは2パケット高くなる。このような小さなステップでは、ステップごとに100%異なるため、フィードフォワードに多くのジッターが発生し、スティックが大きく揺れたと勘違いしてしまうのです。人の固有ジッターとジンバル自体が少なくともこの大きさのジッターノイズを発生させ、フィードフォワードは通常それを増幅してしまいます。

ジッター低減コードは、高速リンクの残留ノイズを除去するのに役立ちます。これは、S/N比が悪い場合にフィードフォワードに適用される、動的なゼロ遅延フィルタのようなものです。単純な設定値微分には1次フィルタリングを、ブースト要素には2次フィルタリングを適用しています。

したがって、ジッター低減システムは、すべてのシステムでジンバルジッターを著しく低減しますが、800ステップしかない高リンクレートシステムで最も効果的であり、重要です。そのため、すべてのRCリンクでデフォルト値を維持し、フリースタイルとシネマティックで増加させ、レース用のクリーンなRCリンクのみ5まで落とすことをお勧めします。 2000ステップの新しい11ビットおよび12ビットRCリンクプロトコルは、より良い解像度を提供しますが、ジンバルノイズは依然として問題であり、したがって、ジッタ低減コードは当分の間必要なままであると思われます。

高速なRxリンクのためのフィードフォワードスムージング設定

古い ff_smooth_factor コードが更新され、feedforward_smooth_factor という名前になりました。単純微分に対する通常の1次平滑化だけでなく、ブーストに対する2次ステップ高さ平滑化も提供します。これにより、ブースト信号の平滑化がより効果的になり、単純微分の遅延も少なくなります。

25という適切な開始値で、ほとんどのビルドに対応できます。

250hz RCリンクの場合、feedforward_smooth_factorを40~50に設定し、feedforward_averagingを2_pointに設定する必要があります。

500hx RCリンクの場合、feedforward_smooth_factorを65~70に設定し、feedforward_averagingを2_pointに設定する必要があります。

その他のフィードフォワードの変更

フィードフォワードに関するいくつかの小さな、しかし重要な変更により、遅延の少ない、より滑らかな信号が得られるようになりました。

CLIのフィードフォワードに関連するすべてのパラメータは、ff_ではなくfeedforwardで始まるようになりました。フィードを取得すると、すべてのパラメータが表示されます。

feedforward_averaging は、ほとんどのビルドで必要とされないため、デフォルトで ‘off’ に設定されるようになりました。古い Crossfire 150 リンクで 3 ポイント移動平均を提供するためには、3_POINT に設定する必要があります。すべての500hz RCリンクとほぼすべての250hz RCリンクは2_POINTフィードフォワード平均化が有効ですが、新しいジッター低減コードにより、250hz以下で動作するほとんどのリンク(FRSky、Crossfireなど)はフィードフォワード平均化を必要としないことを意味します。

feedforward_max_rate_limit は ff_max_rate_limit に代わるもので、スティックが最大レートに近づくとフィード フォワードをプルバックする値で、最大スティック位置に達したときのオーバーシュートを最小 限に抑えることができます。その有用性を制限していたバグが修正されました。デフォルト値の90はほとんどのクアッドに最適です。パワー不足のクアッドには100が必要かもしれません。

Duplicate Packet の補間を改善しました。スティックの移動速度が遅い場合に重複が頻繁に発生するため、ジッター低減値を使用して補間プロセスを減衰させ、スティックが非常にゆっくりと移動しているときにほとんど補間しないようにしました。 これらの変更により、フィードフォワードシステムはよりスムーズでありながら、非常に応答性の高いものとなりました。

AntiGravityの改善

ピッチ角の急激な変化に対応するため、ハードスロットルでのチョッピング時にPを増加させるようにしました。さらに、Iブーストのタイミングを変更し、ウォブルのタイミングとよりよく一致するようにしました。

新しいコードの効率性を反映し、デフォルトは3.5のみとなりました。

注意:4.3でAntiGravityの値を非常に大きくすることは賢明ではありません。

デフォルトに近い値にしてください。

AntiGravityを増加させたい場合は、計画的にテストしてください。高い値(例えば5以上)を設定しても、通常の値以上の効果は得られないかもしれませんので、合理的な制御と一致する最小の値を使用してください。

ダイナミックジャイロフィルタ・エクスポカーブ

dyn_lpf_gyro_curve_expo は、ダイナミックローパスフィルターのカットオフ値を、スロットル開度に合わせてより速く上昇させることができるようにします。D ローパスエクスポとほぼ同じ働きをします。

スロットル開度が大きいときの遅延を軽減します。スロットル開度が高いときに高周波ノイズが大幅に増える場合は、Expo の量を減らすか、 ダイナミックローパスカットオフの上限値を下げます。

ダイナミックアイドルの改善

新しいダイナミックアイドルコードは、完全なPIDコントローラを使用するようになり、構成がよりシンプルになりました。デシンク耐性と低スロットルオーソリティが改善されています。

古い4.2のインストラクションには従わないでください。モーターズタブでRPMを測定する必要はもうありません。必要なのは

DShot Telemetryを有効にする。

PIDチューニングタブで、Dynamic Idle Min RPMを30から40の間の値に設定する(つまり、最低アイドル回転数を3000から4000RPMに設定する)。

注意事項

DShot Telemetry が有効であっても、正しく動作していない場合は、アーミングができません。

RPMフィルタリングやダイナミックアイドルが動作するためには、DShot Telemetryが有効である必要があります。

DShot Telemetryが有効でない場合、Dynamic Idleは無効となり、「静的」なDShot Idleのパーセンテージが使用されます。

ダイナミックアイドルが有効な場合、DSショットアイドルは無効となり、グレーで表示されます。

ダイナミックアイドルを使用するために、DSショットアイドルを調整する必要はありません。最適な値のままにしておいてください。

ESC が DShot テレメトリをサポートしている場合、RPM フィルタリングを使用しな い場合でも、ダイナミックアイドルを使用できるようになりました。

4.3の新しいコードでは、DShotアイドルのパーセント値を特別に調整する必要はありません。

アーミング時、エアモードがアクティブになるまでは、ダイナミックアイドルの最小回転数を完全に取得することはできません。これは、エアモードが起動するまでの間、モーターへのドライブに制限があるためです。このため、ダイナミック・アイドルは、従来の手動式インフライト・アイドルアップ・スイッチの利点はそのままに、欠点がない洗練された「アイドルアップ」機能として機能します。

最小回転数を高くすると、モーターは常に回転を維持し、スロットルゼロの状態での反応が良くなり、きれいなフリップやロール、そしてきれいなターンができるようになります。高い値では、最も遅いモーターは、ほとんど失速するのではなく、フリップ中に推力を提供し、クワッドは空の円形のようなものを実行する傾向があります。180度ターンでも同じことが起こり、小さな円弧になります。

また、最低回転数が高いと、モーターが常に上向きの推力を発生させるので、「right-side-up」フラットスロットルでのチョップでは、クアッドは高度を落とすのが遅くなります。これはそれほど悪いことではなく、プロップウォッシュの影響を受けやすいこれらの動作の安定性と権威を高めることにもなります。

どちらの場合も、最低回転数が高いと、常にきれいな空気の中を移動することになるので、プロップウォッシュを避けることができます。これは、フリースタイルや高速のレースで飛ぶときに非常に理にかなっています。

最低回転数が高い場合、上に大きくパンチした後、180度反転し、スロットルを強く切っても、モーターが下向きに推力を出すので、それほど上方には浮きません。しかし、クアッドが下降を始め、プロップへの空気の流れがダイナミックアイドルを可能にし、モーターへの駆動をカットすると、モーター駆動はゼロになり、倒立ハングは通常とあまり変わらなくなるはずです。

倒立飛行の時間を最大にするために、また、おそらくLine Of Sight飛行のために、デシンクを回避できる最小回転数の値を使用します。

シンクしやすいセットアップのユーザーの多くは、ダイナミック・アイドルが問題を解決してくれることが分かるでしょう。最低回転数を上げれば上げるほど、デシンクの可能性は低くなり、逆に下げれば下げるほど、デシンクの可能性は高くなります。

ダイナミックアイドルがうまく機能しない場合は、これをゼロに設定すると、静的なDShotアイドルパーセント方式に戻されます。

新しいコードはとても優れていて、私のクワッドの多くは、最小のダイナミックアイドル回転数として1000rpmだけで飛行することができます。LOSフリップやロール中にプロペラブレードがゆっくり回転しているのが見えますが、非同期ではありません。どこまで低くできるかという特別な好奇心がない限り、そこまで低くすることは勧めません。

一般的なフリースタイルやレース用途では、最低回転数を4000にすると、とてもうまくいくことが多いようです。

チューニングを行いました。

idle_adjustment_speedとidle_pのチューニング設定に代わり、PIDコントローラを採用しました。これにより、より正確な回転数制御が可能になります。

一般的に高出力クワッドには低いP値が必要で、例えば強力な6Sビルドには40、低威力のクワッドには高いPID値が有効でしょう。

RPMコントロールの安定性を確認する最良の方法は、適切なデバッグでログを取り、ゼロスロットルでいくつかのフラットドロップを行うことです。ドロップ中は安定しているが、チョップ時に一過性に目標回転数を下回る場合は、DとPを追加してください。

リニアおよびダイナミックミキサーオプション

airmodeがアクティブなとき、デフォルトのbetaflightミキサーはスロットルよりもPID権限を優先します。権威を維持するためにモーターを「ゼロ以下」で駆動する必要がある場合はいつでも、要求されたモーター差を達成できるように、スロットルがエアモードによって増加されます。

このエアモードによるスロットル増加こそが、スロットルゼロで「普通に」フリップ&ロールができる唯一の理由なのです。

しかし、デメリットもあります。エアモードは衝撃時に強いリアクションを引き起こします。クアッドはより多くのスロットルを得て、上昇します。Airmodeが提供できる限界に達すると、権威にかなり急激な変化が生じます。

これらの代替ミキサーモデルは、スロットル権限とPID制御の間の相対的な重点を変更します。

スムーズなシネマティックフライトスタイルで、素早い動きで低スロットルPID性能を犠牲にして、着陸時のバウンドが少なく、一種の部分的なエアモード効果を提供するために、いくつかの用途があるかもしれません。もし、興味があれば、飛んでみて気に入るかどうか見てください。

レベルモードとホライゾンモードにおけるフィードフォワード

4.3では、Level、Level Race、Horizonの各モードでフィードフォワードが利用できるようになりました。

レベルモードでは、スティックを動かしてクワッドの角度を変更したときに、より即座に反応するようになりました。より迅速に意図した角度になります。

ホライゾンモードでは、アグレッシブに飛行しているとき、アクロとほぼ同じ挙動になり、フィードフォワードがもたらすスティックの即時反応とオーバーシュートの減少という利点が得られます。最高の気分です。

初心者の方で、Levelの挙動が不安定に感じる場合は、PIDのフィードフォワード値を小さくしてください。

Betaflightの新しいデフォルトとして実際のレート

4.3から、Actual Ratesが新しいBetaflightのデフォルトになります。

ACTUAL rates では、ターゲットセンターの感度と最大ロールレート(度/秒)の両方を設定することができます。

この2つの値は互いに独立しています。

Expoは、2つのレート間の遷移点を、よりセンターに近く(ゼロの時)またはより遠くに(最大の時)シフトさせます。

このオンライン計算機では、Betaflightのレートと実際のレートを視覚化することができます。

新しいデフォルトは、古いベータフライトレートと全く同じではありません。最大レートは同じ (670 deg/s) ですが、新しいデフォルトは中心部が柔らかく (Betaflight の古いデフォルトの約 200 に対して、中心部の感度は 70)、外側はより反応しやすくなっています。プルリクエストの画像を参照してください。

これは、学習しやすく、フリースタイルに適していることが期待されます。

経験豊富なレースパイロットの中には、エキスポなしで、センター感度200deg/s、マックス620を使用している人もいます。ジッター低減コードにより、200deg/sは、ターンインが非常に速く、タイトターンでスムースでコントロールしやすいままです。もっと低い値を好む人もいます。

Betaflightのレートユーザーは、このレート計算機を使って、現在飛んでいるレートと同等のActualレートを見つけることができます。例えば、センター200、マックス670、エキスポ0.58の場合、オリジナルのデフォルトBetaflightレートカーブになります。

もし、ユーザーが ‘diff all’ などから Betaflight レートの数値を貼り付けた場合、rates_type の情報は含まれません。その結果、Actual Rates はアクティブになりますが、Betaflight CLI の数値が使用されます。クアッドは飛べなくなります。そのため、diff all をコピー&ペーストするのはよくありません。レートを手動で再作成するか、コピー&ペーストする場合は、CLI dump コマンドからレートを貼り付ける際に rates_type 行を含めるようにしてください。

PT2、PT3ローパスフィルタリングオプション

以前は、ジャイロやDのスムージングで、1次フィルタリングでは不十分な場合に、2次のBiquadフィルタがオプションで用意されていました。ボッシュのジャイロの場合、そのようなことがありました。しかし、Biquadはステップ入力で発振することがあり、カットオフ付近の周波数成分を持つ入力ではオーバーシュートすることがわかりました。4.3では、ローパスフィルタリングにBiquadを使用しないようにしました。Biquadフィルタリングは、ジャイロとDローパスフィルタリングの両方について、そこに特定の利益があると感じる人のためのオプションとして残っています。

2次ジャイロフィルタが必要な場合は、PT2オプションをお勧めします。これは、PT1フィルタを重ねたものとほぼ同じ働きをしますが、カットオフが正しくなるように調整されています。PT2フィルタリングオプションは、同等のBiquadフィルタより少しフィルタリングが少ないものの、より少ない遅延を提供し、Biquadフィルタの代わりに使用することが推奨されます。PT3 フィルタリングは、同等の Biquad フィルタよりもフィルタリングと遅延が大きく、ジャイロや D フィルタリングには通常必要ありません。

PT1に比べ、PT2では約60%、PT3では2倍のフィルタリング遅延が増加します。

CrossfireV3およびGhost RCのリンクの改善

4.3では、内部RCデータパスを完全フロート化し、RCパケットの内容に関わらず、エイリアシングや解像度の低下がないことを実現しています。また、Crossfire V3および11bit Ghostプロトコルをサポートしています。

また、RCスムージングを制限し、フィードフォワードを破壊する誤ったパケットタイムアウトエラーを回避することにより、16hzまでの非常に低い周波数リンクレートをよりよくサポートします。

Blackboxのログには、スムージングされていないrcCommandが表示され、RCとフィードフォワードのデバッグには、スムージングされていないロール セットポイントや、RCリンク品質と分解能のチェックに役立つ他のデータが表示されるようになりました。

気圧とgpsによる高度推定の改善

GPSとバロの両方を持っていて、GPSの修正を待たずに飛行した場合、間違った高度推定(最大100mの誤差)がありました。現在は修正されています。GPSが必要な数の衛星を捕捉するまで、バロが使用されます。動作を設定するための新しいcliオプションが導入されました。

position_alt_gps_min_sats – GPSとbaroの両方を使い始めるのに必要な衛星数 position_alt_baro_fallback_sats – GPSの使用を停止してbaroに戻るのに必要な衛星数。

多くの衛星をすばやく受信する優れたGPS受信機がある場合は、これらの値を増やすことができます。または、それほど良いハードウェア/ゾーンを持っている場合は、それらを減らすことができます。また、あなたは悪いバロを持っていると、できるだけ早くGPSに切り替えたい場合は、値を小さくする必要があります。

コンフィギュレーターの改善

コンフィギュレータは、新しいスライダーと新しいプリセットタブに対応し、オーバーホールされました。

モーターズタブの新しいモーターマッピングとモーター回転機能により、イライラする作業がずっと楽になりました。

フラッシュする前に、ボードに適したファームウェアを選択する新しい “Auto-Detect “機能があり、再確認が可能です。

インターフェース自体も整理され、多くのバグが修正されました。


参照先:https://github.com/betaflight/betaflight/wiki/4.3-Tuning-Notes