主要内容

插值使用Prelookup

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

  • 库:
  • 金宝appSimulink /查找表

  • 使用预查找块进行插值

描述

使用预查找的插值块在与Prelookup块。Prelookup块计算指定输入值的索引和区间分数u与断点数据集有关。使用Prelookup块将得到的索引和分数值输入插值n-维度表。这两个块具有分布式算法。当组合在一起时,它们执行与n-D查找表块中的集成算法相同的操作。但是,Prelookup和使用Prelookup块的插值提供了更大的灵活性,可以提供更有效的模拟和代码生成。有关更多信息,请参阅见效率的性能

金宝app支持块操作

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

当索引和区间分数的输入。。。 The Interpolation Using Prelookup block…
映射到断点数据集中的值 在行、列和更高维度断点的交集处输出表值
不映射到断点数据集中的值,但在范围内 属性插入适当的表值插值法你选择
没有映射到断点数据集中的值,并且超出了范围 属性推断输出值外推法你选择

块如何插值表数据的子集

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

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

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

假设您的插值使用Prelookup块。这种行为适用于列-主算法。

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

子表选择使用基于零的索引。有关内插表数据子集的示例,请参见使用预查找和插值块

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

港口

输入

全部展开

零基索引,k,指定包含输入的间隔u对于表的第一个维度。

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

分数,f,表示间隔内输入的标准化位置,k,用于表的第一个维度。

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

零基索引,k,指定包含输入的间隔u对于n表的第th维度。

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

分数,f,表示间隔内输入的标准化位置,k,供n表的第th维度。

数据类型:||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的输入s+ 1,……年代n端口来执行子表内的选择和插值。映射到th表的尺寸。n等于尺寸数

对于行主算法,块使用s1、s2、…、s的输入端口来执行子表内的选择和插值。映射到th表的尺寸。等于子表选择维度的数目

依赖关系

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

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

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

依赖关系

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

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

输出

全部展开

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

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

参数

全部展开

主要

表数据

指定表数据必须具有的维数。的尺寸数定义表的独立变量数量。

指定… 做这个。。。

1 2 3或4

在下拉列表中选择。

更多的表维度

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

此块支持的最大表维度数为30。金宝app

编程使用

块参数:NumberOfTableDimensions
类型:特征向量
价值观:'1' |' 2' |' 3' |'4' |…|“30”
默认值:' 2 '

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

要启用Prelookup块来提供输入插值使用Prelookup块,集:

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

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

无论此复选框设置如何,选择端口始终在非总线模式下工作。

编程使用

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

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

  • 明确的价值观,来源价值参数在对话框中可见。

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

编程使用

块参数:表规格
类型:特征向量
价值观:“显式值”|“查找表对象”
默认值:“显式值”

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

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

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

依赖关系

要启用此参数,请设置规格明确的价值观

编程使用

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

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

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

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

依赖关系

要启用此参数并在对话框中显式指定表值,必须设置规格明确的价值观来源对话框

编程使用

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

指定一个文件的名称金宝app仿真软件。LookupTable对象。一个查找表对象引用Simulink金宝app®断点对象。如果金宝app仿真软件。LookupTable对象不存在,请单击“操作”按钮并选择创建。新查找表对象的相应参数将自动填充块信息。

依赖关系

要启用此参数,请设置规格查找表对象

编程使用

块参数:可查找对象
类型:特征向量
价值:金宝app仿真软件。LookupTable对象
默认值:''
算法

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

编程使用

块参数:内插法
类型:特征向量
价值观:“平坦”|“线性点斜率”|“最近的”|“线性拉格朗日”
默认值:“线性点斜式”

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

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

依赖关系

要启用外推法参数,设置插值法线性的

使用Prelookup块的插值不支持金宝app线性的输入或输出信号指定整数或定点数据类型时的外推。

编程使用

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

