插值使用Prelookup

利用预计算的指数和分数值加速逼近n维函数

  • 图书馆:
  • 万博1manbetxSimulink /查找表

描述

使用Prelookup块的插值在与预备课块。Prelookup块计算指定输入值的索引和区间分数U与断点数据集相关。使用Prelookup块将结果索引和分数值输入到插值中,以插值N维表。这两个区块都有分布式算法。当组合在一起时,它们执行与n-D Lookup Table块中集成的算法相同的操作。然而,Prelookup和插值使用Prelookup块提供了更大的灵活性,可以提供更有效的模拟和代码生成。有关更多信息,请参见绩效效率

万博1manbetx支持的块操作

若要使用Prelookup块进行插值,请直接在对话框中指定一组表格数据值,或将值输入到T输入端口。通常,这些表值对应于Prelookup块中指定的断点数据集。使用Prelookup块的插值通过基于Prelookup块提供的索引和间隔分数值查找或估计表值来生成输出。索引和区间分数的标签显示为KF使用Prelookup块图标进行插值。

当输入指数和区间分数时… 使用Prelookup块的插值。。。
映射到断点数据集中的值 在行、列和更高维度断点的交点处输出表值
不映射到断点数据集中的值,但在范围内 使用插值法你选择
不要映射到断点数据集中的值,这些值超出范围 属性推断输出值外推法你选择

块如何插值表数据的子集

你可以使用子表选择维数参数指定插值只发生在表数据的一个子集上。要激活该插补模式,请将该参数设置为正整数。这个值定义要选择的维度数,从默认列主算法的表数据的最高维度开始。因此,该值必须小于或等于表维数

对于行主算法,插值从表数据的第一个或最低维度开始。

对于非零值,子表选择行为在选择行主布局时被优化数学和数据类型>使用针对行主阵列布局优化的算法配置参数。

假设您的数据库中有三维表格数据插值使用Prelookup块此行为适用于列主算法。

选择维度数 街区行动 块的外观
0 插入整个表格,但不激活子表格选择 不会改变
1. 插值前两个维度并选择第三个维度 显示带有标签的输入端口s3用来选择和插入二维表格
2. 插值第一个维度并选择第二个和第三个维度 显示两个带有标签的输入端口s2s3用来选择和插入1-D表

子表选择使用基于零的索引。对于插入表数据子集的示例,请键入sldemo\bpcheck在MATLAB®命令提示符。

对于不选择子表的2d或n-D插值,列主算法和行主算法的输出计算顺序可能不同,导致数值结果略有不同。

港口

输入

全部展开

从零开始的索引,K,指定包含输入的间隔U用于表的第一个维度。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|定点

小部分F,表示该区间内输入的归一化位置,K,用于表的第一个维度。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|定点

从零开始的索引,K,指定包含输入的间隔UN-表的第个维度。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|定点

小部分F,表示该区间内输入的归一化位置,K,N-表的第个维度。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|定点

输入到kf1端口包含索引K和分数F指定为总线对象。

依赖关系

要启用该端口,请选择需要索引和分数作为总线复选框。

可用的kf输入端口取决于数量的维度子表选择维数参数。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|定点|公共汽车

输入到kfn端口包含索引K和分数F对于输入的第n维,指定为总线对象。

依赖关系

要启用该端口,请选择需要索引和分数作为总线复选框。

可用的kf输入端口取决于数量的维度子表选择维数参数。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|定点|公共汽车

对于列主算法,块使用对s的输入M,年代M+1, ... sN端口来执行子表内的选择和插值。M映射到Mth表的尺寸。N等于数量的维度

对于行主算法,块使用s1, s2,…,年代M端口来执行子表内的选择和插值。M映射到Mth表的尺寸。M等于子表选择维数

依赖关系

要启用此端口,请子表选择维数必须是一个正整数小于或等于数量的维度

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

作为端口输入提供的表数据值T.通常,这些表值对应于Prelookup块中指定的断点数据集。Using Prelookup块通过根据索引查找或估计表值生成输出(K)和区间分数(F)值由Prelookup块提供。

依赖关系

要启用此端口,请设置输入端口

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|定点

输出

全部展开

n维函数的近似值,通过使用输入索引的值插值(或外推)表数据来计算,K,和分数,F

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|定点

参数

全部展开

主要的

表数据

指定表数据必须具有的维度数数量的维度定义表的自变量数。

指定… 这样做……

