Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

Lookup Table Dynamic

使用动态表逼近一维函数

  • Lookup Table Dynamic block

库:
Simulink / Lookup Tables

描述

此模块与其他 Lookup Table 模块的不同之处

Lookup Table Dynamic 模块使用 xdatydat 向量计算函数 y = f(x) 的近似值。查找方法可以使用内插、外插或原始输入值。

使用 Lookup Table Dynamic 模块,您可以更改表数据而无需停止仿真。例如,如果您正在仿真的物理系统发生变化,您可以加入新的表数据。

断点和表数据的输入

xdat 向量是断点数据,它必须严格单调递增。在转换为定点数据类型后,该向量中的下一个元素的值必须大于上一个元素的值。由于量化的原因,xdat 对于浮点数据类型可以严格单调,但在转换为定点数据类型之后,则不能严格单调。

ydat 向量是表数据,是函数在断点值处的计算结果。

注意

xdatydat 的输入不能是标量(一元数组)值。如果您为其中任一输入提供了标量值,您会在仿真时看到错误消息。为 xdatydat 输入都提供 1×n 向量。

查找表定义

您通过将 xdatydat 作为 1×n 向量馈送给模块来定义查找表。要减少为此模块生成的代码中使用的 ROM,您可以为 xdatydat 使用不同的数据类型。

提示

均匀分布的断点可使 Simulink® Coder™ 生成的代码无分割。有关详细信息,请参阅 Simulink 文档中的 fixpt_evenspace_cleanupSimulink Coder 文档中的Identify questionable fixed-point operations (Embedded Coder)

模块如何生成输出

此模块采用您为查找方法选择的方法使用输入值生成输出:

查找方法模块操作
内插-外插

对输入执行线性内插和外插。

  • 如果输入与断点匹配,则输出表数据中的对应元素。

  • 如果输入与断点不匹配,模块将通过在表的两个元素之间执行线性内插来确定输出。如果输入不在断点值的范围内,模块将使用前两个或最后两个点进行外插。

注意

如果您选择此查找方法,Simulink Coder 软件将无法为此模块生成代码。

插值 - 使用最终值(默认值)

执行线性内插,但不会在断点数据的端点外进行外插,而是会转而使用端点值。

取最邻近的输入值

查找 xdat 中最接近当前输入的元素。输出 ydat 中的对应元素。

向下取输入值

查找 xdat 中最接近并且低于当前输入的元素。输出 ydat 中的对应元素。如果 xdat 中没有任何元素低于当前输入,模块将查找最邻近的元素。

向上取输入值

查找 xdat 中最接近并且高于当前输入的元素。输出 ydat 中的对应元素。如果 xdat 中没有任何元素高于当前输入,模块将查找最邻近的元素。

注意

当输入 x 与断点值匹配时,Use Input NearestUse Input BelowUse Input Above 方法执行相同的操作。

有些连续求解器将仿真时间细分为主时间步和子时间步。子时间步是对主时间步的细分。求解器在每个主时间步生成结果,并使用子时间步的结果提高主时间步结果的准确性。对于连续求解器,Lookup Table Dynamic 模块的输出可能像一个楼梯,因为信号在子时间步是固定的,以免生成不正确的结果。有关求解器如何影响模块输出的详细信息,请参阅 Simulink 文档中的比较求解器

端口

输入

全部展开

模块接受实数值或复数值输入。

示例: 2:12

依存关系

x 输入向量和 xdat 断点数据必须具有相同的符号、偏置和小数斜率。此外,x 的精度和范围必须大于或等于 xdat 的精度和范围。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | bus

xdat 向量是断点数据,它必须严格单调递增。在转换为定点数据类型后,该向量中的下一个元素的值必须大于上一个元素的值。由于量化的原因,xdat 对于浮点数据类型可以严格单调,但在转换为定点数据类型之后,则不能严格单调。

提示

均匀分布的断点可使 Simulink Coder 生成的代码无分割。有关详细信息,请参阅 Simulink 文档中的 fixpt_evenspace_cleanupSimulink Coder 文档中的Identify questionable fixed-point operations (Embedded Coder)

示例: 1:10

依存关系

xdat 断点数据和 x 输入向量必须具有相同的符号、偏置和小数斜率。此外,x 的精度和范围必须大于或等于 xdat 的精度和范围。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | bus

ydat 输入是实数值或复数值表数据的 1×n 向量,它是函数在断点值处的计算结果。

示例: [0 3 12 27 48 75 108 147 192 243 300]

依存关系

ydat 表数据和 y 输出向量必须具有相同的符号、偏置和小数斜率。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | bus

输出

全部展开

该模块使用 xdatydat 输入向量来计算函数 y = f(x) 的近似值。查找方法可以使用内插、外插或原始输入值。

依存关系

ydat 表数据和 y 输出向量必须具有相同的符号、偏置和小数斜率。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

参数

全部展开

“常设”选项卡

该模块通过将您选择的查找方法应用于断点数据 (xdat) 和表数据 (ydat) 的输入向量来计算输出。有关详细信息,请参阅模块如何生成输出

编程用法

模块参数LookUpMeth
类型:字符向量
值:'Interpolation-Extrapolation' | 'Interpolation-Use End Values' | 'Use Input Nearest' | 'Use Input Below' | 'Use Input Above'
默认值:'Interpolation-Use End Values'

“信号属性”选项卡

指定输出信号 y 的数据类型。

数据类型助手可帮助您设置数据属性。要使用数据类型助手,请点击 the Show data type assistant button。有关详细信息,请参阅使用数据类型助手指定数据类型

依存关系

ydat 表数据和 y 输出向量必须具有相同的符号、偏置和小数斜率。

编程用法

模块参数OutDataTypeStr
类型:字符向量
值:'Inherit: Inherit via back propagation' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | <data type expression>
默认值:'double'

选择此参数可防止定点工具覆盖您在模块上指定的输出数据类型。有关详细信息,请参阅Use Lock Output Data Type Setting (Fixed-Point Designer)

编程用法

模块参数LockScale
类型:字符向量
值:'off' | 'on'
默认值:'off'

指定定点运算的舍入模式。有关详细信息,请参阅舍入 (Fixed-Point Designer)

模块参数始终舍入到最邻近的可表示值。要控制模块参数的舍入方法,请在封装字段中使用 MATLAB® 舍入函数输入表达式。

编程用法

模块参数RndMeth
类型:字符向量
值:'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
默认值:'Floor'

当您选中此复选框时,溢出将饱和处理为数据类型可表示的最大值或最小值。否则,溢出将绕回。

如果选中此复选框,饱和将应用于模块中的每个内部操作,而不仅仅应用于输出或结果。一般情况下,代码生成进程可以检测到何时不可能发生溢出。在这种情况下,代码生成器不会生成饱和代码。

编程用法

模块参数DoSatur
类型:字符向量
值:'off' | 'on'
默认值:'off'

模块特性

数据类型

Boolean | double | fixed point | integer | single

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。

版本历史记录

在 R2006a 之前推出