メインコンテンツ

このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。

C2000 プロセッサを使用した PMSM のセンサレス ベクトル制御

この例では、三相永久磁石同期モーター (PMSM) の速度を制御するためのベクトル制御 (FOC) 手法を実装します。FOC の詳細については、ベクトル制御 (FOC) (Motor Control Blockset)を参照してください。

この例ではセンサーレス位置推定手法を使用します。例で使用される FOC アルゴリズムの位置フィードバックを推定するには、スライディング モード オブザーバーまたはフラックス オブザーバーのいずれかを選択できます。

閉ループ FOC アルゴリズムを使用して三相 PMSM の速度とトルクが制御されます。この例では、C2000™ Microcontroller Blockset の C28xペリフェラル ブロックと Motor Control Blockset の MCB ライブラリ ブロックを使用します。

Sliding Mode Observer (SMO) ブロックは、測定位置と推定位置の間の誤差に対する滑り運動を生成します。このブロックによる推定値は測定位置に厳密に比例します。このブロックは、固定子の電圧 $({V_\alpha },{V_\beta })$ と電流 $({I_\alpha },{I_\beta })$ を入力として使用してモーター モデルの起電力 (EMF) を推定します。さらに、その EMF を使用して回転子位置と回転子速度を推定します。Flux Observer ブロックは、同じ入力 $({V_\alpha },{V_\beta },{I_\alpha },{I_\beta })$ を使用して固定子磁束、生成トルク、回転子位置を推定します。

必要なハードウェア

この例では、次のハードウェア構成がサポートされています。MATLAB ® コマンド プロンプトから、対象モデル名 (太字で強調表示) を使用して、対応するハードウェア構成のモデルを開きます。

上記のハードウェア構成に関連する接続については、Hardware Connections を参照してください。

利用可能なモデル

例には次のモデルが含まれます。

メモ: LAUNCHXL-F28069M コントローラおよび LAUNCHXL-F28379D コントローラについては、PMSM のセンサーレス ベクトル制御 (Motor Control Blockset) を参照してください。

これらのモデルは、シミュレーションとコード生成の両方に使用できます。mcb_pmsm_foc_sensorless_f28069m モデルを開きます。

特定のモーターに適合させるためにモデルパラメーターを変更する必要がある場合があります。モーターの電圧と電力特性をコントローラーと一致させます。

モーターは従来型の電圧源インバーターで駆動されます。コントローラ アルゴリズムは、6 つの電力スイッチング デバイスに対してベクトル PWM 技術を使用して 6 つのパルス幅変調(PWM) 信号を生成します。インバータは、2 つのアナログ - デジタル コンバータ (ADC) を使用して 2 つのモーター入力電流 (ia と ib) を測定し、その測定値をプロセッサに送信します。

周辺装置ブロックの構成

このモデルのペリフェラル ブロック構成を設定します。ブロックをダブルクリックして、ブロックパラメーター構成を開きます。この例を他のハードウェアボードで実行する場合には、同じパラメーター値を使用できます。

  • ePWMブロックの構成

  • ADCブロックの構成

この例のアルゴリズムでは、非同期スケジューリングを使用します。パルス幅変調 (PWM) ブロックによって ADC 変換がトリガーされます。end of conversion 時に、 ADC はメインの FOC アルゴリズムをトリガーする割り込みを送信します。詳細については、ADC Interrupt Based Scheduling を参照してください。

モデルの構成

1. mcb_pmsm_foc_sensorless_f28069m モデルを開きます。このモデルは、TI Piccolo F28069x ハードウェア用に構成されています。

2. 他の TI C2000 プロセッサでモデルを実行するには、まず Ctrl+E を押して [構成パラメーター]ダイアログ ボックスを開きます。次に、[ハードウェア実行][ハードウェア ボード] に移動して、必要なハードウェア ボードを選択します。

3. 次のスクリーンショットは、モデルで実行されたスケジューラ構成を示しています。この例を他のハードウェアボードで実行する場合には、同じパラメーター値を使用できます。