1 2 3或4

从下拉列表中选择该值。

更多的表维度

直接在字段中输入正整数。

此块支持的最大表维度数为30。万博1manbetx

程序化使用

块参数:表维数
类型:特征向量
价值观:'1' | '2' | '3' |'4' | ... | '30'
违约:'2'

选中此复选框可在总线中组合索引和分数输入。

使预备课块来提供输入插值使用Prelookup块,设置:

  • 输出选择指数和分数作为总线

  • 输出总线:<对象名称>,在那里<对象名称>必须是模型可访问的有效总线对象名称

不管这个复选框设置如何,选择端口总是在非总线模式下运行。

程序化使用

块参数:RequireIndexFractionAsBus
类型:特征向量
价值观:”从“|”“
违约:“关闭”

指定是直接输入表数据还是使用查阅表对象。如果将此参数设置为:

  • 显式值这个价值参数在对话框中可见。

  • 查找表对象这个的名字参数在对话框中可见。

程序化使用

块参数:TableSpecification
类型:特征向量
价值观:' | '查找表对象'
违约:“显式值”

指定是在对话框中输入表数据还是从输入端口继承数据。如果你设定:

  • 对话,在下方的文本框中输入表格数据价值

  • 输入端口,确认有上游信号向表输入端口提供表数据

依赖关系

要启用该参数,请设置规范显式值

程序化使用

块参数:TableSource
类型:特征向量
价值观:'对话框' | '输入端口'
违约:“对话”

将表数据指定为N-D数组,其中N是这个值吗数量的维度参数。您可以通过输入空矩阵([])或中未定义的工作空间变量价值编辑字段。有关如何在MATLAB中构造多维数组的信息,请参见多维数组(MATLAB)。

如果你设定输入端口,验证一个上游信号向T输入端口。表数据的大小必须匹配表维数.对于这个选项,块从T输入端口。

要使用查找表编辑器编辑查找表,请单击编辑(见编辑查找表).

依赖关系

若要启用此参数并在对话框中显式指定表值,必须进行设置规范显式值对话

程序化使用

块参数:表格
类型:特征向量
价值观:标量、向量、矩阵或N-D数组
违约:“sqrt([1:11]”*[1:11])”

指定对象的名称万博1manbetx仿真软件。LookupTable对象。一个查找表对象引用Simulink万博1manbetx®断点对象。如果一个万博1manbetx仿真软件。LookupTable对象不存在时,单击操作按钮选择创造.新查找表对象的相应参数将自动使用块信息填充。

依赖关系

要启用该参数,请设置规范查找表对象

程序化使用

块参数:LookupTableObject
类型:特征向量
值:万博1manbetxSimulink.LookupTable对象
违约:

算法

指定块用于插值表数据的方法。您可以选择线性点斜式,,最近的线性拉格朗日.看见插值方法为更多的信息。

程序化使用

块参数:InterpMethod
类型:特征向量
价值观:'Flat' | 'Linear point-slope' | 'Nearest' | 'Linear Lagrange'
违约:“线性点斜率”

指定块用于推断位于断点数据集范围之外的所有输入的值的方法。您可以选择剪辑线性.看见外推方法为更多的信息。

如果外推法是线性,外推值根据所选的线性插值方法计算。例如,如果插值方法为线性拉格朗日,则外推方法继承线性拉格朗日方程来计算外推值。

依赖关系

使外推法参数设置插值法线性

使用预查找的插值块不支持万博1manbetx线性当输入或输出信号指定整数或定点数据类型时的外推。

程序化使用

块参数:ExtrapMethod
类型:特征向量
价值观:“剪辑”|“线性”
违约:“线性”

指定索引的块输入方式(K)和区间分数(F)访问N维表数据。索引值是基于零的。

如果输入索引等于或大于该维度的表的最后索引,则此复选框是相关的。由于舍入,选择和清除此复选框可能会导致模拟和代码生成之间的最后索引的结果不同。

复选框 块的行为

在…上

在以下情况下,返回其表维度中最后一个元素的值:

  • K索引相应维度中的最后一个表元素

  • F0

在以下情况下,返回其表维度中最后一个元素的值:

  • K索引对应维度中倒数第二个表元素

  • F1.

依赖关系

此复选框仅在以下情况下可见:

  • 插值法线性点斜式线性拉格朗日

  • 外推法剪辑

提示

