主要内容

createCompositionAsModel

创建 AUTOSAR ARXML 软件组合的 Simulink 表示

说明

[model,status] = createCompositionAsModel(ar,CompositionName) 创建一个与 AUTOSAR 原子软件组合 CompositionName 对应的 Simulink® 模型,并返回由 model 表示的模型句柄,以及由 status 表示的指示操作是否成功的状态。

组合描述是先前从 AUTOSAR XML (ARXML) 文件导入的 AUTOSAR 信息的一部分,这些文件由 arxml.importer 对象 ar 表示。导入器创建导入的 AUTOSAR 组合的初始 Simulink 表示。初始表示可作为起点来进行进一步的 AUTOSAR 配置和基于模型的设计。有关详细信息,请参阅 AUTOSAR ARXML 导入器

示例

[model,status] = createCompositionAsModel(ar,CompositionName,Name=Value) 使用一个或多个名称-值参量指定用于 Simulink 模型创建的其他选项。例如,要指示导入器将 AUTOSAR 周期性可运行实体建模为具有周期性速率的原子子系统,请将 ModelPeriodicRunnablesAs 设置为 "AtomicSubsystem"

示例

示例

全部折叠

从 ARXML 文件 ThrottlePositionControlComposition.arxml 导入 AUTOSAR 软件组合 /Company/Components/ThrottlePositionControlComposition,并创建该组合的一个初始 Simulink 表示。

openExample("ThrottlePositionControlComposition.arxml");
ar = arxml.importer("ThrottlePositionControlComposition.arxml");
names = getComponentNames(ar,"Composition")
names =
  1×1 cell array
    {'/Company/Components/ThrottlePositionControlComposition'}
createCompositionAsModel(ar,"/Company/Components/ThrottlePositionControlComposition");

从 ARXML 文件 mySWCs.arxml 导入 AUTOSAR 软件组合 /pkg/rootComposition 并创建该组合的一个初始 Simulink 表示。对于组合内包含的组件 mySwc1mySwc2,使用现有 Simulink 组件模型而不是创建新模型。

ar = arxml.importer("mySWCs.arxml")
createCompositionAsModel(ar,"/pkg/rootComposition",ComponentModels={"mySwc1","mySwc2"})

从 ARXML 文件 mySWCs.arxml 导入 AUTOSAR 软件组合 /pkg/rootComposition 并创建该组合的一个初始 Simulink 表示。将与 AUTOSAR 数据类型对应的 Simulink 数据对象导入数据字典 ardata.sldd

ar = arxml.importer("mySWCs.arxml")
createCompositionAsModel(ar,"/pkg/rootComposition",DataDictionary="ardata.sldd")

从 ARXML 文件 ThrottlePositionControlComposition.arxml 导入 AUTOSAR 软件组合 /Company/Components/ThrottlePositionControlComposition,并创建该组合的一个初始 Simulink 表示。

对于每个导入的组件,导入器将可共享的 AUTOSAR 组件属性(例如接口和数据类型)存储在数据字典 ardata.sldd 中。然后,组合内的组件可以共享存储的属性。

openExample("ThrottlePositionControlComposition.arxml");
ar = arxml.importer("ThrottlePositionControlComposition.arxml")
createCompositionAsModel(ar,"/Company/Components/ThrottlePositionControlComposition",...
    ModelPeriodicRunnablesAs="Auto",...
    DataDictionary="ardata.sldd",ShareAUTOSARProperties=true);

要查看共享属性,请打开组件模型的 AUTOSAR 字典。此示例打开 ThrottlePositionSensor。展开 AUTOSAR 字典节点 ardata.sldd。您可以查看只读属性,例如共享组件接口,并修改用于组合和组件导出的 XML 选项。

autosar_ui_launch("ThrottlePositionSensor")

AUTOSAR Dictionary dialog box. The ardata.sldd node is expanded.

从 ARXML 文件 mySWCs.arxml 导入 AUTOSAR 软件组合 /pkg/rootComposition 并创建该组合的一个初始 Simulink 表示。将 AUTOSAR 周期性可运行实体建模为具有周期性速率的函数调用子系统。

ar = arxml.importer("mySWCs.arxml")
createCompositionAsModel(ar,"/pkg/rootComposition",...
  ModelPeriodicRunnablesAs="FunctionCallSubsystem")

从 ARXML 文件 mySWCs.arxml 导入 AUTOSAR 软件组合 /pkg/rootComposition 并创建该组合的一个初始 Simulink 表示。使用预定义变体 Senior 在模型创建时解析组件中的变化点。

ar = arxml.importer("mySWCs.arxml")
createCompositionAsModel(ar,"/pkg/rootComposition",...
  PredefinedVariant="/pkg/body/Variants/Senior");

从 ARXML 文件 mySWCs.arxml 导入 AUTOSAR 软件组合 /pkg/rootComposition 并创建该组合的一个初始 Simulink 表示。使用系统常量值 AB 在模型创建时解析组件中的变化点。

ar = arxml.importer("mySWCs.arxml")
createCompositionAsModel(ar,"/pkg/rootComposition",...
  SystemConstValueSets={'/pkg/body/SystemConstantValues/A','/pkg/body/SystemConstantValues/B'});

输入参数

全部折叠

先前从 ARXML 文件导入的 AUTOSAR 信息,指定为 arxml.importer 对象句柄。

软件组合的绝对短名称路径,指定为字符向量或字符串标量。