メモ:

  • ADCブロックのサンプリング レートは、 ePWMブロックの PWM 周期によって決定されるモデルの基本レートと同じである必要があります。

  • ベース レート トリガーの選択は、 ADCモジュールによってトリガーされる割り込みと同じである必要があります。詳細については、 「Texas Instruments C2000 プロセッサのモデル構成パラメーター」を参照してください。

  • デフォルトのパラメーター動作 (構成パラメーター> コード生成> 最適化) が インライン に設定されていることを確認します。

4. ボーレートが 5.625e6 ビット/秒に設定されていることを確認します。

メモ:

  • F28335 プロセッサの場合、シリアル通信には外部 FTDI を使用する必要があります。

  • F28035/F28335 プロセッサのセンサーレスの例では、モーターはユニットあたり 0.5 のデフォルト速度で回転します。

必要な MathWorks® 製品

モデルをシミュレートするには:

モデル: mcb_pmsm_foc_sensorless_f28035 および mcb_pmsm_foc_sensorless_f28335

  • Motor Control Blockset™

  • Fixed-Point Designer™

コードを生成してモデルをデプロイするには:

モデル: mcb_pmsm_foc_sensorless_f28035 および mcb_pmsm_foc_sensorless_f28335

  • Motor Control Blockset™

  • Embedded Coder®

  • C2000™ Microcontroller Blockset

  • Fixed-Point Designer™

前提条件

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

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

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

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

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

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

コードを生成し、ターゲットハードウェアでモデルを実行する

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

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

3. モデルは、アナログ/デジタル コンバーター (ADC) または電流のオフセット値を自動的に計算します。この機能を無効にするには (デフォルトでは有効)、モデル初期化スクリプトで変数 inverter.ADCOffsetCalibEnable の値を 0 に更新します。

あるいは、ADC のオフセット値を計算し、モデル初期化スクリプトで値を手動で更新できます。手順については、Open-Loop Control of 3-Phase AC Motors Using C2000 Processorsを参照してください。

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

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

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

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

7. mcb_pmsm_foc_host_model モデル内の次のブロックのパラメーターPort を、ホスト コンピュータの COM ポートと一致するように設定します。

  • mcb_pmsm_foc_host_model > ホストシリアルセットアップ。

  • mcb_pmsm_foc_host_model > シリアル通信> ホストシリアル受信。

  • mcb_pmsm_foc_host_model > シリアル通信> SCI_TX > ホストシリアル送信。

8. ホスト モデルで指令速度の値を更新します。

メモ: スライディング モード オブザーバーまたはフラックス オブザーバーのいずれかを使用してモーターを必要な基準速度で実行する前に、オープン ループ制御を使用してモーターを 0.1 x pmsm.N_base の速度で実行します。次に、速度を0.25 x pmsm.N_base に上げて閉ループ制御に移行します (ここで、pmsm.N_base はモーターの基本速度の MATLAB ワークスペース変数です)。

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

10. モーター スイッチの位置を [開始] に変更して、モーターをオープン ループ状態で実行します。

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

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

この例をハードウェアで実行するときに低い指令速度を使用すると、既知の問題により、PMSM が低い指令速度に追従しないことがあります。

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

メモ: モーターの回転方向を変更するには、モーターの基準速度を基本速度の 10% 未満の値に下げます。これにより、モーターはオープンループ状態に戻ります。回転方向を変更しますが、基準速度の大きさは一定に保ちます。次に、閉ループ状態に移行します。

12.ホスト モデルのタイム スコープで、シリアル通信からのデバッグ信号を観察します。

その他の試行

  • SoC Blockset ™ を使用すると、 ADC-PWM同期、コントローラ応答、さまざまな PWM 設定の調査に関連する課題に対処するセンサレス閉ループモーター制御アプリケーションを実装できます。詳細については、Partition Motor Control for Multiprocessor MCUs を参照してください。

  • また、SoC Blockset ™ を使用すると、複数のプロセッサ コアを活用して設計のモジュール化、コントローラのパフォーマンスの向上、その他の設計目標を達成する、センサレスリアルタイムモーター制御アプリケーションを開発することもできます。詳細については、Integrate MCU Scheduling and Peripherals in Motor Control Application を参照してください。