Motor Control Blockset

モーター制御アルゴリズムの設計と実装

 

Motor Control Blockset™ は、ブラシレス モーターのベクトル制御アルゴリズムを開発するための参照例およびブロックを提供します。これらの例では、任意のターゲット マイクロコントローラー用にコンパクトで処理速度の速い C コードを生成するためにコントローラー モデルを設定する方法を示します (Embedded Coder® を使用)。また、これらの参照例を使用して、特定のモーター制御キットのアルゴリズム的 C コードとドライバー コードを生成することもできます。

このブロックセットには、Clarke-Park 変換、スライディング モードと磁束オブザーバー、空間ベクトル変調、および速度とトルク コントローラーを作成するためのその他のコンポーネントが含まれています。電流ループと速度ループの指定された帯域幅と位相余裕に基づいて、コントローラーのゲインを自動調整できます (Simulink Control Design™ を使用)。

このブロックセットでは、ハードウェアから直接データを収集し、モーターのパラメーターを計算するツールを使用することで、正確なモーターモデルを作成することができます。閉ループシミュレーションで制御アルゴリズムをテストするには、パラメーター化されたモーター モデルを使用します。

今すぐ始める:

参照例

完全組み立て済みのサンプル モデルを活用して、モーター制御の設計を開始します。

シミュレーションとコード生成

表面および埋込永久磁石同期モーター (PMSM) のベクトル制御アルゴリズムを設計および実装するための出発点として、完全組み立て済みの参照例を使用します。これらのサンプル モデルを使用して、閉ループ シミュレーションでアルゴリズム設計をテストおよび検証した後、同じモデルを再利用して、組み込みコードを生成および実装します。

モーター制御キット

参照例を使用して、コンパクトで処理速度の速い C コードをすばやく生成し、サポートされているいくつかのモーター制御ハードウェア キット向けにモーター制御アルゴリズムを実装します。アプリケーションを Simulink モデルから直接ターゲット マイクロプロセッサーに自動的に構築および実装して、モーターハードウェアでアルゴリズムをテストします。ホストマシンからこれらのターゲット アプリケーションと通信して制御します。

モーター制御アルゴリズム

コード生成用に最適化されたブロックを使用してモーター制御アルゴリズムを設計します。

ベクトル制御

Simulink でベクトル制御アルゴリズムを作成するには、Park、Clarke、PI コントローラー、空間ベクトル変調、最大トルク/電流制御 (MTPA)、および弱め界磁ブロックを使用します。

Motor Control Blockset ブロックで実装されたベクトル制御アルゴリズム。

コード生成

組み込みマイクロコントローラーに実装するためのコンパクトで処理速度の速い浮動小数点コードまたは固定小数点コードを生成します (Embedded Coder を使用)。リアルタイム実行のプロファイリングによって、現在のループパフォーマンスを評価します。

Generated code for implementing a sliding mode observer.

ラピッド コントロール プロトタイピング

Simulink Real-Time および Speedgoat の電気モーター制御キットを使用して、リアルタイムで制御アルゴリズムのテストを行います。このキットは、アナログおよびデジタル I/O を使用して Speedgoat のリアルタイム ターゲット ハードウェアの Motor Control Blockset で開発されたブラシレス DC モーター制御アルゴリズムを実行およびテストするための完全なソフトウェア/ハードウェア パッケージで構成されています。

Speedgoat の電気モーター制御キット。

センサーデコーダーおよびオブザーバー

センサーありとセンサーなしのモーター制御アルゴリズムを実装します。

センサー デコーダー

参照例を使用して、ホール センサーと直交エンコーダーのオフセットをキャリブレートします。次に、センサー デコーダー ブロックを使用して、ホール センサー、直交エンコーダー、リゾルバーからの信号を処理し、回転子の位置と速度を計算します。

Motor Control Blockset のセンサー デコーダー ライブラリ。

オブザーバー

