文档

插值使用Prelookup

使用预先计算的索引和分数值加速N维函数的逼近

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

描述

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

万博1manbetx支持的块操作

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

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

块如何插值表数据的子集

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

假设您的数据库中有三维表格数据插值使用Prelookup块。这种行为适用。

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

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

港口

输入

全部展开

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

数据类型:仅有一个的||int8|int16|int32|uint8|uint16|uint32|定点

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

数据类型:仅有一个的||int8|int16|int32|uint8|uint16|uint32|定点

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

数据类型:仅有一个的||int8|int16|int32|uint8|uint16|uint32|定点

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

数据类型:仅有一个的||int8|int16|int32|uint8|uint16|uint32|定点

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

依赖关系

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

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

数据类型:仅有一个的||int8|int16|int32|uint8|uint16|uint32|定点|公共汽车

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

依赖关系

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

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

数据类型:仅有一个的||int8|int16|int32|uint8|uint16|uint32|定点|公共汽车

块使用s的输入M,年代M1……端口来执行子表内的选择和插值。M等于数量的维度-子表选择维度的数目

依赖关系

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

数据类型:仅有一个的||int8|int16|int32|uint8|uint16|uint32|布尔|定点|公共汽车

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

依赖关系

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

数据类型:仅有一个的||int8|int16|int32|uint8|uint16|uint32|定点

输出

全部展开

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

数据类型:仅有一个的||int8|int16|int32|uint8|uint16|uint32|定点

参数

全部展开

主要的

表数据

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

要指定。。。 这样做……

1、2、3或4

从下拉列表中选择该值。

更多的表维度

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

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

程序化使用

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

如果选择此参数,子表选择端口将继续在非总线模式下工作。

使预备课块以将输入提供给插值使用Prelookup块,集:

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

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

程序化使用

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

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

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

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

程序化使用

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

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

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

  • 输入端口,验证上游信号是否向表格输入端口提供表格数据

依赖关系

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

程序化使用

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

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

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

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

依赖关系

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

程序化使用

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

指定一个已存在的名称万博1manbetx仿真软件。LookupTable对象现有查找表对象引用Simulink万博1manbetx®断点对象。

依赖关系

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

程序化使用

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

算法

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

程序化使用

块参数:InterpMethod
类型:特征向量
价值观:“平坦”|“线性点斜率”|“最近的”|“线性拉格朗日”
违约:“线性点斜率”

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

依赖关系

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

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

程序化使用

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

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

复选框 块的行为

在…上

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

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

  • F0

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

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

  • F1.

依赖关系

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

  • 插值法线性

  • 外推法剪辑

提示

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

程序化使用

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

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

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

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

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

程序化使用

块参数:超出范围输入的诊断
类型:特征向量
价值观:“无”|“警告”|“错误”
违约:“没有”

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

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

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

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

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

程序化使用

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

代码生成

复选框 结果 何时使用

在…上

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

当输入KF超出范围,它可能导致生成的代码和使用加速模式模拟的未定义行为。

为了提高代码效率

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

用于安全关键应用

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

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

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

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

  4. 如果存在超出范围的错误,请将其修复为在范围内,然后再次运行模拟。

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

    笔记

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

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

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

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

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

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

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

    因为索引值来自预备课块始终有效,无需检查代码。

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

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

程序化使用

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

将采样时间指定为-1以外的值。有关详细信息,请参阅指定采样时间

依赖关系

这个参数是不可见的,除非它被显式地设置为非-1. 要了解更多信息,请参阅不建议使用采样时间的块

程序化使用

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

数据类型

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

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

  • 内置数据类型的名称,例如,仅有一个的

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

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

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

提示

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

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

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

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

程序化使用

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

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

程序化使用

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

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

程序化使用

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

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

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

  • 内置数据类型的名称,例如,仅有一个的

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

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

点击显示数据类型助手按钮显示数据类型的助理,这有助于设置数据类型属性。看见使用数据类型助手指定数据类型为更多的信息。

提示

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

程序化使用

块参数:中间结果数据类型STR
类型:特征向量
价值观:“继承:通过内部规则继承”|“继承:与输出相同”|“double”|“single”|“int8”|“uint8”|“int16”|“uint16”|“int32”|“uint32”|“fixdt(1,16)”|“fixdt(1,16,0)”|“<数据类型表达式>”
违约:“继承:与输入相同”

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

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

  • 内置数据类型的名称,例如,仅有一个的

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

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

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

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

程序化使用

块参数:OutDataTypeStr
类型:特征向量
价值观:继承:从表数据中继承| 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | '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

定点转换
使用定点设计器™将浮点算法转换为定点。

在R2006b中引入

这个话题有用吗?