Ardupilot Thrust Expo Toolについて
背景
機体のチューニングをするにあたり、MOT_xに関するパラメータの設定が重要です。 Thrust Expo Web Toolがまだ開発段階ではあるものの、使えそうなので、試してみます。
推力計測試験
この設定を行うためには、プロペラ単体での推力計測試験を事前に行う必要があります。
今回は、T-motorのFA28、U10II KV100、ALPHA60Aを使用して実験を行いました。
結果は下記の通りです。
| PWM | Fz | Voltage | Current |
|---|---|---|---|
| 1200 | 1.878635535 | 49.46577778 | 0.256585859 |
| 1300 | 5.941222282 | 49.4 | 0.813 |
| 1400 | 12.14558366 | 49.4 | 1.87 |
| 1500 | 20.50098888 | 49.30104167 | 3.6407917 |
| 1600 | 30.87006856 | 49.17487805 | 6.2626333 |
| 1700 | 42.96041784 | 48.99275 | 9.9561786 |
| 1800 | 56.59009036 | 48.76297297 | 14.8290727 |
| 1900 | 69.9626449 | 48.49575 | 20.4949367 |
| 2000 | 72.28075333 | 48.44369565 | 21.119234 |
Fzが推力で、単位はN(ニュートン)です。
また、ここで、モーターがちょうど回転し始めるPWMについても取得する必要があります。
今回は、1131usecでは回転しませんでしたが、1132usecでは回転しました。
バッテリーの設定
MOT_BAT_VOLT_MAX は、使用しているバッテリーの最大電圧に設定します。
標準的なLiPoの場合は「4.2V × セル数」、その他のバッテリータイプを使用している場合はその仕様に応じた値を設定してください。
MOT_BAT_VOLT_MIN は、使用しているバッテリーの最小電圧に設定します。
標準的なLiPoの場合は「3.3V × セル数」、その他のバッテリータイプを使用している場合はその仕様に応じた値を設定してください。
MOT_OPTIONS = 0(デフォルト)
デフォルトでは、上記の値やチューニング計算において「電圧降下(サグ)補正後の電圧」が使用されます。
これを 1 に設定すると「補正なしの生電圧(raw voltage)」を使うようになり、軽量な機体ではチューニング結果が改善する場合があります。
Thrust Expoに関するパラメータ
MOT_PWM_MIN は、ESC が「最小入力」として認識し、プロペラが回転しない状態の PWM 値に設定する必要があります。
今回のモーターでは1132usecで回転が始まったので、この値を1100usecに設定します。
MOT_PWM_MAX は、PWMの最大値です。使用するESCによって変わってきます。実験結果から1900usecと2000usecの間に上限値があると思うので、ここでは2000usecを設定します。
MOT_SPIN_ARM は、プロペラがちょうど回転を始める PWM 値(ただし大きな推力は発生しない)に設定する必要があります。Mission Plannerのモーターテストを使用して、ちょうど回転を始める値を探します。PWM信号を使用する場合には、ドリフトが発生する可能性があるため、見つけたところよりもほんの少しだけ上げた値を入れた方が良いです。CANを使用する場合は修正する必要はありません。
MOT_SPIN_MIN は、プロペラが確実に推力を発生し、安定して回転し、同期外れのリスクがない PWM 値に設定する必要があります。MOT_SPIN_ARMよりも大きな値を入れます。
MOT_SPIN_MAX は、プロペラが回転する最大値を入れます。
Thrust Expo Toolを使用して確認してみます。

MOT_PWM_MIN = 1100
MOT_PWM_MAX = 2000
MOT_SPIN_ARM = 0.05
MOT_SPIN_MIN = 0.1
MOT_SPIN_MAX = 0.89
と入力することで
MOT_THST_EXPO = 0.635
と計算されました。
この値を入れてみて、実際に飛行させて確認します。

一番下に表示されるこのグラフについてですが、赤い線ができるだけ破線に一致している方がいいそうです。
この設定で問題なさそうであれば、30秒~1分くらいホバリングさせてログを取得し、ノッチフィルターの設定を行います。
Discussion