主要内容

动态查找表

用动态表近似一维函数

  • 库:
  • 金宝appSimulink /查找表

  • 动态块

描述

此块与其他查找表块有何不同

动态查找表块计算函数的近似值Y = f(x)使用xdat而且ydat向量。查找方法可以使用插值、外推或输入的原始值。

使用Lookup Table Dynamic块,您可以在不停止模拟的情况下更改表数据。例如,如果要模拟的物理系统发生变化,则可以合并新的表数据。

断点和表数据的输入

xdatVector是断点数据,必须是严格单调递增.在转换为定点数据类型后,vector中下一个元素的值必须大于前一个元素的值。由于量子化,xdat对于浮点数据类型,可以是严格单调的,但转换为定点数据类型后就不是这样了。

ydatVector是表数据,它是函数在断点值处的求值。

请注意

的输入xdat而且ydat不能为标量(单元素数组)值。如果向这些输入中的任何一个提供标量值,在模拟时将看到一个错误。提供一个1 × n的向量xdat而且ydat输入。

查找表定义

通过输入来定义查找表xdat而且ydat是块的1 × n向量。为了减少此块生成的代码中的ROM使用,可以使用不同的数据类型xdat而且ydat.但是,这些限制适用于:

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

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

提示

可以生成具有均匀间距的断点金宝app®编码器™无除法生成代码。有关更多信息,请参见fixpt_evenspace_cleanup在Simuli金宝appnk文档中识别有问题的定点操作(嵌入式编码)金宝app仿真软件编码器文档。

区块如何生成输出

该块使用您选择的方法使用输入值生成输出查找方法

查找方法 块操作
Interpolation-Extrapolation

执行输入的线性插值和外推。

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

  • 如果输入不匹配断点,则块在表的两个元素之间执行线性插值以确定输出。如果输入落在断点值范围之外,则块使用前两个或最后两个点进行外推。

请注意

如果选择此查找方法,金宝app仿真软件编码器软件无法为此块生成代码。

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

执行线性插值,但不外推到断点数据的端点之外。相反,该块使用结束值。

使用最近输入

找到元素xdat最近的电流输入。中的相应元素ydat是输出。

使用下面的输入

找到元素xdat最近且低于当前输入。中的相应元素ydat是输出。如果没有元素在xdat在当前输入的下方,块查找最近的元素。

使用上述输入

找到元素xdat最近且高于当前输入。中的相应元素ydat是输出。如果没有元素在xdat在当前输入上方,块查找最近的元素。

请注意

使用最近输入,使用下面的输入,使用上述输入方法在输入时执行相同的操作x匹配断点值。

一些连续求解器将模拟时间跨度细分为大时间步长和小时间步长。小时间步长是大时间步长的细分。求解器在每个主要时间步长产生一个结果,并在次要时间步长使用结果来提高主要时间步长结果的准确性。对于连续求解器,Lookup Table Dynamic块的输出可能看起来像一个台阶,因为信号固定在小时间步长中,以避免错误的结果。有关解算器对块输出的影响的更多信息,请参见解决比较在Simuli金宝appnk文档中。

港口

输入

全部展开

该块接受实值或复值输入。

例子:2:12

依赖关系

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

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点|公共汽车

xdatVector是断点数据,必须严格地单调递增。在转换为定点数据类型后,vector中下一个元素的值必须大于前一个元素的值。由于量子化,xdat对于浮点数据类型,可以是严格单调的,但转换为定点数据类型后就不是这样了。

提示

可以生成具有均匀间距的断点金宝app仿真软件编码器无除法生成代码。有关更多信息,请参见fixpt_evenspace_cleanup在Simuli金宝appnk文档中识别有问题的定点操作(嵌入式编码)金宝app仿真软件编码器文档。

例子:1:10

依赖关系

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

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点|公共汽车

ydat输入是一个1 × n的实值或复值表数据向量,它是函数在断点值处的求值。

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

依赖关系

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

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点|公共汽车

输出

全部展开

该块计算函数的近似值Y = f(x)使用xdat而且ydat输入向量。查找方法可以使用插值、外推或输入的原始值。

依赖关系

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

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点

参数

全部展开

主要选项卡

块通过应用查找方法选择断点数据的输入向量(xdat)和表格数据(ydat).详细信息请参见区块如何生成输出

编程使用

块参数:LookUpMeth
类型:特征向量
价值观:'插入-外推' | '插入-使用结束值' | '使用输入最近' | '使用输入低于' | '使用输入高于'
默认值:“插值-使用最终值”

信号属性标签

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

单击显示数据类型助手按钮显示数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型

依赖关系

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

编程使用

块参数:OutDataTypeStr
类型:特征向量
价值观:'继承:通过反向传播继承' | '双' | '单' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' b| 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | <数据类型表达式>
默认值:“双”

选择此参数可防止定点工具覆盖输出您在块上指定的数据类型。有关更多信息,请参见使用锁输出数据类型设置(定点设计师)

编程使用

块参数:LockScale
类型:特征向量
价值观:'off' | 'on'
默认值:“关闭”

为定点操作指定舍入模式。有关更多信息,请参见舍入(定点设计师)

块参数总是舍入到最接近的可表示值。若要控制块参数的舍入,请使用MATLAB输入表达式®将函数舍入到掩码字段。

编程使用

块参数:RndMeth
类型:特征向量
价值观:“天花板”|“收敛”|“地板”|“最近”|“圆”|“最简单”|“零”
默认值:“地板”

选中此复选框时,溢出将饱和到数据类型可以表示的最大值或最小值。否则,溢出将被包裹。

选中此复选框后,饱和将应用于块上的每个内部操作,而不仅仅是输出或结果。通常,代码生成过程可以检测不可能出现溢出的情况。在这种情况下,代码生成器不会产生饱和代码。

编程使用

块参数:DoSatur
类型:特征向量
价值观:'off' | 'on'
默认值:“关闭”

块特征

数据类型

布尔||不动点|整数|

直接引线

没有

多维信号

是的

适应信号

没有

讨论二阶导数过零检测

没有

扩展功能

C/ c++代码生成
使用Simulink®Coder™生成C和c++代码。金宝app

定点转换
使用定点设计器设计和模拟定点系统。

R2006a之前介绍