近似n维函数
金宝appSimulink中/查找表
HDL编码器/查找表
1-D,2-D和N-D查找表块评估n变量中的函数的采样表示
在哪里的功能F可以实证。块通过查找或插值用块参数定义的值表,将输入映射到输出值。该块支持平面(常数)金宝app,线性(线性点斜),拉格朗日(线性拉格朗日),最近邻,三次样条,和Akima样条插值方法。您可以将这些方法应用于从1到30的任何维度的表。
在下面的块中,第一输入识别所述第一尺寸(行)断点,第二输入识别所述第二维(列)断点,等等。
看到旋转或翻转后的端口位置有关不同区块方向的港口顺序的说明。
当数学和数据类型>使用优化的行主阵列布局算法配置参数设置,2-D和N-D查找表块行为从列专长到row-major的块行为。对于这些块,列 - 主要和行 - 主要算法可以按输出计算的顺序不同,可能导致数值略微不同。这种能力需要一个金宝app®编码器™或嵌入式编码器®许可证。有关行主支持的更多信息,请参见金宝app矩阵和数组的代码生成(金宝appSimulink编码器).
这些块参数定义断点和表数据。
块参数 | 意图 |
---|---|
表维数 | 指定查找表的维数。 |
断点 | 指定与查找表的每个维度相对应的断点向量。 |
表数据 | 定义相关联的输出值集。 |
提示
间隔均匀的断点可以使生成的代码无分割。有关更多信息,请参见fixpt_evenspace_cleanup
和识别可疑的定点操作(嵌入式编码).
n-D、1-D和2-D查找表块通过根据输入值查找或估计表值生成输出。
块输入 | n-D查找表块行为 |
---|---|
匹配指标值在断点数据集 | 在行、列和更高维度断点的交集处输出表值 |
不匹配的断点数据集指标的值,但在范围之内 | 属性插入适当的表值插值法你选择 |
与断点数据集中的索引值不匹配,并且超出范围 | 外推的输出值,使用外推法你选择 |
你可以使用插值使用Prelookup块的Prelookup块来执行1的等价操作正d查找表块。这种块的组合提供了更大的灵活性,可以为线性插值带来更有效的模拟性能。
当查找操作是不需要插值的数组访问时,使用直接查找表(N-D)块。例如,如果你有一个整数值k
你想要k
表的第i个元素,y =表(k)
,则没有必要进行插值。
u1
- 第一维(行)输入真实的输入到u1端口,通过查找或内插值的表定义映射为输出值。
例子:0:10
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|枚举
|不动点
联合国
- n维输入值真实的输入到联合国端口,通过查找或内插值的表定义映射为输出值。
例子:0:10
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|枚举
|不动点
T
- 定义输出值的表使用运行时可调的信号指定输出值表。
在仿真过程中,矩阵的大小必须与定义的维数相匹配表维数参数。但是,在编辑框图期间,您可以输入一个空矩阵(指定为[]
)或未定义的工作区的变量。这种技术可以让你推迟指定正确尺寸的矩阵表中的数据,并继续编辑框图。
要启用该端口,请设置:
数据规范来表和断点
.
表数据来输入端口
.
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
bp1
-显式断点值基于该值,明确指定断点数据断点规范参数,带有在运行时可调的信号
如果你设置断点规范来明确的价值
,输入对应于每个表中表数据的每个维度的断点集断点排。对于每个维度,将断点指定为1乘n或n-by-1向量,其值严格单调地增加。
您可以创建多达三个断点数据输入端口。对于断点4到30,您只能通过相应的指定断点数据断点参数。
笔记
要以偶数间距规范格式指定断点,请设置断点规范来甚至间距
并使用断点第一点和间距参数。
要启用该端口,请设置:
数据规范来表和断点
.
断点规范来明确的价值
.
断点1来输入端口
.
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|枚举
|不动点
bp2
-显式断点值基于该值,明确指定断点数据断点规范参数,条件是在运行时可调谐的信号。
如果你设置断点规范来明确的价值
,输入对应于每个表中表数据的每个维度的断点集断点排。对于每个维度,将断点指定为1乘n或n-by-1向量,其值严格单调地增加。
您可以创建多达三个断点数据输入端口。对于断点4到30,您只能通过相应的指定断点数据断点参数。
笔记
要指定间隔均匀的断点数据,请使用断点参数。您不能通过输入端口指定间隔均匀的断点数据。
要启用该端口,请设置:
数据规范来表和断点
.
断点规范来明确的价值
.
断点2来输入端口
.
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|枚举
|不动点
bp3
-显式断点值基于该值,明确指定断点数据断点规范参数,条件是在运行时可调谐的信号。
如果你设置断点规范来明确的价值
,输入对应于每个表中表数据的每个维度的断点集断点排。对于每个维度,将断点指定为1乘n或n-by-1向量,其值严格单调地增加。
您可以创建多达三个断点数据输入端口。对于断点4到30,您只能通过相应的指定断点数据断点参数。
笔记
要指定间隔均匀的断点数据,请使用断点参数。您不能通过输入端口指定间隔均匀的断点数据。
要启用该端口,请设置:
数据规范来表和断点
.
断点规范来明确的价值
.
断点3来输入端口
.
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|枚举
|不动点
港口1
-通过查找或估计表值计算的输出根据输入值查找或估计表值生成的输出:
当块输入…… | n-D查找表块… |
---|---|
匹配指标值在断点数据集 | 在行、列和更高维度断点的交集处输出表值 |
不匹配的断点数据集指标的值,但在范围之内 | 属性插入适当的表值插值法你选择 |
与断点数据集中的索引值不匹配,并且超出范围 | 外推的输出值,使用外推法你选择 |
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
表维数
- 查找表维数3.
(默认)|1
|2
|4
|...
|30.
输入查找表的维度数。这个参数决定:
表的独立变量数量和块输入的数量
要指定的断点集的数量
价值 | 设置 |
---|---|
1、2、3或4 |
在下拉列表中选择。 |
更多的表维度 |
直接在字段中输入正整数。 此块支持的最大表维度数为30。金宝app |
例如,大小为的表米xNx……表示维度1的大小是米,尺寸2为N等等。米必须与第一个断点长度匹配,N必须与第二个断点长度匹配,以此类推。
块参数:NumberOfTableDimensions |
类型:特征向量 |
价值观:'1' | '2' | '3' | '4' |…| 30 |
默认:“3” |
数据规范
- 表和断点规范的方法表和断点
(默认)|查找表对象
从列表中选择:
表和断点
- 指定表格数据和断点。选择该选项可启用以下参数:
表数据
断点规范
断点1
断点2
断点3
编辑表和断点
要使用输入端口指定表和断点,请参阅源参数。
查找表对象
-使用现有的查找表(金宝appSimulink.LookupTable
)对象。选择此选项将启用的名字场与编辑表和断点按钮。
块参数:数据规格 |
类型:特征向量 |
价值观:'查找表对象' |
默认:“表和断点” |
的名字
—查找表对象的名称[]
(默认)|金宝appSimulink.LookupTable
对象输入查找表的名称(金宝appSimulink.LookupTable
)对象。如果一个金宝appSimulink.LookupTable
对象不存在时,单击操作按钮并选择创建.新查找表对象的相应参数将自动使用块信息填充。
要启用该参数,请设置数据规范来查找表对象
.
块参数:LookupTableObject |
类型:特征向量 |
价值观:姓名金宝appSimulink.LookupTable 对象 |
默认:'' |
断点规范
-断点规范的方法明确的价值
(默认)|甚至间距
指定是否为明确的断点或产生均匀分布的断点参数输入数据。
若要显式指定断点数据,请将该参数设置为明确的价值
并在断点参数。
要指定生成间隔均匀的断点的参数,请将该参数设置为甚至间距
的值第一点和间距断点数据的每个维度的参数。该块计算从表数据生成的点数。
要启用该参数,请设置数据规范来表和断点
.
当该参数设置为甚至间距
,则只能通过对话框指定断点数据。
块参数:BreakpointsSpecification |
类型:特征向量 |
价值观:'显式值' | '偶数间距' |
默认:“显性价值” |
源
-表和断点数据的源对话框
(默认)|输入端口
指定表和断点数据的来源为:
对话框
—指定中的表或断点数据价值参数。
输入端口
—通过相关的输入端口指定表或断点数据。
您可以创建多达三个断点数据输入端口。对于断点4到30,您只能通过相应的指定断点数据断点参数。
笔记
由于运行时检查,使用输入端口指定表或断点数据可能会对模拟的块性能产生负面影响。
要启用该参数,请设置数据规范来表和断点
.
要启用相关的价值,设置为对话框
.
如果要启用相关的输入端口,设置为输入端口
.
将该参数设置为输入端口
禁用价值字段并隐藏相应的参数数据类型标签。
将该参数设置为输入端口
对于任何一个参数,禁用编辑表和断点按钮。
块参数:TableSource |breakpointsfordimension1source. |断点ForDimension2Source |BreakpointsForDimension3Source |
类型:特征向量 |
价值观:对话框 |输入端口 |
默认:“对话框” |
表数据
- 定义输出值的表重塑(Repmat([4 5 6; 16 19 20; 10 18 23],1,2),[3,3,2])
(默认)|的值矩阵,其维度与表维数在关联中输入输出值表价值领域
在仿真过程中,矩阵的大小必须与定义的维数相匹配表维数参数。但是,在编辑框图期间,您可以输入一个空矩阵(指定为[]
)或未定义的工作区的变量。这种技术可以让你推迟指定正确尺寸的矩阵表中的数据,并继续编辑框图。
要启用此参数,请设置:
数据规范来表和断点
.
表数据:源来对话框
.
块参数:桌子 |
类型:特征向量 |
价值观:表值矩阵 |
默认:“重塑(repmat([4 5 6;16 19 20;10 18 23],1,2),[3,3,2])” |
断点
-明确的断点值或断点的第一个点和间距(10, 22日,31)
(默认)|单调递增值的1 × n或n × 1向量属性的值,显式指定断点数据或以等间距指定断点断点规范参数。
如果你设置断点规范来明确的价值
,输入对应于每个表中表数据的每个维度的断点集断点关联的行价值领域对于每个维度,将断点指定为1乘n或n-by-1向量,其值严格单调地增加。
如果你设置断点规范来甚至间距
,输入参数第一点和间距在每一个断点行在相应的尺寸下产生均匀间隔的断点。您的表数据确定均匀间隔点的数量。
要启用此参数,请设置:
数据规范来表和断点
.
表数据:源来对话框
.
当断点规范参数设置为甚至间距
,则只能通过对话框指定断点数据。
块参数:breakpointsfordimension1 |breakpointsfordimension2 |... |breakpointsfordimension30 | |
类型:特征向量 |
价值观:1乘n或n乘1单调增加的值的矢量 |
默认:“[31]10,22日” |
第一点
-等间距断点数据中的第一个点1
(默认)|标量将均匀间隔的断点数据中的第一个点指定为实值有限标量。当断点规范被设置为甚至间距
.
要启用该参数,请设置数据规范来表和断点
,断点规范来甚至间距
.
块参数:BreakpointsForDimension1FirstPoint |断点fordimension 2firstpoint |…| BreakpointsForDimension30FirstPoint | |
类型:特征向量 |
价值观:实值,有限的,标 |
默认:' 1 ' |
间距
-等间距断点之间的间距1
(默认)|标量在等间距断点数据中指定点之间的间距。
要启用该参数,请设置数据规范来表和断点
,断点规范来甚至间距
.
块参数:BreakpointsForDimension1Spacing |BreakpointsForDimension2Spacing |... |BreakpointsForDimension30Spacing | |
类型:特征向量 |
价值观:正、实值、有限、标量 |
默认:' 1 ' |
编辑表和断点
-打开“查找表编辑器”对话框单击此按钮可打开查找表编辑器。有关详细信息,请参阅编辑查找表在Simuli金宝appnk文档中。
对于查找表对象,单击此按钮可以编辑对象并保存对象的新值。
插值法
-断点值之间的插值方法线性点斜式
(默认)|平
|最近的
|线性拉格朗日
|三次样条
|Akima花键
当输入介于断点值之间时,块将使用相邻断点对输出值进行插值。有关插值方法的更多信息,请参阅插值方法.
如果您选择三次样条
,块只支持标量信号。金宝app其他插值方法支持非标量信号。金宝app
如果您选择Akima花键
,外推法只能是Akima花键
.
当设置为修改的Akima插值方法时,此块不支持:金宝app
行主阵列布局和为行主阵列布局优化的算法
缩放的双精度和定点数据类型
金宝appSimulink.LookupTable
对象
配置参数时的代码生成代码生成>接口>金宝app支持非谓语形式的数字选中复选框
当设置为修改后的Akima插值方法时,已知当下列条件为真时,该块运行得更慢:
基于代码生成的仿真目标,如加速器模式、快速加速器模式、受保护模型等。
为大断点和数据表大小生成的代码。例如,表大小为629x1601。
块参数:InterpMethod |
类型:特征向量 |
价值观:'线性点斜' | '平坦' | '最近' | '线性拉格朗日' | '三次样条' | 'Akima样条' |
默认:“线性点斜式” |
外推法
- 处理落在断点数据集的范围之外的输入值的方法线性
(默认)|夹子
|三次样条
|Akima花键
选择夹子
,线性
,或三次样条
.看到外推方法想要查询更多的信息。
如果外推法是线性
时,根据所选的线性插值方法计算外推值。例如,如果插值法是线性拉格朗日法,外推法继承线性拉格朗日方程来计算外推值。
选择三次样条
为了外推法,您还必须选择三次样条
为了插值法.
选择Akima花键
为了外推法,您还必须选择Akima花键
为了插值法.
块参数:ExtrapMethod |
类型:特征向量 |
价值观:“线性” |“剪辑” |“三次样条” |“Akima样” |
默认:“线性” |
索引搜索方法
-计算表索引的方法等间距的点
(默认)|线性搜索
|二分查找
选择等间距的点
,线性搜索
,或二分查找
.每种搜索方法在不同的情况下都有速度优势:
对于间隔均匀的断点集(例如10、20、30,等等),您可以通过选择实现最佳速度等间距的点
计算表索引。
该算法仅使用一个集合的前两个断点来确定其余点的偏移量和间距。
笔记
放索引搜索方法来等间距的点
使用时金宝appSimulink.LookupTable
对象来指定表数据和断点规范参考参数金宝appSimulink.LookupTable
对象设置为甚至间距
.
对于间隔不均匀的断点集,请遵循以下指导原则:
如果输入信号不会在时间步长之间变化,请选择线性搜索
与使用以前的索引结果开始索引搜索产生最佳性能。
如果输入信号跳每时间步多于一个或两个表的间隔,选择二分查找
产生最佳性能。
索引搜索方法的次优选择可能会导致严重依赖查找表的模型性能降低。
笔记
生成的代码只存储第一个断点,间隔,和断点时的数目:
断点数据是不可调优的。
索引搜索方法是等间距的点
.
块参数:IndexSearchMethod |
类型:特征向量 |
价值观:' | '等间距点' | '线性搜索' |
默认:'二进制搜索' |
使用以前的索引结果开始索引搜索
- 从前一步开始使用索引从
(默认)|在
当您希望块使用在上一个时间步骤中找到的索引开始搜索时,请选中此复选框。对于相对于间隔大小变化缓慢的输入,启用该选项可以提高性能。否则,线性搜索和二元搜索方法会花费更长的时间,特别是对于大型断点集。
要启用该参数,请设置索引搜索方法来线性搜索
或二分查找
.
块参数:BeginIndexSearchUsing PreviousIndexResult |
类型:特征向量 |
价值观:“关”|“开” |
默认:'离开' |
超出范围输入的诊断
-输入超出范围时阻止操作没有一个
(默认)|警告
|错误
指定当输入超出范围时是否产生警告或错误。选项包括:
没有一个
-不产生响应。
警告
-显示警告并继续模拟。
错误
—终止模拟并显示错误。
块参数:DiagnosticForOutOfRangeInput |
类型:特征向量 |
价值观:'无' | 'Warning' | 'Error' |
默认:'没有任何' |
可能的情况下应用全精度的定点算法
-更精确的定点表查找从
(默认)|在
使用此复选框可在可能时为线性插值查找启用全精度定点算法查找。对于硬件效率高的定点四舍五入模式,该算法通常能达到更好的精度。
要启用此参数,请设置:
表维数来1
.
插值法来线性点斜式
.
外推法来夹子
.
块参数:ApplyFullPrecisionForLinearInterpolation |
类型:特征向量 |
价值观:“关”|“开” |
默认:'离开' |
在上一个断点或断点以上的输入使用上一个表值
-计算位于或高于最后一个断点的输入的输出的方法从
(默认)|在
使用此复选框,指定块用于寻址断点集的最后一个元素及其相应的表值的索引约定。如果输入等于或大于断点数据的最后一个元素,则此复选框是相关的。由于舍入,选择和清除此复选框可能会导致模拟和代码生成之间最后一个断点的结果不同。
复选框 | 块使用的索引 | 分数间隔 |
---|---|---|
选择 | 断点数据的最后一个元素表和断点选项卡 | 0 |
清除 | 上的断点数据的倒数第二个元素表和断点选项卡 | 1 |
给定一个输入u内断点组范围BP.中,间隔部分f,在0≦范围内f<1,如下所示计算。
假设断点集为(1 4 5)
和输入u是5.5
.如果选中此复选框,则索引是最后一个元素的索引(5
)间隔分数为0.如果清除此复选框,则索引是下一键元素的索引(4
),区间分数为1。
要启用此参数,请设置:
插值法来线性
.
外推法来夹子
.
块参数:UseLastTableValue |
类型:特征向量 |
价值观:“关”|“开” |
默认:'离开' |
所有输入数据使用一个输入端口
—只能使用一个输入端口从
(默认)|在
选择此复选框只使用一个期望信号为n
n维表的宽元素。这个选项对于消除带有许多查找表的框图中的行杂乱很有用。
笔记
当您选择此复选框时,一个带有标签的输入端口u
出现在街区上。
块参数:UseOneInputPortForAllInputData |
类型:特征向量 |
价值观:“关”|“开” |
默认:'离开' |
在生成的代码中删除对超出范围输入的保护
-删除检查超出范围的输入值的代码从
(默认)|在
指定是否包含检查超出范围的输入值的代码。
复选框 | 结果 | 什么时候使用 |
---|---|---|
|
生成的代码不包括用于检查超出范围的断点输入的条件语句。 当输入超出范围时,可能会导致生成代码的行为未定义。 |
代码效率 |
|
生成的代码包括条件语句,用于检查超出范围的输入。 |
用于安全关键型应用 |
如果您的输入没有超出范围,您可以选择在生成的代码中删除对超出范围索引的保护复选框用于代码效率。默认情况下,此复选框被清除。对于安全要求严格的应用程序,不要选中此复选框。如果你想选择在生成的代码中删除对超出范围索引的保护复选框,首先检查您的模型输入是否在范围内。例如:
清除在生成的代码中删除对超出范围索引的保护复选框。
设定超出范围输入的诊断参数到错误
.
模拟在正常模式下的模型。
如果有超出范围的错误,修复它们在范围内,并再次运行模拟。
当模拟不再产生超出范围的输入错误时,选择在生成的代码中删除对超出范围索引的保护复选框。
笔记
当您选择在生成的代码中删除对超出范围索引的保护复选框和输入超出范围,行为未定义生成的代码。
根据您的应用程序,您可以运行以下Model Advisor检查,以验证此复选框的使用情况:
通过产品>嵌入式编码器>识别查找产生外的范围昂贵检查代码表的块
通过产品>金宝app仿真软件检查>建模标准>- 331 - 178 - c /做检查吗>检查查找表块的使用情况
有关Model Advisor的更多信息,请参见运行模型顾问检查.
此外,以确定它是否是安全的,选中此复选框,如果你有一个金宝app仿真软件设计校验™许可证,考虑使用检测模块输入范围违规(金宝app仿真软件设计验证器)检查
块参数:RemoveProtectionInput |
类型:特征向量 |
价值观:“关”|“开” |
默认:'离开' |
金宝app在代码生成中支持可调表大小
-在生成的代码中启用可调表大小从
(默认)|在
选中此复选框可在生成的代码中启用可调表大小。通过此选项,您可以更改生成代码中查找表和断点数据的大小和值,而无需重新生成或重新编译代码。您只能减小查找表和断点数据的大小。
如果你设置插值法来三次样条
,此复选框不可用。
块参数:金宝appSupportTunableTableSize |
类型:特征向量 |
价值观:“关”|“开” |
默认:'离开' |
样品时间
-将采样时间指定为非采样时间的值-1
-1
(默认)|标量|向量将样本时间指定为-1以外的值。有关更多信息,请参见指定样品时间.
这个参数是不可见的,除非它被显式地设置为非-1
.想要了解更多,请看不建议使用采样时间的块.
块参数:采样时间 |
类型:特征向量 |
价值观:标量或矢量 |
默认:' 1 ' |
每个维度的最大指标
- 为每个表尺寸最大索引值[]
(默认)|正整数值的标量或向量
例子:(4 - 6)
一张5乘7的桌子
使用基于零的索引为每个表维指定最大索引值。可以使用以下数据类型指定正整数值的标量或向量:
内置的浮点类型:双
和单
内置整数类型:int8
,int16
,int32
,uint8
,uint16
,uint32
有效规格的示例包括:
(4 - 6)
一张5乘7的桌子
[int8 (2) int16 (5) int32 (9)]
对于3×6到10个表
一个金宝app仿真软件。参数
其上产生码值是一个比所述表数据的尺寸更小。有关更多信息,请参见生成代码中的可调表大小.
要启用该参数,请选择金宝app在代码生成中支持可调表大小.在生成的代码中调优此参数时,提供新的表数据和断点以及调优的参数值。
块参数:MaximumIndicesForEachDimension |
类型:特征向量 |
价值观:正整数值的标量或向量 |
默认:“[]” |
表数据
-表数据的数据类型继承:与输出相同
(默认)|双
|单
|一半
|int8
|uint8
|int16
|uint16
|int32
|uint32
|int64
|uint64
|fixdt(1,16)
|fixdt(1,16,0)
|fixdt(1, 16日2 ^ 0,0)
|<数据类型>表达
指定表数据类型。你可以设置为:
继承数据类型的规则,例如,继承:与输出相同
内置数据类型的名称,例如,单
例如,数据类型对象的名称,a金宝app仿真软件。NumericType
对象
计算结果为数据类型的表达式,例如,fixdt(1,16,0)
点击显示数据类型助手按钮显示数据类型助理,它可帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型.
提示
在这些情况下,指定与输出数据类型不同的表数据类型:
存储使用比输出信号更小类型的表数据所需的内存更低
在两者之间共享预伸缩表数据正d查找表具有不同输出数据类型的块
在生成的代码中共享具有不同输出数据类型的块的自定义存储表数据
要启用该参数,请设置表数据从表和断点选项卡,对话框
.
块参数:TableDataTypeStr |
类型:特征向量 |
价值观:继承:同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(1,16)
|fixdt(1,16,0)
|fixdt(1, 16日2 ^ 0,0)
|枚举:<类名>
|<数据类型>表达
指定一组断点数据的数据类型。你可以设置为:
继承数据类型的规则,例如,继承:与相应的输入相同
内置数据类型的名称,例如,单
数据类型类的名称,例如,枚举数据类型类
例如,数据类型对象的名称,a金宝app仿真软件。NumericType
对象
计算结果为数据类型的表达式,例如,fixdt(1,16,0)
提示
断点支持无序枚举数据。金宝app因此,线性搜索也是无序的,它提供了灵活性,但会影响性能。搜索从断点中的第一个元素开始。
如果使用以前的索引结果开始索引搜索复选框,则必须使用有序单调递增数据。这种排序可以提高性能。
对于枚举数据,外推法必须夹子
.
该块不支持枚举数据的超出范围的输入。金宝app当指定枚举数据时,在断点数据集中包含整个枚举集。例如,使用the枚举
函数。
这是在这个块中使用枚举数据的一个限制:
该块不支持枚举数据的超出范围的输入。金宝app当指定枚举数据时,在断点数据集中包含整个枚举集。例如,使用the枚举
函数。
点击显示数据类型助手按钮显示数据类型助理,它可帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型.
提示
为以下情况指定不同于相应输入数据类型的断点数据类型:
存储使用比输入信号类型更小的断点数据所需的内存更少
在两者之间共享预先设定的断点数据正d查找表块具有不同的输入数据类型
在具有不同输入数据类型的块的生成代码中共享自定义存储断点数据
如果断点数据类型及其对应的输入数据类型具有定点数据类型,则为它们指定相同的斜率和偏差。
要启用此参数,请设置相应的断点从参数表和断点选项卡,对话框
.
块参数:断点ForDimension1DataTypeStr |断点ForDimension2DataTypeStr |…|断点ForDimension30DataTypeStr |
类型:特征向量 |
价值观:继承:继承from ` 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 |
类型:特征向量 |
价值观:标量 |
默认:“[]” |
断点最大
—断点数据的最大值[]
|标量
指定一组断点数据可以具有的最大值。默认值为[]
(不明)。
块参数:BreakpointsForDimension1Max |…| BreakpointsForDimension30Max |
类型:特征向量 |
价值观:标量 |
默认:“[]” |
分数
-分数数据类型继承:通过内部规则继承
(默认)|双
|单
|fixdt(1,16,0)
|<数据类型>表达
指定分数的数据类型。你可以设置为:
继承数据类型的规则,例如,继承:通过内部规则继承
内置数据类型的名称,例如,单
例如,数据类型对象的名称,a金宝app仿真软件。NumericType
对象
计算结果为数据类型的表达式,例如,fixdt(1,16,0)
点击显示数据类型助手按钮显示数据类型助理,它可帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型.
块参数:fractiondatatypestr. |
类型:特征向量 |
价值观:'继承:通过内部规则继承|'双'|'单身'|'fixdt(1,16,0)'|'<数据类型表达>' |
默认:'继承:通过内部规则继承 |
中间结果
—中间结果数据类型继承:与输出相同
(默认)|继承:通过内部规则继承
|双
|单
|int8
|uint8
|int16
|uint16
|int32
|uint32
|int64
|uint64
|fixdt(1,16,0)
|fixdt(1, 16日2 ^ 0,0)
|<数据类型>表达
指定中间结果数据类型。你可以设置为:
继承数据类型的规则,例如,继承:与输出相同
内置数据类型的名称,例如,单
例如,数据类型对象的名称,a金宝app仿真软件。NumericType
对象
计算结果为数据类型的表达式,例如,fixdt(1,16,0)
点击显示数据类型助手按钮显示数据类型助理,它可帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型.
提示
使用此参数可以指定与表数据或输出数据相比,内部计算的精度更高(或更低)。
块参数:中间结果数据类型STR |
类型:特征向量 |
价值观:'继承:通过内部规则继承|'继承:与输出相同'|'双'|'单身'|'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(1,16)
|fixdt(1,16,0)
|fixdt(1, 16日2 ^ 0,0)
|<数据类型>表达
指定输出数据类型。你可以设置为:
继承数据类型的规则,例如,继承:通过反向传播继承
内置数据类型的名称,例如,单
例如,数据类型对象的名称,a金宝app仿真软件。NumericType
对象
计算结果为数据类型的表达式,例如,fixdt(1,16,0)
点击显示数据类型助手按钮显示数据类型助理,它可帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型.
块参数:OutDataTypeStr |
类型:特征向量 |
价值观:继承:继承表数据'|'继承:与第一次输入'|' double' |' single' |' half' |' int8' |' uint8' |' int16' |' uint16' |' int32' |' uint32' |' int64' |' uint64' |' fixdt(1,16,0)' |' fixdt(1,16,2^0,0)'|'<数据类型表达式' |
默认:“继承:与第一次输入相同” |
最小输出
- 块可以输出的最小值[]
|标量
指定块输出的最小值。默认值为[]
(不明)。金宝appSimulink软件使用这个值来执行:
参数范围检查(参见指定块参数的最小值和最大值).
模拟范围检查(参见指定信号范围).
定点数据类型的自动缩放。
优化您从模型生成的代码。该优化可以删除算法代码并影响某些模拟模式的结果,例如SIL或外部模式。
块参数:OutMin |
类型:特征向量 |
价值观:标量 |
默认:“[]” |
最大输出
—块可输出的最大值[]
|标量
指定块可以输出的最大值。默认值为[]
(不明)。金宝appSimulink软件使用这个值来执行:
参数范围检查(参见指定块参数的最小值和最大值).
模拟范围检查(参见指定信号范围).
定点数据类型的自动缩放。
优化您从模型生成的代码。该优化可以删除算法代码并影响某些模拟模式的结果,例如SIL或外部模式。
块参数:奥特马克斯 |
类型:特征向量 |
价值观:标量 |
默认:“[]” |
内部规则优先级
-中间计算的内部规则速度
(默认)|精度
指定中间计算的内部规则。选择速度
更快的计算。如果你这样做,可能会导致精确度的损失,一般可达2位。
块参数:InternalRulePriority |
类型:特征向量 |
价值观:“速度”|“精度” |
默认:“速度” |
要求所有输入具有相同的数据类型
- 需要所有输入到具有相同的数据类型在
(默认)|从
选择此选项可要求所有输入具有相同的数据类型。
块参数:InputSameDT |
类型:特征向量 |
价值观:“关”|“开” |
默认:“上” |
根据定点工具的更改锁定数据类型设置
—防止定点工具覆盖数据类型从
(默认)|在
选择此参数可防止定点工具覆盖在此块上指定的数据类型。有关更多信息,请参见锁定输出数据类型设置(定点设计师).
块参数:LockScale |
类型:特征向量 |
价值观:“关”|“开” |
默认:'离开' |
整数舍入模式
-定点操作舍入模式简单
(默认)|天花板
|收敛
|地板上
|最近的
|轮
|零
指定模拟或从模型生成的代码在执行期间发生定点查找表计算所述舍入模式。有关更多信息,请参见四舍五入(定点设计师).
此选项不影响块参数值的舍入。金宝appSimulink将这些值舍入到最接近的可表示整数值。要控制块参数的舍入,请使用MATLAB输入表达式®舍入函数在块对话框的“编辑”字段中。
块参数:rndmeth. |
类型:特征向量 |
价值观:'天花板' | '收敛' | '地板' | '最近' | 'Round' | '最简单' | '零' |
默认:“最简单的” |
整数溢出饱和
-溢出动作的方法从
(默认)|在
行动 | 采取这一行动的理由 | 溢出会发生什么 | 例子 |
---|---|---|---|
选择此复选框( |
您的模型可能存在溢出,您希望在生成的代码中显示饱和保护。 |
溢出会饱和到数据类型所能表示的最小值或最大值。 |
与符号的8位整数相关联的溢出可以饱和至-128或127。 |
不选择此复选框( |
您希望优化生成代码的效率。 您希望避免过度指定块如何处理超出范围的信号。有关更多信息,请参阅排除信号范围误差. |
溢出包装为数据类型可表示的适当值。 |
数字130不适合有符号8位整数,并换行为-126。 |
提示
如果将模型作为R2009A或更早版本保存,则此复选框设置无效,不会出现饱和码。此行为保留向后兼容性。
当您选中此复选框时,饱和度将应用于块上的每个内部操作,而不仅仅是输出或结果。一般来说,代码生成过程可以在不可能溢出时进行检测。在这种情况下,代码生成器不会产生饱和代码。
块参数:SaturateOnIntegerOverflow |
类型:特征向量 |
价值观:“关”|“开” |
默认:'离开' |
数据类型 |
|
直接引线 |
|
多维信号 |
|
可变大小信号 |
|
讨论二阶导数过零检测 |
|
假设您有一个查找表,并希望在生成的代码中使大小可调。当你使用金宝appSimulink.LookupTable
和金宝app仿真软件。断点
对象来配置生成代码中用于校准的查找表数据,请使用金宝appSupportTunableSize
属性以启用可调优表大小。如果不使用这些类,请使用金宝app在代码生成中支持可调表大小参数在A.正d查找表块以启用可调大小的表。
假设:
你定义一个金宝app仿真软件。参数
结构在你的模型的预加载函数:
p = 金宝appSimulink.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];p.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查找表块。
参数 | 价值 |
---|---|
表维数 | 2 |
表数据 | P.Table. |
断点1 | p.BP1 |
断点2 | p.BP2 |
金宝app在代码生成中支持可调表大小 | 在 |
每个维度的最大指标 | 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}};/* More code */ /* Model output function */ static void ex_lut_nd_tunable_table_output(int_T tid) { /* Lookup_n-D: '/n-D Lookup Table' incorporates: * Inport: ' /In1' * Inport: ' /In2' */y = look2_binlcpw(u1,u2,p.bp1,p.bp2,p.table,... p.maxidx,p.maxidx [0] + 1u);/* Outport: ' /Out1' */ ex_lut_nd_tunable_table_Y. txt . txt . txt着干活= Y;/* tid是一个统一的函数接口所必需的。*参数tid未在函数中使用。* / UNUSED_PARAMETER (tid);}
突出显示的代码行指定查找表的可调表大小。您可以更改查找表和断点数据的大小和值,而无需重新生成或重新编译代码。
假设你有一个这样定义一个枚举类的查找表:
< Simulink. classdef(Enumerati金宝appon) Gears枚举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)
,对应于齿轮
,颠倒
,体育
.
HDL Coder™提供了影响HDL实现和合成逻辑的额外配置选项。
这个块有一个单独的、默认的HDL架构。
一般的 | |
---|---|
ConstrainedOutputPipeline | 通过在设计中移动现有延迟而放置在输出处的寄存器数。分布式管道不会重新分发这些寄存器。默认值是 |
InputPipeline. | 要插入生成代码的输入管道阶段的数目。分布式管道和受约束的输出管道可以移动这些寄存器。默认值是 |
MapToRAM | 将查找表(lut)映射到RAM。默认值是 |
输出管道 | 要插入生成代码的输出管道阶段的数量。分布式管道和受约束的输出管道可以移动这些寄存器。默认值是 |
笔记
块支持金宝app单
,双
,一半
用于生成HDL代码的数据类型。
本机浮点 | |
---|---|
HandleDenormals | 指定是否希望HDL编码器插入其他逻辑来处理设计中的非规范数字。非规范数字是数量级小于尾数中无前导零可表示的最小浮点数的数字。默认值为 |
后系统战略 | 指定是否将设计中的块映射到 |
MantissaMultiplyStrategy | 指定如何在代码生成期间实现尾数乘法运算。通过使用不同的设置,可以控制目标FPGA设备上DSP的使用。默认设置为 |
预先显示 | 若要启用此属性,请设置插值法来 当你启用这个特性,斜率和偏置系数取决于表中的数据和断点静态预先计算。此设置减少了在运行期间执行计算系数除法运算的次数。它还减少所执行的浮点加法和乘法运算的总数。 启用此属性可减少延迟,并节省所需的查询表资源的区域数量。但是,这个属性会对浮点运算重新排序,这可能会导致很小的数值差异。您可以在生成的验证模型中观察到这些数值差异。 |
AreaOptimization | 对于4-D和5-D LUT,HDL码生成支持完全并行和串行实现。金宝app要启用此属性,请使用用于4-D和5-D LUT的线性插值方法。将此属性设置为 |
此块支持复杂信号的代码金宝app生成。
块设置 | 高密度脂蛋白编码器支金宝app持 |
---|---|
表维数 | 指定最大尺寸为5。 |
断点规范 | 选择任一个明确的价值 或甚至间距 . |
外推法 | 选择夹子 或线性 .代码生成器不支持超出均范围的外推。金宝app |
插值法 | 选择平 或线性点斜式 . |
超出范围输入的诊断 | 选择错误 .如果指定其他选项,HDL Coder将生成警告。 |
在上一个断点或断点以上的输入使用上一个表值 | 选中此复选框。 |
要求所有输入具有相同的数据类型 | 选中此复选框。 |
分数 | 选择继承:通过内部规则继承 . |
整数舍入模式 | 选择零 ,地板上 ,或简单 . |
所有输入数据使用一个输入端口 | 清除此复选框。 |
如果你使用英特尔®MAX 10设备,为了将查找表映射到RAM,在Quartus工具中创建项目时添加以下Tcl命令:
set_global_assign -name INTERNAL_FLASH_UPDATE_MODE "SINGLE IMAGE WITH ERAM"
如果HDL编码器遇到需要除法操作来匹配模型模拟行为的条件,则会显示一个警告。所描述的条件导致该块发出一个除法运算符。当你使用这个块来生成HDL代码时,要避免以下条件:
如果块被配置为使用插值,则需要一个除法运算符。为了避免这个要求,设置插值法来平
.
表间距不均匀。HDL代码的生成要求块使用等间距点算法。从输入数据类型到基于零的表索引的块映射通常需要除法。当断点间距恰好是2的幂时,这个除法被实现为移位而不是除法。若要调整断点间距,请调整表中断点的数量或断点范围的左右边界之间的差值。
将断点之间的间隔设置为2的乘方是一种很好的做法。如果断点间距不满足此条件,HDL Coder将发出警告。当断点间距为2的乘方时,可以用右移操作替换预查找步骤中的除法操作。
块上的所有端口都需要标量值。
HDL代码生成仅支持浮点数据输入,断点和金宝app对于3-d,4-d,和5-d查找表的输出。对于1-d和2-d查找表块,两个浮点和定点数据输入,断点,和输出被支持。金宝app
当您设置插值法来平
,块支撑金宝app一半
数据输入、断点和输出的数据类型。半数据类型不支持线性插值。金宝app
用HDL代码生成n-D查找表块定点
数据类型仅支持金宝app等间距的点
作为索引搜索方法。
金宝app仿真软件PLC编码器™对查找表块有限的支持。金宝app编码器不支持:金宝app
大于2的尺寸数
三次样条插值方法
使用以前的索引模式开始索引搜索
三次样条外推法
直接查找表(N-D)|Prelookup|插值使用Prelookup|动态查找表|金宝appSimulink.LookupTable
|金宝app仿真软件。断点
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。