配置AUTOSAR CompuMethods
AUTOSAR软件组件使用计算方法(CompuMethods)在AUTOSAR数据的内部值和物理表示之间进行转换。CompuMethods的常用用途是线性数据缩放、校准和测量。
嵌入式编码器®导入ARXML代码中描述的AUTOSAR CompuMethods,并在AUTOSAR创作工具(AAT)和Simulink之间的往返中保存它们金宝app®.在Si金宝appmulink中,您可以修改导入的CompuMethods或创建和配置新的CompuMethods。
本节介绍在Simulink中配置AUTOSAR CompuMethods的示例。金宝app
配置AUTOSAR CompuMethod属性
您可以在模型中以图形方式或编程方式配置AUTOSAR CompuMethod属性。可以修改的CompuMethod属性包括名称、类别、单位、显示格式、AUTOSAR包和Simulink数据类型。金宝app
若要使用图形界面配置CompuMethod,请打开AUTOSAR字典并选择CompuMethods视图。这个视图显示了模型中可修改的CompuMethods,无论是从ARXML代码导入还是在Simulink中创建。金宝app
选择CompuMethod并编辑可用字段。
的名字-指定名称文本
类别——选择
相同的
,线性
,RatFunc
,TextTable
,或LinearAndTextTable
(见数据类型的CompuMethod分类)单位—从型号中可选的单元中选择
DisplayFormat-可选地指定校准和测量工具用于显示数据的格式。使用一个ANSI®C
printf
格式说明符字符串。例如,% 2.1 d
指定带符号的十进制数,最小宽度为两个字符,最大精度为一个数字。该字符串产生一个显示值,例如12.2。有关构造格式说明符字符串的详细信息,请参见配置DisplayFormat.包—为CompuMethods指定生成AUTOSAR包的路径
金宝app模型数据类型-指定引用CompuMethod的S金宝appimulink数据类型列表
要修改CompuMethod的AUTOSAR包,您可以执行以下操作之一:
中输入包路径包参数字段。
要打开AUTOSAR包浏览器,请单击控件右侧的按钮包字段。使用浏览器导航到现有包或创建并选择包。在浏览器中选择软件包后,单击应用, CompuMethod包参数值随所选内容一起更新。有关AUTOSAR包浏览器的详细信息,请参见为组件、接口、CompuMethod或SwAddrMethod配置AUTOSAR包.
若要将CompuMethod与模型中使用的Simulink数据类型相金宝app关联,请选择CompuMethod并单击添加右边的按钮金宝app模型数据类型.此操作将打开一个包含可用数据类型列表的对话框。在值列表中,选择a金宝app仿真软件。NumericType
或金宝app仿真软件。AliasType
,或输入Simulink枚举类型的名称。金宝app属性中添加类型金宝app模型数据类型列表中,点击好吧.
设置金宝app模型数据类型属性,打开模型并使用AUTOSAR属性集
函数调用类似如下:
arProps = autosar.api.getAUTOSARProperties(“cmSpeed”);集(arProps,‘/ pkg / CompuMethods / RpmCm’,‘SlDataTypes’,{' SpeedRpmAdt '})sltypes =得到(arProps ' / pkg / CompuMethods / RpmCm ', ' SlDataTypes ')
sltypes = ' speeddrpmadt '
创建AUTOSAR CompuMethods
您可以在您的模型中创建AUTOSAR CompuMethods,以图形方式或编程方式。若要使用图形界面创建AUTOSAR CompuMethod,请打开AUTOSAR字典并选择CompuMethods视图。若要打开“添加CompuMethod”对话框,请单击添加按钮.为CompuMethod配置初始属性,例如名称、类别、单位、校准的显示格式、要生成的AUTOSAR包以及相关的Simulink数据类型。金宝app当你点击好吧, AUTOSAR字典中的CompuMethods视图被更新为新的CompuMethod。
生成代码时,导出的ARXML代码包含CompuMethod定义及其引用。
为线性函数配置CompuMethod方向
对于源自Simulink的设计,可以控制导出的金宝appCompuMethod
,包括方向CompuMethod
值的内部表示和物理表示之间的转换。使用AUTOSAR字典或AUTOSAR属性集
函数时,可以指定下列之一CompuMethod
方向值:
InternalToPhys
(默认)-生成CompuMethod
部分用于将内部值转换为其物理表示形式。PhysToInternal
——生成CompuMethod
将物理值转换为其内部表示的部分。双向
——生成CompuMethod
内部到物理和物理到内部转换方向的部分。
指定CompuMethod
MATLAB中的方向®命令窗口中,使用AUTOSAR属性集
函数调用类似如下:
hModel = 'autosar_swc_expfcns';openExample (hModel);arProps = autosar.api.getAUTOSARProperties (hModel);集(arProps,‘XmlOptions’,‘CompuMethodDirection’,“双向”);get (arProps,‘XmlOptions’,‘CompuMethodDirection’)
指定CompuMethod
在AUTOSAR字典中选择方向XML选项.为参数选择一个值CompuMethod方向.点击应用.
当您为您的模型生成代码时,导出的ARXML代码中的CompuMethods包含所请求的方向部分。例如,这里有一个CompuMethod生成,CompuMethod方向设置为双向
.
< COMPU-METHOD UUID = "……" > <字>COMPU_EngSpdValueLINEAR < COMPU-INTERNAL-TO-PHYS >< compute - scales > < compute - scale >intToPhys intToPhys< LOWER-LIMIT INTERVAL-TYPE="CLOSED">024000 < compute - reason - coeffs > < compute - numerator >0 1 compute - numerator > < compute -分母>8 compute -分母> compute - scale > compute - scales >< / COMPU-INTERNAL-TO-PHYS >< COMPU-PHYS-TO-INTERNAL >< compute - scales > < compute - scale >physToInt 0 3000 < compute - rational - coeffs > < compute - numerator >0 8 compute - numerator > < compute - denominator >1 compute - rational - coeffs > compute - scale > compute - scales >< / COMPU-PHYS-TO-INTERNAL >< / COMPU-METHOD >
请注意
为布尔或枚举数据类型生成的TEXTTABLE类别的CompuMethods仅使用InternalToPhys
,与方向参数设置无关。
导出CompuMethod单元引用
ARXML导入器保存了在导入的CompuMethods中找到的单元和物理维度信息。该软件在AUTOSAR创作工具(AAT)和Simulink之间的往返中保存CompuMethod单元和物理尺寸信息。金宝app
对于源自Simulink的设计,导出器为每个设计生成金宝app一个单元引用CompuMethod
.按照惯例,每个CompuMethod
引用一个名为NoUnit
.例如,这是一个布尔数据类型CompuMethod
以及它引用的单位。
< COMPU-METHOD UUID = "……" > <字>COMPU_BooleanTEXTTABLE /mymodel_pkg/mymodel_dt/NoUnit< / UNIT-REF >… compute - method > < unit uuid ="…"" > <字>NoUnit短名> < factor-si-to-unit >1 factor-si-to-unit > < offset-si-to-unit >0 offset-si-to-unit > unit >
为每个导出提供一个单元CompuMethod
有助于支持输金宝app出AUTOSAR数据的校准和测量工具的使用。
修改SCALE_LINEAR_AND_TEXTTABLE CompuMethod的线性缩放
您可以导入和导出使用线性和TEXTTABLE缩放的AUTOSAR CompuMethod。导入引用SCALE_LINEAR_AND_TEXTTABLE类别的CompuMethods的应用程序数据类型金宝app仿真软件。NumericType
或金宝app仿真软件。AliasType
Simulink工作空间中的数据对象。金宝app在Si金宝appmulink中,您可以修改CompuMethods的线性缩放。TEXTTABLE伸缩是只读的。
例如,这里有一个带有一个线性尺度和两个TEXTTABLE尺度的CompuMethod。
当您将CompuMethod导入模型时,导入器会创建一个金宝app仿真软件。NumericType
线性缩放。若要修改线性缩放,请打开金宝app仿真软件。NumericType
数据对象,并修改其字段。
要对TEXTTABLE缩放信息进行只读访问,请使用AUTOSAR属性得到
函数调用类似如下:
> > arProps = autosar.api.getAUTOSARProperties(“mySWC”);>> %获取COMPU_myType TEXTTABLE规模的字面量>> Get (arProps,'/simple_ar_package/simple_ar_dt/COMPU_myType','CellOfEnums') ans = 'SensorError' 'SignalNotAvailable' >> %获取COMPU_myType TEXTTABLE规模的内部值>> Get (arProps,'/simple_ar_package/simple_ar_dt/COMPU_myType','IntValues') ans = 350 351
为双比例参数配置合理函数CompuMethod
对于AUTOSAR双缩放参数(存储两个相同物理值的缩放值),软件生成CompuMethod
类别RAT_FUNC
.计算方法可以是一阶有理函数。
配置并生成一个双缩放参数:
打开一个AUTOSAR模型。对于本例,创建一个常数引用AUTOSAR双缩放参数的块。在模型中,连接常数块到Simulink输金宝app出端口。
打开模型数据编辑器(在建模选项卡上,单击模型数据编辑器),然后选择参数选项卡。的参数项常数块。使用价值列引用双缩放参数的名称。本例使用参数name
T1Rec
.创建
T1Rec
数据对象。在模型数据编辑器中,值的右侧T1Rec
,点击操作按钮并选择创建.2 .在“创建新数据”对话框中设置价值来
AUTOSAR。DualScaledParameter
并点击创建.一个AUTOSAR。DualScaledParameter
数据对象出现在基本工作区中。打开双缩放参数属性对话框。配置双缩放参数的属性
T1Rec
.执行以下MATLAB代码。该代码设置了从内部校准时间值到物理频率(时间倒数)值的转换。%从时间到频率的转换% f = 1/ tF = (0*T + 1)/(1*T+0);T1Rec。CompuMethodName =立方厘米的;指定AUTOSAR CompuMethod名称T1Rec。数据类型=“fixdt(1, 32岁,0.01,0)';T1Rec.CalToMainCompuNumerator = 1;T1Rec。CalToMainCompuDenominator=[1 0]; T1Rec.CalibrationMin = 0.001; T1Rec.CalibrationMax = 1.0; T1Rec.CalibrationValue = 0.1500; T1Rec.CoderInfo.StorageClass =“自定义”;T1Rec.CoderInfo。标识符='';T1Rec.CoderInfo。CustomStorageClass =“InternalCalPrm”;T1Rec.CoderInfo.CustomAttributes。PerInstanceBehavior =...由软件组件的所有实例共享的参数;T1Rec。描述='';% T1Rec。Min = [];% T1Rec。Max = [];T1Rec。单位='';T1Rec。CalibrationDocUnits =“m / s²”;
检查属性对话框中的双缩放参数
T1Rec
.下面是MATLAB代码设置的主要属性。这里是由MATLAB代码设置的校准属性。
如果
CompuMethod
在AUTOSAR属性中,方向还没有设置为双向,请使用AUTOSAR字典,XML选项视图,来设置它。从模型生成代码。
当您从模型生成代码时,ARXML导出器会生成一个CompuMethod
的类别RAT_FUNC
.
< COMPU-METHOD UUID = "……" > <字>立方厘米< /字> <目录>RAT_FUNC/mymodel_pkg/mymodel_dt/m_s_ < compute - internal - to - phys > < compute - scales > < compute - scale > < compute - rational - coeffs > < compute - numerator >-100 compute - numerator > < compute - denominator >0 -1 compute - scales > compute - scales > compute - internal - coeffs > < compute - physto - internal > < compute - scales > < compute - scale > < compute - rational - coeffs > < compute - numerator >100 compute - numerator > < compute -分母>0 < v >1 v > compute -分母> compute - rational - coeffs > compute - scale > compute - scales > compute - physics - internal > compute - method >
的CompuMethod
是否从为?生成的应用程序数据类型引用T1Rec
.
< APPLICATION-PRIMITIVE-DATA-TYPE UUID = "……" > <字>T1Rec_DualScaledVALUE < sw - calibre - access >READ-WRITE sw - calibre - access > < compute - method - ref DEST=" compute - method ">/mymodel_pkg/mymodel_dt/立方厘米 compute - method - ref > /mymodel_pkg/mymodel_dt/ApplDataTypes/ DataConstrs/DC_T1Rec_DualScaled
应用程序数据类型T1Rec_DualScaled
是否从参数数据原型中引用T1Rec
.
< PARAMETER-DATA-PROTOTYPE UUID = "……" > <字>T1Rec< sw - calibre - access >READ-WRITE sw - calibre - access > < sw - calibre - policy >STANDARD SW-DATA-DEF-PROPS- conditional > /mymodel_pkg/mymodel_dt/ApplDataTypes/T1Rec_DualScaled< / TYPE-TREF >…< / PARAMETER-DATA-PROTOTYPE >
相关的例子
- 将AUTOSAR XML描述导入Simulink金宝app
- 为组件、接口、CompuMethod或SwAddrMethod配置AUTOSAR包
- 配置AUTOSAR XML选项
- 配置AUTOSAR代码生成