主要内容

systemcomposer.arch.Component

类代表组件

描述

组件类代表一个组件在一个架构模型。这个类继承自systemcomposer.arch.BaseComponent。这个类是来自systemcomposer.arch.Element

创建

创建一个组件在一个架构模型。

模型= systemcomposer.createModel (“archModel”);拱= get(模型,“架构”);组件= addComponent(拱门,“newComponent”);

属性

全部展开

组件的名称,指定为一个特征向量。

例子:“newComponent”

数据类型:字符

处理父母架构拥有组件,指定为一个systemcomposer.arch.Architecture对象。

架构定义了组件结构,指定为一个systemcomposer.arch.Architecture对象。为组件引用不同的体系结构模型,该属性返回一个句柄根体系结构的模型。对于不同的组件,架构是活跃的变体。

架构组件拥有指定为一个systemcomposer.arch.Architecture对象。对于参考架构的组件,这个属性是空的。对于不同的组件,这个属性是单个变体的架构组件驻留。

一系列组件端口,指定为数组systemcomposer.arch.ComponentPort对象。

一系列组件端口,指定为数组systemcomposer.arch.ComponentPort对象。参考组件,这个属性是空的。

组件的位置在画布上,指定为一个向量的坐标,以像素为单位(左右上角底)

如果连接组件模型组件的引用,指定为一个特征向量。

数据类型:字符

组件是否适配器,指定为一个逻辑1 (真正的)或0 ()。

数据类型:逻辑

通用模型组件的惟一标识符,指定为一个特征向量。

例子:91 d5de2c-b14c-4c76-a5d6-5dd0037c52df

数据类型:字符

独特的外部标识符指定为一个特征向量。外部ID是保存在元素的寿命和保存的所有操作UUID

数据类型:字符

父组件模型,指定为一个systemcomposer.arch.Model对象。

万博1manbetx仿真软件处理组件,指定为一个数值。这个属性是必需的几个模型api使用仿真软件相关工作流程和要求。万博1manbetx

例子:处理=得到(对象,“SimulinkHan万博1manbetxdle”)

数据类型:

万博1manbetx动态仿真模块句柄父组件模型,指定为一个数值。这个属性是必需的几个模型api使用仿真软件相关工作流程和要求。万博1manbetx

例子:处理=得到(对象,“SimulinkMod万博1manbetxelHandle”)

数据类型:

对象的功能

saveAsModel 保存组件分离模型的体系结构
create万博1manbetxSimulinkBehavior 创建模型的行为万博1manbetx和链接组件
createStateflowChartBehavior 添加Stateflow图表组件的行为
linkToModel 链接组件模型
inlineComponent 内联参考体系结构或行为模式
makeVariant 转换组件变体的选择
isReference 找到另一个模型如果组件引用
连接 创建架构模型连接
getPort 获得组件的端口
applyStereotype 应用原型架构模型元素
getStereotypes 得到原型应用于元素的建筑模型
removeStereotype 从模型元素删除刻板印象
setProperty 设置属性值对应于原型应用于元素
getProperty 得到属性值对应于原型应用于元素
getPropertyValue 建筑的属性值
getEvaluatedPropertyValue 从组件的属性评估值
getStereotypeProperties 让原型属性名的元素
摧毁 删除模型元素

例子

全部折叠

这个例子展示了如何构建一个使用系统架构模型作曲家™API。

准备工作空间

清除所有的概要文件工作区。

systemcomposer.profile.Profile.closeAll;

建立一个模型

建立一个模型,添加一个数据字典,接口和界面元素,然后添加组件,港口,和连接。模型建立后,您可以创建自定义视图关注一个特定的问题。你也可以查询模型收集不同的模型元素根据您指定的标准。

添加组件、端口和连接

创建模型,提取其架构。

模型= systemcomposer.createModel (“mobileRobotAPI”);拱= model.Architecture;

创建数据字典和添加一个接口。链接的接口模型。

字典= systemcomposer.createDictionary (“SensorInterfaces.sldd”);界面= addInterface(字典,“GPSInterface”);interface.addElement (“质量”);linkDictionary(模型,“SensorInterfaces.sldd”);

添加组件、端口和连接。端口设置界面,稍后您将连接。

组件= addComponent(拱门,{“传感器”,“规划”,“运动”});(1).Architecture sensorPorts = addPort(组件,{“MotionData”,“SensorData”},{“在”,“出”});sensorPorts (2) .setInterface(接口);(2).Architecture planningPorts = addPort(组件,{“命令”,“SensorData1”,“MotionCommand”},{“在”,“在”,“出”});planningPorts (2) .setInterface(接口);(3).Architecture motionPorts = addPort(组件,{“MotionCommand”,“MotionData”},{“在”,“出”});

