主要内容

systemcomposer.profile.Stereotype

侧面刻板印象

描述

A.刻板印象对象表示System Composer™模型的概要文件中的构造型。

创建

向概要文件添加一个原型。

addStereotype(profile,“姓名”)

属性

全部展开

原型的名称,指定为字符向量。此属性必须是有效的®标识符。

例子:“硬件组件”

数据类型:烧焦

原型的描述文本,指定为字符向量。

数据类型:烧焦

原型的图标名,指定为字符向量。

例子:“默认”

例子:“应用程序”

例子:“频道”

例子:“控制器”

例子:“数据库”

例子:“魔鬼河”

例子:“记忆”

例子:“网络”

例子:“植物”

例子:“传感器”

例子:“子系统”

例子:“发射器”

数据类型:烧焦

原型从原型继承属性,指定为systemcomposer.profile.Stereotype对象

可以应用构造型的元素类型,指定为以下选项的字符向量:“组件”,“港口”,“连接器”“接口”.

数据类型:烧焦

刻板印象是否是抽象的,指定为逻辑的。如果符合事实的,则原型不能直接应用于模型元素,而是充当其他原型的父级。

数据类型:必然的

原型的限定名称,指定为表单中的字符向量.

数据类型:烧焦

组件标题颜色,指定为1x3uint32表单中的行向量[红绿蓝].

例子:[206 232 246]

数据类型:uint32

连接器线路颜色,指定为1x3uint32表单中的行向量[红绿蓝].

例子:[206 232 246]

数据类型:uint32

接头线样式名称,指定为字符向量。

例子:“默认”

例子:“点”

例子:“短跑”

例子:“破折号”

例子:“破折号圆点”

数据类型:烧焦

原型从中继承属性的原型配置文件,指定为systemcomposer.profile.profile对象

包含在原型中并从原型基础层次结构继承的属性,指定为字符向量的单元格数组。

数据类型:烧焦

原型中包含的所有属性,指定为字符向量的单元格数组或systemcomposer.profile.Property拥有的属性不包括从原型基础层次结构继承的属性。

数据类型:烧焦

目标函数

addProperty 为原型定义自定义属性
移除属性 从原型中删除属性
getDefaultElementStereotype 获取元素的默认构造型
setDefaultElementStereotype 设置元素的默认构造型
发现 按名称查找原型
摧毁 删除模型元素

例子

全部崩溃

使用System Composer以编程方式构建体系结构模型™.

构建模型

要构建模型,请添加包含数据接口、数据元素和值类型的数据字典,然后添加组件、端口和连接。将拥有的接口分配给端口。构建模型后,可以创建自定义视图以关注特定的注意事项。还可以根据指定的条件查询模型以收集不同的模型图元。

添加组件、端口、连接和接口

创建模型并提取其架构。

model=systemcomposer.createModel(“mobileRobotAPI”);arch=模型。架构;

创建接口数据字典并添加数据接口。向数据接口添加数据元素。向接口数据字典添加值类型。将数据元素的类型赋给值类型。将数据字典链接到模型。

字典= systemcomposer.createDictionary (“SensorInterfaces.sldd”);接口=dictionary.addInterface(“GPSInterface”);元素=接口。添加元素(“信号强度”);valueType=dictionary.addValueType(“信号强度类型”,“单位”,“dB”,“说明”,“GPS信号强度”); element.setType(valueType);链接字典(模型,“SensorInterfaces.sldd”);

将更改保存到接口数据字典。

dictionary.save

在“接口编辑器”中查看接口。

添加组件、端口和连接。将数据接口设置为稍后将连接的端口。

组件传感器=添加组件(拱,“传感器”); sensorPorts=addPort(componentSensor.Architecture{“运动数据”,“SensorData”},{“在”,“出去”});传感器端口(2)。设置接口(接口)组件规划=添加组件(arch,“规划”);planningport=addPort(componentPlanning.Architecture{“命令”,“SensorData1”,“MotionCommand”},{“在”,“在”,“出去”}); 规划端口(2).setInterface(interface)componentMotion=addComponent(arch,“动议”);motionPorts = addPort (componentMotion。架构,{“MotionCommand”,“运动数据”},{“在”,“出去”});

