主要内容

开始Simscape硬件在循环工作流

您可以将Simscape™模型转换为用于现场可编程门阵列(FPGA)部署的HDL代码,这需要HDL Coder™。物理系统的模拟加速了,使您能够快速地建立模型原型。转换还通过使用硬件在环(HIL)仿真提供HDL实现模型的实时仿真。

通过将Simscape工厂模型部署到通用fpga、芯片上系统(soc)或Speedgoat,您可以以更小的时间步长和更高的精度执行HIL模拟®FPGA I/O模块。使用此工作流,您可以:

  • 使用Simscape HDL Workflow Advisor生成HDL实现模型。实现模型是一个Simulink®用与hdl兼容的Simulink块替换Simscape组件的模型。有关更多信息,请参见使用Simscape HDL Workflow Advisor生成HDL实现模型

  • 生成实现模型的HDL代码,然后使用HDL Workflow Advisor将生成的代码部署到Speedgoat FPGA I/O模块。有关更多信息,请参见HDL代码生成和部署

您可以在Simscape中建模和部署复杂的物理系统,同时将模型转换为HDL代码。

此工作流图显示了Simscape硬件在循环工作流的各个阶段的功能。

Simscape到HDL的工作流程图

在Simscape中为HDL兼容性建模物理系统

当您设计与Simscape HDL Workflow Advisor兼容的Simscape模型时,请遵循以下指导原则。在使用此工作流之前,请将Simscape子系统转换为状态空间算法。有关更多信息,请参见Simscape子系统替换建模指南

您可以使用线性、切换线性和非线性块来创建Simscape模型。

  • 线性块是由线性关系定义的块,如电阻。

  • 开关线性块是诸如二极管和开关的块。这些块也由线性关系定义,例如V = ir,在那里R可以根据二极管或开关的状态在两个或多个值之间切换。

  • 非线性块是由非线性方程定义的块,例如非线性电阻非线性电感器直流电机,永磁同步电动机块。

您可以根据模型中的块类型选择求解器类型(向后欧拉或分区)。如果您的模型中有线性和切换线性块,请选择向后欧拉求解器类型。如果您的模型中有非线性块,请选择分区求解器类型。有关更多信息,请参见解算器配置(Simscape)

配置求解器设置

为了配置HDL代码生成的求解器设置,打开您的模型,例如:

open_system (“sschdlexBoostConverterExample / Simscape_system”

双击解算器配置(Simscape)块。

选择解算器类型要为块选择求解器类型,双击解算器配置(Simscape)块。

  1. 在“块参数”对话框中,选择使用局部求解器

  2. 解算器类型下拉列表,选择向后欧拉用于线性和切换线性块。对于非线性块,选择分区.对于升压转换器,选择向后欧拉

指定采样时间。类似地,你可以指定一个离散的采样时间。

  1. 在“块参数”对话框中,选择使用局部求解器

  2. 样品时间文本框中,指定离散采样时间Ts。

要验证求解器设置是否正确指定,请运行检查解算器配置任务在Simscape HDL Workflow Advisor中。

运行hdlsetup函数

创建模型后,通过运行命令配置用于生成HDL代码的模型hdlsetup函数。这个函数hdlsetup将模型配置参数设置为代码生成推荐的默认值。方法之前打开模型hdlsetup函数。

调用hdlsetup函数为current_model,在MATLAB中®命令提示符,输入:

hdlsetup (“current_model”

在运行hdlsetup函数,确保您的模型编译没有任何错误或警告。

用于HDL代码生成的Simscape示例模型

对于HDL代码生成,您可以设计自己的Simscape算法,或者从Simscape中创建的示例模型列表中进行选择。

使用后向欧拉求解器的示例模型

使用分区求解器的示例模型

所有示例都以sschdlex并加上例子.例如,要打开升压转换器模型,在MATLAB命令提示符处输入:

load_system (“sschdlexBoostConverterExample”) open_system (“sschdlexBoostConverterExample / Simscape_system”

您还可以找到许多其他特定于应用程序的示例模型。要获得为HDL代码生成而设计的所有Simscape模型的列表,请键入sschdlex在MATLAB命令窗口中按选项卡关键。

使用Simscape HDL Workflow Advisor生成HDL实现模型

您首先使用Simscape HDL Workflow Advisor从Simscape模型生成HDL实现模型。

升压变换器模型

要生成HDL实现模型,请打开Simscape HDL Workflow Advisor。

在MATLAB命令提示符下,运行sschdladvisor功能:

sschdladvisor (“current_model”

此函数打开Simscape HDL Workflow Advisorcurrent_model

在Simscape HDL Workflow Advisor中运行任务

在Simscape HDL Workflow Advisor中,左侧窗格列出了包含相关任务组或类别的文件夹。展开文件夹会显示每个文件夹中可用的任务。在左侧窗格中,您可以选择文件夹或单个任务,并在右侧窗格中查看相关信息。对于左窗格中的任务,右窗格包含用于运行任务的控件、用于状态消息的显示区域和其他任务结果。要详细了解每个任务,请右键单击该任务并选择这是什么?从名单上。

在Simscape HDL Workflow Advisor窗口中,您可以运行单个任务或列表中的所有任务。选择要运行的任务并单击运行此任务.要运行一个任务,它之前的所有任务必须已经成功运行。若要将工作流运行到子文件夹中的特定任务,请展开该文件夹,然后右键单击该任务并选择运行到选定任务

Simscape HDL Workflow Advisor窗口

要运行工作流并将HDL实现模型的功能与原始Simscape算法进行比较:

  1. 选择生成实现模型的任务。

  2. 验证设置,选择为实现模型生成验证逻辑复选框。这将启用验证逻辑公差哪个被设置为默认值0.001

  3. 右键单击生成实现模型任务和选择运行到选定任务从名单上。

任务完成后,您将看到到HDL实现模型和状态空间验证模型的链接。实现模型具有与原始Simscape模型相同的名称,并使用前缀gmStateSpaceHDL.状态空间验证模型与实现模型具有相同的名称,并使用后缀_vnl

Simscape HDL Workflow Advisor窗口,在右侧窗格的显示区域中链接到生成的实现模型和状态空间验证模型

有关Simscape HDL Workflow Advisor任务的更多信息,请参见Simscape HDL工作流顾问任务

HDL代码生成和部署

对于HDL代码生成,您可以使用生成的状态空间验证模型来验证HDL实现模型和原始Simscape算法的数值结果。

升压变换器验证模型

在生成HDL代码之前,验证生成的HDL实现模型。

验证HDL算法

您可以将HDL实现模型的功能与原始Simscape算法进行比较。要验证HDL实现模型,请模拟状态空间验证模型。如果模拟没有产生任何断言或警告,则表明HDL实现模型的输出在指定的公差范围内与原始Simscape算法匹配。有关更多信息,请参见验证HDL实现模型到Simscape算法

生成代码

一旦验证了HDL算法,就可以为实现模型生成HDL代码。在MATLAB命令提示符中,输入:

makehdl (gmStateSpaceHDL_current_model / HDL子系统)
有关更多信息,请参见生成Simscape模型的HDL代码

生成HDL代码后,可以将实时模型部署到目标硬件上。有关如何部署代码的详细信息,请参见使用HDL工作流脚本部署Simscape Buck转换器模型到Speedgoat IO模块

从Simscape模型生成HDL代码的限制

HDL Coder不支持从包含以下内容的Simscape网络生成代码:

另请参阅

||

相关的话题

Baidu
map