连接组件与一个接口规则。这条规则连接端口组件共享相同的接口。

c_sensorData =连接(拱门,组件(1),组件(2),“规则”,“接口”);c_motionData =连接(拱、组件(3),组件(1));c_motionCommand =连接(拱门,组件(2),组件(3));

保存数据字典

将更改保存到数据字典。

dictionary.save ();

添加和连接端口的体系结构

添加一个架构港口体系结构。

archPort = addPort(拱门,“命令”,“在”);

连接命令需要一个组件端口作为参数。获取组件端口和连接:

compPort = getPort(组件(2),“命令”);c_Command =连接(archPort compPort);

保存模型。

保存(模型)

打开模型

open_system (gcs);

由pressıng安排布局Ctrl + Shift +一个或使用下面的命令:

万博1manbetxSimulink.BlockDiagram.arrangeSystem (“mobileRobotAPI”);

创建和应用概要文件和刻板印象

概要文件xml文件,可以应用于任何模型。你可以添加构造型属性配置文件,然后填充属性与特定的值。随着系统分析作曲家的内置功能,刻板印象可以引导您的系统的优化性能,成本和可靠性。

创建一个配置文件,添加构造型

创建一个概要文件。

形象= systemcomposer.createProfile (“GeneralProfile”);

创建一个原型,它适用于所有元素类型:

elemSType = addStereotype(概要文件,“projectElement”);

为不同类型的组件创建原型。这些类型是由设计需求和在你的自由裁量权:

pCompSType = addStereotype(概要文件,“physicalComponent”,“AppliesTo”,“组件”);sCompSType = addStereotype(概要文件,“softwareComponent”,“AppliesTo”,“组件”);

创建一个连接的刻板印象:

sConnSType = addStereotype(概要文件,“standardConn”,“AppliesTo”,“连接器”);

添加属性

添加属性的刻板印象。您可以使用属性来获取元数据模型元素和分析非功能性需求。这些属性被添加到所有的原型所应用的元素,在任何进口这个概要文件的模型。

addProperty (elemSType“ID”,“类型”,“uint8”);addProperty (elemSType“描述”,“类型”,“字符串”);addProperty (pCompSType“成本”,“类型”,“双”,“单位”,“美元”);addProperty (pCompSType“重量”,“类型”,“双”,“单位”,‘g’);addProperty (sCompSType“develCost”,“类型”,“双”,“单位”,“美元”);addProperty (sCompSType“develTime”,“类型”,“双”,“单位”,“小时”);addProperty (sConnSType“unitCost”,“类型”,“双”,“单位”,“美元”);addProperty (sConnSType“unitWeight”,“类型”,“双”,“单位”,‘g’);addProperty (sConnSType“长度”,“类型”,“双”,“单位”,“米”);

保存配置文件

保存(配置文件);

概要文件应用到模型

这个概要文件应用到模型:

applyProfile(模型,“GeneralProfile”);

对组件应用的刻板印象。一些组件物理组件,其他软件组件。

applyStereotype(组件(2),“GeneralProfile.softwareComponent”)applyStereotype(组件(1),“GeneralProfile.physicalComponent”(3)applyStereotype(组件),“GeneralProfile.physicalComponent”)

适用于所有连接的连接器刻板印象:

batchApplyStereotype(拱,“连接器”,“GeneralProfile.standardConn”);

一般元素原型应用于所有连接器和港口:

batchApplyStereotype(拱,“组件”,“GeneralProfile.projectElement”);batchApplyStereotype(拱,“连接器”,“GeneralProfile.projectElement”);

设置属性为每个组件:

setProperty(组件(1),“GeneralProfile.projectElement.ID”,“001”);setProperty(组件(1),“GeneralProfile.projectElement.Description”,“中央单位对所有传感器”);setProperty(组件(1),“GeneralProfile.physicalComponent.Cost”,“200”);setProperty(组件(1),“GeneralProfile.physicalComponent.Weight”,“450”);setProperty(组件(2),“GeneralProfile.projectElement.ID”,“002”);setProperty(组件(2),“GeneralProfile.projectElement.Description”,“电脑”计划);setProperty(组件(2),“GeneralProfile.softwareComponent.develCost”,“20000”);setProperty(组件(2),“GeneralProfile.softwareComponent.develTime”,“300”);setProperty(组件(3),“GeneralProfile.projectElement.ID”,“003”);setProperty(组件(3),“GeneralProfile.projectElement.Description”,“马达和电动机控制器”);setProperty(组件(3),“GeneralProfile.physicalComponent.Cost”,“4500”);setProperty(组件(3),“GeneralProfile.physicalComponent.Weight”,“2500”);

