主要内容

使用PRELOOKUP和插值块

这个例子展示了如何使用Prelookup和插值使用Prelookup块。

介绍

该模型使用了Prelookup和使用Prelookup块的插值。Prelookup块最小化了跨一组查找表执行的索引搜索的数量。它还在一个表计算中混合了剪切、推断和索引搜索算法。注意Prelookup块是如何执行索引搜索部分的计算和插值使用Prelookup块执行其余部分的:

这些块位于Simulink®块库中的Lookup金宝app Tables Supbleibrary:

优化:使用PRELOOKUP BOLKS的PRELOOKUP和插值

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

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

插值模块在这个模型中配置的使用能力:后一天表的维度可以标记为“选择维度”,这意味着该维度的输入是一个整数只用子表选择,例如选择一个二维平面从3 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。

选择端口支持矢量化以允许单个块中的多个子金宝app特选择/插值。

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

注意:你可以使用View/ remove高亮菜单项或以下命令从模型中删除高亮:

set_param (mdl“HiliteAncestors”'没有任何'

断点和表数据一致性检查

使用Prelookup块需要确保Prelookup块中的“Breakpoint data”参数的长度与连接的使用Prelookup块中的“Table data”参数的相应维度相匹配。金宝app在更新模块图时,Simulink®总是检查两个模块之间的一致性。金宝app如果遇到不一致的断点和表数据,Simulink会报告错误。例如:

试一试evalc ([“sim(”mdl,“)”]);E disp ([的错误:E.message]);结尾
错误:块“ sldemo_bpcheck /插值中的11x11表错误在DIM 2 '不匹配相应表维的大小为11.指定不同的表维数或修改输入端口K2的值范围。