优化查找表以提高内存效率
的查找表优化器优化断点的间隔和查找表数据的数据类型,以减少查找表使用的内存。使用查找表优化器在命令行中,你可以:
优化现有的查找表块。
从Simulink中生成一个查找表®块,包括一个数学函数块或子系统。
从函数或函数句柄生成查找表。
使用查找表优化器优化现有的查找表
类的模型可优化现有的查找表查找表块。
openExample (“simulink_automotive / ModelingAFaultTolerantFuelControlSystemExample”,“supportingfile”,“sldemo_fuelsys”);open_system (“sldemo_fuelsys / fuel_rate_control / airflow_calc”);
泵恒
查找表块。
要打开查找表优化器,请选择
泵恒
查找表块。上下文敏感的查找表选项卡出现在Simulink工具条中。在查找表选项卡上,选择查找表优化器.选择要优化的块类型。优化Simulink块或子系统,包括现有的查找表块或数学函数块,选择Simulink块或子系统.若要为函数句柄生成查找表近似,请选择MATLAB函数处理.
在本例中,选择Simulink块或子系统优化
泵恒
查找表。点击下一个.下块的信息的路径
泵恒
查找表块。选择模型中的块,然后单击得到当前块在查找表优化器中自动填充块路径。点击从模型中收集当前值更新模型关系图,并允许Lookup Table Optimizer自动收集优化过程所需的信息,包括当前输出数据类型、输入编号、数据类型和值范围。您可以手动编辑所有这些字段,以指定范围和数据类型,而不是块上当前指定的那些。
指定期望输出数据类型生成的查找表的
numerictype
或仿真软件。NumericType
对象。将块的每个输入的数据类型指定为
numerictype
或仿真软件。NumericType
对象。将生成的查找表的每个输入的最小值和最大值指定为表中的标量。
对于本例,使用模型上指定的当前值。点击下一个.
指定要在优化中使用的约束。设置输出误差公差这对你的设计是可以接受的。
绝对公差定义为原始输出值与优化查找表输出值之差的绝对值。
相对公差测量相对于该点的值的误差,指定为非负值。
根据对预期硬件目标有效的类型,将允许的字长度指定为向量。例如,如果您希望允许优化器只考虑8-、16-和32-位类型,请指定
(8 16个32)
在允许的字长(向量)字段。若要为优化的查找表指定其他属性,请单击附近地区规范.有关每个属性的更多信息,请参见
FunctionApproximation。选项
.在本例中,使用这些属性的默认值。为优化指定选项,例如为生成的查找表指定最大时间或最大内存使用量按钮。
设置完成后,单击优化.
您也可以通过单击选择在优化求解器完成之前停止优化求解器停止.优化器将选择此时找到的最佳解决方案停止按钮被选中并显示在应用程序中。
优化完成后,优化器将报告优化查找表的内存。您可以编辑约束并再次运行优化,以进一步减少内存。
类使用默认设置时,查找表优化器将减少所使用的内存
泵恒
查找表阻塞从1516字节到505字节(66.69%)。点击下一个.
点击显示比较图查看原始块输出与新优化查找表输出的对比图。
点击取代原始的函数使用应用程序找到的优化设置生成一个新的查找表,并替换原来的块。
新块是一个掩码变量子系统,其中活动变量是优化的查找表块。非活动的变量是原始块。
编辑优化设置并生成一个新的近似
您可以通过编辑优化期间使用的设置来迭代地更改近似块,以生成新的查找表。
双击抽水常数块。要编辑优化设置,请在“块参数”对话框中单击重新设计近似.
在“查找表优化器”中,单击下一个要进入创建在本例中,将绝对公差和相对公差编辑为稍大的值,以便进一步减小查找表的大小。
设置绝对耐
0.01
,或1%。设置相对耐
0.01
,或1%。
点击优化使用新选项优化查找表。
使用这些公差值,新的查找表只使用304字节的内存。
点击下一个.在结果页面,点击取代原始的函数按钮,以此最新迭代替换近似块的第一次迭代。
在模型中,双击抽水常数块以打开块参数。块参数显示用于近似的设置
使原来的块或子系统成为活动的变体,旁边选择所需的函数版本中,选择
原始
.若要从模型中删除查找表近似,请在块参数中单击恢复到原来的.
另请参阅
应用程序
类
FunctionApproximation。问题
|FunctionApproximation。选项
|FunctionApproximation。LUTSolution
|FunctionApproximation。LUTMemoryUsageCalculator