主要内容

动态查找表

用动态表近似一维函数

  • 库:
  • 金宝appSimulink /查找表

  • 动态块

描述

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

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

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

断点和表数据的输入

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

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

请注意

的输入xdatydat不能是标量(单元素数组)值。如果为这些输入提供标量值,则会在模拟时看到错误。为两个都提供一个1 × n的向量xdatydat输入。

查找表的定义

您可以通过feed定义查找表xdatydat作为1 × n向量的块。为了减少这个块生成的代码中ROM的使用,您可以使用不同的数据类型xdatydat.然而,这些限制适用于:

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

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

提示

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

块如何生成输出

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

查找方法 块操作
Interpolation-Extrapolation

对输入进行线性插值和外推。

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

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

请注意

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

Interpolation-Use结束值(默认)

执行线性插值,但不将断点数据的端点外推。相反,块使用end值。

使用输入的

找到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|布尔|不动点|公共汽车

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

提示

间隔均匀的断点可以使金宝app仿真软件编码器生成的代码division-free。有关更多信息,请参见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)使用xdatydat输入向量。查找方法可以使用插值、外推或输入的原始值。

依赖关系

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

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

参数

全部展开

主要选项卡

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

编程使用

块参数:LookUpMeth
类型:特征向量
价值观:'内插-外推' | '内插-使用结束值' | '使用最近的输入' | '使用下面的输入' | '使用上面的输入'
默认值:“Interpolation-Use结束值”

信号属性选项卡

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

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

依赖关系

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

编程使用

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

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

编程使用

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

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

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

编程使用

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

当您选择此复选框时,溢出将饱和到该数据类型所能表示的最大值或最小值。否则,溢出包装。

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

编程使用

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

块特征

数据类型

布尔||不动点|整数|

直接引线

没有

多维信号

是的

适应信号

没有

讨论二阶导数过零检测

没有

扩展功能

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

定点转换
使用fixed-point Designer™设计和模拟定点系统。

之前介绍过的R2006a