STM32 プロセッサによる PMSM のホール オフセット キャリブレーション
この例では、回転子の直軸 (d 軸) とホール センサーによって検出された位置間のオフセットを計算します。ベクトル制御 (FOC) アルゴリズムでは、永久磁石同期モーター (PMSM) を正しく駆動するためにこの位置オフセットが必要になります。オフセットを計算するために、ターゲット モデルはモーターを開ループ条件で駆動します。このモデルは、定数 (ステーターの d 軸に沿った電圧) とゼロ (ステーターの q 軸に沿った電圧) を使用し、位置ジェネレーターまたはランプ ジェネレーターによってモーターを (一定の低速で) 駆動します。位置またはランプの値がゼロに達すると、対応する回転子の位置がホール センサーのオフセット値になります。
制御アルゴリズム (ベクトル制御およびパラメーター推定の例で使用可能) はこのオフセット値を使用して、回転子の d 軸の正確な位置を計算します。コントローラーで PMSM を最適に駆動するには、このオフセットが必要です。
必要なハードウェア
この例では次のハードウェアが必要です。
Nucleo-STM32G431RB ボード。
X-NUCLEO-IHM07M1 または X-NUCLEO-IHM16M1 ドライバー拡張ボード。
BLY172S-24V-4000 - ブラシレス DC モーター
利用可能なモデル
この例には次のモデルが含まれています。
ターゲット モデルはコード生成に使用できます。ホスト モデルはシミュレーションとして実行され、モーターを制御するためにターゲット ハードウェアと通信します。
open_system('STM32_HallOffset_Target');
コードの生成とターゲット ハードウェアへのモデルの展開
このセクションでは、コードを生成し、開ループ制御を使用してモーターを駆動する方法を説明します。
この例ではホストとターゲット モデルを使用します。ホスト モデルはコントローラー ハードウェア ボードへのユーザー インターフェイスです。ホスト モデルはホスト コンピューターで実行できます。ホスト モデルを使用するための前提条件として、コントローラー ハードウェア ボードにターゲット モデルを展開します。
ホスト モデルはシリアル通信を使用してターゲット モデルに指令を送り、開ループ構成でモーターを駆動します。ホスト モデルを使用して、モーターの回転を制御し、モーターの回転方向を検証できます。ホスト モデルでは計算されたオフセット値が表示されます。
コードの生成とターゲット ハードウェアでのモデルの実行
STM32G4xx ベースのプロセッサを使用したホール センサーによる PMSM のベクトル制御の説明に従って、ハードウェアの接続を完了します。
モーターのパラメーターが更新されていることを確認します。詳細については、Estimate PMSM Parameters Using Custom Hardware (Motor Control Blockset)を参照してください。
アナログ デジタル コンバーター (ADC) または電流のオフセット値がモデルで自動的に計算されます。この機能を無効にするには (既定では有効)、モデル初期化スクリプトで
inverter.ADCOffsetCalibEnable変数の値を 0 に更新します。あるいは、ADC のオフセット値を計算し、モデル初期化スクリプトで値を手動で更新できます。説明については、「STM32 プロセッサ ベースのボードを使用した三相 AC モーターの開ループ制御」を参照してください。ターゲット モデルを開いて目的のインバーター ボードを選択します。
[ハードウェア] タブの [ビルド、展開、起動] をクリックして、モデルをハードウェアに展開します。
ターゲット モデルで、ホスト モデルのボタンをクリックしてホスト モデルを開きます。
ホスト モデルとターゲット モデルの間のシリアル通信の詳細については、Host-Target Communication を参照してください。
ターゲット モデルに関連付けられているモデル初期化スクリプトで、変数 "target.comport" を使用して通信ポートを指定します。この例では、この変数を使用して、ホスト モデルで使用可能な Host Serial Setup、Host Serial Receive、および Host Serial Transmit の各ブロックの [Port] パラメーターを更新します。
[シミュレーション] タブの [実行] をクリックして、ホスト モデルを実行します。
モーターのキャリブレーションが開始されます。
Receive サブシステムで、現在のキャリブレーションのステータスと計算された値 (ラジアン単位) が表示されます。
メモ: モーターを直ちに停止するには、[Emergency Motor Stop] ボタンをクリックします。
詳細
Estimate PMSM Parameters Using Custom Hardware (Motor Control Blockset)