当您选择有效的索引输入可能到达最后一个索引对于使用Prelookup块的插值,还必须选择对于大于或等于上限的输入,使用最后一个断点对所有预备课此操作允许块在访问其断点和表数据集的最后元素时使用相同的索引约定。

程序化使用

块参数:ValidIndexMayReachLast
类型:特征向量
价值观:”从“|”“
违约:“关闭”

指定输入超出范围时是生成警告还是生成错误。选择包括:

  • 没有一个-不产生响应。

  • 警告-显示警告并继续模拟。

  • 错误—终止模拟并显示错误。

程序化使用

块参数:DiagnosticForOutOfRangeInput
类型:特征向量
价值观:“无”|“警告”|“错误”
违约:“没有”

指定块用于计算输出的子表的维数。遵循这些规则:

  • 要启用子表选择,请输入一个正整数。

    该整数必须小于或等于表维数

  • 要禁用子表选择,输入0插入整个表。

对于非零值,子表选择行为在选择行主布局时被优化数学和数据类型>使用针对行主阵列布局优化的算法配置参数。

有关更多信息,请参见块如何插值表数据的子集

程序化使用

块参数:numselection变暗
类型:特征向量
价值观:'0' | '1' | '2' | '3' | '4' |…|表维度数
违约:'0'

代码生成

复选框 后果 什么时候使用

在…上

生成的代码不包括用于检查超出范围的索引输入的条件语句。

当输入KF超出范围,则可能导致生成代码的未定义行为。

代码效率

生成的代码包括条件语句,用于检查超出范围的索引输入。

用于安全关键应用

如果您的输入没有超出范围,您可以选择删除对生成代码中超出范围索引的保护代码效率复选框。默认情况下,此复选框被清除。对于安全关键应用程序,不要选中此复选框。如果要选择删除对生成代码中超出范围索引的保护复选框,首先检查您的模型输入是否在范围内。例如:

  1. 清除删除对生成代码中超出范围索引的保护复选框。

  2. 设置诊断超出范围的输入参数到错误

  3. 在正常模式下模拟模型。

  4. 如果有超出范围的错误,修复它们在范围内,并再次运行模拟。

  5. 当模拟不再生成超出范围的输入错误时,选择删除对生成代码中超出范围索引的保护复选框。

    笔记

    当你选择删除对生成代码中超出范围索引的保护复选框和输入KF超出范围,生成的代码的行为未定义。

根据您的应用程序,您可以运行以下Model Advisor检查以验证此复选框的使用情况:

  • 副产品>嵌入式编码器>标识生成昂贵的超出范围检查代码的查找表块

  • 副产品>万博1manbetx模拟链路检查>建模标准>- 331 - 178 - c /做检查吗>检查查找表块的使用情况

有关Model Advisor的更多信息,请参见运行模型Advisor检查

另外,要确定是否安全选择此复选框,如果有万博1manbetxSimulink设计验证程序™许可证,考虑使用检测块输入范围违规(万博1manbetxSimulink设计验证程序)检查。

当下列选项之一为真时,此复选框对生成的代码没有影响:

  • 这个预备课块将索引值提供给插值使用Prelookup块。

    因为索引值来自预备课块总是有效的,不需要检查代码。

  • 输入的数据类型K将数据限制为有效的索引值。

    例如,无符号整数数据类型保证索引值为非负。因此,的无符号输入值K对于负值,不需要检查代码。

程序化使用

块参数:RemoveProtectionIndex
类型:特征向量
价值观:”从“|”“
违约:“关闭”

将样本时间指定为-1以外的值。有关更多信息,请参见指定采样时间

依赖关系

除非将此参数显式设置为除-1。要了解更多信息,请参阅不建议使用采样时间的块

程序化使用

块参数:SampleTime
类型:特征向量
价值观:标量或矢量
违约:' 1 '

数据类型

指定表格数据类型。可以将其设置为:

  • 继承数据类型的规则,例如,继承:与输出相同

  • 内置数据类型的名称,例如,

  • 数据类型对象的名称,例如万博1manbetxSimulink.NumericType对象

  • 计算结果为数据类型的表达式,例如,fixdt (1 16 0)

单击显示数据类型助手按钮来显示数据类型的助理,它帮助您设置表数据类型。

提示

在这些情况下,指定与输出数据类型不同的表数据类型:

  • 存储使用比输出信号更小类型的表数据所需的内存较低

  • 在两个用户之间共享预定标度表数据插值使用Prelookup具有不同输出数据类型的块

  • 中共享自定义存储表数据万博1manbetx仿真软件编码器™为具有不同输出数据类型的块生成代码

