クワッドコプタードローン
正常な状態と障害状態の両方におけるクワッドコプタードローンのパフォーマンスをリアルタイムでデモンストレーションします。
導入
このクワッドコプタードローンモデルは、4つの電動モーターを搭載した無人航空機(UAV)の一般的な推進システムの一例です。ブラシレスDCモーター(BLDC)は、ドローン用途で最も一般的な電動モーターです。
このサンプルモデルには、リチウムイオンバッテリーから電力を供給される4つのブラシレスDCモーターが搭載されています。推進システムの制御により、ドローンは垂直に離着陸できます。これは、すべてのドローンモーターに同じスロットル値を設定すること、つまり2つのモーターを正方向(反時計回り)に回転させ、残りの2つのモーターを負方向(時計回り)に回転させることによって実現されます。これにより、ドローンが垂直軸を中心に回転するのを防ぎます。したがって、ドローンの機体に作用する機械的トルクの合計はほぼゼロになります。
実装された制御アルゴリズムは、台形波(6段階)制御アプローチに基づいています。また、モーターの1つに搭載されたローター位置センサーの出力を切断することで、障害発生時のドローンの動作をシミュレーションすることも可能です。
このアプリケーションサンプルモデルは、公開されているパラメータ(こちらを参照)を使用して、実世界のBLDCモーターを実装しています。したがって、このモデルは、航空宇宙システムレベルのアプリケーションを構築するために、すぐに使用できるパワーエレクトロニクスと機械コンポーネントの使用方法を示しています。
モデルの説明
このモデルは以下から構成されます:
- 4つのサブシステム(各モーターに1つずつ)
- リチウムイオン電池
- スロットルと障害のSCADA入力

サブシステムには、図1に示すように、エミュレートするモーターに対応する識別番号が付けられています。各サブシステムには、同一のBLDCモーター、三相インバータ、対応する制御機能、電力測定機能、負荷および推力計算機能が含まれています。モーターサブシステムは、ソフトウェアインストールに含まれるBLDC閉ループセンサー制御サンプルに基づいています。

モーターNo.1とモーターNo.4のサブシステムは、正方向に回転する2つのモーターをエミュレートし、他の2つのサブシステムは負方向に回転する2つのモーターをエミュレートします。回転方向が異なると、以下のコンポーネントに若干の変更が生じます。
- 整流ロジックCファンクションブロック
- 規制当局
- モデル初期化関数における荷重および推力多項式係数
このモデルの推進システムは、次のパラメータを持つ BLDC マシンを使用して実現されます。
タイプ | ブラシレスDCマシン |
公称電圧 | 48 V |
最大出力 | 1.95kW |
最大回転数 | 4820 |
極対数 | 2 |
推進システムは、以下のパラメータを持つリチウムイオン電池によって供給されます。
タイプ | リチウムイオン |
公称電圧 | 48 V |
容量 | 30ああ |
三相インバータコンポーネント内の半導体スイッチは、信号処理コンポーネントを用いて実装された台形制御アルゴリズムによって制御されます。スイッチング周波数は10kHzです。制御モジュールを図3に示します。