在服务器上创建一个拥有的接口“运动数据”端口。在拥有的数据接口下添加拥有的数据元素。分配数据元素"轮换“设置为单位的值类型.

ownedInterface=motionPorts(2)。createInterface(“DataInterface”);ownedElement=ownedInterface.addElement(“轮换”);子接口=ownedElement.createOwnedType(“单位”,“学位”);

在接口编辑器中查看接口。选择“运动数据”港口运动组件。在接口编辑器中,从字典视图港口界面视图.

使用接口规则和默认名称规则连接组件。接口规则连接共享相同接口的组件上的端口。默认情况下,名称规则连接共享相同名称的组件上的端口。

c_传感器数据=连接(拱、部件传感器、部件规划、,“规则”,“接口”);c_motionData =连接(拱门,componentMotion componentSensor);c_motionCommand =连接(拱门,componentPlanning componentMotion);

添加并连接体系结构端口

在架构上添加架构端口。

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

这个连接命令需要组件端口作为参数。获取组件端口,然后连接。

compPort=getPort(组件规划,“命令”); c_命令=连接(archPort,compPort);

保存模型。

model.save

打开模型。

systemcomposer.openModel (“mobileRobotAPI”);

通过pressıng安排布局Ctrl+Shift+A或使用此命令。

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

创建并应用带有原型的概要文件

配置文件是可应用于任何模型的XML文件。您可以向配置文件中添加具有属性的原型,然后使用特定值填充属性。除了System Composer的内置分析功能外,原型还可以帮助您优化系统的性能、成本和可靠性。

创建配置文件并添加原型

创建一个配置文件。

profile=systemcomposer.createProfile(“通用文件”);

创建一个应用于所有元素类型的原型。

elemSType=addStereotype(profile,“projectElement”);

为不同类型的组件创建原型。您可以根据设计需要选择这些类型。

pCompSType=addStereotype(profile,“物理组件”,“AppliesTo”,“组成部分”);sCompSType=addStereotype(profile,“软件组件”,“AppliesTo”,“组成部分”);

为连接创建一个原型。

sConnSType=addStereotype(profile,“标准连接”,“AppliesTo”,“连接器”);

添加属性

向原型添加属性。您可以使用属性捕获模型元素的元数据并分析非功能需求。这些属性将添加到导入配置文件的任何模型中应用原型的所有元素中。

addProperty(elemSType,“身份证”,“类型”,‘uint8’); addProperty(elemSType,“说明”,“类型”,“字符串”); addProperty(pCompSType,“成本”,“类型”,“双人”,“单位”,“美元”); addProperty(pCompSType,“重量”,“类型”,“双人”,“单位”,‘g’);添加属性(sCompSType,“develCost”,“类型”,“双人”,“单位”,“美元”);添加属性(sCompSType,“开发时间”,“类型”,“双人”,“单位”,“小时”); addProperty(sConnSType,“单位成本”,“类型”,“双人”,“单位”,“美元”); addProperty(sConnSType,“unitWeight”,“类型”,“双人”,“单位”,‘g’); addProperty(sConnSType,“长度”,“类型”,“双人”,“单位”,“我是);

保存配置文件

profile.save;

将配置文件应用于模型

将概要文件应用到模型。

applyProfile(型号,“通用文件”);

对组件应用原型。一些组件是物理组件,而另一些是软件组件。

applyStereotype (componentPlanning“GeneralProfile.softwareComponent”)applyStereotype(组件传感器,“GeneralProfile.physicalComponent”) applyStereotype (componentMotion“GeneralProfile.physicalComponent”)

将连接器原型应用于所有连接。

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

将通用元素原型应用于所有连接器和端口。

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

为每个组件设置属性。

设置属性(组件传感器,'GeneralProfile.projectElement.ID',“001”);设置属性(组件传感器、,“GeneralProfile.projectElement.Description”,“‘所有传感器的中央单元’”);设置属性(组件传感器、,'GeneralProfile.physicalComponent.Cost','200');设置属性(组件传感器、,'GeneralProfile.physicalComponent.Weight',“450”);setProperty(组件规划、,'GeneralProfile.projectElement.ID',“002”);setProperty(组件规划、,“GeneralProfile.projectElement.Description”,“电脑”计划);setProperty(组件规划、,“GeneralProfile.softwareComponent.develCost”,'20000');setProperty(组件规划、,“GeneralProfile.softwareComponent.develTime”,'300');设置属性(组件运动,'GeneralProfile.projectElement.ID',“003”);设置属性(组件运动,“GeneralProfile.projectElement.Description”,“电机和电机控制器”);设置属性(组件运动,'GeneralProfile.physicalComponent.Cost','4500');设置属性(组件运动,'GeneralProfile.physicalComponent.Weight','2500');

