Lookup Table Dynamic
使用动态表逼近一维函数
库:
Simulink /
Lookup Tables
描述
此模块与其他 Lookup Table 模块的不同之处
Lookup Table Dynamic 模块使用 xdat
和 ydat
向量计算函数 y = f(x)
的近似值。查找方法可以使用内插、外插或原始输入值。
使用 Lookup Table Dynamic 模块,您可以更改表数据而无需停止仿真。例如,如果您正在仿真的物理系统发生变化,您可以加入新的表数据。
断点和表数据的输入
xdat
向量是断点数据,它必须严格单调递增。在转换为定点数据类型后,该向量中的下一个元素的值必须大于上一个元素的值。由于量化的原因,xdat
对于浮点数据类型可以严格单调,但在转换为定点数据类型之后,则不能严格单调。
ydat
向量是表数据,是函数在断点值处的计算结果。
注意
xdat
和 ydat
的输入不能是标量(一元数组)值。如果您为其中任一输入提供了标量值,您会在仿真时看到错误消息。为 xdat
和 ydat
输入都提供 1×n 向量。
查找表定义
您通过将 xdat
和 ydat
作为 1×n 向量馈送给模块来定义查找表。要减少为此模块生成的代码中使用的 ROM,您可以为 xdat
和 ydat
使用不同的数据类型。但存在以下限制:
xdat
断点数据和x
输入向量必须具有相同的符号、偏置和小数斜率。此外,x
的精度和范围必须大于或等于xdat
的精度和范围。ydat
表数据和y
输出向量必须具有相同的符号、偏置和小数斜率。
提示
均匀分布的断点可使 Simulink® Coder™ 生成的代码无分割。有关详细信息,请参阅 Simulink 文档中的 fixpt_evenspace_cleanup
和 Simulink Coder 文档中的Identify questionable fixed-point operations (Embedded Coder)。
模块如何生成输出
此模块采用您为查找方法选择的方法使用输入值生成输出:
查找方法 | 模块操作 |
---|---|
“内插-外插 ” | 对输入执行线性内插和外插。
注意 如果您选择此查找方法,Simulink Coder 软件将无法为此模块生成代码。 |
“插值 - 使用最终值 ”(默认值) | 执行线性内插,但不会在断点数据的端点外进行外插,而是会转而使用端点值。 |
“取最邻近的输入值 ” | 查找 |
“向下取输入值 ” | 查找 |
“向上取输入值 ” | 查找 |
注意
当输入 x
与断点值匹配时,Use Input Nearest
、Use Input Below
和 Use Input Above
方法执行相同的操作。
有些连续求解器将仿真时间细分为主时间步和子时间步。子时间步是对主时间步的细分。求解器在每个主时间步生成结果,并使用子时间步的结果提高主时间步结果的准确性。对于连续求解器,Lookup Table Dynamic 模块的输出可能像一个楼梯,因为信号在子时间步是固定的,以免生成不正确的结果。有关求解器如何影响模块输出的详细信息,请参阅 Simulink 文档中的比较求解器。
端口
输入
输出
参数
模块特性
数据类型 |
|
直接馈通 |
|
多维信号 |
|
可变大小信号 |
|
过零检测 |
|
扩展功能
版本历史记录
在 R2006a 之前推出