示例: "/Company/Powertrain/Components/RootComposition"

名称-值参数

全部折叠

将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

示例: createCompositionAsModel(ar,"/pkg/rootComposition",ModelPeriodicRunnablesAs="AtomicSusbsytem")

现有原子软件组件模型的名称(在创建组合的 Simulink 表示时使用),指定为字符向量元胞数组或字符串数组。函数将指定的现有组件模型纳入组合模型中,而不是创建新模型。

示例: ComponentModels={"mySwc1","mySwc2"}

将 ARXML 文件中对应于 AUTOSAR 数据类型的数据对象导入的 Simulink 数据字典,指定为字符向量或字符串标量。如果指定的字典不存在,导入器会创建它。然后将模型链接到该数据字典。

如果您为 ShareAUTOSARProperties 名称-值参量指定 true,则指定的数据字典还存储可共享的 AUTOSAR 组件属性,例如接口和数据类型,以便在组合内的组件之间共享。

示例: DataDictionary="ardata.sldd"

周期性可运行实体的子系统类型,指定为 "AtomicSubsystem""FunctionCallSubsystem""Auto"

默认情况下,createCompositionAsModel 导入在 ARXML 文件中找到的 AUTOSAR 周期性可运行实体,并尝试将其建模为具有周期性速率的原子子系统。如果条件阻止使用原子子系统,则函数会将周期性可运行实体建模为具有周期性速率的函数调用子系统。

要仅将周期性可运行实体建模为原子子系统,请指定 "AtomicSubsystem"。如果条件阻止使用原子子系统,函数会抛出错误。

要仅将周期性可运行实体建模为函数调用子系统,请指定 "FunctionCallSubsystem"

有关详细信息,请参阅导入具有多个可运行实体的 AUTOSAR 软件组件

示例: ModelPeriodicRunnablesAs="AtomicSubsystem"

ARXML 文件中预定义变体的路径。预定义变体描述要应用于 AUTOSAR 软件组件的可能多个有效系统常量值组合之一。使用此参量在模型创建时解析 AUTOSAR 软件组件中的变化点。如果指定,导入器将使用预定义变体来初始化作为控制变化点输入的软件系统常量数据。

有关详细信息,请参阅Control AUTOSAR Variants with Predefined Value Combinations

示例: PredefinedVariant="/pkg/body/Variants/Senior"

将 AUTOSAR 组件属性添加到共享数据字典的选项,指定为数值或逻辑值 1 (true) 或 0 (false)。要共享 AUTOSAR 组件属性,请将 ShareAUTOSARProperties 指定为 true,并通过使用 DataDictionary 名称-值参量指定 Simulink 数据字典。对于每个导入的组件,该函数将可共享的 AUTOSAR 组件属性(例如接口和数据类型)存储在通过使用 DataDictionary 名称-值参量指定的 Simulink 数据字典中。

在 Simulink 数据字典中共享存储的 AUTOSAR 组件属性可以提高 AUTOSAR 组合建模中常见任务的性能。一旦组件属性存储在数据字典中,组合内的组件就可以共享那些存储的属性。对于包含 20 个以上软件组件的组合,在组件之间共享 AUTOSAR 属性可以显著提高组合工作流的性能,包括导入、字典导航、AUTOSAR 验证和代码生成。限制组件之间的属性复制还可以减小组件模型文件大小。

AUTOSAR 字典提供了一个用于查看和配置 AUTOSAR 组合和组件属性的中心位置。您可以查看只读属性,例如共享组件接口,并修改用于组合和组件导出的 XML 选项。

有关详细信息,请参阅导入 AUTOSAR 组合并共享 AUTOSAR 字典

示例: ShareAUTOSARProperties=true

在 ARXML 文件中定义的一个或多个系统常量值集的路径,指定为字符向量元胞数组或字符串数组。系统常量值集指定要应用于 AUTOSAR 软件组件的一组系统常量值。使用此参量在模型创建时解析 AUTOSAR 软件组件中的变化点。如果指定,导入器将使用系统常量值集初始化作为控制变化点输入的软件系统常量数据。

有关详细信息,请参阅Control AUTOSAR Variants with Predefined Value Combinations

示例: SystemConstValueSets={'/pkg/body/SystemConstantValues/A','/pkg/body/SystemConstantValues/B'}

将客户端-服务器端口作为 Simulink 函数端口导入的选项,指定为数值或逻辑值 1 (true) 或 0 (false)。

  • true - 使用作用域限于端口的 Simulink 函数和函数调用方。

  • false - 使用全局 Simulink 函数和函数调用方。

示例: UseFunctionPorts=true

数据类型: logical

将 AUTOSAR 数据类型作为 Simulink.ValueType 数据类型对象导入的选项,指定为数值或逻辑值 1 (true) 或 0 (false)。

示例: UseValueTypes=true

数据类型: logical

输出参量

全部折叠

对应于指定 AUTOSAR 软件组合 CompositionName 的模型的句柄。

导入的成功或失败状态,返回为以下值之一:

  • true - 导入成功。

  • false - 导入不成功。

提示

如果调用 arxml.importer 对象函数时未使用终止分号,导入器会列出指定 ARXML 文件的 AUTOSAR 内容。这些信息包括 AUTOSAR 包结构中软件组件的路径,您可以在调用 importFromARXMLcreateComponentAsModel 时指定这些路径。

版本历史记录

在 R2017b 中推出

全部展开