文档

使用预查找和插值块

Prelookup块允许您尽量减少跨一组查找表执行的索引搜索次数,还可以在一个表计算中混合使用裁剪、外推和索引搜索算法。

介绍

该模型使用Prelookup和插值使用Prelookup块。请注意Prelookup块如何执行计算的索引搜索部分,而插值使用Prelookup块执行其余部分:

打开模型

这些块可以在查找表子库中的Simulink®块库中找到:万博1manbetx

优化:PreLookup +插值使用PreLookup块

对于在断点集中有密集索引搜索的表,应该考虑使用PreLookup块。Prelookup块允许您执行一次索引搜索,然后在多次表查找中重用该结果。在这个模型中,3个索引搜索结果在5个区块中使用,总共使用了10次。等效的常规查找表(如右边的示例)将需要10次索引搜索,而不是3次。

优化:使用预查找块插值中的子表选择选项

该模型中的一个插值块是使用一种功能配置的:n-D表的尾维可以标记为“选择维度”,这意味着该维度的输入是一个整数,仅用于进行子表选择,例如从3-D表中选择2-D平面。然后正常插入子表。

子表的插值可以节省大量的计算。对于从插值中消除的每一个维度,计算量几乎减半。由于N维插值需要(2^N)-1个单独的插值操作(y = yellow + f*(yhigh- yellow)),即使只有一个维度的选择几乎可以使插值速度翻倍。极端的例子:一个5-D表,3个维度的子表选择和2- d插值:5-D插值需要2^5-1 = 31次插值,而2- d插值只需要2^2 -1 = 3。

选择端口支持向量化,允许在单个块中进行多万博1manbetx个子表选择/插值。

通过在块的参数对话框中为子表选择维度的数量设置一个正整数来激活子表或多表操作模式。您设置的数字被解释为要从最高维度中选择的维度数。例如,如果你有一个3- d表并选择2,这意味着第一个维度将被插值,维度2和3将被选中:

注意:你可以使用视图/移除高亮菜单项或以下命令从模型中移除高亮:

set_param (mdl“HiliteAncestors”“没有”

断点和表数据一致性检查

使用Prelookup块引入了需要确保Prelookup块中的“断点数据”参数的长度与连接的“使用Prelookup块的插值”中的“表数据”参数的相应维度匹配。万博1manbetx在更新框图时,Simulink总是检查两个块之间的一致性。万博1manbetx如果遇到不一致的断点和表数据,Simulink会报告错误。例如:

试一试evalc ([“sim(”mdl,“)”]);E disp ([的错误:E.message]);结束
sldemo_bpcheck/在11x11表上的插值ERROR IN DIM 2 '不匹配对应表维数11的大小。指定一个不同的表维度或修改输入端口k2的值范围。
这个话题有帮助吗?