仿真软件。LookupTable类
包:动态仿真模块
超类:
存储和共享查找表和断点数据,配置ASAP2和AUTOSAR代码生成的数据
描述
一个对象仿真软件。LookupTable
类存储查找表和断点数据。可以在查找表块中使用该数据,例如一天的查找表块。通过该对象,您可以为表和断点集指定数据类型和代码生成设置。
当将所有表和断点集数据存储在单个仿真软件。LookupTable
对象,则所有数据都出现在生成的代码中的单个结构中。要配置STD_AXIS代码生成以进行校准,请使用此技术。
要在多个查找表之间共享断点集(例如COM_AXIS代码生成),请使用仿真软件。断点
对象Prelookup块。使用仿真软件。LookupTable
对象插值使用Prelookup块。然后,配置查找表对象以引用断点对象。有关更多信息,请参见包用于查找表的共享断点和表数据.
的子类仿真软件。LookupTable
并从这个基类继承,在类定义文件的第一行键入此语法,其中myLookuptable是您的新类的名称:
classdef myLookuptable < Simulink。LookupTable
有关子类化的示例,请参见定义数据类.
如果您向子类添加属性,您可以通过在MATLAB中显示子类对象来查看它们®命令行。在属性对话框中,这些属性显示在一个新选项卡中。
建设
LUTObj =仿真软件。LookupTable
返回一个仿真软件。LookupTable
对象LUTObj
使用默认属性值。
创建一个仿真软件。LookupTable
对象,使用模型资源管理器,使用按钮在工具栏上。对象的默认名称为对象
.
属性对话框
设置断点规范来明确的价值观
(默认)显示属性对话框的此视图。
对话框的底部包含表和断点数据值。有关此表格区域的更多信息,请参见使用查阅表电子表格编辑查阅表数据.该表的内容等同于价值属性时可见断点规范属性设置为甚至间距
或参考
.
表和断点
- 表维数
-
查找表的维度数。指定一个到的整数值
30.
(包容)。例如,要表示三维查找表,请指定整数3.
. - ,断点规范
-
断点集信息的源,指定为
明确的价值观
(默认),参考
,或甚至间距
.中存储所有表和断点集数据
仿真软件。LookupTable
对象,设置断点规范来明确的价值观
.的
仿真软件。LookupTable
对象作为单个结构变量出现在生成的代码中。将表数据存储在
仿真软件。LookupTable
对象,并将断点集数据存储在中仿真软件。断点
对象,设置断点规范来参考
.的
仿真软件。LookupTable
对象作为包含表数据的单独数组变量出现在生成的代码中。每一个仿真软件。断点
对象显示为包含断点集数据的单独数组或结构变量。中存储表数据和间隔均匀的断点
仿真软件。LookupTable
对象,设置断点规范来甚至间距
.使用第一点而且间距参数来生成一组均匀间隔的断点。
请注意
当断点规范被设置为
明确的价值观
或甚至间距
,可以在查找表对象生成的结构中更改可调大小、断点和表项的顺序。 - 表格
-
表数据的信息。你可以配置这些特征:
- 价值
-
表数据。指定至少具有两个元素的数值向量或多维数组。
的价值时,对话框底部可见的表格界面的内容与表数据相同断点规范属性设置为
明确的价值观
.有关此表格区域的更多信息,请参见使用查阅表电子表格编辑查阅表数据.请注意
此属性仅在断点规范被设置为
甚至间距
或参考
.还可以使用带有数学运算符的表达式,例如
sin (1:0.5:30)
只要表达式返回数值向量或多维数组。当你点击应用或好吧,对象执行表达式并使用结果设置此属性的值。当您设置数据类型来
汽车
,设置价值,使用类型化表达式,例如单((1 2 3))
或使用fi
(定点设计师)构造函数来嵌入fi
对象。当指定具有三个或更多维度的表数据时,价值控件的调用将数据显示为表达式
重塑
函数。类的第一个参数可编辑数据中的值重塑
调用,该函数包含序列化向量中的所有值。在沿维度添加或删除元素时,还必须更正表示修改后维度长度的参数。您可以在查找表块中使用更直观的界面来编辑这些数据。看到从MATLAB中导入查找表数据.
- 数据类型
-
表数据的数据类型。默认设置为
汽车
,这意味着表数据从中指定的值获取数据类型价值.如果使用无类型表达式,例如(1 2 3)
设置价值,表数据使用数据类型双
.如果指定类型化表达式,例如单((1 2 3))
或者一个fi
对象,则表数据使用表达式或对象指定的数据类型。还支持枚举数据类型。可以显式指定整数数据类型、半数据类型、浮点数据类型、定点数据类型或数据类型表达式,例如的名称
仿真软件。AliasType
对象。有关Simulink中数据类型的更多信息®,请参阅Simulink支持的数据类型.确定如何控制表和断点数据的数据类型
仿真软件。LookupTable
而且仿真软件。断点
对象,看到查找表对象的控件数据类型(仿真软件编码器). - 维
-
查找表数据的维度长度。
若要使用符号维度,请指定字符向量。看到在生成的代码中实现数组大小的符号尺寸(嵌入式编码).
- 最小值
-
表数据中元素的最小值。缺省值为空,
[]
.您可以指定一个数值,真实的值。有关Simulink如何使用此属性的更多信息,请参见指定块参数的最小值和最大值.
- 马克斯
-
表数据中元素的最大值。缺省值为空,
[]
.您可以指定一个数值,真实的值。有关Simulink如何使用此属性的更多信息,请参见指定块参数的最小值和最大值.
- 存储整数最小
-
为
仿真软件。LookupTable
具有定点数据类型(表数据中元素的最小值,指定为存储整数值)的对象。该值来源于真实世界的值最小值.此属性仅在属性对话框中可用。 - 存储Int马克斯
-
为
仿真软件。LookupTable
具有定点数据类型的对象,即表数据中元素的最大值,指定为存储的整数值。该值来源于真实世界的值马克斯.此属性仅在属性对话框中可用。 - 单位
-
查找表中元素的物理单位。可以指定诸如
摄氏度
.看到Simulink模型中的单元规范. - 字段名
-
生成代码中结构字段的名称。属性时,此字段存储表数据
仿真软件。LookupTable
对象将作为结构出现在生成的代码中。默认值为表格
.要更改字段名,请指定text。 - 描述
-
查找表的描述。可以指定诸如
此查找表描述泵的动作
.
- 断点
-
断点设置的信息。每一行是一个断点集。中指定整数值可配置其他断点集表维数盒子。
对于断点集,可以配置以下特征:
- 价值
-
断点集的数据。指定至少具有两个元素的数字向量。
请注意
此属性仅在
断点规范
被设置为甚至间距
或参考
.的价值时,断点集数据与对话框底部可见的表格界面的内容相同断点规范属性设置为明确的价值观
.有关此表格区域的更多信息,请参见使用查阅表电子表格编辑查阅表数据.还可以使用带有数学运算符的表达式,例如
sin (1:0.5:30)
只要表达式返回一个数值向量。当你点击应用或好吧,对象执行表达式并使用结果设置此属性的值。当您设置数据类型来
汽车
,设置价值,使用类型化表达式,例如单((1 2 3))
或使用fi
(定点设计师)构造函数来嵌入fi
对象。您可以在查找表块中使用更直观的界面来编辑这些数据。看到从MATLAB中导入查找表数据.
- 数据类型
-
断点集的数据类型。默认设置为
汽车
,这意味着断点集从中指定的值获取数据类型价值.如果使用无类型表达式,例如(1 2 3)
设置价值,断点数据使用数据类型双
.如果指定类型化表达式,例如单((1 2 3))
或者一个fi
对象时,断点数据使用表达式或对象指定的数据类型。可以显式指定整数数据类型、浮点数据类型、定点数据类型或数据类型表达式,例如的名称
仿真软件。AliasType
对象。有关Simulink中数据类型的更多信息,请参见Simulink支持的数据类型.确定如何控制表和断点数据的数据类型
仿真软件。LookupTable
而且仿真软件。断点
对象,看到查找表对象的控件数据类型(仿真软件编码器). - 维
-
断点集的维度长度。
若要使用符号维度,请指定字符向量。看到在生成的代码中实现数组大小的符号尺寸(嵌入式编码).
- 最小值
-
断点集中元素的最小值。缺省值为空,
[]
.您可以指定一个数值,真实的值。有关Simulink如何使用此属性的更多信息,请参见指定块参数的最小值和最大值.
- 马克斯
-
断点集中元素的最大值。缺省值为空,
[]
.您可以指定一个数值,真实的值。有关Simulink如何使用此属性的更多信息,请参见指定块参数的最小值和最大值.
- 单位
-
断点集中元素的物理单位。可以指定诸如
degF
.看到Simulink模型中的单元规范. - 字段名
-
生成代码中结构字段的名称。此字段存储断点集数据。默认值为
BP1
对于第一个断点集和BP2
第二组。要更改字段名,请指定text。 - 可调大小的名字
-
生成代码中结构字段的名称。这个字段存储断点集的长度(元素的数量),生成的代码算法使用它来确定表的大小。要在代码执行期间调优表的有效大小,请在内存中更改此结构字段的值。默认名称为
N1
对于第一个断点集和N2
第二组。要更改字段名,请指定text。此列仅在选择时出现支持可调大小.
- 描述
-
断点集的说明。可以指定诸如
这个断点集表示压力输入
. - 第一点
-
均匀间隔的断点数据中的第一个点。该参数在以下情况下有效断点规范被设置为
甚至间距
. - 间距
-
均匀间隔的断点数据中点之间的间隔。该参数在以下情况下有效断点规范被设置为
甚至间距
. - 的名字
-
的名字
仿真软件。断点
对象,该对象存储此断点集的信息。此列仅在设置后才显示断点规范来
参考
. - 第一点的名字
-
的名字
仿真软件。断点
对象,该对象存储第一个点的信息。该参数在以下情况下有效断点规范被设置为甚至间距
. - 间距的名字
-
的名字
仿真软件。断点
对象,该对象存储间距信息。该参数在以下情况下有效断点规范被设置为甚至间距
.
- 表和断点值编辑区
-
表和断点数据的信息。您可以在相关的文本框中输入MATLAB表达式,也可以直接在附带的表中添加数据。选择所需的数据类型:
选择表元素
使用标准的快捷键,例如:
复制- - - - - -Ctrl + C
粘贴,Ctrl + V
取消- - - - - -Ctrl + Z
删除
重做,Shift + Ctrl + Z
在表中输入或操作数据既简单又直观。就像微软®Excel®电子表格,您可以使用表的操作,如:
表格
——表数据。指定至少具有两个元素的数值向量或多维数组。还可以使用带有数学运算符的表达式,例如
sin (1:0.5:30)
只要表达式返回数值向量或多维数组。当你按下输入,对象执行表达式并使用结果设置此属性的值。指定具有三个或更多维度的表数据时,表将数据显示为表达式,其中包含对
重塑
函数。类的第一个参数可编辑数据中的值重塑
调用,该函数包含序列化向量中的所有值。在沿维度添加或删除元素时,还必须更正表示修改后维度长度的参数。您可以在查找表块中使用更直观的界面编辑此数据。看到从MATLAB中导入查找表数据.
英国石油公司
N—断点集数据。指定至少具有两个元素的数字向量。
还可以使用带有数学运算符的表达式,例如
sin (1:0.5:30)
只要表达式返回一个数值向量。当你按下输入,对象执行表达式并使用结果设置此属性的值。您可以在查找表块中使用更直观的界面来编辑这些数据。看到从MATLAB中导入查找表数据.
代码生成
- 数据定义:存储类
-
结构变量的存储类(如果您设置断点规范来
明确的价值观
或甚至间距
)或数组变量(参考
)。变量存储表数据,如果变量是结构,则存储断点集数据。默认设置为汽车
.有关存储类的更多信息,请参见模型接口元素的C代码生成配置(仿真软件编码器).
如果你有嵌入式编码器®,您可以选择自定义存储类。有关自定义存储类的信息,请参见使用结构存储类将参数数据组织到结构中(嵌入式编码).
- 数据定义:标识符
-
结构变量的可选名称(如果您设置断点规范来
明确的价值观
或甚至间距
)或数组变量(参考
)。默认值为空,在这种情况下,生成的代码使用仿真软件。LookupTable
对象作为结构或数组变量的名称。要设置标识符,请指定文本。若要启用此属性,请设置数据定义:存储类而不是
汽车
. - 数据定义:对齐
-
生成代码中的数据对齐边界。分配给结构或数组变量的数据的起始内存地址是指定值的倍数。默认值为
-1
,这允许代码生成器根据使用情况确定最佳对齐方式。指定一个2的幂且不超过128的正整数。有关使用数据对齐进行代码替换的更多信息,请参见代码替换的数据对齐(嵌入式编码).
- 结构类型定义:名称
-
结构变量在生成的代码中使用的结构类型的名称。缺省值为空。指定文本。
此属性仅在设置后才会显示断点规范来
明确的价值观
或甚至间距
. - 结构类型定义:数据作用域
-
结构类型定义的范围(从自定义代码导入或从生成的代码导出)。默认值为
汽车
.当您选择汽车
:中未指定值结构类型定义:头文件框中,生成的代码将结构类型定义导出到文件中
.模型
_types.h
是模型的名称。模型
中指定的值结构类型定义:头文件框,如
myHdr.h
,生成的代码从中导入结构类型定义myHdr.h
.
显式指定数据范围:
若要将结构类型定义从自定义代码导入到生成的代码中,请选择
进口
.若要从生成的代码导出结构类型定义,请选择
出口
.
将结构类型定义的数据范围设置为
进口
或出口
以避免潜在的MISRA C:2012违规。中未指定值结构类型定义:头文件框中,生成的代码从其中导入或导出类型定义
.StructName
.h
是使用属性指定的名称吗结构类型定义:名称.StructName
此属性仅在设置后才会显示断点规范来
明确的价值观
或甚至间距
. - 结构类型定义:头文件
-
包含结构类型定义的头文件的名称。您可以从创建的头文件导入定义,或者将定义导出到生成的头文件中。若要控制结构类型的范围,请调整结构类型定义:数据作用域财产。
此属性仅在设置后才会显示断点规范来
明确的价值观
或甚至间距
.
先进的
- 支持可调大小
-
规范,以支持在生成的代码中调优表的有效大小。在代码中,对应于对象的结构对于每个断点向量都有一个额外的字段。每个额外字段存储相应断点向量的长度。您可以更改每个字段的值来调整表的有效大小。有关断点和表大小的更多信息,请参见查找表中的断点和表大小特性.
此属性仅在设置后才会显示断点规范来
明确的价值观
或甚至间距
.选择允许此类型的多个实例具有不同的表和断点大小自动选择此属性。请注意
如果将断点数据存储在
仿真软件。断点
通过设置对象断点规范来参考
,以在生成的代码中启用表大小的调优支持可调大小财产的仿真软件。断点
对象。 - 允许此类型的多个实例具有不同的表和断点大小
-
规范配置查找表对象,以支持具有相同结构类型的大小不同的表和断点。例如,假设如下所示配置了两个1-D查找表对象,并且具有相同的结构类型名称。
带有大小为[1x4]的表和断点的查找表
带有大小为[1x6]的表和断点的查找表
要启用包含要模拟的这些对象的两个块的模型,请选择允许此类型的多个实例具有不同的表和断点大小复选框。用于代码生成仿真软件编码器™,该软件为两个对象生成一个公共结构类型,其中包含指针类型的成员字段,以表示表和断点数据。
此属性仅在设置后才会显示断点规范来
明确的价值观
或甚至间距
.有关断点和表大小的更多信息,请参见查找表中的断点和表大小特性.
属性
复制语义
句柄。要了解句柄类如何影响复制操作,请参见复制对象.
例子
表示一维查找表
创建一个
仿真软件。LookupTable
对象命名LUTObj
.LUTObj = Simulink.LookupTable;
指定表数据。
LUTObj.Table.Value = [1.1 2.2 3.3 4.4 5.5];
指定断点集数据。
LUTObj.Breakpoints(1)。值= [-2 -1 0 1 2];
在生成的代码中为结构类型指定一个名称。
LUTObj.StructTypeInfo.Name =“myLUTStruct”;
您可以使用LUTObj
在一个一维查找表块对话框。在块中,设置数据规范来查找表对象
而且的名字来LUTObj
.
要查看数据,请使用中描述的属性对话框使用查阅表电子表格编辑查阅表数据.
表示一个二维查找表
创建一个
仿真软件。LookupTable
对象命名LUTObj
.LUTObj = Simulink.LookupTable;
指定表数据。
LUTObj.Table.Value = [1.1 2.2 3.3 4.4 5.5;...6.6 7.7 8.8 9.9 10.1];
指定断点集数据。在
断点
属性,使用向量索引2
设置第二个断点集中的值。LUTObj.Breakpoints(1)。值= [-1 1];LUTObj.Breakpoints(2)。值= [-2 -1 0 1 2];
LUTObj
创建一个Simulink.lookuptable.Breakpoint
对象的值中的第二个向量元素断点
财产。除了价值
属性时,新对象具有默认属性值。在生成的代码中为结构类型指定一个名称。
LUTObj.StructTypeInfo.Name =“myLUTStruct”;
您可以使用LUTObj
在一个二维查找表块对话框。
要查看数据,请使用中描述的属性对话框使用查阅表电子表格编辑查阅表数据.
从1开始平均间隔每一秒值
若要均匀地分隔从1开始的每一秒值,请使用Breakpoint对象。
创建一个
仿真软件。LookupTable
对象命名LUTObj
.LUTObj =仿真软件。LookupTable
[1×1 Simulink.lookuptable. LUTObj = LookupTable . properties:表格] BreakpointsSpecification: 'Explicit values' Breakpoints: [1×1 Simulink.lookuptable.Breakpoint] SupportTunableSize: 0 CoderInfo: [1×1 Simulink.CoderInfo] StructTypeInfo: [1×1 Simulink.lookuptable.StructTypeInfo]
将断点属性设置为间距均匀。
LUTObj。BreakpointsSpecification =“即使间距”
[1×1 Simulink.lookuptable. LUTObj = LookupTable . properties:表格] BreakpointsSpecification: 'Even spacing' Breakpoints: [1×1 Simulink.lookuptable.Evenspacing] SupportTunableSize: 0 CoderInfo: [1×1 Simulink.CoderInfo] StructTypeInfo: [1×1 Simulink.lookuptable.StructTypeInfo]
获取断点的属性。
LUTObj.Breakpoints (1)
ans = Evenspacing with properties: FirstPoint: 0 Spacing: 1 DataType: 'auto' Min: [] Max:[]单位:" FirstPointName: 'BPFirstPoint1' SpacingName: 'BPSpacing1' TunableSizeName: 'N1' Description: "
要设置第一个点属性,请使用Breakpoint对象
FirstPoint
财产。LUTObj.Breakpoints (1) .FirstPoint = 1
若要设置空格属性,请使用Breakpoint对象。
LUTObj.Breakpoints (1) .Spacing = 2
获取断点的属性。
LUTObj.Breakpoints (1)
ans = Evenspacing with properties: FirstPoint: 1 Spacing: 2 DataType: 'auto' Min: [] Max:[]单位:" FirstPointName: 'BPFirstPoint1' SpacingName: 'BPSpacing1' TunableSizeName: 'N1' Description: "
用于查找表和断点集的控制代码生成
创建一个仿真软件。LookupTable
对象命名LUTObj
.
LUTObj = Simulink.LookupTable;
指定表数据。
LUTObj.Table.Value = [1.00 2.25 3.50 4.75 6.00;...7.25 8.50 9.75 11.00 12.25];
指定断点集数据。在断点
属性,使用数组索引2
要创建额外的Simulink.lookuptable.BreakpointInfo
对象,该对象表示第二个断点集。
LUTObj.Breakpoints(1)。值= [-1 1];LUTObj.Breakpoints(2)。值= [-2 -1 0 1 2];
为查找表和每个断点集指定数据类型。
LUTObj.Table.DataType =“fixdt(2) 1, 16日”;LUTObj.Breakpoints(1)。数据类型=“int16”;LUTObj.Breakpoints(2)。数据类型=“int16”;
为生成代码中存储表数据和断点集的结构字段指定惟一名称。
LUTObj.Table.FieldName =“myTable”;LUTObj.Breakpoints(1)。字段名=“myBPSet1”;LUTObj.Breakpoints(2)。字段名=“myBPSet2”;
通过使用存储类从生成的代码导出结构变量定义ExportedGlobal
.
LUTObj.CoderInfo.StorageClass =“ExportedGlobal”;
在生成的代码中命名结构类型LUTStructType
.将结构类型定义导出到生成的名为myLUTHdr.h
.
LUTObj.StructTypeInfo.Name =“LUTStructType”;LUTObj.StructTypeInfo.DataScope =“出口”;LUTObj.StructTypeInfo.HeaderFileName =“myLUTHdr.h”;
在模型中的n-D查找表块中,设置数据规范来查找表对象
而且的名字来LUTObj
.
load_system (“myModel_LUTObj”) set_param (“myModel_LUTObj /查找表”,“DataSpecification”,“查找表对象”,...“LookupTableObject”,“LUTObj”)
从模型生成代码。
slbuild (“myModel_LUTObj”)
为“myModel_LUTObj”生成的代码是最新的,因为没有发现结构、参数或代码替换库的更改。成功完成代码生成:myModel_LUTObj构建总结0的1个模型构建(1个模型已经更新到最新)构建持续时间:0h 0m 2.141秒
生成的代码定义了结构类型LUTStructType
在生成的头文件中myLUTHdr.h
.
文件= fullfile (“myModel_LUTObj_ert_rtw”,“myLUTHdr.h”);rtwdemodbtype(文件,“typedef struct{”,“}LUTStructType;”, 1, 1)
typedef结构{int16_T myBPSet1[2];int16_T myBPSet2 [5];int16_T myTable [10];} LUTStructType;
代码使用全局结构变量LUTObj
存储表和断点集数据。表数据基于指定的定点数据类型进行伸缩。
文件= fullfile (“myModel_LUTObj_ert_rtw”,“myModel_LUTObj.c”);rtwdemodbtype(文件,'LUTStructType LUTObj = {',“/ *变量:LUTObj”, 1, 1)
LUTStructType LUTObj = {{-1, 1}, {-2, -1, 0,1,2}, {4,29, 9,34, 14,39,19,44,24,49}};/ *变量:LUTObj
限制
当块在子系统中使用仿真软件。LookupTable
或仿真软件。断点
对象时,不能仅在子系统上设置数据类型覆盖。相反,在整个模型上设置数据类型覆盖。