Main Content

关于查找表模块

查找表是将输入值映射到输出值的数据数组,以用于逼近数学函数。给定一组输入值,查找操作从表中检索对应的输出值。如果查找表没有显式定义输入值,Simulink® 可以使用内插、外插或舍入来估计输出值,其中:

  • 内插是一种估计位于已知数据点之间的值的过程。

  • 外插是一种估计超出已知数据点范围的值的过程。

  • 舍入是根据已知规则通过更改数值的位数来逼近数值的过程。

查找表模块使用数据数组将输入值映射到输出值,来对数学函数进行逼近。如果指定输入值,Simulink 将执行“查找”操作,从表中检索对应的输出值。如果查找表中未定义这些输入值,模块将基于邻近的表值估算输出值。

以下示例介绍了一个一维查找表,它用于逼近函数 y = x3。该查找表在输入 (x) 范围 [-3, 3] 内定义其离散输出 (y) 数据。下面的表和图说明了输入/输出关系:

如果输入值为 -2,查找表将查找并检索对应的输出值 (-8)。同样,如果输入值为 3,查找表将输出对应的值 27。

如果查找表模块遇到输入值与表中的任何 x 值都不匹配的情况,它会内插或外插答案。例如,查找表没有定义输入值 -1.5;但是,模块可以对最为相邻的数据点 (xi, yi) 和 (xi+1, yi+1) 进行线性插值以得出结果。例如,给定以下两个点:

  • (xi, yi) 为 (-2,-8)

  • (xi+1, yi+1) 为 (-1,-1)

查找表会估计并返回值 -4.5。

同样,虽然查找表中没有包含超出 [-3, 3] 范围的 x 值的数据,但该模块可以使用查找表任一端的一对数据点进行外插值。如果输入值为 4,查找表模块将对最近的数据点 (2, 8) 和 (3, 27) 进行线性外插,从而估算出输出值 46。

由于用表进行查找和简单的估算可能比计算数学函数的速度更快,所以在进行模型仿真时,使用查找表模块可能提高仿真速度。在下列情况下,可以考虑使用查找表代替数学函数计算:

  • 分析表达式需要进行大量计算。

  • 不存在分析表达式,但已根据经验确定关系。

Simulink 提供了各种类型的查找表模块,每个模块专门针对一种特定的应用。以下各节概述了不同类型的查找表,为您如何选择最适合您的应用情形的查找表提供了建议,并说明了如何与各种查找表模块进行交互。

相关主题