设置连接的属性是相同的:

连接= [c_sensorData c_motionData c_motionCommand c_Command];k = 1:长度(连接)setProperty(连接(k),“GeneralProfile.standardConn.unitCost”,“0.2”);setProperty(连接(k),“GeneralProfile.standardConn.unitWeight”,“100”);setProperty(连接(k),“GeneralProfile.standardConn.length”,“0.3”);结束

添加层次结构

添加两个组件命名控制器范围运动组件。定义的端口。将它们连接到架构和,一个连接器原型应用。层次架构图中创建了一个额外的详细级别指定组件内部是如何表现的。

motionArch =组件(3).Architecture;运动= motionArch.addComponent ({“控制器”,“范围”});(1).Architecture controllerPorts = addPort(运动,{“controlIn”,“controlOut”},{“在”,“出”});(1).getPort (controllerCompPortIn =运动“controlIn”);(1).getPort (controllerCompPortOut =运动“controlOut”);(2).Architecture scopePorts = addPort(运动,{“scopeIn”,“scopeOut”},{“在”,“出”});(2).getPort (scopeCompPortIn =运动“scopeIn”);(2).getPort (scopeCompPortOut =运动“scopeOut”);c_planningController =连接(motionPorts (1) controllerCompPortIn);c_planningScope =连接(scopeCompPortOut motionPorts (2));c_planningConnect =连接(controllerCompPortOut scopeCompPortIn,“GeneralProfile.standardConn”);

保存模型。

保存(模型)

由pressıng安排布局Ctrl + Shift +一个或使用下面的命令:

万博1manbetxSimulink.BlockDiagram.arrangeSystem (“mobileRobotAPI /运动”);

创建一个模型参考

组织大型模型层级模型引用是有用和允许您定义架构或行为一旦和重用它。当一个组件引用另一个模型时,组件上的任何现有的港口和港口存在在引用的模型会出现在组件。

创建一个新的系统作曲家模型。转换传感器组件到组件引用新模型的引用。添加额外的端口传感器组件,您必须更新参考模型mobileSensor

newModel = systemcomposer.createModel (“mobileSensor”);newArch = newModel.Architecture;newComponents = addComponent (newArch,“ElectricSensor”);保存(newModel);linkToModel(组件(1),“mobileSensor”);

应用一个刻板印象与参考模型的体系结构和组件。

referenceModel = get_param (“mobileSensor”,“SystemComposerModel”);referenceModel.applyProfile (“GeneralProfile”);referenceModel.Architecture.applyStereotype (“GeneralProfile.softwareComponent”);batchApplyStereotype (referenceModel.Architecture“组件”,“GeneralProfile.projectElement”)

添加端口和连接组件的引用。

(1).Architecture sensorPorts = addPort(组件,{“MotionData”,“SensorData”},{“在”,“出”});sensorPorts (2) .setInterface(接口)连接(拱、组件(1),(2)组件,“规则”,“接口”);连接(拱门,组件(3),组件(1));

保存模型。

保存(referenceModel)保存(模型)

做一个变体组件

你可以转换规划组件到组件使用一个变体makeVariant函数。原始组件嵌入组件作为一个变体的选择一个可用的变体。你可以设计变体组件内的其他变体的选择和切换活动的选择。变体组件允许您以编程方式选择行为设计的结构模型来执行研究和分析。

[variantComp, choice1] = makeVariant(组件(2));

添加一个额外的变量选择命名PlanningAlt。第二个参数定义了名称和第三个参数定义了标签。标签标识的选择。主动选择控制的标签。

choice2 = addChoice (variantComp, {“PlanningAlt”},{“PlanningAlt”});

创建必要的端口上PlanningAlt

setActiveChoice (variantComp choice2) planningAltPorts = addPort (choice2.Architecture, {“命令”,“SensorData1”,“MotionCommand”},{“在”,“在”,“出”});planningAltPorts (2) .setInterface(接口);

使PlanningAlt活跃的变体。

setActiveChoice (variantComp“PlanningAlt”)

由pressıng安排布局Ctrl + Shift +一个或使用下面的命令:

万博1manbetxSimulink.BlockDiagram.arrangeSystem (“mobileRobotAPI /规划”);

保存模型。

保存(模型)

清理

取消注释以下代码并运行清理的工件由这个例子:

% bdclose (“mobileRobotAPI”)% bdclose (“mobileSensor”)% 万博1manbetxSimulink.data.dictionary.closeAll% systemcomposer.profile.Profile.closeAll%删除(“Profile.xml”)%删除(“SensorInterfaces.sldd”)

更多关于

全部展开

介绍了R2019a