台形制御は図 4に示す波形で示されます。
- e as 、e bs 、e csは相起電力 (EMF) です。
- i as 、i bs 、i csは固定子相電流です。
- e as i as 、e bs i bs 、e cs i csは、位相ごとに生成されるトルクです。
- P oは機械の出力です。
- θ rは電気角で表したローターの位置です。
位相起電力の平坦な部分では、機械の出力を一定に保つために、コイルは起電力と同じ極性の定電流を流す必要があります。位置センサーとローター電気角テーブルに基づく磁束波形の依存性を用いて、コイルに通電する正確なタイミングを決定します。
回転子の位置は、分解能 60 度のホール効果センサーによって示されます。センサーは相ごとに 1 つのデジタル信号を出力し、これが整流ロジック ブロックに送られて、台形制御が実装されます。常に、回転子の位置に応じて、3 相フル ブリッジ インバータ トポロジの隣接するレッグから上部スイッチと下部スイッチの 1 組の IGBT のみが駆動されます。したがって、相の 1 つは常に切断されています。さらに、この例では、駆動するスイッチのペアが定義されると、下部のスイッチのみが PWM 信号によって変調されます。このようにして、電流リップルを削減できます。ロジックは正回転モーターと負回転モーターで異なることに注意してください。つまり、位置信号 (デジタル入力) の同じ組み合わせに対して、それぞれの制御ロジックがインバータ内の異なるスイッチのペアを駆動します。
スロットルSCADA入力を設定することで、各モーターの基準速度を設定できます。スロットルは、最大速度(505 rad/s)の0%から100%の範囲の値です。負方向に回転するモーターの場合、この基準速度は-1倍になります。
モータ駆動を効率的に制御するために、速度制御ループと電流制御ループという2つの制御ループが実装されています。常に導通するのは2相のみであるため、電流サンプリングロジックは位置センサ信号を用いて、外部ループからの基準電流値と比較するための実際の電流値を決定する。PI電流レギュレータは、信号処理ドメインに完全に実装されたPWMモジュレータにデューティサイクル値を提供する。整流ロジックとレギュレータから、インバータ内の各IGBTのゲート駆動信号が定義される。
機械の出力は、電気トルクと機械速度を乗算し、高周波信号成分から信号をフィルタリングすることによって計算されます。
モーター負荷は、4 次多項式を使用して速度の関数として定義されます。
- 正回転方向のモーターの場合: ここで、xはモーターの機械速度[rpm]、b0、b1、b2、b3、b4は多項式係数です。
- 負の回転方向を持つモーターの場合: ここで、xはモーターの機械速度[rpm]、c0、c1、c2、c3、c4は多項式係数です。
生成される推力は、4 次多項式を使用して機械速度の関数としても定義されます。
- 正回転方向のモーターの場合: ここで、xはモーターの機械速度[rpm]、a0、a1、a2、a3、a4は多項式係数です。
- 負の回転方向を持つモーターの場合: ここで、xはモーターの機械速度[rpm]、d0、d1、d2、d3、d4は多項式係数です。
すべての荷重および推力多項式係数は、モデル初期化関数で定義されます。
各モーターの発生推力を合計してドローンが発生させる推力を取得します。
通常の動作条件下でのシミュレーションに加えて、障害 SCADA 入力を値 1 に設定することで、モーター No.4 の障害状態をシミュレートすることもできます。このアクションは、ホール効果センサーとモーター ドライブ コントローラー間の接続の喪失を模倣します。
信号処理は2つのCPUコアに分割して実行されます。機械出力信号、速度制御ループ、電流制御ループはCPUコア0で実行されます。ゲート駆動信号生成はCPUコア1で実行されます。使用するコアを指定するために、 CPUマーカーコンポーネントが使用されます。CPUコア0は速度制御ループと電流制御ループを分離するために2つの異なる実行速度で動作し、CPUコア1は単一の実行速度で動作します。
シミュレーション
このアプリケーションには、あらかじめ構築されたSCADAパネル(図5 )が付属しています。このパネルには、実行時にシミュレーションを監視および操作するための主要なユーザーインターフェース要素(ウィジェット)が用意されています。ニーズに合わせて自由にカスタマイズできます。

SCADAパネルでは、各モーターの状態を監視できます。パネルは以下のもので構成されています。
- モーターウィジェットグループ。
- ホール効果センサー障害チェックボックス。
- スロットルスライダー;
- コントロール オプション サブパネル。
- バッテリー SOC バー ウィジェット。
- キャプチャ/スコープ ウィジェット。
モーター グループ ウィジェットには、各モーターの速度と推力が表示されます。
ホール センサー障害のチェックボックスをオンにすると、SCADA 入力障害が値 1 に設定され、ホール効果センサーとモーター No.4 の制御アルゴリズム間の通信の損失がエミュレートされます。
スロットルスライダーは、スロットルSCADA入力の値を設定します。この値はすべてのモーターに伝播され、すべてのモーターの速度リファレンスの絶対値が等しく設定されます。
制御オプションサブパネルは、各モーターの速度および電流PIレギュレータのパラメータ設定用のテキストボックスウィジェットで構成されています。実行時に、各PIレギュレータの比例ゲインと積分ゲインを変更できます。
バッテリー SOCバー ウィジェットには、リチウムイオン バッテリーの現在の充電状態が表示されます。
キャプチャ/スコープウィジェットを使用すると、リアルタイムシミュレーションから得られる重要な信号を、最大200万ポイント/秒の分解能で監視できます。ウィジェットのデフォルト設定では、モーター4番の位相起電力と電流信号が表示されます。
制御アルゴリズムとドローンの動作を評価するために、シミュレーションを開始し、スロットルスライダーを50に設定します。キャプチャ/スコープウィジェットでキャプチャモードに切り替えてトリガーします。得られた信号を図6に示します。

