主要内容

。

的Simscape DCモーター制御のHDL互换的Si金宝appmulinkモデルへの変换のトラブルシューティング

この例では,的Simscape™プラントモデルを変更してHDL编码器™でHDL互换の的Simulink金宝appモデルを生成する方法を示します.HDLコードはこのSimulink的モデルから生成されます。

はじめに

的Simscapeプラントモデルは,的Simscape HDLワークフローアドバイザーを使用してHDL互换的Simu金宝applinkモデルに変换されます。アドバイザーを実行するには,モデルの关数sschdladvisorを実行します。

的Simscape HDLワークフローアドバイザーは,HDLコードを生成するHDL実装モデルを生成します。実装モデルを生成する前に,的Simscape HDLワークフローアドバイザーを使用して,的Simscapeプラントモデルを実装モデルの生成用に构成します。详细については,生成HDL代码的Simscape模型を参照してください。

的Simscapeプラントモデルは,的Simscape HDLワークフローアドバイザーを使用した実装モデルの生成と互换性がない场合があります.HDL互换性のために,的Simscapeプラントモデルを変更してから,的Simscape HDLワークフローアドバイザーを実行します。この例では,DCモーター制御のプラントモデルを示します。モデルには,非线形摩擦ブロックが含まれています。この例のアプローチを使用すると,いくつかの非线形ブロックを含む的SimscapeモデルをHDL互换的Simulinkモデルに金宝app変换できます。

DCモーター制御モデル

DCモーター制御モデルは,的Simscapeで开発された物理モデルです。モデルは非线形要素を含む,実装モデルの生成用に変更しなければなりません。

Open_System('ee_dc_motor_control'

直流电机ブロックブロック摩擦ブロックをサブシステム内に,モデルをee_dc_motor_control_originalという名前で保存します。

Open_System('ee_dc_motor_control_original')set_param('ee_dc_motor_control_original''simulationcommand''更新'

DCモーター制御は,速度制御构造として使使使ます.dcモーターモーター电力を供给するに,pwm制御の4极限チョッパーが使使使使使使使使使ががががががが使使が使使ががががががががが,旋转机电转换器,电阻,电感,摩擦ブロックおよび惯性Controlサブシステムは,外交の速度ループ,内侧内侧电阻制御,およびpwm生成がれいいます。

SIM('ee_dc_motor_control_original')Open_System('ee_dc_motor_control_original /范围'

DCモーターモデルをHDLと互换させる

モデルをsimscape hdlワークフローアドバイザーでの変换対応したモデルに変换にはははは,次次ようにし。

1.モデルにある非线形コンポーネントや非线形ブロックを検出します.Simscapeプラントモデルの非线形ブロックの有无を确认するには,次を入力します。

simscape.findNonlinearBlocks('ee_dc_motor_control_original'
发现网络,其中包含以下块非线性方程组:{“ee_dc_motor_control_original / DC马达/摩擦”}的线性或线性切换网络模型中的号为0的非线性网络模型中的编号为1。ANS = 1x1的细胞阵列{ 'ee_dc_motor_control_original / DC马达/摩擦'}

的Simscapeプラントモデルには,非线形ブロックである摩擦ブロックが含まれています。

2.HDLとの互换性のため,モデルに非线形要素が含まれていてはなりません。モデルから摩擦ブロックを削除します。

3.モデルのシミュレーションを高速にし,的Simscape HDLワークフローアドバイザーで状态空间方程式を抽出するのにかかる时间を短缩するために,このモデルの停止时间を短くします.S金宝appimulinkツールストリップの[シミュレーション]タブで,[终了时间]1に変更します。

変更を新闻モデルにee_dc_motor_control_modifiedとして保存します。

Open_System('ee_dc_motor_control_modified')set_param('ee_dc_motor_control_original''simulationcommand''更新'

変更変更したモデルのシミュレーション结果を确认するに,次次のコマンドを実実しし

SIM('ee_dc_motor_control_modified')Open_System('ee_dc_motor_control_modified /范围'

的Simscape HDLワークフローアドバイザーの実行とシミュレーション结果の确认

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

sschdladvisor('ee_dc_motor_control_modified'
###运行的Simscape HDL的工作流程顾问 ee_dc_motor_control_modified 更新型号顾问缓存...型号顾问缓存更新。对于新的自定义,以更新缓存,使用Advisor.Manager.refresh_customizations方法。

実装モデルを生成するには,的Simscape HDLワークフローアドバイザーで,すべてのタスクを既定の设定のままにして,タスクを実行します。[包装モデル生成]タスクのリンクをクリックしてモデルを开きます。

包装モデルモデルのシミュレーションシミュレーションHDLコードの生成

モデルからHDLコをードを生成する前に,サンプル时间を変更して,モデルがHDLコード生成と互换性をもつように特定の设定を指定しなければなりません。変更したプラントモデルのサンプル时间はTSで,モードを计算するソルバーの反复回数は3.です。したがって,モデルのサンプル时间を変更しなければなりません.HDL互换の设定を指定するには,次を行います。

  1. [コンフィギュレーションパラメーター]ダイアログボックスで,以下の操作を実行します。

  • [ソルバー]ペインで,[固定ステップサイズ(基本サンプル时间)]TS / 3に设定し,[各各离散レートをを个别のタスクとして扱うを选択します。

  • [诊断],[サンプル时间]ペインで,[マルチタスクレート変换][シングルタスクレート変换]错误に设定します。

  1. 下の図に示すように,実装モデルで子系统ブロック内に配置される的Simscapeモデルに速率转换ブロックを追加します。

モデルをシミュレートするには,このコマンドを実行し,范围ブロックを开いて结果を确认します。

SIM('gmStateSpaceHDL_ee_dc_motor_control_modifie'

変更した的Simscapeプラントモデルで生成された出力が,実装モデルで生成された出力と一致することがわかります。

HDLコードコードと検证検证の生成

HDLコードコード生成する前に,検证モデルの生成を有效にしおくことをしますますますますます。検证モデルではますますますますますます。検证モデルで,コード生成后に生成さたモデルモデルのに,変更されたsimscapeプラントモデル比较されます。详细については,生成されたモデルと検证モデルを参照してください。

検证モデルの生成设定をS金宝appimulink的モデルに保存するには,次のコマンドを実行します。

hdlset_param('gmStateSpaceHDL_ee_dc_motor_control_modifie''GenerateValidationModel''在');

HDLコードを生成するに,次のコマンドを実行。

makehdl('gmStateSpaceHDL_ee_dc_motor_control_modified / HDL子系统'

既定では,HDL编码器でvhdlコードが生成さますます。verilogコードを生成するは,次はコマンドを行。

makehdl('gmstatespacehdl_ee_dc_motor_control_modifie / hdl子系统''目标语言''Verilog'

生成されたHDLコードと検证モデルはHDLSRC.ディレクトリディレクトリに保存さされ。生成されたコード,HDL_Subsystem_tc.vhdとして保存されます。検证モデルgm_gmstatespacehdl_ee_dc_motor_control_modifie_vnl.slx.を実行しシミュレーションシミュレーションを検证検证するももできできます。

参考

关数

关键词トピック