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) を使用してモーターの入力電流 (
) を測定し、測定値をプロセッサに送ります。
この例では、エンコーダー センサーを使用して回転子の位置を測定します。エンコーダー センサーは、電気位相角が 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_fb、Iq_ref、Speed_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_ref、SpeedRef) の監視や調整を行うことができます。
5. [シミュレーション] タブで [データ インスペクター] をクリックして、基準指定値 (Iq_ref) に従うフィードバック電流 (Iq_fb)、および基準指定値 (SpeedRef) に従う速度フィードバック (Speed_fb) を観察します。
既知の制限事項
このモデル例では、周辺装置ブロックに対するアクセラレータ モードとラピッド アクセラレータ モードのサポートがないため、それらのモードでのシミュレーションはサポートされません。