メインコンテンツ

Infineon AURIX TC3xx Microcontrollers を使用した符号化器による BLDC のベクトル制御

この例では、三相ブラシレス DC (BLDC) モーターの速度を制御するためのベクトル制御 (FOC) 手法の実装方法を示します。この FOC アルゴリズムには回転子の位置フィードバックが必要であり、それをエンコーダー センサーを使用して取得します。FOC の詳細については、ベクトル制御 (Motor Control Blockset)を参照してください。

三相ブラシレス DC (BLDC) モーターの速度とトルクの制御には閉ループ FOC アルゴリズムが使用されます。この例を使用することで、閉ループ FOC を使用して位置制御アプリケーションを実装できます。この例では速度値に達するまでモーターを駆動します。この例では、Embedded Coder® Support Package for Infineon® AURIX™ TC3x Microcontrollers の AURIX™ 周辺装置ブロックとMotor Control Blocksetの MCB ライブラリ ブロックを使用します。

前提条件

以下のチュートリアルを完了します。

必要なハードウェア

  • Infineon AURIX TC387 Application Kit

  • AURIX TC3xx Motor Control Power Board

  • Nanotec DB42S02 電気モーター

  • WEDL5541-B14-KIT (5 mm) インクリメンタル エンコーダー

ハードウェアの接続

必要なハードウェアを次の図に示すように接続します。

利用可能なモデル

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

このモデルはシミュレーションとコード生成の両方に使用できます。このモデルは TC387 Application Kit 用に構成されています。

特定のモーターに合わせてモデル パラメーターを変更できます。コントローラーのアルゴリズムにより、インバーター スイッチを駆動する空間ベクトル PWM 信号が生成されます。インバーターは、2 つのアナログ デジタル コンバーター (ADC) を使用してモーターの入力電流 ($({i_a }, {i_b })$) を測定し、測定値をプロセッサに送ります。

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

モデルの構成

1. tc3x_mcb_pmsm_foc_encoder モデルを開きます。

2. Ctrl+E を押して [コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。左側のペインで [ハードウェア実行] をクリックします。[ハードウェア ボード][Infineon AURIX™ TC3x] に設定します。

3. [ハードウェア ボード設定][Target hardware resources] を展開します。[Series] パラメーターと [Package class] パラメーターをハードウェアに合わせて設定します。

周辺装置ブロックの構成

ハードウェア マッピング ツールを使用して、このモデルの周辺装置ブロックの構成を設定します。

1. Simulink® ツールストリップの [ハードウェア] タブに移動し、[ハードウェア マッピング] をクリックします。

2. 次の図は、ハードウェア マッピング ツールでの PWM 周辺装置ブロックの構成を示しています。同様に、モデルは他の周辺装置に対しても構成されています。便宜的に事前構成済みのモデルが用意されています。

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

次の手順に従ってモデルをシミュレートします。

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

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

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

シミュレーション中に以下を行います。

  • 最初の 0.5 秒間は、モーターを駆動して ADC 電流をキャリブレーションします。

  • 次の 1 秒間は、モーターを開ループで動作させて、オフセット キャリブレーション用に設定します。

  • 次の 1 秒間は、符号化器オフセットをキャリブレーションします。

  • 2.5 秒の時点で pu 単位の速度が 0.1 の閉ループ動作に切り替え、その後 4 秒の時点で pu 単位の速度を 0.25 に上げます。

  • 6 秒の時点で負荷をかけ、pu 単位の速度 0.25 でモーターを駆動し続け、t=8 秒の時点で pu 単位の速度を 0.9 に切り替えます。

基準指定値に追従する速度フィードバックを観察します。

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

次の手順に従ってコードを生成し、ターゲット ハードウェアで FOC アルゴリズムを実行します。

1. tc3x_mcb_pmsm_foc_encoder モデルを開きます。

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

3. モデル キャンバスの下部に示されるリンクを使用して診断ビューアーを開き、ビルド プロセスに従います。モデルのトレーサビリティのためのコードを含むコード生成レポートを確認できます。Infineon AURIX により、ダウンロード ツールを使用してハードウェアにモデルが展開されます。

メモ: モデルをビルドするときのモデル アドバイザーの警告メッセージは無視してかまいません。

4. ハードウェアからの信号を監視するために、Infineon の One Eye ツールをダウンロードしてインストールします。One Eye ツールを使用する前に、必ず最新バージョンの TAS/DAS ツールをダウンロードしてインストールしてください。

5. One Eye ツールを開きます。One Eye ツールで [File][Load Configuration] をクリックして、この例に付属の TC3x_MotorControl.OneEye ファイルを読み込みます。

6. 手順 3 で生成された tc3x_mcb_pmsm_foc_encoder.elf ファイルを読み込み、基準指定値 (Iq_ref) に従うフィードバック電流 (Iq_fb)、および基準指定値 (SpeedRef) に従う速度フィードバック (Speed_fb) を観察します。

シミュレーション中に円形ゲージで Iq_fbIq_refSpeed_fb、および SpeedRef の各信号値を表示することもできます。

モデルの監視と調整

1. tc3x_mcb_pmsm_foc_encoder モデルを開きます。

2. [COM ポート] を指定します。ご使用のコンピューターで利用可能な "COM ポート" の一覧を確認するには、[スタート]、[コントロール パネル]、[デバイス マネージャー]、[ポート (COM と LPT)] を選択します。

3. Simulink モデルで、"Ctrl+E" を押すか、[モデル化][モデル設定] をクリックして、[コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。[ハードウェア実行]、[Target hardware resources]、[Connectivity] に移動します。エクスターナル モードの場合は、[Connectivity interface]Serial(ASCLIN0) に設定します。

4. [ハードウェア] タブで [監視と調整] をクリックしてモデルをシミュレーション用に構成します。この時点で、モデルは Infineon AURIX TC387 Application Kit で動作し、Simulink と通信しているため、パラメーター (Iq_refSpeedRef) の監視や調整を行うことができます。

5. [シミュレーション] タブで [データ インスペクター] をクリックして、基準指定値 (Iq_ref) に従うフィードバック電流 (Iq_fb)、および基準指定値 (SpeedRef) に従う速度フィードバック (Speed_fb) を観察します。

既知の制限事項

このモデル例では、周辺装置ブロックに対するアクセラレータ モードとラピッド アクセラレータ モードのサポートがないため、それらのモードでのシミュレーションはサポートされません。

参考