利用预计算的指数和分数值加速逼近n维函数
金宝appSimulink /查找表
使用预查找的插值块在与Prelookup块。Prelookup块计算指定输入值的索引和区间分数u
与断点数据集有关。使用Prelookup块将得到的索引和分数值输入插值n维表。这两个区块都有分布式算法。当组合在一起时,它们执行与n-D Lookup Table块中集成的算法相同的操作。然而,Prelookup和插值使用Prelookup块提供了更大的灵活性,可以提供更有效的模拟和代码生成。有关更多信息,请参见效率的性能.
要使用Prelookup块,您可以直接在对话框中指定一组表数据值,或者将值输入T输入端口。通常,这些表值对应于Prelookup块中指定的断点数据集。使用预查找的插值块通过根据预查找块提供的索引和区间分数值查找或估计表值来生成输出。索引和区间分数的标签显示为k
和f
在插值使用预查找块图标。
当输入指数和区间分数时… | The Interpolation Using Prelookup block… |
---|---|
映射到断点数据集中的值 | 在行、列和更高维度断点的交集处输出表值 |
不映射到断点数据集中的值,但在范围内 | 属性插入适当的表值插值法你选择 |
没有映射到断点数据集中的值,并且超出了范围 | 属性推断输出值外推法你选择 |
你可以使用子表选择维数参数指定插值只发生在表数据的一个子集上。要激活该插补模式,请将该参数设置为正整数。这个值定义要选择的维度数,从默认列主算法的表数据的最高维度开始。因此,该值必须小于或等于表维数.
对于行为主算法,插值从表数据的第一个维度或最小维度开始。
对于非零值,子表选择行为在选择行主布局时被优化数学和数据类型>使用优化的行主阵列布局算法配置参数。
假设您的插值使用Prelookup块。这种行为适用于列-主算法。
选择维度数 | 积木行动 | 块的外观 |
---|---|---|
0 | 插入整个表,不激活子表选择 | 不会改变 |
1 | 插入前两个维度并选择第三个维度 | 显示带有标签的输入端口s3 用来选择和插入二维表格 |
2 | 插入第一个维度,选择第二个和第三个维度 | 显示两个带有标签的输入端口s2 和s3 用来选择和插入1-D表 |
子表选择使用基于零的索引。对于插入表数据子集的示例,请键入sldemo_bpcheck
在MATLAB®命令提示符。
对于不选择子表的2d或n-D插值,列主算法和行主算法的输出计算顺序可能不同,导致数值结果略有不同。
k1
——指数,k
,用于表的第一个维度从零开始的索引,k
,指定包含输入的间隔u
用于表的第一个维度。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
f1
——分数,f
,用于表的第一个维度分数,f
,表示该区间内输入的归一化位置,k
,用于表的第一个维度。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
kn
——指数,k
,n
表的第th维度从零开始的索引,k
,指定包含输入的间隔u
为n
表的第th维度。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
fn
——分数,f
,n
表的第th维度分数,f
,表示该区间内输入的归一化位置,k
,n
表的第th维度。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
kf1
-包含索引的输入k
和分数f
总线对象
的输入kf1端口包含索引k
和分数f
指定为总线对象。
要启用该端口,请选择要求索引和分数作为总线复选框。
可用的数量kf
输入端口取决于数量的维度和子表选择维数参数。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
|公共汽车
kfn
-包含索引的输入k
和分数f
总线对象
的输入kfn端口包含索引k
和分数f
对于输入的第n维,指定为总线对象。
要启用该端口,请选择要求索引和分数作为总线复选框。
可用的数量kf输入端口取决于数量的维度和子表选择维数参数。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
|公共汽车
sm
-选择和插入表数据的子集对于列主算法,块使用对s的输入米,年代米+ 1,……年代n端口来执行子表内的选择和插值。米
映射到米th表的尺寸。n等于数量的维度.
对于行主算法,块使用s1, s2,…,年代米端口来执行子表内的选择和插值。米
映射到米th表的尺寸。米等于子表选择维数.
若要启用此端口,则子表选择维数必须是一个正整数小于或等于数量的维度.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|布尔
|不动点
|枚举
|公共汽车
T
——表数据作为端口输入提供的表数据值T.通常,这些表值对应于Prelookup块中指定的断点数据集。Using Prelookup块通过根据索引查找或估计表值生成输出(k
)和区间分数(f
)值由Prelookup块提供。
要启用该端口,请设置源来输入端口
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
Port_1
- n维函数的近似n维函数的近似值,通过使用输入索引的值插值(或外推)表数据来计算,k
分数,f
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
数量的维度
—表数据维数2
(默认)| 1 ~ 30之间的整数指定表数据必须具有的维数。的数量的维度定义表的独立变量数量。
指定… | 这样做…… |
---|---|
1 2 3或4 |
在下拉列表中选择。 |
更多的表维度 |
直接在字段中输入正整数。 此块支持的最大表维度数为30。金宝app |
块参数:NumberOfTableDimensions |
类型:特征向量 |
价值观:'1' |' 2' |' 3' |'4' |…|“30” |
默认值:' 2 ' |
要求索引和分数作为总线
-指数和分数输入可以在总线中合并从
(默认)|在
选择此复选框可在总线中组合索引和分数输入。
要启用Prelookup块来提供输入插值使用Prelookup块,设置:
输出选择来指数和分数作为总线
输出来总线:<对象名称>
,在那里<对象名称>
必须是模型可访问的有效总线对象名称
不管这个复选框设置如何,选择端口总是在非总线模式下运行。
块参数:RequireIndexFractionAsBus |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
规范
—选择表数据的输入方式明确的价值观
(默认)|查找表对象
指定是直接输入表数据还是使用查找表对象。如果设置为:
明确的价值观
,源和价值参数在对话框中可见。
查找表对象
,的名字参数在对话框中可见。
块参数:TableSpecification |
类型:特征向量 |
价值观:' | '查找表对象' |
默认值:“显式值” |
源
-表数据的来源对话框
(默认)|输入端口
指定是在对话框中输入表数据还是从输入端口继承数据。如果你设置源:
对话框
,在下方的文本框中输入表格数据价值
输入端口
,确认有上游信号向表输入端口提供表数据
要启用该参数,请设置规范来明确的价值观
.
块参数:TableSource |
类型:特征向量 |
价值观:'对话框' | '输入端口' |
默认值:“对话框” |
价值
—指定表数据值√(1:11)‘* [1:11])
(默认)|表数据的多维数组的名字
-名称金宝app仿真软件。LookupTable
对象金宝app仿真软件。LookupTable对象
指定对象的名称金宝app仿真软件。LookupTable
对象。一个查找表对象引用Simulink金宝app®断点对象。如果一个金宝app仿真软件。LookupTable
对象不存在时,单击操作按钮并选择创建.新查找表对象的相应参数将自动使用块信息填充。
要启用该参数,请设置规范来查找表对象
.
块参数:LookupTableObject |
类型:特征向量 |
值:金宝app仿真软件。LookupTable对象 |
默认值:'' |
插值法
——选择线性点斜式
,平
,最近的
,或线性拉格朗日
线性点斜式
(默认)|最近的
|平
|线性拉格朗日
指定块用于插入表数据的方法。您可以选择线性点斜式
,平
,最近的
,或线性拉格朗日
.看到插值方法为更多的信息。
块参数:InterpMethod |
类型:特征向量 |
价值观:'Flat' | 'Linear point-slope' | 'Nearest' | 'Linear Lagrange' |
默认值:“线性点斜式” |
外推法
-处理超出断点数据集范围的输入的方法线性
(默认)|剪辑
指定块用于推断位于断点数据集范围之外的所有输入的值的方法。您可以选择剪辑
或线性
.看到外推方法为更多的信息。
如果外推法是线性
时,根据所选的线性插值方法计算外推值。例如,如果插值方法是线性拉格朗日法,则外推方法继承线性拉格朗日方程来计算外推值。
要启用外推法参数设置插值法来线性
.
使用预查找的插值块不支持金宝app线性
当输入或输出信号指定整数或定点数据类型时的外推。
块参数:ExtrapMethod |
类型:特征向量 |
价值观:“剪辑”|“线性” |
默认值:“线性” |
有效的索引输入可能到达最后一个索引
-允许输入访问表数据的最后元素从
(默认)|在
指定索引的块输入方式(k
)和区间分数(f
的最后一个元素n维表数据。索引值是基于零的。
如果输入索引等于或大于该维度的表的最后索引,则此复选框是相关的。由于舍入,选择和清除此复选框可能会导致模拟和代码生成之间的最后索引的结果不同。
复选框 | 块的行为 |
---|---|
|
返回其表维度中最后一个元素的值:
|
|
返回其表维度中最后一个元素的值:
|
此复选框仅在以下情况下可见:
插值法是线性点斜式
或线性拉格朗日
外推法是剪辑
提示
当您选择有效的索引输入可能到达最后一个索引对于使用预查找的插值块,您也必须选择对于大于或等于上限的输入,使用最后一个断点对所有Prelookup供给它的块。此操作允许块在访问断点和表数据集的最后元素时使用相同的索引约定。
块参数:ValidIndexMayReachLast |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
诊断超出范围的输入
-当输入超出范围时阻止动作没有一个
(默认)|警告
|错误
指定当输入超出范围时是否产生警告或错误。选项包括:
没有一个
-不产生响应。
警告
-显示警告并继续模拟。
错误
—终止模拟并显示错误。
块参数:DiagnosticForOutOfRangeInput |
类型:特征向量 |
价值观:'无' | 'Warning' | 'Error' |
默认值:“没有” |
子表选择维数
-输出计算子表的维数0
(默认值)|正整数,小于或等于表维数指定块用于计算输出的子表的维数。遵循这些规则:
要启用子表选择,请输入一个正整数。
该整数必须小于或等于表维数.
要禁用子表选择,输入0
插入整个表。
对于非零值,子表选择行为在选择行主布局时被优化数学和数据类型>使用优化的行主阵列布局算法配置参数。
有关更多信息,请参见块如何插值表数据的子集.
块参数:NumSelectionDims |
类型:特征向量 |
价值观:'0' | '1' | '2' | '3' | '4' |…|表维度数 |
默认值:' 0 ' |
在生成的代码中删除对超出范围索引的保护
-删除检查超出范围索引输入的代码从
(默认)|在
复选框 | 结果 | 什么时候使用 |
---|---|---|
|
生成的代码不包括检查超出范围的索引输入的条件语句。 当输入 |
代码效率 |
|
生成的代码包括条件语句,用于检查超出范围的索引输入。 |
对于安全性至关重要的应用程序 |
如果您的输入没有超出范围,您可以选择在生成的代码中删除对超出范围索引的保护复选框用于代码效率。默认情况下,此复选框被清除。对于安全要求严格的应用程序,不要选中此复选框。如果你想选择在生成的代码中删除对超出范围索引的保护复选框,首先检查您的模型输入是否在范围内。例如:
清除在生成的代码中删除对超出范围索引的保护复选框。
设置诊断超出范围的输入参数错误
.
在正常模式下模拟模型。
如果有超出范围的错误,修复它们在范围内,并再次运行模拟。
当模拟不再产生超出范围的输入错误时,选择在生成的代码中删除对超出范围索引的保护复选框。
请注意
当你选择在生成的代码中删除对超出范围索引的保护复选框和输入k
或f
超出范围,则生成的代码未定义该行为。
根据您的应用程序,您可以运行以下Model Advisor检查,以验证此复选框的使用情况:
通过产品>嵌入式编码器>标识生成昂贵的超出范围检查代码的查找表块
通过产品>金宝app仿真软件检查>建模标准>- 331 - 178 - c /做检查吗>检查查找表块的使用情况
有关Model Advisor的更多信息,请参见运行模型Advisor检查.
另外,要确定是否安全选择此复选框,如果有金宝app仿真软件设计校验™许可证,考虑使用检测块输入范围违规(金宝app仿真软件设计验证器)检查。
当下列选项之一为真时,此复选框对生成的代码没有影响:
的Prelookup块将索引值提供给插值使用Prelookup块。
因为索引值来自Prelookup块总是有效的,不需要检查代码。
输入的数据类型k
将数据限制为有效的索引值。
例如,无符号整数数据类型保证非负索引值。因此,的无符号输入值k
不需要检查负数的代码。
块参数:RemoveProtectionIndex |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
表数据
—表值的数据类型继承:与输出相同
(默认)|继承:从“表数据”继承
|双
|单
|int8
|uint8
|int16
|uint16
|int32
|uint32
|int64
|uint64
|fixdt (16)
|fixdt (1 16 0)
|fixdt(1, 16日2 ^ 0,0)
|<数据类型>表达
指定表数据类型。你可以设置为:
继承数据类型的规则,例如,继承:与输出相同
内置数据类型的名称,例如,单
数据类型对象的名称,例如金宝app仿真软件。Nu米ericType
对象
计算结果为数据类型的表达式,例如,fixdt (1 16 0)
单击显示数据类型助手按钮来显示数据类型的助理,它帮助您设置表数据类型。
提示
在这些情况下,指定与输出数据类型不同的表数据类型:
存储使用比输出信号更小类型的表数据所需的内存更低
在两者之间共享预伸缩表数据插值使用Prelookup具有不同输出数据类型的块
中共享自定义存储表数据金宝app仿真软件编码器™为具有不同输出数据类型的块生成代码
块参数: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 |
类型:特征向量 |
价值观:标量 |
默认值:“[]” |
中间结果
-中间结果的数据类型继承:通过内部规则继承
(默认)|继承:与输出相同
|双
|单
|int8
|uint8
|int16
|uint16
|int32
|uint32
|int64
|uint64
|fixdt (16)
|fixdt (1 16 0)
|fixdt(1, 16日2 ^ 0,0)
|<数据类型>表达
指定中间结果数据类型。你可以设置为:
继承数据类型的规则,例如,继承:与输出相同
内置数据类型的名称,例如,单
数据类型对象的名称,例如金宝app仿真软件。Nu米ericType
对象
计算结果为数据类型的表达式,例如,fixdt (1 16 0)
单击显示数据类型助手按钮来显示数据类型的助理,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型.
提示
使用此参数可为内部计算指定比表数据或输出数据更高的精度。
块参数:IntermediateResultsDataTypeStr |
类型:特征向量 |
价值观:继承:同output' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<数据类型表达式>' |
默认值:“继承:与输入相同” |
输出
-输出数据类型继承:从“表数据”继承
(默认)|继承:通过反向传播继承
|双
|单
|int8
|uint8
|int16
|uint16
|int32
|uint32
|int64
|uint64
|fixdt (16)
|fixdt (1 16 0)
|fixdt(1, 16日2 ^ 0,0)
|<数据类型>表达
指定输出数据类型。你可以设置为:
继承数据类型的规则,例如,继承:通过反向传播继承
内置数据类型的名称,例如,单
数据类型对象的名称,例如金宝app仿真软件。Nu米ericType
对象
计算结果为数据类型的表达式,例如,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:从表数据继承' |
输出最小
—块可以输出的最小值[]
(默认)|标量指定块应输出为有限实值标量的最小值。默认值为[]
(不明)。金宝appSimulink软件使用这个值来执行:
参数范围检查(参见指定块参数的最小值和最大值).
模拟距离检查(见指定信号范围).
定点数据类型的自动缩放。
优化您从模型生成的代码。这种优化可以删除算法代码,并影响某些模拟模式(如SIL或外部模式)的结果。有关更多信息,请参见使用指定的最小值和最大值进行优化(嵌入式编码).
块参数:OutMin |
类型:特征向量 |
价值观:标量 |
默认值:“[]” |
输出最大
—块可输出的最大值[]
(默认)|标量指定块输出为有限实值标量的最大值。默认值为[]
(不明)。金宝appSimulink软件使用这个值来执行:
参数范围检查(参见指定块参数的最小值和最大值).
模拟距离检查(见指定信号范围).
定点数据类型的自动缩放。
优化您从模型生成的代码。这种优化可以删除算法代码,并影响某些模拟模式(如SIL或外部模式)的结果。有关更多信息,请参见使用指定的最小值和最大值进行优化(嵌入式编码).
块参数:OutMax |
类型:特征向量 |
价值观:标量 |
默认值:“[]” |
内部规则优先级
-中间计算的内部规则速度
(默认)|精度
指定中间计算的内部规则。选择速度
为更快的计算。如果您这样做,可能会发生精度损失,通常高达2位。
块参数:InternalRulePriority |
类型:特征向量 |
价值观:“速度”|“精度” |
默认值:“速度” |
根据定点工具的更改锁定数据类型设置
—防止定点工具覆盖数据类型从
(默认)|在
选择此参数可防止定点工具覆盖在此块上指定的数据类型。有关更多信息,请参见锁定输出数据类型设置(定点设计师).
块参数:LockScale |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
整数舍入模式
-定点操作舍入模式地板上
(默认)|收敛
|天花板
|最近的
|轮
|简单的
|零
指定定点操作的舍入模式。有关更多信息,请参见舍入(定点设计师).
块参数总是舍入到最接近的可表示值。要控制块参数的舍入,请在掩码字段中使用MATLAB舍入函数输入表达式。
块参数:RndMeth |
类型:特征向量 |
价值观:'天花板' | '收敛' | '地板' | '最近' | 'Round' | '最简单' | '零' |
默认值:“地板” |
整数溢出饱和
-溢出动作的方法从
(默认)|在
指定溢出是否饱和或缠绕。
行动 | 基本原理 | 对溢出的影响 | 例子 |
---|---|---|---|
选择此复选框( |
您的模型可能存在溢出,您希望在生成的代码中显示饱和保护。 |
溢出会饱和到数据类型所能表示的最小值或最大值。 |
的最大值 |
不选择此复选框( |
您希望优化生成代码的效率。 您希望避免过度指定块如何处理超出范围的信号。有关更多信息,请参见排除信号范围误差. |
溢出包装为数据类型可表示的适当值。 |
的最大值 |
当您选中此复选框时,饱和度将应用于块上的每个内部操作,而不仅仅是输出或结果。通常,当不可能溢出时,代码生成过程可以检测到。在这种情况下,代码生成器不会产生饱和代码。
块参数:SaturateOnIntegerOverflow |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
数据类型 |
|
直接引线 |
|
多维信号 |
|
适应信号 |
|
讨论二阶导数过零检测 |
|
金宝app仿真软件PLC编码器™对查找表块的支持有限。金宝app编码器不支持:金宝app
大于2的维数
三次样条插值方法
使用以前的索引模式开始索引搜索
三次样条外推法
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。