メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

誘導モーターのセンサーレス ベクトル制御

この例では、センサーレス位置推定を使用して、三相交流誘導モーター (ACIM) の角速度を制御するためのベクトル制御 (FOC) 手法を実装します。FOC の詳細については、ベクトル制御 (FOC)を参照してください。

この例では、回転子の Flux Observer ブロックを使用して、回転子磁束の位置を推定します。

このブロックは、固定子の電圧 $({V_\alpha },{V_\beta })$ と電流 $({I_\alpha },{I_\beta })$ を入力として使用して、回転子磁束、生成されたトルク、および回転子磁束の位置を推定します。

検出される位置が必ず正確になるように、モーター ブロックの固定子相抵抗パラメーターと Flux Observer ブロックの固定子抵抗パラメーターにインバーター ボードの抵抗値を追加します。

センサーレス オブザーバーおよびアルゴリズムには、ベース速度を超えるモーターの動作に関して既知の制限があります。センサーレスの例はベース速度までの動作にのみ使用することをお勧めします。

メモ: Flux Observer ブロックによって推定された速度には、実際の回転子速度に対する誤差が含まれています。この誤差はベース速度の 1 パーセントの許容誤差内です。Flux Observer ブロックの位置出力にオフセット補正を導入して、この誤差を最小限に抑えることができます。

モデル

この例にはモデル mcb_acim_foc_sensorless_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 用のボード周辺装置を使用するように誤って構成されていないことを確認します。たとえば、GPIO31 ピンを使用して CPU2 の青色 LED を作動するプログラム (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. モーターの始動と停止のスイッチをオンの位置に切り替えて、開ループ条件でモーターの駆動を開始します (既定ではベース速度の 10% でモーターが回転します)。

メモ: モーターを (この例を使用して) 開ループ条件で長時間駆動しないでください。モーターから高電流が流れて過熱状態になることがあります。

開ループ制御は、ベース速度の 10% 以下の指令速度でモーターを駆動するように設計してあります。

13. モーターの [Reference Speed] をベース速度の 10% を超える値に上げて、制御を開ループから閉ループに切り替えます。

メモ: モーターの回転方向を変えるには、モーターの [Reference Speed] をベース速度の 10% よりも小さい値に下げます。これにより、モーターが開ループ条件に戻ります。回転方向は変更しますが、[Reference Speed] の振幅は一定のままにします。その後、閉ループ条件に遷移します。

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