主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

Simscape永久磁石同期電動機のHDL互換仿真软件金宝appモデルへの変換のトラブルシューティング

この例では,連続時間であり非線形要素が含まれるSimscape™プラントモデルを変更してHDL互換の仿真软件®モ金宝appデルを生成する方法を示します。その後,この仿金宝app真软件モデルのHDLコードを生成できます。

はじめに

Simscape HDLワークフローアドバイザーはHDLコードを生成するHDL互換の実装モデルにSimscapeプラントモデルを変換します。Simscapeプラントモデルは,実装モデルの生成と互換性がない場合があります。そのような場合は,最初にSimscapeプラントモデルを変更してからアドバイザーを実行します。

この例は,Simscape HDLワークフローアドバイザーとの互換性のために永久磁石同期電動機モデルを変更する方法を説明しています。モデルは連続時間であり,多くの非線形コンポーネントが含まれます。このモデルを離散時間の線形スイッチドモデルに変更してから,Simscape HDLワークフローアドバイザーを実行します。

永久磁石同期電動機モデル

永久磁石同期電動機モデルはSimscapeで物理システムです。モデルを開くには,次のコマンドを実行します。

open_system (“ee_pmsm_drive”

モデルをee_pmsm_drive_original。基金という名前で保存します。

open_system (“ee_pmsm_drive_original”) set_param (“ee_pmsm_drive_original”“SimulationCommand”“更新”

モデルには,一般的なハイブリッド車両で使用できるサイズに設定された永久磁石同期機永磁同步电动机とインバーターが含まれます。インバーターは車両バッテリーに接続されます。モデルの動作を確認するには,モデルをシミュレートします。

sim卡(“ee_pmsm_drive_original”) open_system (“ee_pmsm_drive_original /范围”

このモデルは連続時間システムです。このモデルをSimscape HDLワークフローアドバイザーで使用するには,モデルを離散システムに変換します。次に,SimscapeからHDLへのワークフローで互換性のあるブロックを使用するようにモデルを変更します。

連続時間モデルの固定ステップ離散モデルへの変換

1.解算器配置(Simscape)ブロックを使用してHDLコード生成用にソルバーオプションを設定します。ブロックパラメーターで以下を行います。

  • [ローカルソルバーを使用)を選択します。

  • 向后欧拉[ソルバータイプ]として使用します。

  • 離散サンプル時間Tsを指定します。

2 .モデルのソルバー設定を変更します。[モデル化)タブで,[モデル設定)をクリックします。[ソルバー]ペインで以下を行います。

  • [ソルバーの選択],[タイプ]固定步に設定します。

  • [ソルバー]离散(无连续状态)に設定します。

  • (固定ステップサイズ(基本サンプル時間))Tsに設定します。

  • [タスクとサンプル時間オプション]セクションで(各離散レートを個別のタスクとして扱う)をオフにします。

3 .モデルの表示設定を変更します。[デバッグ]タブで,(情報のオーバーレイ],[サンプル時間],(色)を選択します。サンプル時間がTs以外のブロックのサンプル時間の凡例を確認するか,連続時間スケールで実行します。一步ブロックをダブルクリックして,[サンプル時間]Tsに設定します。

4.シミュレーションを高速で行うため,永磁同步电动机のゼロシーケンスパラメーターを無視します。永磁同步电动机ブロックをダブルクリックし,[ゼロシーケンス]排除に設定します。

これで,モデルは固定ステップ離散システムになりました。モデルをシミュレートし,シミュレーションデータインスペクターで(转矩需求)信号と(电机转矩)信号を比較します。信号の差は,シミュレーションの終了に向かって許容誤差レベルを超えますが,許容制限内です。

2ステップのプロセスを使用してSimscapeプラントモデルをHDL互換の実装モデルに変換します。

  1. 同等の仿金宝app真软件ブロックを使用してSimscapeアルゴリズムの非線形部分を置き換える仿真软件モデルを実装します。

  2. 高密度脂蛋白ワークフローへのSimscapeと互換性のあるブロックを使用するように,このモデルを変更します。

同等の仿金宝app真软件実装への非线性Simscapeブロックの置き換え

1.SimscapeプラントモデルをHDL互換にするためには,モデルの非線形コンポーネントまたはブロックの有無を特定します。

simscape.findNonlinearBlocks (“ee_pmsm_drive_original”
{'ee_pmsm_drive_original/Permanent Magnet Synchronous Motor'}模型中线性或开关线性网络的数量为0。模型中非线性网络个数为1。ans = 1x1 cell array {'ee_pmsm_drive_original/Permanent Magnet Synchronous Motor'}

Simscapeプラントモデルには,非線形ブロックである永磁同步电动机ブロックがあります。

2.永磁同步电动机ブロック,编码器ブロック,Gmin抵抗器,电动机和负载惯性ブロックが,同等のアルゴリズムを実行する仿真软件ブロックと置き換えられます。金宝app

电气接口ブロックを実装するには,制御電流源を使用します。

永磁同步电动机に対するインターフェイスは実装と分離されます。金宝app仿真软件ブロックを使用して永磁同步电动机を実装するには,电气方程と机械方程を使用します。公园变换ブロックと公园逆变换ブロック内で,正弦ブロックと余弦ブロックを削除します。

FPGAで実行されるSimscapeブロックの特定とSimscapeモデルの再構築

ee_pmsm_drive_singleSLモデルは,元のモデルee_pmsm_drive_originalを変更し,そのモデルをSimscape HDLワークフローアドバイザーに対応するように準備する方法を示しています。

1.SimscapeモデルをHDL実装モデルの生成と互換するように変更するには,Simscapeアルゴリズムの中でFPGA上で実行する部分を特定します。この例では,三相インバーター,電気インターフェイス,PWM,および永久磁石同期電動機(模金宝app型)をFPGAで実行できます。

2.FPGAで動作するブロックが特定されると,ブロックは最上位のサブシステム内に配置されます。このサブシステムはDUTで测试(设计),高密度脂蛋白実装モデルを生成した後に,FPGA上で実行するブロックを含みます。Simscape HDLワークフローアドバイザーを実行した後,このサブシステムはHDLアルゴリズムに置き換えられます。Simscapeモデルのこの部分は,最速のサンプルレートで実行されなければなりません。率过渡ブロックが追加され,設計がアップサンプリングされます。

3.ターゲットハードウェアにリソースの使用率を保存するために,数据类型转换ブロックが追加されて,データ型を使用するようにモデルが変換されます。

ee_pmsm_drive_singleSLモデルは,これらのブロックを最上位サブシステムであるSubsystem1 (DUT)内に配置する方法を示しています。サブシステム内のブロックは高速のレートで動作しています。

load_system (“ee_pmsm_drive_singleSL”) set_param (“ee_pmsm_drive_singleSL”“SimulationCommand”“更新”) open_system (“ee_pmsm_drive_singleSL / Subsystem1”

ee_pmsm_drive_singleSLモデルでは,三相インバーターと電気インターフェイスがSimscape逆变器和接口サブシステム内に配置されます。

open_system ('ee_pmsm_drive_singleSL/Subsystem1/Simscape逆变器和接口'

高密度脂蛋白互換性のための永磁同步电动机サブシステムの変更

前述の節では,マスクサブシステムの永磁同步电动机(模型)に適用された変更について説明しています。金宝app

1.积分器与包装状态(离散或连续)ブロックはHDLコード生成との互換性がありません。このブロックは,包裹状态DTIサブシステムに置き換えられています。

PMSMSubsystem ='ee_pmsm_drive_singleSL/Subsystem1/永磁同步电机(Simulink)'金宝app;open_system (PMSMSubsystem“力”

open_system ([PMSMSubsystem,/包装状态DTI的])

2.以下について,FPGA面積フットプリントを削減します。

  • 公园变换ブロック,克拉克变换ブロック,克拉克公园角变换ブロックが追加されます。

  • 公园里叶反变换ブロック,逆公园克拉克角变换ブロック,克拉克逆变换ブロックが追加されます。

open_system ([PMSMSubsystem,“公园/变换”])

open_system ([PMSMSubsystem,/公园逆变换的])

3.このサブシステム内の离散时间积分器ブロックでは,[サンプル時間]-1[ゲイン値)Ts,および[積分手法]积累:向前欧拉に設定されます。次のコマンドを実行して,これらのブロックパラメーターをプログラムにより表示できます。

blockDTI = find_system (PMSMSubsystem,“LookUnderMasks”“上”...“blocktype”“DiscreteIntegrator”);n = 1:numel(blockDTI) Integpath = blockDTI(n);Integname = get_param (Integpath,“名字”);少许= num2str (get_param (blockDTI {n},“SampleTime”));gval = num2str (get_param (blockDTI {n},“gainval”));integmethod = num2str (get_param (blockDTI {n},“IntegratorMethod”));disp ('----------------------------------------------------') disp (Integpath) disp ([样品时间:少许,的获得:gval,...“积分法”:, integmethod])结束disp ('----------------------------------------------------'
---------------------------------------------------- {' ee_pmsm_drive_singleSL / Subsystem1 /永磁……'}样品时间:1获得:Ts集成方法:积累:欧拉向前发展  ---------------------------------------------------- {' ee_pmsm_drive_singleSL / Subsystem1 /永磁……'}样品时间:1获得:Ts集成方法:积累:欧拉向前发展  ----------------------------------------------------

モデルの準備とSimscape HDLワークフローアドバイザーの実行

モデルの最上位レベルが次のように変更されています。

  1. サンプル時間Tsが追加されて,显示ブロックに接続されている数字时钟。

  2. 永磁同步电动机モデルから取得した三相電流でコントローラーをフィードして,三相电流传感器Simscapeブロックが置き換えられます。

次の図は,上記の変更によるモデルの最上位レベルを示しています。

open_system (“ee_pmsm_drive_singleSL”

Simscape HDLワークフローアドバイザーを開くには,モデルで関数sschdladvisorを実行します。

sschdladvisor (“ee_pmsm_drive_singleSL”

実装モデルを生成するには,Simscape HDLワークフローアドバイザーで,既定の設定をそのままにして,タスクを実行します。実装モデルを開くには,(実装モデルを生成)タスクでリンクをクリックします。

高密度脂蛋白コード生成用の実装モデルの再構成

この例では,実装モデルが,Speedgoat FPGA的I / Oプラットフォームへの配布用に変更されています。モデルがgmStateSpaceHDL_ee_pmsm_drive_GenerateHDLという名前で再度保存されます。

高密度脂蛋白コード生成用に単精度実装モデルを再構成するには,以下を行います。

1 .モデルに対して関数hdlsetupを実行します。

hdlsetup (“gmStateSpaceHDL_ee_pmsm_drive_GenerateHDL”

2.モデルソルバー設定の(固定ステップサイズ]Ts / 5に変更されます。これは既定の[ソルバーの反復回数)5になっているためです。

3.Subsystem1ブロックには,FPGA上で実行するブロックが含まれます。Simscape逆变器和接口サブシステムはHDL子系统ブロックに置き換えられます。高密度脂蛋白子系统ブロックには,SimscapeアルゴリズムのHDL実装を含むHDLアルゴリズムが含まれます。高密度脂蛋白アルゴリズムの実装を確認するには,次のブロックを開きます。

model_name =“gmStateSpaceHDL_ee_pmsm_drive_GenerateHDL”;dut_name =“gmStateSpaceHDL_ee_pmsm_drive_GenerateHDL / Subsystem1”;load_system model_name set_param (model_name,“SimulationCommand”“更新”) open_system ([dut_name,“/ HDL子系统”])

open_system ([dut_name,' / /高密度脂蛋白HDL子系统算法”])

4.高密度脂蛋白算法子系统に有效出信号があります。永磁同步电动机(模型)サブシステムが启用子系统内に配置され,vs_LL入金宝app力端子が有效出信号に接続されます。

open_system (dut_name)

5.最初にSimscapeアルゴリズムが含まれていたサブシステム内のブロックをモデルの最上位に移動します。

次の図は,上記の変更によるモデルの最上位レベルを示しています。

open_system (model_name)

高密度脂蛋白コードの生成

高密度脂蛋白コードを生成する前に,コード生成後の生成モデルの出力を変更されたSimscapeプラントモデルと比較し,検証モデルの生成を指定します。

hdlset_param (model_name“GenerateValidationModel”“上”);

詳細については,生成されたモデルと検証モデルを参照してください。

高密度脂蛋白コードを生成するには,次のコマンドを実行します。

makehdl (“gmStateSpaceHDL_ee_pmsm_drive_GenerateHDL / HDL子系统”

既定では,HDL编码でVHDLコードが生成されます。Verilogコードを生成するには,次のコマンドを実行します。

makehdl (“gmStateSpaceHDL_ee_pmsm_drive_GenerateHDL / HDL子系统”“开发”“Verilog”

コードジェネレーターは生成されたHDLコードと検証モデルをhdlsrcフォルダーに保存します。生成されたコードは,HDL_Subsystem_tc.vhdとして保存されます。リソースの使用率情報を確認するには、コード生成レポートを表示します。

検証モデルを開くには,高密度脂蛋白コードを生成した後にgm_gmStateSpaceHDL_ee_pmsm_drive_GenerateHDL_vnl。基金モデルを開きます。

Speedgoat FPGA的I / Oモジュールへの永久磁石同期電動機の配布

高密度脂蛋白実装モデルでは,Subsystem1にFPGA上で実行するブロックが含まれます。この子系统でHDLワークフローアドバイザーを実行して,高密度脂蛋白アルゴリズムをSpeedgoatターゲットプラットフォームのFPGAボードに配布できます。例については,Simscape模型在Speedgoat FPGA I/O模块上的硬件在环实现を参照してください。

参考

関数

関連するトピック