使用预查找块计算插值的索引和分数
金宝appSimulink /查找表
HDL编码器/查找表
Prelookup块计算指定输入值的索引和区间分数u
与断点数据集相关。Prelookup块与插值使用Prelookup块。使用Prelookup块将得到的索引和分数值输入插值n-尺寸表。这两个模块具有分布式算法。当组合在一起时,它们执行与中的集成算法相同的操作一天的查找表块。然而,Prelookup和插值使用Prelookup块提供了更大的灵活性和更有效的模拟和代码生成一天的查找表块有关详细信息,请参阅效率的性能.
要使用Prelookup块,必须指定一组断点值。您可以选择是直接在对话框中指定断点值,还是通过将这些值提供给英国石油公司
通过设置输入端口源参数对话框
或输入端口
.通常,该断点数据集对应于使用预查找的插值块中的表数据的一个维度。Prelookup块为每个输入值生成一对输出u
通过计算:
小于或等于的断点集元素的索引u
并形成一个包含u
在0≤f < 1范围内的区间分数,表示归一化位置u
在范围内输入的索引和下一个索引值之间的断点间隔上
例如,如果断点数据集为[0 5 10 20 50 100]
和输入值u
为55,索引为4,分数值为0.1。索引和区间分数的标签如下所示k和f在Prelookup块图标上。索引值是从零开始的。
区间分数可以为负或大于1
对于超出范围的输入。看到外推法有关详细信息,请参见块参数。
Port_1
- - -输入信号,u
Prelookup块接受Simulink的任何数字数据类型的实值信号金宝app®金宝app支持,布尔值除外。Prelookup块支持信号和断点数据的定点数据类型。
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
|枚举
|公共汽车
英国石油公司
——断点数据Prelookup块接受Simulink支持的任何数值数据类型(布尔值除外)的实值信号作为断点数据。金宝app金宝app
数据类型:一半
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
|枚举
k
-包含输入的区间的索引,u
从零开始的索引,k,是一个实值整数,指定包含输入的区间,u
.
要启用该端口,请设置输出选择来指数和分数
或指数只
.
数据类型:int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|不动点
f
-表示输入归一化位置的分数,u
,在区间内,k分数,f,表示输入的规范化位置,u
,在间隔内k.
要启用该端口,请设置输出选择来指数和分数
.
数据类型:单
|双
|不动点
Port_2
-包含索引的总线,k分数,f输出指数,k,分数f,作为总线对象可以帮助简化模型。
要启用该端口,请设置输出选择来指数和分数作为总线
.
数据类型:公共汽车
规格
—选择如何输入断点数据明确的价值观
(默认)|甚至间距
|断点对象
如果将此参数设置为:
明确的价值观
,源和价值参数在对话框中可见。
甚至间距
,第一点,间距,数量的点参数在对话框中可见。
断点对象
,的名字参数在对话框中可见。
块参数:BreakpointsSpecification |
类型:特征向量 |
价值观:'明确的值' | '偶数间距' | '断点对象' |
默认值:“显式值” |
源
-指定断点数据的源对话框
(默认)|输入端口
如果你设置源致:
对话框
,下指定断点数据价值.
输入端口
,验证上游信号是否向英国石油公司
输入端口。每个断点数据集必须是包含两个或多个元素的严格单调递增向量。对于此选项,块从英国石油公司
输入端口。
要启用此参数,请设置规格来明确的价值观
.
块参数:BreakpointsDataSource |
类型:特征向量 |
价值观:'对话框' | '输入端口' |
默认值:“对话框” |
价值
—断点数据值(10:10:110)
(默认)|向量,其值严格单调递增,包含两个或多个元素显式指定断点数据。每个断点数据集必须是严格单调递增的向量,且包含两个或多个元素。控件上指定附加的断点属性数据类型窗格。
要打开“查找表编辑器”,单击编辑(见编辑查找表).
请注意
当您设置规格来明确的价值观
和源来输入端口
,验证上游信号是否向英国石油公司
输入端口。每个断点数据集必须是严格单调递增的向量,且包含两个或多个元素。属性的断点属性(包括数据类型)英国石油公司
输入端口。
要启用此参数,请设置规格来明确的价值观
和源来对话框
.
块参数:BreakpointsData |
类型:特征向量 |
价值观:包含两个或多个元素的严格单调递增值的向量 |
默认值:“[10:10:110]” |
第一点
-均匀间隔断点数据中的第一个点10
(默认)|实值标量
要启用此参数,请设置规格来甚至间距
.
块参数:断点第一点 |
类型:特征向量 |
价值观:实值标量 |
默认值:“十” |
间距
-等间距断点之间的间距10
(默认)|实值、积极的标量
要启用此参数,请设置规格来甚至间距
.
块参数:BreakpointsSpacing |
类型:特征向量 |
价值观:实值、积极的标量 |
默认值:“十” |
数量的点
-等间距点的数目11
(默认)|实值、积极的标量
要启用此参数,请设置规格来甚至间距
.
块参数:BreakpointsNumPoints |
类型:特征向量 |
价值观:实值、积极的标量 |
默认值:“11” |
的名字
-姓名金宝app仿真软件。断点
对象没有默认的
|金宝app仿真软件。断点
指定对象的名称金宝app仿真软件。断点
对象断点对象引用Simulink断点对象。如果金宝app金宝app仿真软件。断点
对象不存在,请单击“操作”按钮并选择创建. 新断点对象的相应参数将自动填充块信息。
要启用此参数,请设置规格来断点对象
.
块参数:BreakpointObject |
类型:特征向量 |
价值观:金宝app仿真软件。断点 对象 |
默认值:'' |
输出选择
—指定块输出的信号指数和分数
(默认)|指数和分数作为总线
|指数只
如果您希望块输出索引和区间分数,您可以指定块输出单个信号还是同时包含索引和分数信号的总线信号。
指数只
只输出索引,不输出分数。该选项的典型应用包括:
喂一个直接查询表(n-D)块,在间隔上没有插值
给选择端口的子表选择插值使用Prelookup块
执行非线性量化
指数和分数
输出索引和分数作为单独的信号。
指数和分数作为总线
输出包含索引和分数信号的总线信号。使用总线接收这些信号:
通过将这两个相关信号捆绑在一起,简化了模型
创建一个测试点DpResult
AUTOSAR 4.0库的结构
对于AUTOSAR 4.0库,避免在生成代码时创建额外的副本Prelookup和插值使用Prelookup块在单独的模型中
请注意
选择指数和分数作为总线
显示了输出参数数据类型窗格并设置输出参数继承:自动
.更改此默认值以指定用户定义的总线对象。有关定义总线对象的详细信息,请参见输出参数描述。
块参数:OutputSelection |
类型:特征向量 |
价值观:'Index and fraction' | 'Index and fraction as bus' | 'Index only' |
默认值:“指数和分数” |
索引搜索法
—查找断点数据的方法二进制搜索
(默认)|线性搜索
|等间距的点
每种搜索方法在不同的情况下都有速度优势:
对于间隔均匀的断点集(例如,10、20、30等),可以通过选择等间距的点
计算表索引。该算法仅使用一个集合的前两个断点来确定其余点的偏移量和间距。
对于间隔不均匀的断点集,请遵循以下指导原则:
如果的输入值u
时间步长之间的差异不明显,请选择线性搜索
具有使用以前的索引结果开始索引搜索产生最佳性能。
如果的输入值u
每个时间步跳一个或两个以上的表间隔,选择二进制搜索
产生最佳性能。
索引搜索方法的次优选择可能导致严重依赖查找表的模型性能变慢。
请注意
在以下情况下,生成的代码仅存储第一个断点、空格和断点数量:
断点数据不可调。
索引搜索方法为等间距的点
.
块参数:指数搜索法 |
类型:特征向量 |
价值观:“等间距的点” |“线性搜索” |“二进制搜索” |
默认值:“二进制搜索” |
使用以前的索引结果开始索引搜索
-使用在上一时间步中找到的索引开始搜索关
(默认)|在
的输入值u
相对于间隔大小,这个变化很慢,启用这个选项可以提高性能。否则,线性搜索和二元搜索方法会花费更长的时间,特别是对于大型断点集。
块参数:BeginIndexSearchUsingPreviousIndexResult |
类型:特征向量 |
价值观:“关闭” |“上” |
默认值:“关闭” |
外推法
—处理超出范围输入值的方法剪辑
(默认)|线性的
选项包括:
剪辑
块输入 | 块输出 |
---|---|
小于第一个断点 |
|
大于上一个断点 |
|
假设范围是(1 2 3)
然后选择此选项。如果u
是0.5
,索引为0
区间分数是0
.如果u
是3.5
,索引为1
区间分数是1
.
线性的
块输入 | 块输出 |
---|---|
小于第一个断点 |
|
大于上一个断点 |
|
假设范围是(1 2 3)
然后选择此选项。如果u
是0.5
,索引为0
区间分数是-0.5
.如果u
是3.5
,索引为1
区间分数是1.5
.
请注意
Prelookup块只在下列条件都为真时金宝app支持线性外推:
输入u
、断点数据和部分输出使用浮点数据类型。
索引使用内置的整数数据类型。
块参数:ExtrapMethod |
类型:特征向量 |
价值观:“剪辑”|“线性” |
默认值:“剪辑” |
对于大于或等于上限的输入,使用最后一个断点
-处理输入超过上限的方法关
(默认)|在
指定如何索引的输入值u
大于或等于最后一个断点的。索引值是基于零的。当input等于最后一个断点时,块输出如下所示。
复选框 | 块输出 |
---|---|
选择( |
|
清除( |
|
提示
当您选择对于大于或等于上限的输入,使用最后一个断点对于Prelookup块,还必须选择有效的索引输入可能到达最后一个索引为插值使用Prelookup它所连接的块。此操作允许块在访问断点和表数据集的最后元素时使用相同的索引约定。
此复选框仅在以下情况下可见:
只输出索引清除
外推法是剪辑
然而,当只输出索引选择和外推法是剪辑
,块的行为就像选中了这个复选框,即使它是不可见的。
块参数:UseLastBreakpoint |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
诊断超出范围的输入
-当输入超出范围时阻止动作没有一个
(默认)|警告
|错误
选项包括:
没有一个
-没有反应。
警告
-显示警告并继续模拟。
错误
-终止模拟并显示错误。
块参数:DiagnosticForOutOfRangeInput |
类型:特征向量 |
价值观:'无' | 'Warning' | 'Error' |
默认值:“没有” |
在生成的代码中删除对超出范围输入的保护
-删除检查超出范围的断点输入的代码关
(默认)|在
复选框 | 结果 | 什么时候使用 |
---|---|---|
|
生成的代码不包括用于检查超出范围的断点输入的条件语句。 当输入超出范围时,可能会导致生成代码的未定义行为。 |
代码效率 |
|
生成的代码包括用于检查超出范围的断点输入的条件语句。 |
对于安全性至关重要的应用程序 |
如果您的输入没有超出范围,您可以选择在生成的代码中删除对超出范围索引的保护复选框用于代码效率。默认情况下,此复选框被清除。对于安全要求严格的应用程序,不要选中此复选框。如果你想选择在生成的代码中删除对超出范围索引的保护复选框,首先检查您的模型输入是否在范围内。例如:
清除在生成的代码中删除对超出范围索引的保护复选框。
设置诊断超出范围的输入参数错误
.
在正常模式下模拟模型。
如果有超出范围的错误,修复它们在范围内,并再次运行模拟。
当模拟不再产生超出范围的输入错误时,选择在生成的代码中删除对超出范围索引的保护复选框。
请注意
当你选择在生成的代码中删除对超出范围索引的保护复选框,且输入超出范围,则生成的代码的行为未定义
根据您的应用程序,您可以运行以下Model Advisor检查,以验证此复选框的使用情况:
另外,要确定是否安全选择此复选框,如果有金宝app仿真软件设计校验™许可证,考虑使用检测块输入范围违规(金宝app仿真软件设计验证器)检查。
通过产品>嵌入式编码器>标识生成昂贵的超出范围检查代码的查找表块
通过产品>金宝app仿真软件检查>建模标准>- 331 - 178 - c /做检查吗>检查查找表块的使用情况
有关Model Advisor的更多信息,请参见运行模型Advisor检查.
块参数:RemoveProtectionInput |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
断点
—断点数据类型继承:与输入相同
(默认)|继承:从“断点数据”继承
|双
|单
|int8
|uint8
|int16
|uint16
|int32
|uint32
|int64
|uint64
|fixdt (16)
|fixdt (1 16 0)
|fixdt(1, 16日2 ^ 0,0)
|枚举:<类名>
|<数据类型表达式>
指定断点数据类型。您可以将其设置为:
继承数据类型的规则,例如,继承:与输入相同
内置数据类型的名称,例如,单
数据类型类的名称,例如,枚举数据类型类
计算结果为数据类型的表达式,例如,fixdt (1 16 0)
单击显示数据类型助手按钮来显示数据类型的助理,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型.
提示
指定与输入数据类型不同的断点数据类型u
这些情况:
使用比输入信号更小的类型存储断点数据所需的内存更低u
在两个服务器之间共享预先定标的断点数据Prelookup用于输入的具有不同数据类型的块u
在生成的代码中共享具有不同输入数据类型的块的自定义存储断点数据u
如果断点数据类型及其对应的输入数据类型具有定点数据类型,则为它们指定相同的斜率和偏差。
列举数据:
断点支持无序枚举数据。金宝app因此,线性搜索也是无序的,这提供了灵活性,但可能会影响性能。搜索从断点中的第一个元素开始。
如果使用以前的索引结果开始索引搜索复选框,则必须使用有序单调递增数据。这种排序可以提高性能。
对于枚举数据,外推法必须剪辑
.
因为分数是1
或0
中,选择输出选择>指数只.
属性的输出选择设置,如果仅使用索引插值使用Prelookup块,考虑使用子表选择维数参数。
以下是在这个块中使用枚举数据的限制:
该块不支持枚举数据的超出范围的输入。金宝app当指定枚举数据时,在断点数据集中包含整个枚举集。例如,使用the枚举
作用
当断点数据源设置为时替代进口港口
,枚举数据类型必须具有0
作为默认值。例如,对于此枚举类,默认值为GEAR1
必须0
.
< Simulink. classdef(Enumerati金宝appon) Gears枚举GEAR1(1), GEAR2(2), GEAR3(4), GEAR4(8), SPORTS(16), REVERSE(32), NEUTRAL(0)结束结束
要启用此参数,请设置断点数据源来对话框
.
请注意
当您设置源来输入端口
,块从英国石油公司
输入端口。
块参数:BreakpointDataTypeStr |
类型:特征向量 |
价值观:继承:继承from ` Breakpoint data ` | ` double ` | ` single ` | ` int8 ` | ` uint8 ` | ` int16 ` | ` uint16 ` | ` int32 ` | ` uint32 ` | ` int64 ` | ` uint64 ` | ` fixdt(1,16) ` | ` fixdt(1,16,0) ` | ` fixdt(1,16,2^0,0) ` | ` <数据类型表达式> ` |
默认值:“继承:与输入相同” |
指数
-索引数据类型uint32
(默认)|int8
|uint8
|int16
|uint16
|int32
|uint32
|int64
|uint64
|fixdt (16)
|<数据类型表达式>
指定可以索引断点数据集中所有元素的数据类型。您可以:
从列表中选择内置整数数据类型。
使用定点表示指定整数数据类型。
单击显示数据类型助手按钮来显示数据类型的助理,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型.
块参数:IndexDataTypeStr |
类型:特征向量 |
价值观: |
'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | '' |
默认值:“uint32” |
分数
-分数数据类型继承:通过内部规则继承
(默认)|双
|单
|fixdt (1 16 0)
|<数据类型表达式>
指定间隔分数的数据类型。您可以:
从列表中选择内置数据类型。
通过内部规则指定数据类型继承。
使用[斜率偏差]或仅二进制点缩放表示指定定点数据类型。
如果使用[Slope Bias]表示法,则缩放必须很简单,即斜率是1
偏差是0
.
如果使用仅二进制点表示,则固定的2次幂指数必须小于或等于零。
单击显示数据类型助手按钮来显示数据类型的助理,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型.
该参数仅在设置时显示输出选择上主要选项卡,指数和分数
.
块参数:FractionDataTypeStr |
类型:特征向量 |
价值观:“继承:通过内部规则继承”|“double”|“single”|“fixdt(1,16,0)”|“<数据类型表达式>” |
默认值:“继承:通过内部规则继承” |
输出
-输出数据类型继承:自动
(默认)|总线:<对象名称>
要输出虚拟总线,请使用继承:自动
设置。生成的虚拟总线包含两个元素,索引和分数信号。
要输出和指定非虚拟总线,请使用总线:<对象名称>
模板。取代<对象名称>
具有包含索引和分数信号的总线对象的名称。
总线对象必须包含两个元素。第一个元素对应索引信号,第二个元素对应分数信号。
索引和分数总线元素信号不能是总线信号。
总线元素的数据类型和复杂性必须满足应用于索引和分数信号(如果您设置)的相同约束输出选择来指数和分数
.
要使用索引和分数总线元素创建总线对象,请使用MATLAB®代码与此类似,自定义总线对象名称以及总线元素的名称和数据类型。
%总线对象:kfBuselem (1) = 金宝appSimulink.BusElement;elem(1)。Name =“指数”;elem(1)。数据类型=“int8”;elem (2) = 金宝appSimulink.BusElement;elem(2)。Name =“分数”;elem(2)。数据类型=“双人”;kfBus=Sim金宝appulink.Bus;kfBus.Elements=elems;清除初步的;
或者,您可以使用总线编辑器创建或修改要与总线一起使用的总线对象Prelookup块。
如果您将该模块的总线输出信号馈送至插值使用Prelookup块,选择需要索引和分数作为总线复选框。
请注意
使用定点工具数据类型覆盖选项可以使用新总线对象覆盖总线对象,这些新总线对象将定点数据类型替换为浮点数据类型。
与一起使用的重写总线对象Prelookup块可能会导致错误,因为块不接受总线中第一个元素的浮点数据类型。
如果遇到此问题,请使用修复按钮以重新定义原始总线对象并保护它不被重写。例如,假设您将总线对象的第一个元素定义为int32
.
myBus.Elements (1) .DataType
int32
单击修复按钮重新定义第一个总线元素:
myBus.Elements(1).数据类型=“fixdt(“int32”、“DataTypeOverride”,“关闭”)”
单击显示数据类型助手按钮来显示数据类型的助理,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型.
该参数仅在设置时显示输出选择上主要选项卡,指数和分数作为总线
.
块参数:OutputBusDataTypeStr |
类型:特征向量 |
价值观:总线:<对象名>' | '<数据类型表达式>' |
默认值:“继承:汽车” |
最小断点
—断点数据的最小值[]
(默认)|标量指定断点数据可以具有的最小值。默认值为[]
(不明)。
要启用此参数,请设置断点数据源来对话框
上主要选项卡。
块参数:BreakpointMin |
类型:特征向量 |
价值:标量 |
默认值:“[]” |
断点最大
—断点数据的最大值[]
(默认)|标量指定断点数据可以具有的最大值。默认值为[]
(不明)。
要启用此参数,请设置断点数据源来对话框
上主要选项卡。
块参数:BreakpointMax |
类型:特征向量 |
价值:标量 |
默认值:“[]” |
根据定点工具的更改锁定输出数据类型设置
-防止定点工具覆盖Output数据类型关
(默认)|在
选择此参数可防止定点工具覆盖输出在块上指定的数据类型。有关详细信息,请参阅使用锁定输出数据类型设置(定点设计师).
块参数:LockScale |
类型:特征向量 |
价值观:”从“|”“ |
默认值:“关闭” |
整数舍入模式
-定点操作舍入模式地板上
(默认)|天花板
|会聚性的
|最近的
|轮
|简单的
|零
指定定点操作的舍入模式。有关更多信息,请参见舍入(定点设计师).
块参数始终舍入到最近的可表示值。要控制块参数的舍入,请使用MATLAB舍入函数在掩码字段中输入表达式。
块参数:RndMeth |
类型:特征向量 |
价值观:'天花板' | '收敛' | '地板' | '最近' | 'Round' | '最简单' | '零' |
默认值:“地板” |
数据类型 |
|
直接引线 |
|
多维信号 |
|
适应信号 |
|
过零检测 |
|
用枚举值模拟Prelookup块。
假设你有一个Prelookup块,其中定义了这样一个枚举类:
< Simulink. classdef(Enumerati金宝appon) Gears枚举GEAR1(1), GEAR2(2), GEAR3(4), GEAR4(8), SPORTS(16), REVERSE(-1), NEUTRAL(0)结束结束
预查找块有以下设置:
断点数据值是枚举(齿轮)
.
输出选择是指数只
.
对于无序搜索,设置索引搜索法来线性搜索
和明确的使用以前的索引结果开始索引搜索复选框。
外推法是剪辑
.
使用Prelookup块的插值有这些设置:
尺寸数来1
.
表数据值是[5 10 20 40 80 5 0]
.
插值法是平
.
子表选择维数是1
.
模拟生成一个矢量[10 -5 80]
,对应于GEAR2
,反向
,体育
.
HDL Coder™提供了影响HDL实现和合成逻辑的额外配置选项。
此块具有单一的默认HDL体系结构。
ConstrainedOutputPipeline | 通过在设计中移动现有延迟而放置在输出处的寄存器数。分布式管道不会重新分发这些寄存器。默认值是 |
InputPipeline | 要插入生成代码的输入管道阶段的数目。分布式管道和受约束的输出管道可以移动这些寄存器。默认值是 |
OutputPipeline | 要插入生成代码的输出管道阶段的数量。分布式管道和受约束的输出管道可以移动这些寄存器。默认值是 |
块设置要求
断点数据:对于源中,选择对话框
.
规格:您可以选择明确的价值观
或甚至间距
.
索引搜索法:选择等间距的点
.
外推法:选择剪辑
.
诊断超出范围的输入:选择错误
.
对于大于或等于上限的输入,使用最后一个断点:选中此复选框。
断点:对于数据类型中,选择继承:与输入相同
.
整数舍入模式:选择零
,地板上
,或简单的
.
表数据类型和大小
将断点之间的间隔设置为2的乘方是一种很好的做法。如果断点间距不满足此条件,HDL Coder将发出警告。当断点间距为2的乘方时,可以用右移操作替换预查找步骤中的除法操作。
块上的所有端口都需要标量值。
编码器允许断点使用浮点数据。
金宝appSimulink PLC Coder有限地支持查找表块。金宝app编码器不支持:金宝app
大于2的维数
三次样条插值方法
使用以前的索引模式开始索引搜索
三次样条外推法
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。