これらの信号から、モーターNo.4の電流伝導の2つの主要な領域を区別することができます。1つ目は、位相起電力の平坦な部分に電流が伝導される領域です。この領域では、電流は起電力信号と同じ極性を持ち、これは台形制御アルゴリズムを実装する際に意図された動作です。もう1つの電流伝導領域は、位相起電力の正極性の傾斜期間中です。ここでは、モーターの巻線に蓄積された磁気エネルギーが、フリーホイールダイオードと3相インバータ内の対応するトップスイッチを介して放電されます。この電流は、機械によって生成される電気トルクを低下させるため、欠点として見なすことができます。図7は、ドローンの本体に作用する総機械的トルクを示しています。

前述の通り、ドローンが垂直軸を中心に回転するのを防ぎ、安定した飛行を実現するためには、ドローン本体にかかる正味の機械的トルクをゼロにする必要があります。図7は、正味トルクの平均値が目標値通りほぼゼロであることを示しています。
図 8 は各モーターの回転速度の絶対値を示しています。

基準速度を計算するには、次の式を使用します。
w maxが 505 rad/s でスロットルが 50% に設定されている場合、計算された基準速度は 252.5 rad/s になります。
図8は、各モーターの回転速度の平均値が期待値通りであることを確認しています。
テスト自動化
提供されたテスト スクリプトは、さまざまなスロットル値 (40%、80%、100%) での加速時のドローンの応答、ドローンの本体に及ぼされる結果的な機械的トルク、さまざまな負荷での離陸能力、および障害状態の認識を評価します。
各スロットル入力ごとに、4 つのモーターすべての速度と機械的トルクがキャプチャされ、次のアサーションがテストされます。
- 速度は一定です。
- ドローンの本体に作用する正味トルクは一定(ゼロに等しい)です。
次の 2 つの追加アサーションもテストされます。
- ドローンは指定された荷重で離陸することができます。
- モーター4番の位置センサーとコントローラー間の通信が失われると、制御が停止します。
図9は生成されたテストレポートの一部を示しており、80%スロットルでの加速時にドローンの機体に作用した正味トルクを示しています。ドローンの空中安定性と基準速度追従性に関するすべてのテスト条件は合格です。

図10は、位置センサー接続に障害が発生した後のモーターNo.4の速度応答を示しています。予想通り、このテストは不合格となります。障害発生後(シミュレーション1秒後)、モーターは速度指令に従わず、速度は0まで低下します。

さらに、異なる荷重値でのドローンの離陸能力を、スロットル値2種類(40%と80%)と荷重値2種類(4 kgと12 kg)でテストしました。スロットル値40%、荷重12 kgのケースを除き、すべてのテストケースは合格しました。このケースでは、ドローンの推力が離陸に十分ではありませんでした。
TyphoonTest IDE からテストを実行すると、完全なテスト レポートを取得できます (簡単にアクセスするには、サンプル エクスプローラーの [テストを開く] ボタンを押します)。
要件の例
表3は、モデルをリアルタイムで実行するためのファイルの場所とハードウェア要件に関する詳細情報と、この最小限のハードウェア構成でモデルを実行した場合のHILデバイスのリソース使用率を示しています。この情報は、モデルの実行とカスタマイズを必要に応じて行う際に役立ちます。
ファイル | |
---|---|
Typhoon HILファイル |
例\モデル\航空宇宙\クワッドコプタードローン クワッドコプタードローン.tse クワッドコプタードローン.cus 例\テスト\113_クアッドコプター_ドローン\ test_quadcopter_drone.py |
最小ハードウェア要件 | |
HILデバイス数 | 1 |
HILデバイスモデル | HIL606 |
デバイス構成 | 3(4台のマシンソルバーが必要) |
HILデバイスのリソース利用 | |
処理コア数 | 4 |
最大マトリックスメモリ使用率 | 21.26% |
最大時間枠利用率 | 60% |
シミュレーションステップ、電気 | 0.5マイクロ秒 |
実行率、信号処理 | マルチレート(5 μs、25 μs、50 μs) |
参考文献
[1] Krishnan, R.(2017). 「永久磁石同期およびブラシレスDCモータドライブ」 CRCプレス。
著者
- ニコラ・サマージッチ