文档

动态查找表

使用动态表近似一维函数

  • 库:
  • 金宝appSimulink /查找表

描述

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

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

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

断点和表数据的输入

xdatVector是断点数据,它必须是严格单调递增.在转换为定点数据类型后,向量中下一个元素的值必须大于前一个元素的值。由于量子化,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|uint8|uint16|uint32|布尔|不动点|公共汽车

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

提示

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

例子:1:10

依赖关系

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

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

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

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

依赖关系

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

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

输出

全部展开

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

依赖关系

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

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

参数

全部展开

主要选项卡

方法计算输出查找方法选择断点数据的输入向量(xdat)和表数据(ydat).详情请参见块如何生成输出

编程使用

块参数:LookUpMeth
类型:特征向量
价值观:'Interpolation-Extrapolation' | 'Interpolation-Use End Values' | '使用最接近的输入' | '使用下方输入' | '使用上方输入'
默认值:'插值-使用结束值'

信号属性选项卡

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

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

依赖关系

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)' | <数据类型表达式>
默认值:“双”

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

编程使用

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

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

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

编程使用

块参数:RndMeth
类型:特征向量
价值观:'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | '最简单' | 'Zero'
默认值:“地板”

选择此复选框时,溢出饱和到数据类型所能表示的最大值或最小值。否则,溢出将自动换行。

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

编程使用

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

块特征

数据类型

布尔||不动点|整数|

直接引线

没有

多维信号

是的

适应信号

没有

讨论二阶导数过零检测

没有

扩展功能

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

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

R2006a之前介绍过