近似n维函数
金宝appSimulink /查找表
HDL编码器/查找表
1-D、2-D和n-D查找表块评估n个变量中函数的采样表示
功能在哪里F可以实证。块通过查找或插值用块参数定义的值表,将输入映射到输出值。该块支持平面(常数)金宝app,线性(线性点斜),拉格朗日(线性拉格朗日),最近邻,三次样条,和Akima样条插值方法。您可以将这些方法应用于从1到30的任何维度的表。
在下面的代码块中,第一个输入标识第一个维度(行)断点,第二个输入标识第二个维度(列)断点,以此类推。
看到旋转或翻转后的端口位置有关不同区块方向的港口顺序的说明。
当数学和数据类型>使用优化的行主阵列布局算法设置配置参数后,二维和n-D查找表块的行为将从列主块更改为行主块。对于这些块,列主块和行主块算法可能在输出计算顺序上有所不同,可能导致数值略有不同。此功能需要金宝app®编码器™或嵌入式编码器®许可证。有关行主支持的更多信息,请参见金宝app代码生成矩阵和数组(金宝app仿真软件编码器).
这些块参数定义断点和表数据。
块参数 | 目的 |
---|---|
表维数 | 指定查找表的维度数。 |
断点 | 指定与查找表的每个维度相对应的断点向量。 |
表数据 | 定义相关联的输出值集。 |
提示
间隔均匀的断点可以使生成的代码无分割。有关更多信息,请参见fixpt_evenspace_cleanup
和确定有问题的定点操作(嵌入式编码).
N-D,1-D和2-D查找表块通过基于输入值查找或估计表值来生成输出。
块输入 | n-D查找表块行为 |
---|---|
匹配断点数据集中的索引值 | 在行、列和更高维度断点的交集处输出表值 |
与断点数据集中的索引值不匹配,但在范围内 | 属性插入适当的表值插值法你选择 |
与断点数据集中的索引值不匹配,并且超出范围 | 属性来推断输出值外推法你选择 |
你可以使用插值使用Prelookup用Prelookup块来执行1的等价操作一天的查找表块。这种块组合提供了更大的灵活性,可以为线性插值产生更有效的仿真性能。
当查找操作是不需要插值的数组访问时,使用直接查找表(n-D)块。例如,如果你有一个整数值k
你想要k
表的第Th个元素,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×1向量。
您可以创建多达三个断点数据输入端口。对于断点4到30,您只能通过相应的指定断点数据断点参数。
请注意
要以偶数间距规范格式指定断点,请设置断点规范来甚至间距
并使用断点第一点和间距参数。
要启用该端口,请设置:
数据规范来表和断点
.
断点规范来明确的价值观
.
断点1来输入端口
.
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|枚举
|固定点
bp2
-显式断点值根据断点规范参数,带有在运行时可调的信号。
如果你设置了断点规范来明确的价值观
,输入与每个表数据的每个维度相对应的断点集断点对于每个维度,将断点指定为值严格单调递增的1×n或n×1向量。
您可以创建多达三个断点数据输入端口。对于断点4到30,您只能通过相应的指定断点数据断点参数。
请注意
要指定间隔均匀的断点数据,请使用断点参数。您不能通过输入端口指定间隔均匀的断点数据。
要启用该端口,请设置:
数据规范来表和断点
.
断点规范来明确的价值观
.
断点2来输入端口
.
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|枚举
|固定点
bp3
-显式断点值根据断点规范参数,带有在运行时可调的信号。
如果你设置了断点规范来明确的价值观
,输入与每个表数据的每个维度相对应的断点集断点对于每个维度,将断点指定为值严格单调递增的1×n或n×1向量。
您可以创建多达三个断点数据输入端口。对于断点4到30,您只能通过相应的指定断点数据断点参数。
请注意
要指定间隔均匀的断点数据,请使用断点参数。您不能通过输入端口指定间隔均匀的断点数据。
要启用该端口,请设置:
数据规范来表和断点
.
断点规范来明确的价值观
.
断点3来输入端口
.
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|枚举
|固定点
Port_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必须与第二个断点长度匹配,以此类推。
块参数:numpualoftabledimensions. |
类型:特征向量 |
价值观:'1' | '2' | '3' | '4' |…| 30 |
违约:“3” |
数据规范
-表和断点规范的方法表和断点
(默认)|查找表对象
从列表中选择:
表和断点
—指定表数据和断点。选择此选项将启用以下参数:
表数据
断点规范
断点1
断点2
断点3
编辑表和断点
使用输入端口指定表和断点,请参阅来源参数。
查找表对象
- 使用现有查找表(金宝app仿真软件。LookupTable
)对象。选择此选项启用的名字场和编辑表和断点按钮。
块参数:DataSpecification |
类型:特征向量 |
价值观:'查找表对象' |
违约:表和断点 |
的名字
—查找表对象的名称[]
(默认)|金宝app仿真软件。LookupTable
对象输入查找表的名称(金宝app仿真软件。LookupTable
)对象。如果一个金宝app仿真软件。LookupTable
对象不存在时,单击操作按钮选择创建.新查找表对象的相应参数将自动使用块信息填充。
要启用该参数,请设置数据规范来查找表对象
.
块参数:可查找对象 |
类型:特征向量 |
价值观:的名字金宝app仿真软件。LookupTable 对象 |
违约:'' |
断点规范
-断点规范的方法明确的价值观
(默认)|甚至间距
指定是将数据作为显式断点输入,还是作为生成均匀间隔断点的参数输入。
若要显式指定断点数据,请将该参数设置为明确的价值观
的旁边的文本框中输入断点数据断点参数。
要指定生成间隔均匀的断点的参数,请将该参数设置为甚至间距
的值第一点和间距断点数据的每个维度的参数。该块计算从表数据生成的点数。
要启用该参数,请设置数据规范来表和断点
.
当此参数设置为时甚至间距
,您只能通过对话框指定断点数据。
块参数:BreakpointsSpecification |
类型:特征向量 |
价值观:'显式值' | '偶数间距' |
违约:“显式值” |
来源
-表和断点数据的来源对话框
(默认)|输入端口
指定表和断点数据的来源为:
对话框
- 指定表格或断点数据价值参数。
输入端口
—通过相关的输入端口指定表或断点数据。
您可以创建多达三个断点数据输入端口。对于断点4到30,您只能通过相应的指定断点数据断点参数。
请注意
由于运行时检查,使用输入端口指定表或断点数据可能会对模拟的块性能产生负面影响。
要启用该参数,请设置数据规范来表和断点
.
启用关联的价值,将此参数设置为对话框
.
如果要启用相关的输入端口,设置为输入端口
.
将该参数设置为输入端口
禁用价值字段并隐藏相应的参数数据类型选项卡。
将该参数设置为输入端口
对于任何一个参数禁用编辑表和断点按钮。
块参数:TableSource |BreakpointsForDimension1Source |BreakpointsForDimension2Source |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-by-n或n×1向量属性的值,显式指定断点数据或以等间距指定断点断点规范参数。
如果你设置了断点规范来明确的价值观
,输入与每个表数据的每个维度相对应的断点集断点关联字段中的行价值字段。对于每个维度,将断点指定为1 × n或n × 1向量,其值严格单调递增。
如果你设置了断点规范来甚至间距
,输入参数第一点和间距在每一个断点行以在相应维度中生成等距断点。表格数据决定等距点的数量。
要启用此参数,请设置:
数据规范来表和断点
.
源表数据:来对话框
.
当断点规范参数设置为甚至间距
,您只能通过对话框指定断点数据。
块参数:断点坐标1 |断点坐标2 |…|断点坐标30| |
类型:特征向量 |
价值观:单调增加值的1-by-n或n×1向量 |
违约:'[10,22,31]' |
第一点
-均匀间隔断点数据中的第一个点1
(默认)|标量将均匀间隔的断点数据中的第一个点指定为实值有限标量。当断点规范被设置为甚至间距
.
要启用该参数,请设置数据规范来表和断点
,断点规范来甚至间距
.
块参数:BreakpointsForDimension1FirstPoint |断点fordimension 2firstpoint |…| BreakpointsForDimension30FirstPoint | |
类型:特征向量 |
价值观:实值,有限的,标量 |
违约:' 1 ' |
间距
-等间距断点之间的间距1
(默认)|标量在等间距断点数据中指定点之间的间距。
要启用该参数,请设置数据规范来表和断点
,断点规范来甚至间距
.
块参数:BreakpointsForDimension1Spacing |断点fordimension 2spacing |…| BreakpointsForDimension30Spacing | |
类型:特征向量 |
价值观:积极,真实值,有限,标量 |
违约:' 1 ' |
编辑表和断点
-打开“查找表编辑器”对话框单击此按钮以打开查找表编辑器。有关更多信息,请参见编辑查找表在Simuli金宝appnk文档中。
对于查找表对象,单击此按钮可以编辑对象并保存对象的新值。
插值法
- 断点值之间插值的方法线性点斜式
(默认)|平
|最近的
|线性拉格朗日
|三次样条
|Akima花键
当输入落在断点值之间时,块使用相邻的断点插入输出值。有关插值方法的更多信息,请参见插值方法.
如果您选择三次样条
,块只支持标量信号。金宝app其他插值方法支持非标量信号。金宝app
如果您选择Akima花键
,推断方法只能是Akima花键
.
当设置为修改的Akima插值方法时,该块不支持:金宝app
行主阵列布局和算法优化的行主阵列布局
缩放的双精度和定点数据类型
金宝app仿真软件。LookupTable
对象
当配置参数代码生成>接口>金宝app支持非谓语形式的数字复选框被选中
当设置为修改后的Akima插值方法时,已知当下列条件为真时,该块运行得更慢:
基于代码生成的仿真目标,如加速模式、快速加速模式、保护模型等。
为大断点和数据表大小生成的代码。例如,表大小为629x1601。
块参数:InterpMethod |
类型:特征向量 |
价值观:'线性点斜率'|'平'|'最近'|'线性拉格朗日'|'立方样条'|'akima样条曲序' |
违约:“线性点斜式” |
外推法
-处理超出断点数据集范围的输入值的方法线性的
(默认)|剪辑
|三次样条
|Akima花键
选择剪辑
,线性的
,或三次样条
.看到外推方法为更多的信息。
如果外推法是线性的
时,根据所选的线性插值方法计算外推值。例如,如果插值法是线性拉格朗日法,外推法继承线性拉格朗日方程来计算外推值。
选择三次样条
对于外推法,您还必须选择三次样条
对于插值法.
选择Akima花键
对于外推法,您还必须选择Akima花键
对于插值法.
块参数:ExtrapMethod |
类型:特征向量 |
价值观:'Linear' | 'Clip' | 'Cubic spline' | 'Akima spline' |
违约:“线性” |
索引搜索法
-计算表索引的方法等间距的点
(默认)|线性搜索
|二分查找
选择等间距的点
,线性搜索
,或二分查找
.每个搜索方法在不同情况下具有速度优势:
对于均匀间隔的断点组(例如,10,20,30等),通过选择来实现最佳速度等间距的点
计算表索引。
该算法仅使用一个集合的前两个断点来确定其余点的偏移量和间距。
请注意
设置索引搜索法来等间距的点
当使用金宝app仿真软件。LookupTable
对象来指定表数据和断点规范参考参数金宝app仿真软件。LookupTable
对象设置为甚至间距
.
对于间隔不均匀的断点集,请遵循以下指导原则:
如果输入信号在时间步长之间变化不大,请选择线性搜索
与使用以前的索引结果开始索引搜索产生最佳性能。
如果输入信号每个时间步跳超过一个或两个表间隔,选择二分查找
产生最佳性能。
索引搜索方法的次优选择可能导致严重依赖查找表的模型性能变慢。
请注意
在以下情况下,生成的代码仅存储第一个断点、空格和断点数量:
断点数据不可调谐。
索引搜索方法为等间距的点
.
块参数:IndexSearchMethod |
类型:特征向量 |
价值观:' | '等间距点' | '线性搜索' |
违约:“二进制搜索” |
使用以前的索引结果开始索引搜索
-开始使用上一时间步中的索引从
(默认)|在
当您希望块使用在上一个时间步骤中找到的索引开始搜索时,请选中此复选框。对于相对于间隔大小变化缓慢的输入,启用该选项可以提高性能。否则,线性搜索和二元搜索方法会花费更长的时间,特别是对于大型断点集。
要启用该参数,请设置索引搜索法来线性搜索
或二分查找
.
块参数:BeginIndexSearchUsing PreviousIndexResult |
类型:特征向量 |
价值观:”从“|”“ |
违约:“关闭” |
诊断超出范围的输入
-当输入超出范围时阻止动作没有一个
(默认)|警告
|错误
指定当输入超出范围时是否产生警告或错误。选项包括:
没有一个
- 没有产生回应。
警告
- 显示警告并继续模拟。
错误
—终止模拟并显示错误。
块参数:DiagnosticForOutOfRangeInput |
类型:特征向量 |
价值观:'无' | 'Warning' | 'Error' |
违约:“没有” |
尽可能采用全精度定点算法
-更精确的定点表查找从
(默认)|在
使用此复选框可在可能时为线性插值查找启用全精度定点算法查找。对于硬件效率高的定点四舍五入模式,该算法通常能达到更好的精度。
要启用此参数,请设置:
表维数来1
.
插值法来线性点斜式
.
外推法来剪辑
.
块参数:ApplyFullPrecisionForLinearInterpolation |
类型:特征向量 |
价值观:”从“|”“ |
违约:“关闭” |
在上一个断点或断点以上的输入使用上一个表值
-计算在上一个断点或以上的输入输出的方法从
(默认)|在
使用此复选框,指定块用于寻址断点集的最后一个元素及其相应的表值的索引约定。如果输入等于或大于断点数据的最后一个元素,则此复选框是相关的。由于舍入,选择和清除此复选框可能会导致模拟和代码生成之间最后一个断点的结果不同。
复选框 | 块使用的索引 | 分数间隔 |
---|---|---|
挑选出来的 | 上断点数据的最后一个元素表和断点选项卡 | 0 |
清除 | 上的断点数据的倒数第二个元素表和断点选项卡 | 1 |
给定一个输入u在断点设置的范围内英国石油公司,区间分数f,在0°范围内f<1,计算如下所示。
假设断点集为(1 4 5)
和输入u是5.5
。如果选中此复选框,则索引是最后一个元素的索引(5
)区间分数为0。如果清除此复选框,则索引是倒数第二个元素的索引(4
),区间分数为1。
要启用此参数,请设置:
插值法来线性的
.
外推法来剪辑
.
块参数:UseLastTableValue |
类型:特征向量 |
价值观:”从“|”“ |
违约:“关闭” |
所有输入数据使用一个输入端口
—只能使用一个输入端口从
(默认)|在
选中此复选框可仅使用一个期望信号为n
n维表的宽元素。这个选项对于消除带有许多查找表的框图中的行杂乱很有用。
请注意
选中此复选框时,一个带有标签的输入端口u
出现在街区上。
块参数:useyinputportforallinputdata. |
类型:特征向量 |
价值观:”从“|”“ |
违约:“关闭” |
在生成的代码中删除对超出范围输入的保护
-删除检查超出范围的输入值的代码从
(默认)|在
指定是否包含检查超出范围的输入值的代码。
复选框 | 结果 | 什么时候使用 |
---|---|---|
|
生成的代码不包括用于检查超出范围的断点输入的条件语句。 当输入超出范围时,可能会导致生成代码的未定义行为。 |
为了提高代码效率 |
|
生成的代码包括条件语句,用于检查超出范围的输入。 |
用于安全关键应用 |
如果您的输入未超出范围,则可以选择在生成的代码中删除对超出范围索引的保护复选框用于代码效率。默认情况下,此复选框被清除。对于安全要求严格的应用程序,不要选中此复选框。如果你想选择在生成的代码中删除对超出范围索引的保护复选框,首先检查您的模型输入是否在范围内。例如:
清除在生成的代码中删除对超出范围索引的保护复选框。
设置诊断超出范围的输入参数错误
.
在正常模式下模拟模型。
如果有超出范围的错误,修复它们在范围内,并再次运行模拟。
当模拟不再产生超出范围的输入错误时,选择在生成的代码中删除对超出范围索引的保护复选框。
请注意
当你选择在生成的代码中删除对超出范围索引的保护复选框,并且输入超出范围,则生成的代码的行为未定义。
根据您的应用程序,您可以运行以下模型顾问检查以验证此复选框的使用情况:
通过产品>嵌入式编码器>标识生成昂贵的超出范围检查代码的查找表块
通过产品>金宝app仿真软件检查>建模标准>- 331 - 178 - c /做检查吗>检查查找表块的使用情况
有关Model Advisor的更多信息,请参见运行模型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仿真软件。参数
它在生成代码时的值比表数据的维小1。有关更多信息,请参见生成的代码中的可调表大小.
要启用该参数,请选择金宝app在代码生成中支持可调表大小.在生成的代码中调优此参数时,提供新的表数据和断点以及调优的参数值。
块参数:MaximumIndicesForEachDimension |
类型:特征向量 |
价值观:标量或正整数值的矢量 |
违约:“[]” |
表数据
—表数据的数据类型继承:与输出相同
(默认)|双
|单
|一半
|int8
|uint8
|int16
|uint16
|int32
|uint32
|int64
|uint64
|fixdt (16)
|fixdt (1 16 0)
|fixdt(1, 16日2 ^ 0,0)
|<数据类型>表达
指定表数据类型。你可以设置为:
继承数据类型的规则,例如,继承:与输出相同
内置数据类型的名称,例如,单
数据类型对象的名称,例如金宝app仿真软件。NumericType
对象
计算结果为数据类型的表达式,例如,fixdt (1 16 0)
单击显示数据类型助手按钮来显示数据类型的助理,可帮助您设置数据类型属性。有关详细信息,请参阅使用数据类型助手指定数据类型.
提示
在这些情况下,指定与输出数据类型不同的表数据类型:
存储使用比输出信号更小类型的表数据所需的内存更低
在两者之间共享预伸缩表数据一天的查找表具有不同输出数据类型的块
在生成的代码中共享具有不同输出数据类型的块的自定义存储表数据
要启用该参数,请设置表数据从表和断点标签到对话框
.
块参数:TableDataTypeStr |
类型:特征向量 |
价值观:'继承:继承'table data''|'继承:与输出相同'|'双'|'单人'|'半'|'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仿真软件。NumericType
对象
计算结果为数据类型的表达式,例如,fixdt (1 16 0)
提示
断点支持无序枚举数据。因金宝app此,线性搜索也是无序的,这提供了灵活性,但会影响性能。搜索从断点中的第一个元素开始。
如果使用以前的索引结果开始索引搜索复选框,则必须使用有序单调递增数据。这种排序可以提高性能。
对于枚举数据,外推法必须剪辑
.
该块不支持枚举数据的超出范围的输入。金宝app当指定枚举数据时,在断点数据集中包含整个枚举集。例如,使用the枚举
函数。
这是在这个块中使用枚举数据的一个限制:
该块不支持枚举数据的超出范围的输入。金宝app当指定枚举数据时,在断点数据集中包含整个枚举集。例如,使用the枚举
函数。
单击显示数据类型助手按钮来显示数据类型的助理,可帮助您设置数据类型属性。有关详细信息,请参阅使用数据类型助手指定数据类型.
提示
为这些情况指定与相应输入数据类型不同的断点数据类型:
使用比输入信号更小的类型存储断点数据所需的内存更低
在两者之间共享预先设定的断点数据一天的查找表块具有不同的输入数据类型
在生成的代码中共享具有不同输入数据类型的块的自定义存储断点数据
如果其中任何一个具有固定点数据类型,则指定断点数据类型的相同斜率和偏置及其相应的输入数据类型。
要启用该参数,需要设置相应的参数断点参数的表和断点标签到对话框
.
块参数:breakpointsfordimension 2datattypestr |…| BreakpointsForDimension30DataTypeStr |
类型:特征向量 |
价值观:'继承:与相同的输入相同'|'继承:继承'断点数据''|'双'|'单人'|'半'|'int8'|'uint8'|'int16'|'UINT16'|'int32'| 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)'|'' |
违约:“继承:与相应的输入相同” |
断点最小
—断点数据的最小值[]
|标量
指定一组断点数据可以具有的最小值。默认值为[]
(不明)。
块参数:BreakpointsForDimension1Min |…| BreakpointsForDimension30Min |
类型:特征向量 |
价值观:标量 |
违约:“[]” |
断点最大
—断点数据的最大值[]
|标量
指定一组断点数据可以具有的最大值。默认值为[]
(不明)。
块参数:BreakpointsForDimension1Max |…| BreakpointsForDimension30Max |
类型:特征向量 |
价值观:标量 |
违约:“[]” |
分数
-分数数据类型继承:通过内部规则继承
(默认)|双
|单
|fixdt (1 16 0)
|<数据类型>表达
指定分数数据类型。你可以设置为:
继承数据类型的规则,例如,继承:通过内部规则继承
内置数据类型的名称,例如,单
数据类型对象的名称,例如金宝app仿真软件。NumericType
对象
计算结果为数据类型的表达式,例如,fixdt (1 16 0)
单击显示数据类型助手按钮来显示数据类型的助理,可帮助您设置数据类型属性。有关详细信息,请参阅使用数据类型助手指定数据类型.
块参数:FractionDataTypeStr |
类型:特征向量 |
价值观:“继承:通过内部规则继承”|“double”|“single”|“fixdt(1,16,0)”|“<数据类型表达式>” |
违约:'继承:通过内部规则继承' |
中间结果
—中间结果数据类型继承:与输出相同
(默认)|继承:通过内部规则继承
|双
|单
|int8
|uint8
|int16
|uint16
|int32
|uint32
|int64
|uint64
|fixdt (1 16 0)
|fixdt(1, 16日2 ^ 0,0)
|<数据类型>表达
指定中间结果数据类型。可以将其设置为:
继承数据类型的规则,例如,继承:与输出相同
内置数据类型的名称,例如,单
数据类型对象的名称,例如金宝app仿真软件。NumericType
对象
计算结果为数据类型的表达式,例如,fixdt (1 16 0)
单击显示数据类型助手按钮来显示数据类型的助理,可帮助您设置数据类型属性。有关详细信息,请参阅使用数据类型助手指定数据类型.
提示
使用此参数可以指定与表数据或输出数据相比,内部计算的精度更高(或更低)。
块参数:IntermediateResultsDataTypeStr |
类型:特征向量 |
价值观:“继承:通过内部规则继承”|“继承:与输出相同”|“double”|“single”|“int8”|“uint8”|“int16”|“uint16”|“uint32”|“uint32”|“int64”|“uint64”|“uint64”|“fixtt(1,16,0)”| |
违约:“继承:与输出相同” |
输出
-输出数据类型继承:与输入相同
(默认)|双
|单
|一半
|int8
|uint8
|int16
|uint16
|int32
|uint32
|int64
|uint64
|fixdt (16)
|fixdt (1 16 0)
|fixdt(1, 16日2 ^ 0,0)
|<数据类型>表达
指定输出数据类型。你可以设置为:
继承数据类型的规则,例如,继承:通过反向传播继承
内置数据类型的名称,例如,单
数据类型对象的名称,例如金宝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或外部模式)的结果。
块参数:OutMax |
类型:特征向量 |
价值观:标量 |
违约:“[]” |
内部规则优先级
-中间计算的内部规则速度
(默认)|精确
指定中间计算的内部规则。选择速度
为更快的计算。如果您这样做,可能会发生精度损失,通常高达2位。
块参数:InternalRulePriority |
类型:特征向量 |
价值观:'速度'|'精确' |
违约:“速度” |
要求所有输入具有相同的数据类型
-要求所有输入具有相同的数据类型在
(默认)|从
选择此选项可要求所有输入具有相同的数据类型。
块参数:InputSameDT |
类型:特征向量 |
价值观:”从“|”“ |
违约:“上” |
根据定点工具的更改锁定数据类型设置
—防止定点工具覆盖数据类型从
(默认)|在
选择此参数可防止定点工具覆盖在此块上指定的数据类型。有关更多信息,请参见锁定输出数据类型设置(定点设计师).
块参数:lockscale. |
类型:特征向量 |
价值观:”从“|”“ |
违约:“关闭” |
整数舍入模式
-定点操作舍入模式简单的
(默认)|天花板
|收敛
|地板
|最近的
|轮
|零
为模拟或执行由模型生成的代码期间发生的定点查找表计算指定舍入模式。有关更多信息,请参见四舍五入(定点设计师).
此选项不影响块参数值的舍入。金宝appSimulink将这些值舍入到最接近的可表示整数值。要控制块参数的舍入,请使用MATLAB输入表达式®将函数舍入到“块”对话框的编辑字段中。
块参数:RndMeth |
类型:特征向量 |
价值观:'天花板' | '收敛' | '地板' | '最近' | 'Round' | '最简单' | '零' |
违约:“简单” |
整数溢出饱和
-溢出动作的方法从
(默认)|在
行动 | 采取这一行动的理由 | 溢出会发生什么 | 例子 |
---|---|---|---|
选择此复选框( |
您的模型可能存在溢出,您希望在生成的代码中提供显式的饱和保护。 |
溢出会饱和到数据类型所能表示的最小值或最大值。 |
与有符号8位整数相关的溢出可以饱和到-128或127。 |
不选择此复选框( |
您希望优化生成代码的效率。 您希望避免过度指定块如何处理超出范围的信号。有关更多信息,请参见排除信号范围误差. |
溢出包裹到可通过数据类型表示的适当值。 |
数字130不适用于带符号的8位整数,它将自动换行为-126。 |
提示
如果将模型另存为R2009a或更早版本,则此复选框设置无效,并且不会显示饱和代码。此行为保留向后兼容性。
当您选中此复选框时,饱和度将应用于块上的每个内部操作,而不仅仅是输出或结果。一般来说,代码生成过程可以在不可能溢出时进行检测。在这种情况下,代码生成器不会产生饱和代码。
块参数:SaturateOnIntegerOverflow |
类型:特征向量 |
价值观:”从“|”“ |
违约:“关闭” |
数据类型 |
|
直接引线 |
|
多维信号 |
|
适应信号 |
|
讨论二阶导数过零检测 |
|
假设您有一个查找表,并希望在生成的代码中使大小可调。当你使用金宝app仿真软件。LookupTable
和金宝app仿真软件。断点
对象配置查找表数据以在生成的代码中校准,使用金宝appSupportTunableSize
要启用可调表大小的对象的属性。当您不使用这些类时,使用金宝app在代码生成中支持可调表大小参数在一个一天的查找表块以启用可调大小的表。
假设:
你定义一个金宝app仿真软件。参数
模型预载功能中的结构:
p=模拟金宝app链接参数;p、 Value.MaxIdx=[2];p、 Value.BP1=[1 2 3];p、 Value.BP2=[1 4 16];p、 表=[4 5 6;16 19 20;10 18 23];p、 数据类型='Bus:slLookupTable';p、 CoderInfo.StorageClass='ExportedGlobal';%从MATLAB结构Simulink.bus.createObject(p.Value)创建总线对象slBus1;slLookupTable=slBus1;slLookupTable.Elements(1).DataType='uint32';
这些块参数适用于n-D查找表块。
参数 | 价值 |
---|---|
表维数 | 2 |
表数据 | p、 桌子 |
断点1 | p.BP1 |
断点2 | p.BP2 |
金宝app在代码生成中支持可调表大小 | 在 |
每个维度的最大指标 | p.MaxIdx |
生成的
头文件包含一个类似这样的类型定义。模型
_types.h
typedef结构{uint32_T MaxIdx[2];real_T BP1[3];real_T BP2[3];real_T Table[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 Lookup Table'合并:* import: ' /In1' */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);}
突出显示的代码行指定查找表的可调表大小。您可以更改查找表和断点数据的大小和值,而无需重新生成或重新编译代码。
假设你有一个查询表,上面定义了一个枚举类:
ClassDef(枚举)齿轮
N-D查找块具有以下设置:
数量的维度来1
.
表数据价值是[5 10 20 40 80 5 0]
.
断点1价值是枚举(齿轮)
.
插值方法为Flat。
对于无序搜索,设置索引搜索法来线性搜索
和明确的使用以前的索引结果开始索引搜索复选框。
模拟生成一个矢量(80 5)
,对应于齿轮2
,反向
,运动的
.
HDL Coder™提供了影响HDL实现和合成逻辑的额外配置选项。
这个块有一个单独的、默认的HDL架构。
一般 | |
---|---|
ConstrainedOutputPipeline | 通过在设计中移动现有延迟而放置在输出处的寄存器数。分布式管道不会重新分发这些寄存器。默认为 |
输入管道 | 要插入生成代码的输入管道阶段的数目。分布式管道和受约束的输出管道可以移动这些寄存器。默认为 |
MapToRAM | 将查找表(lut)映射到RAM。默认为 |
OutputPipeline | 输出流水线阶段以生成的代码插入。分布式管道和受约束的输出管道可以移动这些寄存器。默认为 |
请注意
块支撑金宝app单
,双
,一半
用于生成HDL代码的数据类型。
本地浮点 | |
---|---|
Handledentenals. | 指定是否希望HDL编码器插入额外的逻辑来处理设计中的正常数字。非正数是指大小小于最小浮点数的数,可以在尾数中不带前导零表示。默认为 |
LatencyStrategy | 指定是否将块映射到您的设计中 |
MantissaMultiplyStrategy | 指定如何在代码生成期间实现尾数乘法操作。通过不同的设置,可以控制目标FPGA设备上DSP的使用。默认为 |
PrecomputeCoefficients | 若要启用此属性,请设置插值法来 当启用此属性时,根据表数据和断点静态地预先计算斜率和偏差系数。此设置减少了在运行时为计算系数而执行的除法运算的数量。它还减少了所执行的浮点加法和乘法操作的总数。 启用此属性可减少延迟,并节省所需的查询表资源的区域数量。但是,这个属性会对浮点运算重新排序,这可能会导致很小的数值差异。您可以在生成的验证模型中观察到这些数值差异。 |
AreaOptimization | 对于4-D和5-D LUT,HDL代码生成支持完全并行和串行实现。若要启用此属性,金宝app请对4-D和5-D LUT使用线性插值方法。当您将此属性设置为 |
此块支持复杂信号的代码金宝app生成。
块设置 | HDL编码器支持金宝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代码生成仅支持浮点数据输入、断点和金宝app3-D、4-D和5-D查询表的输出。对于1-D和2-D Lookup Table块,支持浮点和定点数据输入、断点和输出。金宝app
当你设置插值法来平
,块支撑金宝app一半
数据输入、断点和输出的数据类型。半数据类型不支持线性插值。金宝app
用HDL代码生成n-D查找表块定点
数据类型仅支持金宝app等间距的点
作为索引搜索方法。
金宝app仿真软件PLC编码器™对查找表块的支持有限。金宝app编码器不支持:金宝app
大于2的尺寸数
三次样条插值方法
使用以前的索引模式开始索引搜索
三次样条外推法
直接查找表(n-D)|Prelookup|插值使用Prelookup|动态查找表|金宝app仿真软件。LookupTable
|金宝app仿真软件。断点
다음MATLAB명령에해당하는링크를클릭했습니다。
명령을실행하려면MATLAB명령창에입력하십시오。웹브라우저는MATLAB명령을지원하지않습니다。
您还可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区站点不适合您所在位置的访问。