Sliding Mode Observer ブロックと Flux Observer ブロックを使用して、センサーなしのベクトル制御を実装します。これらのブロックを使用して、測定された電圧と電流から PMSM の回転子の電気的位置と機械的速度を計算します。磁束と機械式トルクを推定します。組み込みコードを生成する前に、オブザーバー パラメータを調整し、シミュレーションでオブザーバーの動作を確認します。

Sliding Mode Observer ブロックを使用した位置と速度の推定。

コントローラーの自動調整

電流ループと速度ループのゲインを自動調整します (Simulink Control Design を使用)。

最初のコントローラーの調整

モーターとインバーターのパラメーターに基づいて速度ループと電流ループの初期 PI コントローラーのゲインを自動的に計算します。提供されているスクリプトは、根軌跡、ボード線図、および電流ループのステップ応答を計算してプロットすることにより、時間領域と周波数領域で電流ループのダイナミクスを分析するのに役立ちます (Control System Toolbox を使用)。

計算済みのコントローラー ゲインをモーター ハードウェアでテスト。

Field-Oriented Control Autotuner

Field-Oriented Control Autotuner ブロックを使用して、磁界方向コントローラーの速度ループと電流ループのゲインを調整し、ループごとに指定された帯域幅と位相余裕を達成します (Simulink Control Design を使用)。プラントモデルに対するシミュレーションでゲインを調整します。Speedgoat のターゲット コンピューターを使用して、モーター ドライブ ハードウェアに対してリアルタイムでゲインを調整することもできます (Simulink Real-Time を使用)。

Field-Oriented Controller Autotuner ブロック。

モーターのパラメーター推定

モーターのパラメーターを自動的に特定します。

事前に用意された機器テスト

モーターで事前定義テストを実行する参照例を使用して、モーターの固定子抵抗、d 軸と q 軸のインダクタンス、逆起電力定数、慣性、および摩擦定数を特定します。

パラメーター推定ダッシュボード

ホストコンピューター上の Simulink モデルからパラメーター推定を開始および制御します。推定値を保存して、モーターモデルのパラメーター化とコントローラーのゲインの計算を行います。

パラメーター推定ダッシュボード。

モーターのモデル

線形の平均値モーターとインバーターのダイナミクスをモデル化します。

モーターとインバーターのモデル

線形集中定数 モーターモデルを実装するブロックを使用して、表面および埋込永久磁石同期モーター (PMSM) をモデル化およびシミュレーションします。機器テストによって決定された値でこれらのモデルをパラメーター化します。コントローラー モデルをモーター モデルや提供された平均値インバーターモデルと組み合わせて、高速な閉ループシミュレーションを実現します。

PMSM とインバーターのモデル化。

Simscape Electrical によるモデルの忠実性の向上

Simscape Electrical™ を使用して、インバーターの非線形モーター ダイナミクスと理想的または詳細なスイッチングをモデル化し、シミュレーションします。非線形性とスイッチング効果を組み込んだシミュレーションで、これらの忠実度の高いモーター モデルやインバーター モデルに対してベクトル制御アルゴリズムをテストします。

Simscape Electrical を使用してモデル化されたインバーターのスイッチング ダイナミクス。

新機能

モーター制御アルゴリズム

パーク変換、クラーク変換、空間ベクトル変調、弱め界磁、および他のブロックを用いてベクトル制御 (磁界方向制御) を設計

参照例

ベクトル制御をシミュレーションし、マイクロコントローラーに実装するコンパクトで処理速度の速い C コードを生成 (Embedded Coder® を使用)

参照例

複数のモーター制御ハードウェア キットでモーターを回転

センサー デコーダーおよびセンサーレス推定器

センサーありとセンサーなしのモーター制御を実装

コントローラーの自動調整

電流と速度ループを自動的に調整 (Simulink Control Design を使用)

モーターのパラメーター推定

モーターハードウェアでの実験からモーターのパラメーターを推定

モーターのモデル

表面および埋込永久磁石同期モーター (PMSM) の線形モデルを使って閉ループのシミュレーションで、制御アルゴリズムを検証

これらの機能や対応する関数の詳細については、リリースノートをご覧ください。