メインコンテンツ

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

BLDC モーターのホール センサー シーケンス キャリブレーション

この例では、開ループ制御における回転子の位置ゼロに関するホール センサー シーケンスを計算します。このワークフローは、ホール センサーにラベルを付けたり、スイッチング シーケンスを派生したりすることなく、6 段階整流を使用してモーターを回転できるようにします。この例を実行してホール シーケンスを取得し、そのホール シーケンスを Six Step Commutation ブロックで使用して、センサー フィードバックを使用した BLDC モーターの 6 段階整流の例で説明されているように閉ループでモーターを駆動します。

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

ターゲット モデルは、モーターを開ループで低速 (10 RPM) で駆動し、モーターに対して V/f 制御を実行します。この速度で、回転子の d 軸が固定子の回転磁場とほぼ一致します。回転子のゼロに関するホール シーケンスが得られたら、そのホール シーケンスを Six Step Commutation ブロックで使用します。そして、(ホール シーケンスを派生させるために) この例で得られたのと同じホール順序をセンサー フィードバックを使用した BLDC モーターの 6 段階整流の例で使用して、閉ループ制御でモーターを駆動します。

回転子が開ループ位置ゼロに到達すると、固定子の位相 a 軸と一致します。(対応するホール状態の) この位置で、6 段階整流アルゴリズムは、回転子が偏差を 30 度とする 90 度のトルク角 (回転子の d 軸と固定子の磁場の間の角度) を常に維持するように、固定子巻線の次の 2 つの位相を励磁します。Six Step Commutation ブロックを参照して、このワークフローで得られたホール シーケンスを使用します。

ホール シーケンス キャリブレーション アルゴリズムは、完全な機械的回転にわたってモーターを駆動し、開ループ制御における回転子の位置ゼロに関するホール センサー シーケンスを計算します。

メモ: この例は、すべてのモーター位相またはホール センサー接続で機能します。

メモ: ホール センサーを使用した 6 段階整流を使用する例では、例にリンクされているモデル初期化スクリプトの "bldc.hallsequence" 変数で計算されたホール シーケンス値を更新します。手順については、Estimate Control Gains and Use Utility Functionsを参照してください。

モデル

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

これらのモデルはコード生成にのみ使用できます。

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

必要な MathWorks 製品

  • Motor Control Blockset™

  • Embedded Coder®

  • C2000™ Microcontroller Blockset

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

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

このセクションでは、コードを生成し、開ループ制御を使用してモーターを駆動する方法を示します。

この例ではホストとターゲット モデルを使用します。ホスト モデルはコントローラー ハードウェア ボードへのユーザー インターフェイスです。ホスト モデルはホスト コンピューターで実行できます。ホスト モデルを使用するための前提条件として、コントローラー ハードウェア ボードにターゲット モデルを展開します。

ホスト モデルはシリアル通信を使用してターゲット モデルに指令を送り、V/f 制御を使用して開ループ構成でモーターを駆動します。ホスト モデルでは、計算されたホール センサー シーケンスが表示されます。

必要なハードウェア

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

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

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

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

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

3. ターゲット モデルの [Configuration] パネルで次のモーター パラメーターを更新します。

  • Number of pole pairs

  • PWM frequency [Hz]

  • Data type for control algorithm

  • Motor base speed

  • Vd Ref in per-unit voltage

4. LAUNCHXL-F28379D の CPU2 にサンプル プログラムを読み込みます。たとえば、GPIO31 を使用して CPU2 の青色 LED を作動するプログラム (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)」セクションを参照してください。

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

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

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

ホスト モデルの Scope を使用して、開ループ回転子の位置とホール シーケンスの値を監視できます。

7. ホスト モデルで Host Serial Setup、Host Serial Receive、および Host Serial Transmit の各ブロックを開き、"端子" を選択します。

8. [シミュレーション] タブの [実行] をクリックして、6 段階整流制御のホール シーケンスのキャリブレーションを開始します。シミュレーションを開始すると、モーターが駆動され、キャリブレーションが開始されます。キャリブレーション プロセスが完了すると、シミュレーションが終了し、モーターが自動的に停止します。

メモ: モーターが始動しないか、滑らかに回転しない場合は、[Configuration] パネルの [Vd Ref in Per Unit voltage] フィールドの値 (最大値は 1) を大きくします。ただし、モーターに高電流が流れた場合は、この値を小さくします。

慣例により、6 段階整流制御では、ホール シーケンスのキャリブレーション時に使用される回転方向と同じ順方向の回転を使用します。順方向の慣例を変更するには、モーターの相線を交換し、ホール シーケンスのキャリブレーションを再度実行してから、6 段階整流制御を使用してモーターを駆動します。

9. ホスト モデルの次の LED を確認してキャリブレーション プロセスのステータスを把握します。

  • [Calibration in progress] LED。モーターが始動すると、オレンジ色に変わります。Scope 内の回転子位置とホール シーケンス値の変化に注目してください (位置信号は、0 ~ 1 の振幅のランプ信号を示します)。キャリブレーション プロセスが完了すると、この LED はグレーに変わります。

  • [Calibration complete] LED。キャリブレーション プロセスが完了すると、緑色に変わります。次に、[Calibration Output] フィールドに計算されたホール シーケンス値が表示されます。

メモ: この例では、シミュレーションはサポートされていません。

緊急時にモーターを即時に停止するには、[Emergency Motor Stop] ボタンをクリックします。