一维查找表
近似一维函数
- 库:
Simulink /查找表
HDL编码器/查找表
描述
支持块操作
1-D、2-D和N - d查找表块在N个变量中计算函数的抽样表示
的函数F可以实证。通过查找或插入用块参数定义的值表,块将输入映射到输出值。该块支持平面(常数)、线性(线性点斜)、拉格朗日(线性拉格朗日)、最近邻、三次样条和Akima样条插值方法。您可以将这些方法应用于从1到30的任何维度的表。
在下面的块中,第一个输入标识第一个维度(行)断点,第二个输入标识第二个维度(列)断点,依此类推。
看到旋转或翻转后的端口位置有关各种块朝向的端口顺序的说明。
当数学和数据类型>使用针对行-主数组布局优化的算法配置参数设置后,2-D和n-D查找表块行为从列-主要变为行-主要。对于这些块,列主算法和行主算法的输出计算顺序可能不同,可能导致数值略有不同。此功能需要动态仿真模块®编码器™或者嵌入式编码器®许可证。有关行-主要支持的更多信息,请参见矩阵和数组的代码生成(仿真软件编码器).
断点和表数据的规范
这些块参数定义断点和表数据。
块参数 | 目的 |
---|---|
表维数 | 指定查找表的维度数。 |
断点 | 指定与查找表的每个维度对应的断点向量。 |
表数据 | 定义输出值的相关集合。 |
提示
均匀间隔的断点可以使生成的代码无除法。有关更多信息,请参见fixpt_evenspace_cleanup
而且识别有问题的定点操作(嵌入式编码).
块如何生成输出
n-D、1-D和2-D Lookup Table块根据输入值查找或估计表值,从而生成输出。
块的输入 | n-D查找表块行为 |
---|---|
匹配断点数据集中的索引值 | 在行、列和高维断点的交点处输出表值 |
不匹配断点数据集中的索引值,但在范围内 | 方法插值适当的表值插值法你选择 |
与断点数据集中的索引值不匹配,且超出范围 | 方法推断输出值外推法你选择 |
执行等价操作的其他块
您可以使用插值使用Prelookup块的Prelookup块执行相当于1的操作一天的查找表块。这种块的组合提供了更大的灵活性,可以为线性插值提供更有效的模拟性能。
当查找操作是不需要插值的数组访问时,使用直接查找表(n-D)块。例如,如果您有一个整数值k
你想要k
表的第一个元素,y =表(k)
,插值是不必要的。
港口
输入
u1
-第一维(行)输入
标量|向量|矩阵
的实值输入u1端口,通过查找或插入定义的值的表映射到输出值。
例子:0:10
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|枚举
|不动点
T
—定义输出值表
的值组成的矩阵,其维度与表维数以及表的每个维度的断点长度
用运行时可调的信号指定输出值表。
在模拟过程中,矩阵大小必须与定义的尺寸相匹配表维数参数。但是,在框图编辑过程中,您可以输入一个空矩阵(指定为[]
)或未定义的工作区变量。这种技术允许您推迟为表数据指定正确尺寸的矩阵,而继续编辑框图。
依赖关系
要启用此端口,请设置:
数据规范来
表和断点
.表数据来
输入端口
.
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
bp1
-显式的断点值
单调递增的1 × n或n × 1向量
类的值显式指定断点数据断点规范参数,带有在运行时可调的信号。
如果你设置断点规范来
明确的价值观
,输入与每个表数据的每个维度对应的断点集断点行。对于每个维度,将断点指定为值严格单调递增的1 × n或n × 1向量。
请注意
若要以均匀间距规范格式指定断点,请设置断点规范来甚至间距
并使用断点第一点和间距参数。
依赖关系
要启用此端口,请设置:
数据规范来
表和断点
.断点规范来
明确的价值观
.断点1来
输入端口
.
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|枚举
|不动点
输出
Port_1
-通过查找或估计表值计算的输出
标量|向量|矩阵
根据输入值查找或估计表值而生成的输出。
当块输入…… | n-D查找表块… |
---|---|
匹配断点数据集中的索引值 | 在行、列和高维断点的交点处输出表值 |
不匹配断点数据集中的索引值,但在范围内 | 方法插值适当的表值插值法你选择 |
与断点数据集中的索引值不匹配,且超出范围 | 方法推断输出值外推法你选择 |
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
参数
表和断点
表维数
-查找表维度数
1
(默认)|2
|3.
|4
|...
|30.
输入查找表的维度数。这个参数决定:
表的自变量数量和块输入的数量
要指定的断点集的数目
指定… | 这样做…… |
---|---|
1、2、3或4 |
在下拉列表中选择。 |
更高数量的表维度 |
直接在字段中输入一个正整数。 该块支持的表维度的最大数量是30。 |
例如,大小为的表米xNx……表示维度1的大小是米,二次元尺寸为N等等。米必须匹配第一个断点长度,N必须匹配第二个断点长度,以此类推。
编程使用
块参数:NumberOfTableDimensions |
类型:特征向量 |
价值观:'1' | '2' | '3' | '4' |…| 30 |
默认值:' 1 ' |
数据规范
-表和断点规范的方法
表和断点
(默认)|查找表对象
从列表中选择:
表和断点
—指定表数据和断点。选择此选项可启用以下参数:表数据
断点规范
断点1
编辑表和断点
若要使用输入端口指定表和断点,请参见源参数。
查找表对象
-使用现有的查阅表(仿真软件。LookupTable
)对象。选择此选项启用的名字场和编辑表和断点按钮。
编程使用
块参数:DataSpecification |
类型:特征向量 |
价值观:“查找表对象”| |
默认值:表和断点 |
的名字
—查找表对象的名称
[]
(默认)|仿真软件。LookupTable
对象
输入查找表的名称(仿真软件。LookupTable
)对象。如果一个仿真软件。LookupTable
对象不存在,请单击操作按钮并选择创建.新查找表对象的相应参数将自动填充块信息。
依赖关系
若要启用此参数,请设置数据规范来查找表对象
.
编程使用
块参数:LookupTableObject |
类型:特征向量 |
价值观:的名字仿真软件。LookupTable 对象 |
默认值:'' |
断点规范
-断点规范的方法
明确的价值观
(默认)|甚至间距
指定输入数据是作为显式断点还是作为生成均匀间隔断点的参数。
若要显式指定断点数据,请将此参数设置为
明确的价值观
控件旁边的文本框中输入断点数据断点参数。若要指定生成均匀间隔断点的参数,请将此参数设置为
甚至间距
的值第一点而且间距断点数据的每个维度的参数。该块计算从表数据生成的点数。
依赖关系
若要启用此参数,请设置数据规范来表和断点
.
编程使用
块参数:BreakpointsSpecification |
类型:特征向量 |
价值观:'显式值' | '均匀间距' |
默认值:“显式值” |
源
-表和断点数据的来源
对话框
(默认)|输入端口
表和断点数据的来源,指定为:
对话框
中指定表或断点数据价值参数。输入端口
—通过相关的输入端口指定表或断点数据。您最多可以创建三个断点数据输入端口。对于断点4到30,您只能通过相应的指定断点数据断点参数。
请注意
使用输入端口指定表或断点数据可能会由于运行时检查而对模拟的块性能产生负面影响。
依赖关系
若要启用此参数,请设置数据规范来
表和断点
.要启用关联的价值,设置为
对话框
.当需要启用关联的输入端口时,设置为
输入端口
.将此参数设置为
输入端口
禁用价值控件上的对应参数数据类型选项卡。将此参数设置为
输入端口
的任何一个参数都禁用编辑表和断点按钮。
编程使用
块参数:TableSource |BreakpointsForDimension1Source |BreakpointsForDimension2Source |BreakpointsForDimension3Source |
类型:特征向量 |
价值观:对话框 |输入端口 |
默认值:“对话框” |
表数据
—定义输出值表
双曲正切([5])
(默认)|矢量值
中输入输出值的表价值字段。
在模拟过程中,矩阵大小必须与定义的尺寸相匹配表维数参数。但是,在框图编辑过程中,您可以输入一个空矩阵(指定为[]
)或未定义的工作区变量。这种技术允许您推迟为表数据指定正确尺寸的矩阵,而继续编辑框图。
依赖关系
要启用该参数,请设置:
数据规范来
表和断点
.源表数据:来
对话框
.
编程使用
块参数:表格 |
类型:特征向量 |
价值观:表值的向量 |
默认值:“双曲正切([5])” |
断点
-显式的断点值,或断点的第一个点和间隔
[5]
(默认)|单调递增的1 × n或n × 1向量
类的值显式指定断点数据或指定为均匀间隔的断点断点规范参数。
如果你设置断点规范来
明确的价值观
,输入与每个表数据的每个维度对应的断点集断点行。对于每个维度,将断点指定为值严格单调递增的1 × n或n × 1向量。如果你设置断点规范来
甚至间距
,输入参数第一点而且间距在每一个断点行,以在各自维度中生成均匀间隔的断点。您的表数据决定了均匀间隔点的数量。
依赖关系
要启用该参数,请设置:
数据规范来
表和断点
.源表数据:来
对话框
.
当断点规范参数设置为
甚至间距
,您只能通过对话框指定断点数据。
编程使用
块参数:BreakpointsForDimension1 |
类型:特征向量 |
价值观:单调递增的1 × n或n × 1向量 |
默认值:“[31]10,22日” |
第一点
-间隔均匀的断点数据中的第一个点
1
(默认)|标量
将均匀间隔的断点数据中的第一个点指定为实值的有限标量。该参数在以下情况下有效断点规范被设置为甚至间距
.
依赖关系
若要启用此参数,请设置数据规范来表和断点
,断点规范来甚至间距
.
编程使用
块参数:BreakpointsForDimension1FirstPoint |
类型:特征向量 |
价值观:实值,有限的,标量 |
默认值:' 1 ' |
间距
-间隔均匀的断点之间的间距
1
(默认)|标量
指定均匀间隔断点数据中各点之间的间距。
依赖关系
若要启用此参数,请设置数据规范来表和断点
,断点规范来甚至间距
.
编程使用
块参数:BreakpointsForDimension1Spacing |
类型:特征向量 |
价值观:正的,实值的,有限的,标量的 |
默认值:' 1 ' |
编辑表和断点
-启动查找表编辑器对话框
按钮
单击此按钮打开查找表编辑器。有关更多信息,请参见编辑查找表.
单击查找表对象的此按钮,可以编辑对象并保存对象的新值。
算法
查找方法插值法
-断点值之间的插值方法
线性点斜式
(默认)|平
|最近的
|线性拉格朗日
|三次样条
|Akima花键
当输入处于断点值之间时,块使用相邻的断点插值输出值。有关插值方法的更多信息,请参见插值方法.
依赖关系
如果您选择
三次样条
,该块只支持标量信号。其他插值方法支持非标量信号。如果您选择
Akima花键
,外推法只能Akima花键
.当设置为修改后的Akima插值方法时,此块不支持:
行-主阵列布局和优化的行-主阵列布局算法
缩放的双点和定点数据类型
仿真软件。LookupTable
对象代码生成时配置参数代码生成>接口>支持非谓语形式的数字选中复选框
当设置为修改后的Akima插值方法时,当这些条件为真时,该块会运行得更慢:
基于代码生成的模拟目标,例如加速器模式、快速加速器模式、受保护模型等。
为较大的断点和数据表大小生成的代码。例如,当表的大小为629x1601时。
编程使用
块参数:InterpMethod |
类型:特征向量 |
价值观:'线性点斜率' | '平坦' | '最接近' | '线性拉朗日' | '三次样条' | 'Akima样条' |
默认值:“线性点斜式” |
外推法
-处理超出断点数据集范围的输入值的方法
线性
(默认)|剪辑
|三次样条
|Akima花键
选择剪辑
,线性
,或三次样条
.看到外推方法为更多的信息。
如果外推法是线性
,根据所选线性插值方法计算外推值。例如,如果插值方法是线性拉格朗日,则外推方法继承线性拉格朗日方程来计算外推值。
依赖关系
选择
三次样条
为外推法,您还必须选择三次样条
为插值法.选择
Akima花键
为外推法,您还必须选择Akima花键
为插值法.
编程使用
块参数:ExtrapMethod |
类型:特征向量 |
价值观:'Linear' | 'Clip' | 'Cubic样条' | 'Akima样条' |
默认值:“线性” |
索引搜索方法
-表指标的计算方法
等间距的点
(默认)|线性搜索
|二分查找
选择等间距的点
,线性搜索
,或二分查找
.每种搜索方法在不同的情况下都有速度优势:
对于均匀间隔的断点集(例如,10、20、30等等),可以通过选择来实现最佳速度
等间距的点
计算表索引。该算法仅使用集合的前两个断点来确定其余点的偏移量和间距。
请注意
集索引搜索方法来
等间距的点
当使用仿真软件。LookupTable
对象来指定表数据和断点规范引用参数仿真软件。LookupTable
对象设置为甚至间距
.对于间隔不均匀的断点集,请遵循以下指导原则:
如果输入信号在时间步长之间变化不大,则选择
线性搜索
与使用以前的索引结果开始索引搜索产生最好的性能。如果输入信号在每个时间步长中跳跃超过一个或两个表间隔,则选择
二分查找
产生最好的性能。
索引搜索方法的次优选择会导致严重依赖查找表的模型性能变慢。
请注意
生成的代码只存储第一个断点、间隔和断点的数量,具体情况如下:
断点数据不可调优。
索引搜索方法为
等间距的点
.
编程使用
块参数:IndexSearchMethod |
类型:特征向量 |
价值观:'二分搜索' | '均匀间隔点' | '线性搜索' |
默认值:“二分法” |
使用以前的索引结果开始索引搜索
—开始使用上一个时间步骤的索引
从
(默认)|在
当您希望块使用在前一个时间步骤中找到的索引开始搜索时,选中此复选框。对于相对于间隔大小变化缓慢的输入,启用此选项可以提高性能。否则,线性搜索和二进制搜索方法会花费更长的时间,特别是对于大型断点集。
依赖关系
若要启用此参数,请设置索引搜索方法来线性搜索
或二分查找
.
编程使用
块参数:BeginIndexSearchUsingPreviousIndexResult |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
超出范围输入诊断
-当输入超出范围时阻止动作
没有一个
(默认)|警告
|错误
指定当输入超出范围时是否产生警告或错误。选项包括:
没有一个
-不回应。警告
—显示警告并继续模拟。错误
—终止模拟并显示错误。
编程使用
块参数:DiagnosticForOutOfRangeInput |
类型:特征向量 |
价值观:' | '警告' | '错误' |
默认值:“没有” |
尽可能采用全精度不动点算法
-更精确的定点查找表
从
(默认)|在
使用此复选框可在可能的情况下启用线性插值查找的全精度不动点算法查找。该算法通常在硬件高效的定点舍入模式下获得更好的精度。
依赖关系
要启用该参数,请设置:
表维数来
1
.插值法来
线性点斜式
.外推法来
剪辑
.
编程使用
块参数:ApplyFullPrecisionForLinearInterpolation |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
在最后一个断点或以上的输入使用最后一个表值
-计算上一个断点或以上输入输出的方法
从
(默认)|在
使用此复选框,指定块用于寻址断点集的最后一个元素及其对应的表值的索引约定。如果输入等于或大于断点数据的最后一个元素,则此复选框是相关的。由于四舍五入,选择并清除此复选框可能会导致模拟和代码生成之间的最后一个断点产生不同的结果。
复选框 | 块使用的索引 | 分数间隔 |
---|---|---|
选择 | 控件上断点数据的最后一个元素表和断点选项卡 | 0 |
清除 | 的断点数据的倒数第二个元素表和断点选项卡 | 1 |
给定一个输入u在断点集的范围内英国石油公司,区间分数f,在0≦范围内f<1,计算如下图所示。
假设断点集为(1 4 5)
和输入u是5.5
.如果选中此复选框,则索引为最后一个元素的索引(5
),区间分数为0。如果清除此复选框,则索引为倒数第二个元素的索引(4
),区间分数为1。
依赖关系
要启用该参数,请设置:
插值法来
线性
.外推法来
剪辑
.
编程使用
块参数:UseLastTableValue |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
对所有输入数据使用一个输入端口
—只使用一个输入接口
从
(默认)|在
选中此复选框可仅使用期望为的信号的一个输入端口n
n维表的宽元素。此选项用于删除具有许多查找表的框图上的行混乱。
请注意
当您选中此复选框时,一个带有标签的输入端口u
出现在块上。
编程使用
块参数:UseOneInputPortForAllInputData |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
在生成的代码中删除对超出范围输入的保护
-删除检查超出范围输入值的代码
从
(默认)|在
指定是否包含检查超出范围输入值的代码。
复选框 | 结果 | 什么时候使用 |
---|---|---|
|
生成的代码不包含用于检查超出范围断点输入的条件语句。 当输入超出范围时,生成的代码可能会导致未定义的行为。 |
代码效率 |
|
生成的代码包括检查超出范围输入的条件语句。 |
对于安全性至关重要的应用程序 |
如果您的输入没有超出范围,您可以选择删除对生成代码中超出范围索引的保护复选框表示代码效率。默认情况下,该复选框被清除。对于安全关键型应用程序,不要选中此复选框。如果您想选择删除对生成代码中超出范围索引的保护复选框,首先检查您的模型输入是否在范围内。例如:
清除删除对生成代码中超出范围索引的保护复选框。
设置超出范围输入诊断参数
错误
.在正常模式下模拟模型。
如果有超出范围的错误,将其修复到范围内并再次运行模拟。
当模拟不再产生超出范围的输入错误时,选择删除对生成代码中超出范围索引的保护复选框。
请注意
当您选择删除对生成代码中超出范围索引的保护复选框,则输入超出范围,则生成的代码的行为未定义。
根据您的应用程序,您可以运行以下Model Advisor检查来验证此复选框的使用情况:
通过产品>嵌入式编码器>识别生成昂贵的超出范围检查代码的查找表块
通过产品>仿真软件检查>建模标准>- 331 - 178 - c /做检查吗>检查查找表块的使用情况
有关Model Advisor的更多信息,请参见运行模型顾问检查.
此外,要确定选中此复选框是否安全,请确定是否有仿真软件设计校验™许可证,考虑使用检测块输入范围违规(仿真软件设计验证器)检查。
编程使用
块参数:RemoveProtectionInput |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
在代码生成中支持可调的表大小
-在生成的代码中启用可调表大小
从
(默认)|在
选中此复选框可在生成的代码中启用可调表大小。此选项使您能够更改生成代码中的查找表和断点数据的大小和值,而无需重新生成或重新编译代码。只能减小查找表和断点数据的大小。
依赖关系
如果你设置插值法来三次样条
,此复选框不可用。
编程使用
块参数:SupportTunableTableSize |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
每个维度的最大索引
-每个表维度的最大索引值
[]
(默认)|正整数值的标量或向量
例子:(4 - 6)
对于一个5乘7的表格
使用从零开始的索引为每个表维度指定最大索引值。可以使用以下数据类型指定正整数值的标量或向量:
内置的浮点类型:
双
而且单
内置整数类型:
int8
,int16
,int32
,uint8
,uint16
,uint32
有效规范的例子包括:
(4 - 6)
对于一个5乘7的表格[int8 (2) int16 (5) int32 (9)]
3乘6乘10的桌子一个
仿真软件。参数
它在生成代码时的值比表数据的维数小1。有关更多信息,请参见生成代码中的可调表大小.
依赖关系
若要启用此参数,请选择在代码生成中支持可调的表大小.在生成的代码中调优该参数时,提供新的表数据和断点以及调优的参数值。
编程使用
块参数:MaximumIndicesForEachDimension |
类型:特征向量 |
价值观:正整数值的标量或向量 |
默认值:“[]” |
数据类型
表数据
—表数据的数据类型
继承:与输出相同
(默认)|双
|单
|一半
|int8
|uint8
|int16
|uint16
|int32
|uint32
|int64
|uint64
|fixdt (16)
|fixdt (1 16 0)
|fixdt(1, 16日2 ^ 0,0)
|<数据类型>表达
指定表数据类型。你可以设置为:
继承数据类型的规则,例如,
继承:与输出相同
内置数据类型的名称,例如,
单
数据类型对象的名称,例如a
仿真软件。NumericType
对象求值为数据类型的表达式,例如,
fixdt (1 16 0)
单击显示数据类型助手按钮来显示数据类型的助理,它帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型.
提示
为以下情况指定与输出数据类型不同的表数据类型:
存储使用比输出信号更小类型的表数据所需的更低内存
在两个表之间共享预估表数据一天的查找表具有不同输出数据类型的块
在生成的代码中为具有不同输出数据类型的块共享自定义存储表数据
依赖关系
若要启用此参数,请设置表数据从表和断点选项卡,对话框
.
编程使用
块参数:TableDataTypeStr |
类型:特征向量 |
价值观:'Inherit: Inherit from 'Table data' |' Inherit:同output' |' double' |' single' |' half' |' 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)
|枚举:<类名>
|<数据类型>表达
为一组断点数据指定数据类型。你可以设置为:
继承数据类型的规则,例如,
继承:与相应的输入相同
内置数据类型的名称,例如,
单
数据类型类的名称,例如,枚举数据类型类
数据类型对象的名称,例如a
仿真软件。NumericType
对象求值为数据类型的表达式,例如,
fixdt (1 16 0)
提示
断点支持无序的枚举数据。因此,线性搜索也是无序的,这提供了灵活性,但可能会影响性能。搜索从断点中的第一个元素开始。
如果使用以前的索引结果开始索引搜索复选框,则必须使用有序单调递增的数据。这种排序可以提高性能。
对于枚举数据,外推法必须
剪辑
.该块不支持枚举数据的范围外输入。指定枚举数据时,在断点数据集中包括整个枚举集。例如,使用
枚举
函数。
这是在此块中使用枚举数据的限制:
该块不支持枚举数据的范围外输入。指定枚举数据时,在断点数据集中包括整个枚举集。例如,使用
枚举
函数。
单击显示数据类型助手按钮来显示数据类型的助理,它帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型.
提示
为以下情况指定不同于相应输入数据类型的断点数据类型:
存储使用比输入信号更小类型的断点数据所需的内存更低
在两个之间共享预估的断点数据一天的查找表具有不同输入数据类型的块
在生成的代码中为具有不同输入数据类型的块共享自定义存储断点数据
为断点数据类型及其对应的输入数据类型指定相同的斜率和偏差(如果其中任何一个具有定点数据类型)。
依赖关系
若要启用此参数,请设置相应的参数断点参数的表和断点选项卡,对话框
.
编程使用
块参数:BreakpointsForDimension2DataTypeStr|…| BreakpointsForDimension30DataTypeStr |
类型:特征向量 |
价值观:'继承:与对应输入'|'相同继承:从'Breakpoint data' |' double' |' single' |' half' |' int8' |' uint8' |' int16' |' uint16' |' int32' |' uint32' |' int64' |' uint64' |' fixdt(1,16)' |' fixdt(1,16,0)' |' fixdt(1,16,2^0,0)'|'<数据类型表达式>' |
默认值:“继承:与相应的输入相同” |
断点最小
—断点数据可以具有的最小值
[]
|标量
指定一组断点数据可以具有的最小值。默认值为[]
(不明)。
编程使用
块参数:BreakpointsForDimension1Min | BreakpointsForDimension2Min |…| BreakpointsForDimension30Min |
类型:特征向量 |
价值观:标量 |
默认值:“[]” |
断点最大
—断点数据可以具有的最大值
[]
|标量
指定一组断点数据可以具有的最大值。默认值为[]
(不明)。
编程使用
块参数:BreakpointsForDimension2Max |…| BreakpointsForDimension30Max |
类型:特征向量 |
价值观:标量 |
默认值:“[]” |
分数
-分数数据类型
继承:通过内部规则继承
(默认)|双
|单
|fixdt (1 16 0)
|<数据类型>表达
指定分数数据类型。你可以设置为:
继承数据类型的规则,例如,
继承:通过内部规则继承
内置数据类型的名称,例如,
单
数据类型对象的名称,例如a
仿真软件。NumericType
对象求值为数据类型的表达式,例如,
fixdt (1 16 0)
单击显示数据类型助手按钮来显示数据类型的助理,它帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型.
编程使用
块参数:FractionDataTypeStr |
类型:特征向量 |
价值观:'Inherit: Inherit through internal rule' |' double' |' single' |' fixdt(1,16,0)'|'<数据类型表达式>' |
默认值:“继承:通过内部规则继承” |
中间结果
—中间结果数据类型
继承:与输出相同
(默认)|继承:通过内部规则继承
|双
|单
|int8
|uint8
|int16
|uint16
|int32
|uint32
|int64
|uint64
|fixdt (1 16 0)
|fixdt(1, 16日2 ^ 0,0)
|<数据类型>表达
指定中间结果数据类型。你可以设置为:
继承数据类型的规则,例如,
继承:与输出相同
内置数据类型的名称,例如,
单
数据类型对象的名称,例如a
仿真软件。NumericType
对象求值为数据类型的表达式,例如,
fixdt (1 16 0)
单击显示数据类型助手按钮来显示数据类型的助理,它帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型.
提示
使用此参数指定内部计算的精度高于(或低于)表数据或输出数据。
编程使用
块参数:IntermediateResultsDataTypeStr |
类型:特征向量 |
价值观:'Inherit: Inherit via internal rule' |' Inherit:与output' |' double' |' single' |' int8' |' uint8' |' int16' |' uint16' |' int32' |' uint32' |' int64' |' uint64' |' 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)
|<数据类型>表达
指定输出数据类型。你可以设置为:
继承数据类型的规则,例如,
继承:通过反向传播继承
内置数据类型的名称,例如,
单
数据类型对象的名称,例如a
仿真软件。NumericType
对象求值为数据类型的表达式,例如,
fixdt (1 16 0)
单击显示数据类型助手按钮来显示数据类型的助理,它帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型.
编程使用
块参数:OutDataTypeStr |
类型:特征向量 |
价值观:'Inherit: Inherit from table data' |' Inherit: Inherit from table data' |' Inherit:同first input' |' double' |' single' |' half' |' int8' |' uint8' |' int16' |' uint16' |' int32' |' uint32' |' int64' |' uint64' |' fixdt(1,16,0)' |' fixdt(1,16,2^0,0)'|'<数据类型表达式' |
默认值:“继承:与第一个输入相同” |
输出最小
-块能输出的最小值
[]
|标量
指定块输出的最小值。默认值为[]
(不明)。Simulink软件使用这个值执行:
参数范围检查(参见指定块参数的最小值和最大值).
模拟范围检查(见指定信号范围).
定点数据类型的自动伸缩。
优化从模型生成的代码。这种优化可以删除算法代码,并影响一些模拟模式的结果,如SIL或外部模式。
编程使用
块参数:OutMin |
类型:特征向量 |
价值观:标量 |
默认值:“[]” |
输出最大
-块能输出的最大值
[]
|标量
指定块可以输出的最大值。默认值为[]
(不明)。Simulink软件使用这个值执行:
参数范围检查(参见指定块参数的最小值和最大值).
模拟范围检查(见指定信号范围).
定点数据类型的自动伸缩。
优化从模型生成的代码。这种优化可以删除算法代码,并影响一些模拟模式的结果,如SIL或外部模式。
编程使用
块参数:OutMax |
类型:特征向量 |
价值观:标量 |
默认值:“[]” |
内部规则优先级
-中间计算的内部规则
速度
(默认)|精度
指定用于中间计算的内部规则。选择速度
为更快的计算。如果这样做,可能会发生精度损失,通常高达2位。
编程使用
块参数:InternalRulePriority |
类型:特征向量 |
价值观:“速度”|“精度” |
默认值:“速度” |
要求所有输入具有相同的数据类型
-要求所有输入具有相同的数据类型
在
(默认)|从
选择要求所有输入具有相同的数据类型。
编程使用
块参数:InputSameDT |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“上” |
锁定数据类型设置,防止定点工具更改
—防止定点工具覆盖数据类型
从
(默认)|在
选择此参数可防止定点工具覆盖此块上指定的数据类型。有关更多信息,请参见锁定输出数据类型设置(定点设计师).
编程使用
块参数:LockScale |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
整数舍入模式
-定点运算的舍入模式
简单的
(默认)|天花板
|收敛
|地板上
|最近的
|轮
|零
为在模拟或执行从模型生成的代码期间发生的定点查找表计算指定舍入模式。有关更多信息,请参见舍入(定点设计师).
此选项不影响块参数值的舍入。Simulink将这些值舍入到最接近的可表示整数值。要控制块参数的舍入,请使用MATLAB输入表达式®将舍入函数放入块对话框的编辑字段中。
编程使用
块参数:RndMeth |
类型:特征向量 |
价值观:'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | '最简单' | 'Zero' |
默认值:“简单” |
整数溢出时饱和
-溢流处理方法
从
(默认)|在
行动 | 采取这一行动的原因 | 溢出会发生什么 | 例子 |
---|---|---|---|
选中此复选框( |
您的模型可能会溢出,您需要在生成的代码中显式地进行饱和保护。 |
溢出饱和到数据类型所能表示的最小值或最大值。 |
与有符号8位整数关联的溢出可以饱和到-128或127。 |
不要选中此复选框( |
您希望优化生成的代码的效率。 您希望避免过度指定块如何处理超出范围的信号。有关更多信息,请参见排除信号范围错误. |
溢出包装为由数据类型表示的适当值。 |
数字130不适合有符号的8位整数,它被包装为-126。 |
提示
如果将模型保存为R2009a或更早版本,则此复选框设置不起作用,也不会出现饱和代码。此行为保持向后兼容性。
当您选中此复选框时,饱和将应用于块上的每个内部操作,而不仅仅是输出或结果。通常,代码生成过程可以检测何时溢出是不可能的。在这种情况下,代码生成器不会产生饱和代码。
编程使用
块参数:SaturateOnIntegerOverflow |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
模型的例子
块特征
数据类型 |
|
直接引线 |
|
多维信号 |
|
适应信号 |
|
讨论二阶导数过零检测 |
|
更多关于
生成代码中的可调表大小
假设您有一个查找表,并希望在生成的代码中使大小可调。当你使用仿真软件。LookupTable
而且仿真软件。断点
对象在生成的代码中配置用于校准的查找表数据,请使用SupportTunableSize
属性来启用可调表大小。当您不使用这些类时,请使用在代码生成中支持可调的表大小参数在一个一天的查找表块来启用可调的表大小。
假设:
你定义一个
仿真软件。参数
结构在你的模型的预加载函数:p = Simulink.Parameter;p.Value.MaxIdx = [2 2];p.Value。Bp1 = [1 2 3];p.Value。Bp2 = [1 4 16];p.Value.Table = [4 5 6;16 19 20;10 18 23];. datatype = '总线:slLookupTable'; p.CoderInfo.StorageClass = 'ExportedGlobal'; % Create bus object slBus1 from MATLAB structure Simulink.Bus.createObject(p.Value); slLookupTable = slBus1; slLookupTable.Elements(1).DataType = 'uint32';
这些块参数适用于n-D Lookup Table块。
参数 价值 表维数 2
表数据 p.Table
断点1 p.BP1
断点2 p.BP2
在代码生成中支持可调的表大小 在
每个维度的最大索引 p.MaxIdx
生成的
头文件包含一个类似这样的类型定义。模型
_types.h
typedef struct {uint32_T MaxIdx[2];real_T BP1 [3];real_T BP2 [3];real_T表[9];} slLookupTable;
生成的
文件包含类似这样的代码。模型
.c
/*导出块参数*/ slLookupTable p = {{2U, 2U}, {1.0, 2.0, 3.0}, {1.0, 4.0, 16.0}, {4.0, 16.0, 10.0, 5.0, 19.0, 18.0, 6.0, 20.0, 23.0}};/*更多代码*/ /*模型输出函数*/ static void ex_lut_nd_tunable_table_output(int_T tid) {/* Lookup_n-D: '<根>/n-D查找表'合并:* Inport: '<根>/In1' * Inport: '<根>/In2' */Y = look2_binlcpw(U1, U2, p.BP1, p.BP2, p.p table,…p.MaxIdx, p.MaxIdx[0] + 1U);/* Outport: '/Out1' */ ex_lut_nd_tunable_table_Y. Outport: ' /Out1'着干活= Y;/* tid为统一的功能接口。参数tid没有在函数中使用。* / UNUSED_PARAMETER (tid);}
突出显示的代码行指定了查找表的可调表大小。您可以更改查找表和断点数据的大小和值,而无需重新生成或重新编译代码。
查找表中的枚举值
假设您有一个包含如下定义的枚举类的查找表:
classdef(枚举)Gears < Simulink.IntEnumType枚举GEAR1(1), GEAR2(2), GEAR3(4), GEAR4(8), SPORTS(16), REVERSE(-1), NEUTRAL(0)结束结束
n-D查找块有以下设置:
数量的维度来
1
.表数据值是
[5 10 20 40 80 -5 0]
.断点1值是
枚举(齿轮)
.插补方法为平插法。
对于无序搜索,设置索引搜索方法来
线性搜索
和明确的使用以前的索引结果开始索引搜索复选框。
模拟产生一个矢量(80 5)
,对应于GEAR2
,反向
,体育
.
扩展功能
C / c++代码生成
使用Simulink®Coder™生成C和c++代码。
HDL代码生成
使用HDL Coder™为FPGA和ASIC设计生成Verilog和VHDL代码。
HDL Coder™提供了影响HDL实现和合成逻辑的额外配置选项。有关对一维查找表块的HDL代码生成支持的信息,请参见HDL代码生成.
定点转换
使用定点设计器设计和模拟定点系统。
版本历史
介绍了R2011a
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。