为AUTOSAR校准和测量配置查找表
在仿真软件®,您可以为AUTOSAR应用程序实现标准轴(STD_AXIS)、公共轴(COM_AXIS)和固定轴(FIX_AXIS)查找表。AUTOSAR应用程序可以通过以下两种方式使用查找表:
实现快速搜索操作。
支持校准和测量工具的应用程序调整。
要为汽车应用程序调优建模查找表,请使用类仿真软件。LookupTable
而且仿真软件。断点
.通过创建仿真软件。LookupTable
而且仿真软件。断点
对象,您可以存储和共享查找表和断点数据,并为AUTOSAR代码生成配置数据。
使用查找表对象配置STD_AXIS查找表
这个例子展示了如何在Simulink中创建STD_AXIS查找表仿真软件。LookupTable
对象,并为AUTOSAR代码生成配置查找表。该示例使用了该模型mAutosarLutObjs.slx
从
.要将模型文件复制到您的工作文件夹中,请输入这个MATLAB®命令:matlabroot
/帮助/工具箱/ autosar的例子
拷贝文件(fullfile (matlabroot”,帮助/工具箱/ autosar /例子/ mAutosarLutObjs.slx”),“。”)
在STD_AXIS配置中建模一个AUTOSAR查找表。
在映射的AUTOSAR软件组件模型中,添加一个AUTOSAR块集曲线或地图块。此示例添加了一个曲线块。
打开曲线块,并配置它从AUTOSAR 4.0代码替换库(CRL)生成一个例程。在修改块设置时,块对话框将更新目标AUTOSAR例程的名称。
在方块对话框中,做出以下选择:
要生成浮点例程,请选择IFL(浮点型).
在表规范选项卡,以使用查找表对象集合指定表数据数据规范来
查找表对象
.
在模型工作区中,创建一个
仿真软件。LookupTable
对象,并将其配置为存储查找表数据。在曲线块对话框,表规范选项卡上,输入
仿真软件。LookupTable
对象的名称。的名字字段。在块对话框中,算法选项卡,设置整数舍入方法来
零
.离开插值法设置为线性点斜式
而且索引搜索方法设置为线性搜索
.
表数据在生成的AUTOSAR C代码中作为单个结构的字段出现。若要控制结构类型的特征,如其名称,请使用对象的属性。
连接曲线或地图块。
将AUTOSAR操作点添加到查找表中。将根级导入连接到曲线或地图块。或者,配置输入信号到曲线或地图块静态全局内存。
连接一个输出端口到曲线或地图块。
在AUTOSAR代码透视图中,使用代码映射编辑器进行映射
仿真软件。LookupTable
对象到AUTOSAR内部校准参数。在参数选项卡上,选择每仿真软件。LookupTable
对象创建的。将每个对象映射到AUTOSAR参数类型ConstantMemory
,SharedParameter
,或汽车
.要接受软件映射默认值,请指定汽车
.在本例中,STD_AXIS查找表对象
L_4_single
被映射到AUTOSARConstantMemory
.对于每个参数,如果选择的参数类型不是
汽车
,单击图标,以查看或修改其他代码和校准属性。有关参数属性的更多信息,请参见将模型工作区参数映射到AUTOSAR组件参数.配置模型以生成基于AUTOSAR 4.0库的C代码。打开“配置参数”对话框并选择代码生成>接口.设置代码替换库参数
AUTOSAR 4.0
.有关更多信息,请参见使用AUTOSAR代码替换库生成代码.构建的模型。生成的C代码包含预期的
Ifl
而且Ifx
查找函数调用和Rte
数据访问函数调用。例如,可以在HTML代码生成报告中搜索Ifl
或Ifx
常规的前缀。生成的ARXML文件包含类别CURVE (1-D表数据)和MAP (2-D表数据)的数据类型。数据类型具有您配置的数据校准属性。
使用查找表和断点对象配置COM_AXIS查找表
这个例子展示了如何在Simulink中创建COM_AXIS查找表仿真软件。LookupTable
而且仿真软件。断点
对象,并为AUTOSAR代码生成配置查找表。该示例使用了该模型mAutosarLutObjs.slx
从
.要将模型文件复制到您的工作文件夹中,输入以下MATLAB命令:matlabroot
/帮助/工具箱/ autosar的例子
拷贝文件(fullfile (matlabroot,“帮助/工具箱/ autosar / / mAutosarLutObjs.slx的例子),“。”)
在本例中,要在COM_AXIS配置中建模AUTOSAR查找表,需要对AUTOSAR Blockset进行配对Prelookup块与使用Prelookup曲线或地图使用Prelookup块。
配置Prelookup块。
在映射的AUTOSAR软件组件模型中,添加一个或多个AUTOSAR块集Prelookup块。这个例子添加了一个Prelookup块。
打开每个块并将其配置为从AUTOSAR 4.0代码替换库(CRL)生成一个例程。在修改块设置时,块会更新目标AUTOSAR例程的名称。
在方块对话框中,做出以下选择:
要生成浮点例程,请选择IFL(浮点型).
在表规范选项卡,以使用断点对象指定断点数据断点规范来
断点对象
.
对于每个断点向量,在模型工作区中,创建并配置一个
仿真软件。断点
对象。在Prelookup块对话框,表规范选项卡上,输入
仿真软件。断点
对象的名称。的名字字段。您可以通过在查找表之间共享断点数据来减少内存消耗。在块对话框中,算法选项卡,设置整数舍入方法来
零
.离开索引搜索方法设置为线性搜索
.
配置使用Prelookup曲线而且地图使用Prelookup块。
在模型中,添加一个或多个AUTOSAR Blockset使用Prelookup曲线或地图使用Prelookup块。每个块紧跟着一个Prelookup与它配对的块。这个例子添加了一个使用Prelookup曲线块。
打开每个使用Prelookup曲线或地图使用Prelookup块,并配置它从AUTOSAR 4.0代码替换库(CRL)生成一个例程。在修改块设置时,块对话框将更新目标AUTOSAR例程的名称。
在方块对话框中,做出以下选择:
要生成浮点例程,请选择IFL(浮点型).
在表规范选项卡,以使用查找表对象集合指定表数据数据规范来
查找表对象
.
对于每一组表数据,在模型工作区中,创建并配置一个
仿真软件。LookupTable
对象。在每一个使用Prelookup曲线或地图使用Prelookup块对话框,表规范选项卡上,输入一个
仿真软件。LookupTable
对象的名称。的名字字段。在块对话框中,算法选项卡,设置整数舍入方法来
零
.离开插值法设置为线性点斜式
.
在生成的C代码中,每组表数据都作为单独的数组变量出现。如果表大小是可调的,则每个断点向量将显示为一个结构。该结构包含一个用于存储断点数据的字段,以及一个可选的用于存储向量长度的字段。第二个字段使您能够调优表的有效大小。如果表大小不可调,则每个断点向量将显示为数组。
连接Prelookup,使用Prelookup曲线,地图使用Prelookup块。
将AUTOSAR操作点添加到查找表中。将根级导入连接到Prelookup块。或者,配置输入信号到Prelookup块静态全局内存。
将输出端口连接到使用Prelookup曲线而且地图使用Prelookup块。
连接每一个Prelookup块与其匹配使用Prelookup曲线或地图使用Prelookup块。
在AUTOSAR代码透视图中,使用代码映射编辑器进行映射
仿真软件。LookupTable
而且仿真软件。断点
对象到AUTOSAR内部校准参数。在参数选项卡上,选择每仿真软件。LookupTable
而且仿真软件。断点
对象创建的。将每个对象映射到AUTOSAR参数类型ConstantMemory
,SharedParameter
,或汽车
.要接受软件映射默认值,请指定汽车
.在本例中,COM_AXIS断点对象
Bp_4_single
和查找表对象Lcom_4_single
被映射到AUTOSARSharedParameter
s. AUTOSAR软件组件的所有实例共享COM_AXIS参数。对于每个参数,如果选择的参数类型不是
汽车
,单击图标,以查看或修改其他代码和校准属性。有关参数属性的更多信息,请参见将模型工作区参数映射到AUTOSAR组件参数.配置模型以生成基于AUTOSAR 4.0库的C代码。打开“配置参数”对话框并选择代码生成>接口.设置代码替换库参数
AUTOSAR 4.0
.有关更多信息,请参见使用AUTOSAR代码替换库生成代码.构建的模型。生成的C代码包含预期的
Ifl
而且Ifx
查找函数调用和Rte
数据访问函数调用。例如,可以在HTML代码生成报告中搜索Ifl
或Ifx
常规的前缀。生成的ARXML文件包含类别CURVE (1-D表数据)、MAP (2-D表数据)和COM_AXIS(轴数据)的数据类型。数据类型具有您配置的数据校准属性。
使用Simulink参数对象配置FIX_AXIS查找表
这个例子展示了如何在Simulink中创建FIX_AXIS查找表仿真软件。参数
对象,并为AUTOSAR代码生成配置查找表。
在FIX_AXIS配置中建模一个AUTOSAR查找表。
在映射的AUTOSAR软件组件模型中,添加一个Simulink一维查找表块。
在模型工作区中,创建一个
仿真软件。参数
对象,并将其配置为存储查找表值。打开一维查找表块。在表和断点选项卡,以配置表的固定轴,设置断点规范来
甚至间距
.在一维查找表块对话框,表和断点选项卡上,输入
仿真软件。参数
对象的名称。价值字段。在块对话框中,算法选项卡,设置外推法来
剪辑
.启用在最后一个断点或以上的输入使用最后一个表值.
将导入和输出端口连接到一维查找表块。
在AUTOSAR代码透视图中,使用代码映射编辑器进行映射
仿真软件。参数
对象为AUTOSAR内部校准参数。在参数选项卡上,选择每仿真软件。参数
对象创建的。将对象映射到AUTOSAR参数类型ConstantMemory
,SharedParameter
,或汽车
.要接受软件映射默认值,请指定汽车
.对于每个参数,如果选择的参数类型不是
汽车
,单击图标,以查看或修改其他代码和校准属性。有关参数属性的更多信息,请参见将模型工作区参数映射到AUTOSAR组件参数.配置模型以生成基于AUTOSAR 4.0库的C代码。打开“配置参数”对话框并选择代码生成>接口.设置代码替换库参数
AUTOSAR 4.0
.有关更多信息,请参见使用AUTOSAR代码替换库生成代码.构建的模型。生成的C代码包含预期的
Ifx
查找函数调用和Rte
数据访问函数调用。例如,可以在HTML代码生成报告中搜索Ifx
常规的前缀。生成的ARXML文件包含类别CURVE (1-D表数据)的数据类型。数据类型具有您配置的数据校准属性。
请注意
为FIX_AXIS
查找表对象,其轴值是固定的,不可调优。可以调优表数据。
配置多维查找表的数组布局
如果AUTOSAR模型包含多维查找表,则可以将用于代码生成的查找表数组数据的布局配置为列为主或行为主。在“Simulink配置参数”对话框中,接口窗格中,设置阵列布局(仿真软件编码器)来列为主
(默认)或行
.数组布局选择影响代码生成,包括C代码和导出的ARXML描述。
如果选择行为主布局,请转到数学和数据类型窗格并选择配置选项使用针对行-主数组布局优化的算法.算法的选择影响仿真和代码生成。
方法生成ARXML查找表描述SwRecordLayout
类别设置为COLUMN_DIR
或ROW_DIR
.例如,此程序清单显示SwRecordLayout
为包含二维行主查找表的AUTOSAR模型导出的描述。查找表是通过使用AUTOSAR实现的地图块。
SwRecordLayouts <字>地图_s16 Val ROW_DIR category > < sw-record-layout-group - axis >1 sw-record-layout-group - axis > < sw-record-layout-group - index > x sw-record-layout-group - index > < sw-record-layout-group - from >1 sw-record-layout-group - from > < sw-record-layout-group - to >-1 sw-record-layout-group - to > < sw-record-layout-group - > < sw-record-layout-group - axis >2 sw-record-layout-group - axis > < sw-record-layout-group - index > y sw-record-layout-group - from >1 sw - record - layout - index >1 < SW-RECORD-LAYOUT-GROUP-TO > < / SW-RECORD-LAYOUT-GROUP-TO > < SW-RECORD-LAYOUT-V > < SHORT-LABEL > Val < / SHORT-LABEL > < BASE-TYPE-REF DEST =“SW-BASE-TYPE”> /数据类型/ SwBaseTypes / sint32 < / BASE-TYPE-REF > < SW-RECORD-LAYOUT-V-AXIS > 0 < / SW-RECORD-LAYOUT-V-AXIS > < SW-RECORD-LAYOUT-V-PROP >价值< / SW-RECORD-LAYOUT-V-PROP > < SW-RECORD-LAYOUT-V-INDEX > X Y < / SW-RECORD-LAYOUT-V-INDEX > < / SW-RECORD-LAYOUT-V > < / SW-RECORD-LAYOUT-GROUP > < / SW-RECORD-LAYOUT-GROUP > < / SW-RECORD-LAYOUT > < SW-RECORD-LAYOUT UUID = "……" > <字>Distr_s8_M Y INDEX_INCR 1 1 -1 VALUE /DataTypes/SwBaseTypes/sint32 1 VALUE
导入带有多维查找表描述的ARXML文件将创建Simulink查找表阵列布局设置为列为主
或行
.如果ARXML文件只包含行为主的多维查找表描述,ARXML导入器将创建Simulink查找表阵列布局设置为行
而且使用针对行-主数组布局优化的算法启用。
可重用引用模型查找表和断点的参数化实例
在AUTOSAR模型层次结构中,可以通过将查找表或断点放在引用模型中,然后对引用模型进行参数化来参数化查找表或断点。参数化引用模型包括配置引用模型以使用模型参数,然后在父模型中设置模型参数值。
将可重用引用模型查找表的实例参数化允许您在AUTOSAR模型层次结构中放置查找表子单元的多个实例。您可以对查找表使用子单元级测试。
当引用模型包含查找表或断点,且包含的顶级模型将查找表参数值或断点对象传递给被引用模型的模型参数时,顶级模型导出为查找表参数或断点生成应用程序数据类型。
考虑这个顶级模型,它将引用模型二维查找表的两个实例参数化。顶级模特参数LUTForInst1
被映射到AUTOSARPerInstanceParameter
它的值被传递给第一个查找表实例的模型参数。顶级模特参数LUTForInst2
被映射到AUTOSARSharedParameter
它的值被传递给第二个查找表实例的模型参数。
引用的模型包含二维查找表并定义实例参数LUT_arg
.有关在引用模型中配置实例参数和在model块中指定实例特定值的详细信息,请参见参数化可重用引用模型的实例.
在构建顶级模型时,导出的ARXML定义了应用程序原语数据类型Appl_LUTForInst1
而且Appl_LUTForInst2
并将它们映射到实现数据类型LUT_arg_Type
.
< APPLICATION-PRIMITIVE-DATA-TYPE UUID = "……" > <字>Appl_LUTForInst1< /字> <目录> < /映射类别>…< / APPLICATION-PRIMITIVE-DATA-TYPE > < APPLICATION-PRIMITIVE-DATA-TYPE UUID = "……" > <字>Appl_LUTForInst2< /字> <目录> < /映射类别>… application - basic - data - type >/DataTypes/ApplDataTypes/Appl_LUTForInst1 /DataTypes/LUT_arg_Type /DataTypes/ApplDataTypes/Appl_LUTForInst2 /DataTypes/LUT_arg_Type< / IMPLEMENTATION-DATA-TYPE-REF > < / DATA-TYPE-MAP >
然后由AUTOSAR每个实例参数引用应用程序原语数据类型LUTForInst1
和AUTOSAR共享参数LUTForInst2
.
< PER-INSTANCE-PARAMETERS > < PARAMETER-DATA-PROTOTYPE UUID = "……" > <字>LUTForInst1< /字> <目录> < /映射类别>…< TYPE-TREF DEST = " APPLICATION-PRIMITIVE-DATA-TYPE " > /数据类型/ ApplDataTypes /Appl_LUTForInst1 type-tref > < init-value > < constant-reference > < short-label >LUTForInst1/DataTypes/Constants/LUTForInst1 < share - parameters ><字>LUTForInst2< /字> <目录> < /映射类别>…< TYPE-TREF DEST = " APPLICATION-PRIMITIVE-DATA-TYPE " > /数据类型/ ApplDataTypes /Appl_LUTForInst2 type-tref > < init-value > < constant-reference > < short-label >LUTForInst2 /DataTypes/Constants/LUTForInst2
导出的ARXML查找表描述可以在Simulink和AUTOSAR创作工具之间来回转换。
导出查找表常量作为记录值规范
您可以配置一个模型,将查找表常量导出为应用程序值规范或记录值规范。参考范例模型使用查找表对象配置STD_AXIS查找表.
默认情况下,查找表常量被导出为应用程序值规范。生成的ARXML文件包含应用程序值规范,如下所示:
< CONSTANT-SPECIFICATION UUID = "……" > <字>L_4_singleL_4_single CURVE STD_AXIS /pkg/dt/NoUnit 1 4 1 2 3 4 /pkg/dt/NoUnit 4 10 20 30 40
要将常量作为记录值规范导出,请打开Autosar>Autosar的字典和禁用导出查找表应用值规范选择。
或者使用以下命令:
modelProperties = autosar.api.getAUTOSARProperties (< modelName >);modelProperties.set(‘XmlOptions’,‘ExportLookupTableApplicationValueSpecification’,假);
构建的模型。生成的ARXML包含记录的价值规范
如下所示。
< CONSTANT-SPECIFICATION UUID = "……" > <字>L_4_singleL_4_single Nx 4 Bp1 Bp1_rt_Array_Float_4_1 1 Bp1_rt_Array_Float_4_2 2 Bp1_rt_Array_Float_4_3 3 Bp1_rt_Array_Float_4_4 4 Table Table_rt_Array_Float_4_1 10 Table_rt_Array_Float_4_2 20 Table_rt_Array_Float_4_3 30 Table_rt_Array_Float_4_4 40
出口AdminData
记录布局注释
AUTOSAR Blockset支持AdminData
在ARXML查找表描述中记录布局注释。
导入ARXML查找表和轴描述,其中包含AdminData
记录布局注释创建Simulink查找表和断点AdminData
注释决定结构元素的顺序。
输出查找表AdminData
默认禁用。的导出AdminData
,设置只支持api的XML选项“ExportSwRecordLayoutAnnotationsOnAdminData”
来真正的
.例如:
hModel =“mAutosarLutObjs”;目录fullfile (matlabroot ' /帮助/工具箱/ autosar /例子'));open_system (hModel);arProps = autosar.api.getAUTOSARProperties (hModel);集(arProps XmlOptions”,“ExportSwRecordLayoutAnnotationsOnAdminData”,真的);slbuild (hModel)
当AdminData
导出Simulink查找表和带结构元素的断点会生成查找表和轴ImplementationDataType
S包含结构元素AdminData
注释。例如:
< IMPLEMENTATION-DATA-TYPE UUID = "……" > <字>LUT_4_singleSTRUCTURE Nx TYPE_REFERENCE ...< / IMPLEMENTATION-DATA-TYPE-ELEMENT > < IMPLEMENTATION-DATA-TYPE-ELEMENT UUID = "……" > <字> Bp1 < /字> <目录> TYPE_REFERENCE类别> < / NO_AXIS_PTS_X ...< / IMPLEMENTATION-DATA-TYPE-ELEMENT >…< /子元素> < / IMPLEMENTATION-DATA-TYPE > AXIS_PTS_X
AdminData
记录布局注释可以与第三方AUTOSAR工具一起使用。
另请参阅
仿真软件。LookupTable
|仿真软件。断点
|曲线|使用Prelookup曲线|地图|地图使用Prelookup|Prelookup|getParameter
|mapParameter