程序化使用

块参数:TableDataTypeStr
类型:特征向量
价值观:继承:同output' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<数据类型表达式>'
违约:“继承:与输入相同”

将表数据的最小值指定为有限、实、双精度标量。默认值为[](不明)。

程序化使用

块参数:TableMin
类型:特征向量
价值观:标量
违约:“[]”

将表数据的最大值指定为有限、实、双精度标量。默认值为[](不明)。

程序化使用

块参数:TableMax
类型:特征向量
价值观:标量
违约:“[]”

指定中间结果数据类型。可以将其设置为:

  • 继承数据类型的规则,例如,继承:与输出相同

  • 内置数据类型的名称,例如,

  • 数据类型对象的名称,例如万博1manbetxSimulink.NumericType对象

  • 计算结果为数据类型的表达式,例如,fixdt (1 16 0)

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

提示

使用此参数可以为内部计算指定比表数据或输出数据更高的精度。

程序化使用

块参数:中间结果数据类型STR
类型:特征向量
价值观:继承:同output' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<数据类型表达式>'
违约:“继承:与输入相同”

指定输出数据类型。你可以设置为:

  • 继承数据类型的规则,例如,继承:通过反向传播进行继承

  • 内置数据类型的名称,例如,

  • 数据类型对象的名称,例如万博1manbetxSimulink.NumericType对象

  • 计算结果为数据类型的表达式,例如,fixdt (1 16 0)

单击显示数据类型助手按钮来显示数据类型的助理,它可以帮助您设置输出数据类型。

看见控制信号数据类型为更多的信息。

程序化使用

块参数:OutDataTypeStr
类型:特征向量
价值观:继承:从表数据中继承| 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'fixdt(1,16,2^0,0)' | '<数据类型表达式>'
违约:'Inherit:从表数据继承'

指定块应输出为有限实值标量的最小值。默认值为[](不明)。万博1manbetxSimulink软件使用这个值来执行:

程序化使用

块参数:OutMin
类型:特征向量
价值观:标量
违约:“[]”

指定块输出为有限实值标量的最大值。默认值为[](不明)。万博1manbetxSimulink软件使用这个值来执行:

程序化使用

块参数:奥特马克斯
类型:特征向量
价值观:标量
违约:“[]”

指定中间计算的内部规则。选择速度为更快的计算。如果您这样做,可能会发生精度损失,通常高达2位。

程序化使用

块参数:InternalRulePriority
类型:特征向量
价值观:“速度”|“精度”
违约:“速度”

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

程序化使用

块参数:磅秤
类型:特征向量
价值观:”从“|”“
违约:“关闭”

指定定点操作的舍入模式。有关详细信息,请参阅四舍五入(定点设计师)。

块参数始终舍入到最接近的可表示值。若要控制块参数的舍入,请在“掩码”字段中使用MATLAB舍入函数输入表达式。

程序化使用

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

指定溢出是饱和还是换行。

行动 基本原理 对溢出的影响 例子

选择此复选框(在…上).

您的模型可能存在溢出,您希望在生成的代码中显示饱和保护。

溢出饱和到数据类型可以表示的最小值或最大值。

的最大值int8(有符号,8位整数)的数据类型可以表示为127。任何大于这个最大值的块操作结果都会导致8位整数溢出。选中复选框后,块输出在127处饱和。类似地,块输出在最小输出值-128处饱和。

不要选中此复选框().

您希望优化生成代码的效率。

您希望避免过度指定块如何处理超出范围的信号。有关更多信息,请参见故障排除信号范围错误

溢出将换行为可由数据类型表示的适当值。

的最大值int8(有符号,8位整数)数据类型可以表示为127。任何大于此最大值的块运算结果都会导致8位整数溢出。清除复选框后,软件将导致溢出的值解释为int8,这可能会产生意想不到的结果。例如,块结果130(二进制1000 0010)表示为int8,is-126。

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

程序化使用

块参数:饱和积分溢出
类型:特征向量
价值观:”从“|”“
违约:“关闭”

块特征

数据类型

|定点|整数|

直接馈通

是的

多维信号

是的

适应信号

讨论二阶导数过零检测

扩展功能

C / c++代码生成
使用Simulink®Coder™生成C和c++代码。万博1manbetx

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

在R2006b中引入