嵌入的编码器®产品提供了许多目标语言编译器(TLC)文件,使您能够自定义从Simulink生成的ASAP2文件金宝app®模型。
与ASAP2相关的文件被组织在以下文件夹中:
用于生成ASAP2文件的TLC文件
的
(开放)文件夹包含生成ASAP2文件的TLC文件,matlabroot
/ rtw / c / tlc /兆瓦asamlib.tlc
,asap2lib.tlc
,asap2main.tlc
,asap2grouplib.tlc
.这些文件包含在模型配置参数的设置中系统目标文件.(见目标支持ASAP金宝app2.)
ASAP2目标文件
的
(开放)文件夹中包含ASAP2系统目标文件和其他控制文件。matlabroot
/ / asap2 / asap2工具箱/ rtw /目标
可定制的TLC文件
的
(开放)文件夹包含可修改的文件,以自定义ASAP2文件的内容。matlabroot
/工具箱/ rtw /目标/ asap2 / asap2 /用户
ASAP2模板
的
(开放文件夹包含定义每种类型的模板matlabroot
/工具箱/ rtw /目标/ asap2 / asap2 / user /模板特征
在ASAP2文件中。
与ASAP2相关的TLC文件使您能够自定义从Simulink模型生成的ASAP2文件的外观。金宝app控件中包含的文件可以通过修改或添加来完成大多数定制
(开放)文件夹中。本节将此文件夹称为matlabroot
/工具箱/ rtw /目标/ asap2 / asap2 /用户asap2 /用户
文件夹中。
提供的用户自定义文件分为两组:
的静态文件定义ASAP2文件中与使用生成代码的环境相关的部分。它们描述特定于用户或项目的信息。静态文件不依赖于模型。
的动态文件定义了基于源模型结构生成的ASAP2文件的各个部分。
ASAP2文件的定制过程如下:
复印一份asap2 /用户
修改前的文件夹。
删除旧的asap2 /用户
文件夹®路径,或添加新的asap2 /用户
文件夹到旧文件夹上方的MATLAB路径。MATLAB会话使用ASAP2设置文件,asap2setup.tlc
,在新文件夹中。
asap2setup.tlc
指定ASAP2文件生成过程中TLC路径中包含的文件夹和文件。修改asap2setup.tlc
来控制TLC路径中包含的文件夹和文件夹。
修改ASAP2文件的静态部分。这些包括
项目和标题符号,它们在asap2setup.tlc
文件的静态部分,例如文件头和尾部,A2ML
,MOD_COMMON
,等等asap2userlib.tlc
.
通过修改现有的ASAP2模板或定义新的ASAP2模板,指定ASAP2文件的动态内容的外观。受影响的ASAP2文件包括
RECORD_LAYOUT
:修改ASAP2模板文件的部分内容。
特征
:修改ASAP2模板文件的部分内容。有关修改外观的更多信息特征
记录,请参阅ASAP2模板.
测量
:这些在asap2userlib.tlc
.
COMPU_METHOD
:这些在asap2userlib.tlc
.
的外观特征
ASAP2文件中的记录使用不同的模板对每种类型进行控制特征
.的asap2 /用户
文件夹包含标量的模板定义文件,一维查找表块和二维查找表块。您可以修改这些模板定义文件,也可以根据需要创建其他模板。
创建新的ASAP2模板的过程如下:
创建模板定义文件。看到创建模板定义文件.
将模板定义文件包含在TLC路径中。该路径在ASAP2安装文件中指定,asap2setup.tlc
.
本节描述组成ASAP2模板定义文件的组件。此描述以代码示例的形式来自asap2lookup1d.tlc
的模板定义文件Lookup1D
模板。该模板对应于Lookup1D
参数组。
创建新模板时,使用对应的参数组名代替Lookup1D
在代码中显示。
输入参数是与该模板关联的参数组的名称:
% < LibASAP2RegisterTemplate (Lookup1D) >
可以为每个数据类型任意指定记录布局名称(别名)。此文件的其他组件使用此函数。
%function ASAP2UserFcnRecordLayoutAlias_Lookup1D(dtId) void %switch dtId %case tSS_UINT8 %return "Lookup1D_UBYTE"…% endswitch % endfunction
这个函数写RECORD_LAYOUT
与此模板关联的定义。该函数由ASAP2文件生成过程中涉及的内置函数调用。函数名必须如下所示定义,模板名必须在下划线后面:
%function ASAP2UserFcnWriteRecordLayout_Lookup1D() Output /begin RECORD_LAYOUT %…/ RECORD_LAYOUT % endfunction结束
该函数将特征
与此模板关联的。该函数由ASAP2文件生成过程中涉及的内置函数调用。函数名必须如下所示定义,模板名在下划线之后。
这个函数的输入参数是一个指向参数组记录的指针。这个例子是关于a的Lookup1D
有两个成员的参数组。关联对象的引用x
和y
数据记录从参数组记录中获取,如图所示。
这个函数调用许多内置函数来获取所需的信息。例如,LibASAP2GetSymbol
返回指定数据记录的符号(name):
%function ASAP2UserFcnWriteCharacteristic_Lookup1D(paramGroup)输出%assign xParam = paramGroup. member[0]。引用%assign yParam = paramGroup.Member[1]。引用%assign dtId = LibASAP2GetDataTypeId(xParam) /begin CHARACTERISTIC /* Name */ %/* Long identifier */ "% "…/结束% endfunction特征
在生成的ASAP2文件中,计算方法将电子控制单元(ECU)的测量和校准量的内部表示转换为面向物理模型的表示。金宝app仿真软件编码器™软件提供了自定义计算方法名称的能力。您可以提供更直观的名称,以增强ASAP2文件的可读性,或者提供满足组织需求的名称。
要自定义计算方法名称,请使用MATLAB函数getCompuMethodName
,定义为
.matlabroot
/工具箱/ rtw /目标/ asap2 / asap2 / user /getCompuMethodName.m
的getCompuMethodName
函数构造一个计算方法名。函数原型是
cmName= getCompuMethodName (dataTypeName,cmUnits)
在哪里
与计算方法关联的数据类型的名称,dataTypeName
单位是否如cmUnits
单位
财产的金宝app仿真软件。参数
或金宝app仿真软件。信号
对象(例如,rpm
或米/秒
),
返回构造的计算方法名。cmName
函数返回的默认构造名称具有以下格式
<数据类型> < localPrefix > _ < cmUnits >
在哪里
< local_Prefix >
是本地前缀,CM_
中定义的,
.matlabroot
/工具箱/ rtw /目标/ asap2 / asap2 / user /getCompuMethodName.m
<数据类型>
和< cmUnits >
你指定的参数是getCompuMethodName
函数。
另外,在生成的ASAP2文件中,构造的名称以< ASAP2CompuMethodName_Prefix >
中定义的模型前缀
.matlabroot
/工具箱/ rtw /目标/ asap2 / asap2 / user /asap2setup.tlc
例如,如果你调用getCompuMethodName
函数与
论点dataTypeName
“int16”
和
论点cmUnits
“米/秒”
,并为名为ASAP2的模型生成一个ASAP2文件myModel
,计算方法名称将出现在生成的文件中,如下所示:
/begin COMPU_METHOD /* CompuMethod的名称*/myModel_CM_int16_m_s/*单位*/ "m/s"…/结束COMPU_METHOD
ASAP2规范的1.51及更高版本声明,对于查找表轴描述(整数数据类型和无文档单元)的某些情况,不需要计算方法,并且必须将Conversion method参数设置为该值NO_COMPU_METHOD
.您可以使用目标语言编译器(TLC)选项控制在不需要时是否抑制计算方法ASAP2GenNoCompuMethod
.TLC选项默认禁用。如果启用该选项,ASAP2文件生成不会在不需要时为查找表轴描述生成计算方法,而是生成值NO_COMPU_METHOD
.例如:
/* Name */ lu1d_fix_axisTable_data…/ AXIS_DESCR开始……/*转换方法*/NO_COMPU_METHOD.../结束特点
的ASAP2GenNoCompuMethod
选项定义在
.matlabroot
/工具箱/ rtw /目标/ asap2 / asap2 / user /asap2setup.tlc