将连接属性设置为相同。

连接=[c_传感器数据c_运动数据c_运动命令c_命令];对于k=1:length(connections)setProperty(connections(k)),'通用配置文件.标准连接.单位成本','0.2');设置属性(连接(k),“GeneralProfile.standardConn.unitWeight”,“100”);设置属性(连接(k),'通用配置文件.标准连接长度',“0.3”);终止

添加层次结构

添加两个名为控制器范围内部运动组件。定义端口。应用连接器原型,将组件连接到体系结构,并相互连接。体系结构图中的层次结构创建了一个额外的详细级别,指定组件内部的行为方式。

motionArch = componentMotion.Architecture;motionController = motionArch.addComponent (“控制器”);controllerPorts = addPort (motionController。架构,{“控制”,“controlOut”},{“在”,“出去”});controllercomportin=motionController.getPort(“控制”);controllercomportout=motionController.getPort(“controlOut”);motionScope = motionArch.addComponent (“范围”);scopePorts = addPort (motionScope。架构,{“scopeIn”,“scopeOut”},{“在”,“出去”}); scopeCompPortIn=motionScope.getPort(“scopeIn”);scopeCompPortOut = motionScope.getPort (“scopeOut”);c_planningController =连接(motionPorts (1) controllerCompPortIn);%对于输出端口连接,必须指定接口元素c_planningScope =连接(scopeCompPortOut motionPorts (2),“DestinationElement”,“轮换”);c_planningConnect=connect(控制器端口、范围端口、,“GeneralProfile.standardConn”);

保存模型。

model.save

通过pressıng安排布局Ctrl+Shift+A或使用此命令。

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

创建模型参考

模型引用可以帮助您按层次组织大型模型,定义体系结构或行为,然后可以重用。当一个组件引用另一个模型时,该组件上的任何现有端口都将被删除,并且引用模型上存在的端口将显示在该组件上。

创建新的系统编写器模型。转换传感器组件转换为引用组件以引用新模型。要在传感器组件,则必须更新引用的模型“移动传感器”.

referenceModel = systemcomposer.createModel (“移动传感器”);referenceArch=referenceModel.Architecture;newComponents=addComponent(referenceArch,“电子传感器”);链接字典(参考模型,“SensorInterfaces.sldd”);referenceModel。保存linkToModel (componentSensor,“移动传感器”);

将原型应用于链接参考模型的体系结构和组件。

referenceModel.applyProfile (“通用文件”); referenceArch.applyStereotype(“GeneralProfile.softwareComponent”);BatchApplyStereType(referenceArch,“组件”,“GeneralProfile.projectElement”)

向参考组件添加端口和连接。

sensorPorts=addPort(componentSensor.Architecture{“运动数据”,“SensorData”},{“在”,“出去”});传感器端口(2)。设置接口(接口)连接(arch、组件传感器、组件规划、,“规则”,“接口”); 连接(拱、组件运动、组件传感器);

保存模型。

referenceModel.save model.save

制造变型部件

您可以将计划使用制造变量函数。原始组件作为可用的变体选择之一嵌入到变体组件中。您可以在变体组件中设计其他变体选择,并切换活动选择。变体组件允许您在架构模型中以编程方式选择行为设计,以执行交易研究和分析。

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

添加一个名为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+A或使用此命令。

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

保存模型。

model.save

清理

取消对该代码的注释并运行它来清理由该示例创建的工件。

%bdclose('mobileRobotAPI')%bdclose(‘移动传感器’)%S万博1manbetximulink.data.dictionary.closeAll% systemcomposer.profile.Profile.closeAll%删除(“Profile.xml”)%删除('SensorInterfaces.sldd')

更多关于

全部展开

在R2019a中引入