提高HDL实现模型的采样率Simscape算法
如果您使用Simscape™切换线性块来设计算法,则可以运行Simscape HDL Workflow Advisor来生成HDL实现模型。当您打开HDL实现模型时,您将看到使用Simulink对状态空间表示建模的HDL算法®与HDL代码生成兼容的块。要了解有关Simscape HDL Workflow Advisor的更多信息,请参见Simscape HDL工作流顾问任务.
采样频率
当您生成HDL代码并将植物模型部署到FPGA上时,您可能希望提高采样频率。采样频率取决于以下参数:
FPGA时钟频率
过采样因子
求解器迭代次数
为了提高采样率,您需要最大化FPGA时钟频率,并最小化过采样因子和求解器迭代次数。方法提高采样率时,请确保更新的采样频率与您为原始Simscape模型指定的固定采样时间相等解算器配置块。要了解在运行Simscape HDL Workflow Advisor之前如何在模型中使用此块的更多信息,请参见生成Simscape模型的HDL代码.
上一节以升压转换器模型为例,说明如何修改过采样因子和求解器迭代次数以提高采样率。
升压变换器模型
本例使用boost转换器模型来说明生成的HDL实现模型中采样时间的变化以及模型上节省的过采样因子。
打开升压转换器模型。要了解升压转换器是如何实现的,请打开
Simscape_system
子系统。打开升压变换器的模型,在MATLAB中®命令窗口,输入:open_system (“sschdlexBoostConverterExample”) open_system (“sschdlexBoostConverterExample / Simscape_system”)
您可以看到,模型在采样时间运行
1 e-6
.的采样时间200年e-9
对应于驱动Simscape算法的源的采样时间。为您的模型打开Simscape HDL Workflow Advisor:
sschdladvisor (“sschdlexBoostConverterExample”)
将工作流运行到生成实现模型的任务。
运行此任务后,您将看到一个指向生成的HDL实现模型的链接。单击链接打开HDL实现模型。
模拟HDL实现模型。当您将模型导航到
高密度脂蛋白算法
子系统,您可以看到模型使用的单
数据类型,并在采样时间运行200年e-9
,即5
比原始的Simscape模型快一倍。运行此命令查看保存在模型上的HDL参数设置:
hdlsaveparams (“gmStateSpaceHDL_sschdlexBoostConverterExamp”)
设置模型'gmStateSpaceHDL_BoostConverter_HDL' HDL参数hdlset_param('gmStateSpaceHDL_BoostConverter_HDL', 'FloatingPointTargetConfiguration',…hdlcoder。createFloatingPointTargetConfig(“NativeFloatingPoint”……, 'LatencyStrategy', 'MIN')…);hdlset_param('gmStateSpaceHDL_BoostConverter_HDL', 'HDLSubsystem',…“gmStateSpaceHDL_BoostConverter_HDL”);hdlset_param('gmStateSpaceHDL_BoostConverter_HDL', 'MaskParameterAsGeneric', 'on');hdlset_param('gmStateSpaceHDL_BoostConverter_HDL', '过采样',60);%设置子系统HDL参数hdlset_param('gmStateSpaceHDL_BoostConverter_HDL/HDL子系统','扁层结构','on');% Set SubSystem HDL parameters hdlset_param('gmStateSpaceHDL_BoostConverter_HDL/HDL SubSystem /HDL Algorithm/State Update/Multiply State',… 'SharingFactor', 1);
保存的HDL参数指示模型启用了本机浮点模式并使用过采样因子的60
并已延迟策略设置为最小值
.为求解器迭代次数和HDL参数组合选择的默认值提供了过采样因子和目标FPGA时钟频率之间的最佳权衡,并提高了采样频率。为了进一步提高采样频率,可以减少迭代次数和过采样因子。
减少求解器迭代次数
对于物理系统中的每个模式,切换的线性工作流都有一个状态空间表示。求解器方法是迭代的,并执行多次计算以确定下一个时间步骤的正确模式。经过一定次数的迭代后,下一个时间步骤的输出值与前一个时间步骤的输出值相同。输出值的一致性表明求解器迭代的正确次数。
默认情况下,Advisor为求解器迭代次数选择一个最佳值。看到使用求解器迭代次数.为了提高采样率,减少求解器的迭代次数。求解器迭代的次数取决于各种因素,如设计的复杂性、工作流计算的设计模式的数量,等等。
在生成实现模型Simscape HDL Workflow Advisor的任务:
从减少求解器迭代次数到值,例如
3.
选择为实现模型生成验证逻辑,然后生成HDL实现模型。
模拟HDL实现模型并打开Diagnostic Viewer以验证模型没有显示警告或断言。
如果您看到警告或断言,则表示模拟不匹配,因为您指定的求解器迭代次数不足以计算状态空间设计中所需的模式数量。通过增加验证逻辑公差值或求解器迭代次数来解决不匹配问题。改变浮点精度来双
不建议使用。双精度操作有较大的延迟,需要较大的过采样因子分配足够的延迟,从而降低采样频率。看到验证HDL实现模型到Simscape算法.
使用过采样因子和延迟策略
的过采样因子指定FPGA时钟速率是HDL实现模型基础采样速率的倍数的因子。HDL实现模型包含反馈循环,并执行反馈循环中包含浮点数据类型的大型矩阵的乘法。为了适应反馈循环中这些浮点操作带来的较大延迟,代码生成器使用了较大的过采样因子值,并结合模型上的时钟速率管道优化。有关更多信息,请参见策略1:全局过采样.
您可以同时改变浮点运算符的过采样因子和延迟策略。的默认过采样因子60
最小延迟策略给出了最优采样频率。为了实现FPGA的最大时钟频率,可以使用最大延迟策略。指定此延迟策略时,浮点运算将引入最大延迟数。为了分配这些延迟,增加过采样因子。如果FPGA时钟频率的增加超过过采样因子的增加,则可以获得更高的采样频率。
在“配置参数”对话框中修改延迟策略和过采样因子:
在HDL代码生成>浮点窗格,更改延迟策略来
马克斯
.在HDL代码生成>全局设置窗格,增加过采样因子到值,例如
One hundred.
这取决于HDL设计的复杂性。
对于升压转换器型号,默认设置为求解器迭代次数设置为5
,过采样因子设置为60
,延迟策略设置为最小值
提供最佳采样频率。
另请参阅
功能
sschdladvisor
|simscape.findNonlinearBlocks
(Simscape)