为Simscape两级转换器模型生成Simulink实时接口子系统
本示例展示了如何为Simscape™两级转换器工厂模型生成Simulink®实时接口子系统。然后可以在Speedgoat FPGA I/O模块上部署接口模型。本例使用Speedgoat IO334-325k模块。
实时仿真
在FPGA上模拟工厂模型提供:
实时仿真:硬件在环(hardware -in- loop)在目标硬件上提供Simscape工厂模型的实时仿真。
硬件加速:硬件上复杂物理系统的加速仿真,而可重构fpga提供快速原型。
要使用工作流:
通过使用Simscape HDL Workflow Advisor开发Simscape模型并将其转换为实现模型。
通过使用HDL工作流顾问生成HDL代码并将代码部署到Speedgoat I/O模块。
设置和配置
在Speedgoat I/O模块上部署算法之前:
1.安装最新版本的Xilinx®Vivado®支持HDL语言和支持的第三方工具和硬件。
将工具路径设置为已安装的Xilinx Vivado可执行文件hdlsetuptoolpath
函数。
hdlsetuptoolpath (“ToolName”,“Xilinx Vivado”,“路径”,“C: \ Xilinx \ Vivado \ 2019.2 \ bin \ vivado.bat ')
2.对于实时仿真,设置开发环境和目标计算机设置。看到开始与Simulink实时(实时仿真软件)。
3.安装Speedgoat I/O Blockset和Speedgoat HDL编码器集成包。看到安装Speedgoat HDL编码器集成包。
双电平变换器理想模型
要打开这个模型,输入:
open_system (“sschdlexTwoLevelConverterIdealExample”)
将此模型本地保存为TwoLevelConverter_HDL.slx
要运行此工作流。
open_system (“TwoLevelConverter_HDL”) set_param (“TwoLevelConverter_HDL”,“SimulationCommand”,“更新”)
open_system (“TwoLevelConverter_HDL / Simscape_system”)
Simscape子系统接收六开关控制脉冲作为输入。Simscape子系统作为一个生成器,使用两级载波PWM方法来:
采样一个参考波。
将样本与三角载波进行比较。
如果样本高于载波信号,则产生开关脉冲;如果样本低于载波信号,则产生关断脉冲。
模拟模型。
sim卡(“TwoLevelConverter_HDL”) open_system (“TwoLevelConverter_HDL /负载范围”)
生成HDL实现模型
要生成实现模型,请使用Simscape HDL Workflow Advisor。运行sschdladvisor
您的模型的功能:
sschdladvisor (“TwoLevelConverter_HDL”)
要在Simscape HDL Workflow Advisor中生成实现模型,请保持任务的默认设置,然后运行任务。控件中有指向模型的链接生成实现模型的任务。此型号与原型号名称相同,前面加gmStateSpaceHDL
。
要打开实现模型,输入:
load_system (“gmStateSpaceHDL_TwoLevelConverter_HDL”) open_system (“gmStateSpaceHDL_TwoLevelConverter_HDL / Simscape_system”) set_param (“gmStateSpaceHDL_TwoLevelConverter_HDL”,“SimulationCommand”,“更新”)
实现模型用执行状态空间计算的HDL算法取代Simscape子系统。当您在这个子系统内部导航时,您会看到一些延迟、加法器和矩阵乘法块,它们为状态空间方程建模。该子系统中的From和Goto块提供与原始模型相同的输入高密度脂蛋白子系统
。
open_system ('gmStateSpaceHDL_TwoLevelConverter_HDL/Simscape_system/HDL子系统/HDL算法')
HDL工作流顾问
HDL工作流顾问指导您通过HDL代码生成和FPGA设计过程。使用顾问:
检查模型的HDL代码生成兼容性并修复不兼容的设置。
生成HDL代码、测试台和脚本,以构建和运行代码和测试台。
进行综合和时序分析。
将生成的代码部署到soc、fpga和Speedgoat I/O模块上。
要打开模型中子系统的HDL Workflow Advisor,请使用hdladvisor
函数。
load_system (“sschdlexTwoLevelConverterIgbtExample”) hdladvisor (“sschdlexTwoLevelConverterIgbtExample / Simscape_system”)
左窗格包含表示一组相关任务的文件夹。展开文件夹并选择任务将在右侧窗格中显示有关该任务的信息。右窗格包含简单的控件,用于将任务运行到控制代码和测试台架生成的高级参数和选项设置。要了解每个任务的详细信息,请右键单击该任务,然后选择这是什么?。看到开始使用HDL工作流顾问。
在Speedgoat IO334-325K模块上部署两电平理想变换器模型
1.打开实现模型的HDL Workflow Advisor。
hdladvisor (“gmStateSpaceHDL_TwoLevelConverter_HDL / Simscape_system / HDL子系统”)
2.在设置目标设备和合成工具任务,指定目标工作流程作为Simulink实时FPGA I/O
和目标平台作为Speedgoat io334 - 325 k
3.运行设定目标参考设计任务,选择值为x4
对于参数作为PCIe车道
,并选择运行此任务。
4.在设置目标接口任务,映射输入和输出单
数据类型端口作为PCIe接口
并选择运行此任务。
5.右键单击生成RTL代码和IP核任务和选择运行到选定任务。由于模型使用向量数据类型,所以生成RTL代码和IP核失败是因为ScalarizePorts
属性必须设置为dutlevel
。单击链接以更改此设置并重新运行任务。
6.将工作流运行到生成Simulink实时接口的任务。在创建项目任务时,您可以打开Vivado项目并查看实现的设计。后生成Simulink实时接口任务通过后,单击链接打开Simulink实时接口模型。
导出HDL工作流到脚本
对于快速原型,您可以将HDL Workflow Advisor设置导出到脚本中。该脚本是一个MATLAB®文件,您可以从命令行运行。然后,您可以修改和运行脚本,或将设置导入到HDL工作流顾问用户界面。
要导出HDL Workflow脚本,在Advisor中运行任务后,选择文件>导出为脚本。对于本例,当您导出到脚本时,该文件将显示您保存的设置。
编辑(“hdlworkflow_slrt.m”)
要导入HDL工作流脚本,请在HDL工作流指导器中选择文件>从脚本导入。选择脚本文件,单击开放。HDL Workflow Advisor使用导入的脚本设置更新任务。
有关如何通过部署FPGA位流来运行实时应用程序的示例,请参见Simscape模型在Speedgoat FPGA I/O模块上的硬件在环实现。