Main Content

速度センサーを使用した誘導モーターのベクトル制御

この例では、三相交流誘導モーター (ACIM) の速度を制御するためのベクトル制御 (FOC) 手法を実装します。この FOC アルゴリズムには回転子の速度フィードバックが必要であり、この例ではそれを直交エンコーダー センサーを使用して取得します。FOC の詳細については、ベクトル制御 (FOC)を参照してください。

この例では、直交エンコーダー センサーを使用して回転子の速度を測定します。直交エンコーダー センサーは、電気位相角が 90 度ずれるようにコード化された 2 つのトラックまたはチャネルをもつディスクで構成されています。これにより、位相差が 90 度の 2 つのパルス (A と B) とインデックス パルス (I) が作成されます。したがって、チャネル A と B の間の位相関係とチャネル状態の遷移を使用して、コントローラーでモーターの回転の方向を特定します。

モデル

この例にはモデル mcb_acim_foc_qep_f28379d が含まれています。

このモデルはシミュレーションとコード生成に使用できます。

サポートされるハードウェア構成の詳細については、「コードの生成とターゲット ハードウェアへのモデルの展開」の「必要なハードウェア」セクションを参照してください。

必要な MathWorks 製品

モデルをシミュレートする場合:

  • Motor Control Blockset™

コードを生成してモデルを展開する場合:

  • Motor Control Blockset™

  • Embedded Coder®

  • C2000™ Microcontroller Blockset

  • Fixed-Point Designer™ (コード生成を最適化する場合のみ必要)

前提条件

1. モーター パラメーターを取得します。Simulink® モデルには既定のモーター パラメーターが設定されており、それらをモーターのデータシートまたは他のソースから得られる値に置き換えることができます。

2. モーター パラメーターをデータシートまたは他のソースから取得する場合は、Simulink® モデルに関連付けられたモデル初期化スクリプトでモーターとインバーターのパラメーターを更新します。手順については、Estimate Control Gains and Use Utility Functionsを参照してください。

3. さらに、初期化スクリプトで派生パラメーターを計算します。たとえば、誘導モーターの全漏れ係数、定格磁束、定格トルク、固定子と回転子のインダクタンスなどです。

モデルのシミュレーション

この例はシミュレーションをサポートしています。次の手順に従ってモデルをシミュレートします。

1. この例に含まれているモデルを開きます。

2. [シミュレーション] タブの [実行] をクリックして、モデルをシミュレートします。

3. [シミュレーション] タブの [データ インスペクター] をクリックし、シミュレーション結果を表示して解析します。

コードの生成とターゲット ハードウェアへのモデルの展開

このセクションでは、コードを生成し、ターゲット ハードウェアで FOC アルゴリズムを実行する方法の手順を示します。

この例ではホストとターゲット モデルを使用します。ホスト モデルはコントローラー ハードウェア ボードへのユーザー インターフェイスです。ホスト モデルはホスト コンピューターで実行できます。ホスト モデルを使用するための前提条件として、コントローラー ハードウェア ボードにターゲット モデルを展開します。ホスト モデルは、シリアル通信を使用してターゲット Simulink® モデルに指令を送り、閉ループ制御でモーターを駆動します。

必要なハードウェア

この例では、次のハードウェア構成をサポートしています。ターゲット モデルの名前を使用して、MATLAB® コマンド プロンプトから対応するハードウェア構成のモデルを開くこともできます。

上記のハードウェア構成に関連する接続については、LAUNCHXL-F28069M and LAUNCHXL-F28379D Configurationsを参照してください。

コードの生成とターゲット ハードウェアでのモデルの実行

1. ターゲット モデルをシミュレートし、シミュレーション結果を確認します。

2. ハードウェアの接続を完了します。

3. ADC (または電流) のオフセット値がモデルで自動的に計算されます。この機能を無効にするには (既定では有効)、モデル初期化スクリプトで変数 "inverter.ADCOffsetCalibEnable" の値を 0 に更新します。

あるいは、ADC のオフセット値を計算し、モデル初期化スクリプトで値を手動で更新できます。手順については、開ループ制御での三相 AC モーターの駆動と ADC オフセットのキャリブレーションを参照してください。

4. ターゲット モデルを開きます。モデルの既定のハードウェア構成設定を変更する場合は、モデル コンフィギュレーション パラメーターを参照してください。

5. LAUNCHXL-F28379D の CPU2 にサンプル プログラムを読み込み、CPU2 が CPU1 用のボード周辺装置を使用するように誤って構成されていないことを確認します。たとえば、CPU2 の青色 LED を GPIO31 ピンを使用して作動するプログラム (c28379D_cpu2_blink.slx) を読み込みます。サンプル プログラムまたはモデルの詳細については、Getting Started with Texas Instruments C2000 Microcontroller Blockset (C2000 Microcontroller Blockset)の「Task 2 - Create, Configure and Run the Model for TI Delfino F28379D LaunchPad (Dual Core)」セクションを参照してください。

6. [ハードウェア] タブの [ビルド、展開、起動] をクリックして、ハードウェアにターゲット モデルを展開します。

7. ターゲット モデルで host model のハイパーリンクをクリックして、関連付けられているホスト モデルを開きます。

ホストとターゲット モデルの間のシリアル通信の詳細については、Host-Target Communicationを参照してください。

8. ターゲット モデルに関連付けられているモデル初期化スクリプトで、変数 "target.comport" を使用して通信ポートを指定します。この例では、この変数を使用して、ホスト モデルで使用可能な Host Serial Setup、Host Serial Receive、および Host Serial Transmit の各ブロックの [Port] パラメーターを更新します。

9. ホスト モデルで "Reference Speed" の値を更新します。

10. "Debug signals" セクションで、監視する信号を選択します。

11. [シミュレーション] タブの [実行] をクリックして、ホスト モデルを実行します。

12. モーターの始動と停止のスイッチをオンの位置に切り替えて、モーターの運転を開始します。

13. ホスト モデルの "SelectedSignals" 時間スコープで RX サブシステムからのデバッグ信号を観測します。

メモ: この例では、空間ベクトルの正回転は正の速度フィードバックに依存します。モーターが作動しない場合は、次の手順で問題の解決を試みます。

  • 任意の 2 つのモーター相の接続を入れ替えてみる。

参考