ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Zynq でのベクトル制御のマルチコア プログラミング

この例では、Zyng 上の複数のレートを含む制御アルゴリズムの実装方法を示します。コアと FPGA ハードウェアの両方を活用するために、この例ではグラフィカルな分割方法を使用して、さまざまな分割からのコードがコアおよびハードウェア全体に配布されるようにします。

はじめに

この例では、モーター制御アルゴリズム向けにコードを生成して、生成されたコードを Xilinx® Zynq™-7000 SoC ZC702 評価ボード上でテストするワークフローを示します。この例のモーター制御アルゴリズムは、速度コントローラー (高速成分) およびトルク コントローラー (低速成分) から構成されるベクトル制御アルゴリズムです。ある典型的なワークフローとして、コントローラーのこれらの 2 つのコンポーネントのコードを生成し、生成されたコードを評価ボードにアップロードして、評価ボードを実際のモーターに接続します。この例は、このワークフローの実行方法を示すことを目的としています。これは、以下のブロック線図で示されます。

この例を自己完結型にするため、また、ターゲット プロセッサにおけるコンピューター能力に余裕があるため、評価ボードの CPU のタスクのいずれかを使用してモーターをモデル化します。

この例では、Xilinx® Zynq™-7000 SoC ZC702 評価ボードがコンピューターに接続されていると仮定します。接続およびインストール手順はドキュメンテーションでご確認いただけます。

この例では、マルチスレッド コードの生成のために Embedded Coder™ が必要であり、HDL コードの生成のために HDL Coder (TM) が必要です。また、この例で永久磁石同期機をモデル化するには Simscape Power Systems (TM) が必要です。HDL コードは Macintosh システムでは生成できません。

モデル例

モデル例は、2 つの Simulink 領域から構成されます。永久磁石同期機の領域には、次の 2 つのブロックがあります。"Speed and Torque Inputs" ブロックはフィードバック システムへの参照入力を提供し、"Invertor and Motor" ブロックはこの例での制御を目的とするプラントです。"Invertor and Motor" ブロックには周辺機器も含まれます。これは、シミュレーション結果と UDP 送信側の調査に使用されるスコープです。UDP 送信側の生成されたコードは、Zynq ZC702 評価ボードからホストマシンへのシミュレーション データの送信を行います。ベクトル制御には、コントローラー ブロック "Speed controller" および "Torque controller" が含まれます。以下を入力してモデルを読み込みます。

slexFocZynqExample

アーキテクチャの定義

例の中のターゲット アーキテクチャは、Xilinx Zynq ZC702 評価キットです。以下の手順で [同時実行] ダイアログ ボックスにアクセスして、検証することができます。

- [シミュレーション]、[モデル コンフィギュレーション パラメーター] に移動して、

- [ソルバー] ペインの [追加オプション] の下の [タスクの構成] をクリックします。

評価ボードには ARM Cortex-A9 CPU とフィールド プログラマブル ゲート アレイ (FPGA) があります。ARM CPU を実行するタスクは 2 つあります。"Torque controller" は最初のタスクにマッピングされ、プラントを構成するブロック ("Speed and Torque Inputs" ブロックと "Invertor and Motor" ブロック) は 2 番目のタスクにマッピングされます。制御ループ内で高周波数で動作する "Speed controller" は FPGA にマッピングされます。これらの設定は [同時実行] ダイアログ ボックスの [タスクとマッピング] セクションで変更できます。

マルチスレッド コードと HDL コードの生成

Ctrl+B キーを押すか、[ハードウェアに展開] をクリックしてマルチスレッドおよび HDL コードを生成します。生成された実行可能ファイルおよび FPGA ビットストリームは Zynq ボードに自動的にアップロードされます。このステップを実行するには、Zynq ボードはコンピューターに接続していて環境が適切に設定されていなければなりません。詳細については、ドキュメンテーションを参照してください。

Zynq からのデータの受信

最初に、[シミュレーション結果の表示] をダブルクリックしてスコープを開き、シミュレーションを実行 ([シミュレーション]、[実行]) して次の出力を取得します。

このシミュレーション出力と、Zynq ZC702 ボード上で実行する実行可能ファイルの出力を比較します。この比較を行うために、[View Deployment Results] をダブルクリックして UDP 受信機モデルにアクセスします。UDP 受信機モデルが選択されたら、シミュレーションを実行します ([シミュレーション]、[実行])。実行コマンドによって信号が Zynq ZC702 ボードに送信され、ボード上で実行可能ファイルの実行を開始します。シミュレーション データは UDP で Zynq ZC702 ボードからホスト マシンに送信されます。取得された UDP 信号は UDP 受信機モデルのスコープに表示されます。

モデルを閉じる

close_system('slexFocZynqExample', 0);