关于选择查找表的规范
数据集维度
在某些情况下,可根据数据集的维度确定哪个查找表模块最适合您的应用。如果您要逼近一维函数,可以考虑使用 1-D Lookup Table 或 Lookup Table Dynamic 模块。如果您要逼近二维函数,可以考虑使用 2-D Lookup Table 模块。n-D Lookup Table 和 Direct Lookup Table (n-D) 等模块可用于逼近具有 N 个变量的函数。
数据集的数值和数据类型
数据集的数值和数据类型会影响您决定最适合的查找表模块。虽然所有查找表模块都支持实数,但 Direct Lookup Table (n-D)、1-D Lookup Table、2-D Lookup Table 和 n-D Lookup Table 模块还支持复数表数据。除了 double
和 single
数据类型外,所有查找表模块还支持整数和定点数据。
注意
对于 Direct Lookup Table (n-D) 模块,支持对表数据、输出端口以及表输入端口(可选)使用定点数据类型。
数据的准确度和平滑度
查找表返回的数据所需要的准确度和平滑度决定您应使用哪个模块。大多数模块都提供执行内插和外插的选项,可以分别提高位于表数据范围内或范围外的值的准确度。例如,Lookup Table Dynamic 模块执行线性内插和外插,而 n-D Lookup Table 模块执行线性、三次样条插值和外插或者 Akima 样条插值和外插。而 Direct Lookup Table (n-D) 模块只执行表查找,不会进行任何内插或外插。通过将 Prelookup 模块与 Interpolation Using Prelookup 模块一起使用,可以实现内插与外插方法的混用。
表输入的动态特性
查找表输入的动态特性会影响您决定哪个查找表模块最适合您的应用。模块通过各种索引搜索方法将查找表输入与断点相关联。大多数查找表模块提供了二分搜索算法,当两个时间步之间的输入变化较大时,这种算法的效果很好。1-D Lookup Table、2-D Lookup Table、n-D Lookup Table 和 Prelookup 模块提供了线性搜索算法。当输入变化缓慢时,使用这种算法并将选项设置为从上一个结果继续搜索,其效果很好。某些查找表模块还提供了最适合由等间距断点构成的断点的搜索算法。通过将 Prelookup 模块与 Interpolation Using Prelookup 模块一起使用,您可以实现索引搜索方法的混用。
执行效率
当查找表的执行效率非常重要时,可以考虑将 Prelookup 模块与 Interpolation Using Prelookup 模块一起使用。这两个模块将表查找过程分成两部分 - 将输入与表数据进行关联的索引搜索,以及计算输出的内插和外插阶段。使用这两个模块只需执行一次索引搜索,然后可以重用搜索结果在多个表中查找数据。此外,Interpolation Using Prelookup 模块还可以执行子表选择,即该模块可以内插一部分表数据,而不是整个表。例如,如果您的三维表数据由一系列要进行插值的二维表构成,则您可以指定一个选择端口输入,选择其中一个或多个二维表进行插值。完整的三维内插有 7 个子插值,但二维插值只需要 3 个子插值。因此,如果表的某些维度只用于数据堆叠而不用于插值,则可能大大提高执行速度。这些功能提高了表查找操作效率,减少了计算工作量和仿真时间。
查找表模块功能汇总
请使用下表确定特定查找表模块的对应功能,然后选择最能满足您需要的模块。
功能 | 1-D Lookup Table | 2-D Lookup Table | Lookup Table Dynamic | n-D Lookup Table | Direct Lookup Table (n-D) | Prelookup | Interpolation Using Prelookup |
---|---|---|---|---|---|---|---|
内插方法 | |||||||
均一 | • | • | • | • | • | ||
最邻近值 | • | • | • | • | |||
线性 | • | ||||||
线性点-斜率 | • | • | • | • | |||
线性拉格朗日 | • | • | • | • | |||
三次样条 | • | • | • | ||||
Akima 样条 | • | • | • | ||||
外插方法 | |||||||
固定 | • | • | • | • | • | • | |
线性 | • | • | • | • | • | • | |
三次样条 | • | • | • | ||||
Akima 样条 | • | • | |||||
数值和数据类型支持 | |||||||
复数 | • | • | • | • | |||
双精度、单精度 | • | • | • | • | • | • | • |
整数 | • | • | • | • | • | • | • |
定点 | • | • | • | • | • | • | • |
索引搜索方法 | |||||||
二分 | • | • | • | • | • | ||
线性 | • | • | • | • | |||
等距点 | • | • | • | • | • | ||
从上一个索引开始 | • | • | • | • | |||
其他 | |||||||
子表选择 | • | • | |||||
动态断点数据 | • | ||||||
动态表数据 | • | • | • | ||||
输入范围检查 | • | • | • | • | • | • |