指定如何为索引块输入(k)和区间分数(f的最后一个元素n-维度表数据。索引值是从零开始的。

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

复选框 块的行为

返回其表维度中最后一个元素的值:

  • k索引对应维度中的最后一个表元素

  • f0

返回其表维度中最后一个元素的值:

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

  • f1

依赖关系

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

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

  • 外推法夹子

提示

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

编程使用

块参数:有效地塞米松
类型:特征向量
价值观:”从“|”“
默认值:“关”

指定当输入超出范围时是否产生警告或错误。选项包括:

  • 没有一个-没有反应。

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

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

编程使用

块参数:DiagnosticForOutOfRangeInput
类型:特征向量
价值观:'无' | 'Warning' | 'Error'
默认值:“没有”

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

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

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

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

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

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

编程使用

块参数:NumSelectionDims
类型:特征向量
价值观:'0' | '1' | '2' | '3' | '4' |…|表维度数
默认值:' 0 '
代码生成
复选框 结果 什么时候使用

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

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

为了提高代码效率

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

对于安全性至关重要的应用程序

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

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

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

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

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

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

    请注意

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

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

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

  • 通过产品>金宝app仿真软件检查>建模标准>DO-178C/DO-331检查>检查查找表块的使用情况

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

另外,要确定是否安全选择此复选框,如果有金宝app仿真软件设计校验™许可证,考虑使用检测块输入范围违规(金宝app仿真软件设计验证器)检查。

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

  • Prelookup块将索引值提供给插值使用Prelookup块。

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

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

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

编程使用

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

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

依赖关系

这个参数是不可见的,除非它被显式地设置为非-1.想要了解更多,请看不推荐采样时间的块

编程使用

块参数:取样时间
类型:特征向量
价值观:标量或矢量
默认值:'-1'

数据类型

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

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

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

  • 数据类型对象的名称,例如金宝app仿真软件。Nu米ericType对象

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

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

提示

为以下情况指定不同于输出数据类型的表数据类型:

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

  • 在两者之间共享预伸缩表数据插值使用Prelookup具有不同输出数据类型的块

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

编程使用

块参数:TableDataTypeStr
类型:特征向量
价值观:“继承:从表数据继承”|“继承:与输出相同”|“double”|“single”|“int8”|“uint8”|“int16”|“uint16”|“uint32”|“uint32”|“int64”|“uint64”|“fixdt(1,16,0)|“fixdt(1,16,2^0,0)”
默认值:'继承:与输入相同'

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

编程使用

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

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

编程使用

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

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

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

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

  • 数据类型对象的名称,例如金宝app仿真软件。Nu米ericType对象

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

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

提示

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

编程使用

块参数:IntermediateResultsDataTypeStr
类型:特征向量
价值观:“继承:通过内部规则继承”|“继承:与输出相同”|“double”|“single”|“int8”|“uint8”|“int16”|“uint16”|“uint32”|“uint32”|“int64”|“uint64”|“fixdt(1,16,0)”|“fixdt(1,16,2^0,0)”
默认值:'继承:与输入相同'

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

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

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

  • 数据类型对象的名称,例如金宝app仿真软件。Nu米ericType对象

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

点击显示数据类型助手按钮来显示数据类型助手,这有助于设置输出数据类型。

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

编程使用

块参数:OutDataTypeStr
类型:特征向量
价值观:“Inherit:Inherit via back propagation”|“Inherit:Inherit from table data”|“double”|“single”|“int8”|“uint8”|“int16”|“uint16”|“int32”|“uint32”|“uint32”|“uint64”|“uint64”|“fixdt 1,16,0”|“fixdt(1,16,2^0,0)|”
默认值:'继承:从表数据继承'

指定块应输出为有限实值标量的最小值。默认值为[](未指定)。Simulink软金宝app件使用此值执行:

编程使用

块参数:奥特明
类型:特征向量
价值观:标量
默认值:'[]'

指定块应作为有限实值标量输出的最大值。默认值为[](未指定)。Simulink软金宝app件使用此值执行:

编程使用

块参数:OutMax
类型:特征向量
价值观:标量
默认值:'[]'

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

编程使用

块参数:内部规则优先级
类型:特征向量
价值观:“速度”|“精度”
默认值:“速度”

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

编程使用

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

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

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

编程使用

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

指定溢出是否饱和或缠绕。

行动 根本原因 对溢出的影响 实例

选中此复选框().

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

溢出会饱和到数据类型所能表示的最小值或最大值。

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

不选择此复选框().

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

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

溢出包装为数据类型可表示的适当值。

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

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

编程使用

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

块特征

数据类型

|不动点|整数|

直接引线

是的

多维信号

是的

适应信号

没有

过零检测

没有

扩展功能

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

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

介绍了R2006b