主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

程序化创建和管理分配

此示例展示了如何使用分配编辑器和编程接口创建和管理 System Composer™ 分配。

在系统工程中,架构系统通常在不同层次上进行描述。功能架构 [1] 描述了系统的高度函数。逻辑架构 [2] 描述了系统的逻辑组件以及它们之间如何交换数据。您可以使用分配来建立从功能组件到逻辑组件的关系,并指示部署策略。

  • 分配建立从一个模型中的架构元素(组件、端口和连接器)到另一个模型中的架构元素的有向关系。通过基于资源的分配,您可以将功能架构元素分配给逻辑架构元素,以及将逻辑架构元素分配给物理架构元素。

  • 分配方案包含源模型和目标模型之间的一组分配关系。在分配方案中的模型元素之间进行分配。默认分配方案称为 Scenario 1

  • 分配集由一个或多个分配方案组成,这些分配方案描述源模型和目标模型之间的各种分配关系。分配编辑器中创建包含分配方案的分配集。分配集保存为 MLDATX 文件。

要交互式地创建分配,请参阅交互式创建和管理分配

提示

要了解更多关于 System Composer 概念在系统工程设计中的应用,请参阅System Composer 概念

使用轮胎压力监测系统创建和管理分配

此示例使用轮胎压力监测系统 (TPMS) 工程。要打开工程,请使用此命令。

openProject("scExampleTirePressureMonitorSystem");

创建新的分配集

您可以使用分配编辑器创建一个分配集。在此示例中,TPMS_FunctionalArchitecture.slx 是源模型,TPMS_LogicalArchitecture.slx 是目标模型。

要为这些模型创建分配集,请使用此命令。

allocSet = systemcomposer.allocation.createAllocationSet(...
    'FunctionalToLogical', ...% Name of the allocation set
    'TPMS_FunctionalArchitecture', ... % Source model
    'TPMS_LogicalArchitecture' ... % Target model
     );

要查看分配集,请使用以下命令打开分配编辑器

systemcomposer.allocation.editor

在两个模型之间创建分配

此示例展示了如何在 TPMS 工程中通过编程在两个模型之间创建分配。

获取功能架构模型中用于报告函数的 systemcomposer.arch.Component 对象。

functionalArch = systemcomposer.loadModel('TPMS_FunctionalArchitecture'); 
reportLevels = functionalArch.lookup('Path',...
    'TPMS_FunctionalArchitecture/Report Tire Pressure Levels'); 
reportLow = functionalArch.lookup('Path',...
    'TPMS_FunctionalArchitecture/Report Low Tire Pressure');

获取逻辑架构模型中 TPMS 报告系统组件的 systemcomposer.arch.Component 对象。

logicalArch = systemcomposer.loadModel('TPMS_LogicalArchitecture');
reportingSystem = logicalArch.lookup('Path',...
    'TPMS_LogicalArchitecture/TPMS Reporting System');

在默认场景中创建分配。

defaultScenario = allocSet.getScenario('Scenario 1');
alloc = defaultScenario.allocate(reportLevels,reportingSystem);
defaultScenario.allocate(reportLow,reportingSystem);

您还可以选择删除低轮胎压力报告与报告系统之间的分配。

% defaultScenario.deallocate(reportLow,reportingSystem);

在分配中使用构造型

此示例展示了如何通过编程将构造型应用于分配,以及如何使用构造型对分配进行参数化。

allocSet.applyProfile("TPMSProfile")
alloc.applyStereotype("TPMSProfile.FunctionalAllocation")
setProperty(alloc,"TPMSProfile.FunctionalAllocation.IsImplemented","true")

参考

[1] Carter, Jeffrey. “Functional Architecture.” Guide to the Systems Engineering Body of Knowledge (SEBoK) v. 2.7, released October 31, 2022. https://sebokwiki.org/wiki/Functional_Architecture.

[2] Faisandier, Alan, Garry Roedler, and Rick Adcock. “Logical Architecture.” Guide to the Systems Engineering Body of Knowledge (SEBoK) v. 2.7, released October 31, 2022. https://sebokwiki.org/wiki/Logical_Architecture.

另请参阅

对象

函数

主题