Main Content

センサー フィードバックを使用した BLDC モーターの 6 段階整流

この例では、三相ブラシレス DC (BLDC) モーターの速度と回転方向を制御するための 6 段階整流手法を 120 度伝導モードを使用して実装します。この例では、Six Step Commutation ブロックによって生成されるスイッチング シーケンスを使用して三相固定子電圧を制御し、それによって回転子の速度と方向を制御します。このブロックの詳細については、Six Step Commutationを参照してください。

この 6 段階整流アルゴリズムには、ホール シーケンスまたは回転子位置のフィードバック値 (直交エンコーダーまたはホール センサーのいずれかから取得) が必要です。

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

ホール効果センサーは、適用される磁場の強さに基づいて出力電圧を変えます。標準的な構成では、BLDC モーターは電気的に 120 度ずつ離れた 3 つのホール センサーで構成されます。標準のホール配置 (センサーを電気的に 120 度ずつ離して配置) の BLDC では、6 つの有効なバイナリ状態の組み合わせ (たとえば 001、010、011、100、101、110) を提供できます。センサーは 60 の倍数の度数で回転子の角度位置を提供し、コントローラーはそれを使用して回転子が位置する 60 度のセクターを特定します。

コントローラーは、ホール シーケンスまたは回転子位置を使用してモーターを制御します。回転子が偏差を 30 度とする 90 度のトルク角 (回転子の d 軸と固定子の磁場の間の角度) を常に維持するように、固定子巻線の次の 2 つの相を励磁します。

メモ: ホール シーケンスは変わることがあります。ホール シーケンスを特定するには、Hall Sensor Sequence Calibration of BLDC Motorの例を使用してください。

この例はシミュレーションをサポートしています。三相スイッチング インバーターと Simscape™ Electrical™ の Y 巻線 BLDC を含むプラント モデルをシミュレートできます。

モデル

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

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

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

必要な MathWorks 製品

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

1. 対象のモデル: "mcb_bldc_sixstep_f28069mLaunchPad"

  • Motor Control Blockset™

  • Fixed-Point Designer™

  • Simscape™ Electrical™

2. 対象のモデル: "mcb_bldc_sixstep_f28379d"

  • Motor Control Blockset

  • Simscape Electrical

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

1. 対象のモデル: "mcb_bldc_sixstep_f28069mLaunchPad"

  • Motor Control Blockset

  • Embedded Coder®

  • C2000™ Microcontroller Blockset

  • Fixed-Point Designer

2. 対象のモデル: "mcb_bldc_sixstep_f28379d"

  • Motor Control Blockset

  • Embedded Coder

  • C2000 Microcontroller Blockset

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

前提条件

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

ただし、モーター制御ハードウェアがある場合は、使用するモーターのパラメーターを Motor Control Blockset のパラメーター推定ツールを使用して推定できます。手順については、Estimate PMSM Parameters Using Recommended Hardwareを参照してください。

パラメーター推定ツールは、推定されたモーター パラメーターで "motorParam" 変数 (MATLAB® ワークスペース内) を更新します。

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

パラメーター推定ツールを使用する場合は、インバーターのパラメーターは更新してかまいませんが、モーターのパラメーターはモデル初期化スクリプトで更新しないでください。モーターのパラメーターは、更新された "motorParam" ワークスペース変数からスクリプトで自動的に抽出されます。

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

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

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

2. モデルで QEP またはホールのいずれかの [Speed_Feedback] ラジオ ボタンを選択します。

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

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

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

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

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

必要なハードウェア

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

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

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

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

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

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

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

4. 直交エンコーダーを使用している場合は、直交エンコーダーのインデックスのオフセット値を計算し、ターゲット モデルに関連付けられているモデル初期化スクリプトで使用可能な変数 bldc.PositionOffset で値を更新します。手順については、Quadrature Encoder Offset Calibration for PMSMを参照してください。

5. ホール センサーを使用している場合は、ホール シーケンスの値を計算し、ターゲット モデルに関連付けられているモデル初期化スクリプトで使用可能な変数 bldc.hallsequence で値を更新します。手順については、Hall Sensor Sequence Calibration of BLDC Motorを参照してください。

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

7. ターゲット モデルで [Quadrature Encoder] または [Hall] のいずれかの [Speed_Feedback] ラジオ ボタンを選択します。

8. LAUNCHXL-F28379D の CPU2 にサンプル プログラムを読み込みます。たとえば、CPU2 の青色 LED を GPIO31 を使用して作動するプログラム (c28379D_cpu2_blink.slx) を使用して、CPU2 が CPU1 用のボード周辺装置を使用するように誤って構成されていないことを確認できます。サンプル プログラムまたはモデルの詳細については、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)」セクションを参照してください。

9. [ハードウェア] タブの [ビルド、展開、起動] をクリックして、ハードウェアにターゲット モデルを展開し、ターゲット モデルからベース ワークスペースに変数を読み込みます。

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

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

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

12. ホスト モデルで [Reference Speed (RPM)] フィールドの指令速度の値を更新します。

13. ホスト モデルで、監視するデバッグ信号を選択します。

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

15. [Motor] スイッチを [Start] の位置に切り替えて、モーターの運転を開始します。

16. ホスト モデルの Scope ブロックと Display ブロックで RX サブシステムからのデバッグ信号を観測します。