主要内容

systemcomposer.arch.BasePort

架构模型中的所有端口

描述

一个BasePort对象不能被构造。创建一个systemcomposer.arch.architectureport.或者一个systemcomposer.arch.ComponentPort对象。的systemcomposer.arch.BasePort类派生自systemcomposer.arch.Element

属性

展开全部

端口的名称,指定为字符向量。

例子:“新港”

数据类型:char

端口方向,指定为字符向量。

数据类型:char

拥有端口的体系结构,指定为systemcomposer.arch.Architecture对象。

与端口相关联的接口名称,指定为字符向量。

数据类型:char

与端口关联的接口,指定为systemcomposer.interface.DataInterfacesystemcomposer。ValueType对象。

端口连接器,指定为数组systemcomposer.arch.Connectorsystemcomposer.arch.PhysicalConnector对象。

端口是否有连接,指定为逻辑。

数据类型:逻辑

模型端口的通用唯一标识符,指定为字符向量。

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

数据类型:char

唯一的外部标识符,指定为字符向量。外部ID在模型端口的整个生命周期和所有保存uuid.

数据类型:char

父System Composer™端口模型,指定为systemcomposer.arch.Model对象。

金宝app®港口处理,指定为a双倍的.这个属性对于几个与Simulink相关的工作流和使用是必要的金宝app金宝app仿真软件需求™api。

例子:处理=得到(对象,“SimulinkHan金宝appdle”)

数据类型:双倍的

金宝appSimulink句柄到父System Composer模型的端口,指定为双倍的.这个属性对于几个与Simulink相关的工作流和使用是必要的金宝app金宝app仿真软件的需求api。

例子:处理=得到(对象,“SimulinkMod金宝appelHandle”)

数据类型:双倍的

对象的功能

getProperty. 获取应用于元素的原型对应的属性值
setProperty. 设置应用于元素的原型对应的属性值
getPropertyValue 获得建筑产权的价值
getEvaluatedPropertyValue 从组件获取属性的值
getStereotypeProperties 获取元素上的构造型属性名
applyStereotype 将原型应用到架构模型元素
getstereotypes. 获取应用于架构模型元素的原型
removeStereotype 从模型元素中移除原型
hastereotype. 查找元素是否应用了原型
hasProperty 查找元素是否有属性
破坏 删除模型元素

例子

全部折叠

使用System Composer™以编程方式构建架构模型。

构建模型

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

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

创建模型并提取其架构。

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

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

字典= systemcomposer.createDictionary (“SensorInterfaces.sldd”);界面= dictionary.addInterface (“gpsinterface”);元素= interface.addElement (“SignalStrength”);valueType = dictionary.addValueType (“SignalStrengthType”'单位'“数据库”“描述”GPS信号强度的);element.setType (valueType);linkDictionary(模型,“SensorInterfaces.sldd”);

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

dictionary.save

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

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

componentSensor = addComponent(拱门,“传感器”);SensorPorts = Addport(ComponentSensor.architecture,{'motiondata'“SensorData”},{“在”“出”});sensorPorts(2).setInterface(interface) = addComponent(arch,“规划”);planningPorts = addPort (componentPlanning。架构,{“命令”“SensorData1”“MotionCommand”},{“在”“在”“出”});planingports (2).setInterface(interface) = addComponent(arch,“运动”);motionPorts = addPort (componentMotion。架构,{“MotionCommand”'motiondata'},{“在”“出”});

控件上创建拥有的接口'motiondata'端口。在拥有的数据接口下添加拥有的数据元素。分配数据元素"旋转”与单位设置为的值类型degr

ownedInterface = motionPorts (2) .createInterface (“DataInterface”);ownedElement = ownedInterface.addElement (“旋转”);subinterface = sureedelement.createownedtype('单位'“度”);

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

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

c_sensorData =连接(拱门,componentSensor componentPlanning,'规则'“接口”);c_motiondata = connect(arch,componentmotion,componentsensor);c_motioncommand = connect(arch,componentplanning,componentmotion);

添加和连接架构端口

在体系结构上添加一个体系结构端口。

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

连接命令需要一个组件端口作为参数。获取部件端口,进行连接。

compPort = getPort (componentPlanning,“命令”);c_command = Connect(Archport,Compport);

保存模型。

模型.Save.

打开模型。

systemcomposer.openModel (“mobileRobotAPI”);

按Pressıng安排布局ctrl + shift + a或者使用这个命令。

金宝appSimulink.BlockDiagram.arrangeSystem ('Mobilerobotapi');

用刻板印象创建和应用个人资料

概要文件是可以应用于任何模型的XML文件。您可以将带有属性的原型添加到概要文件中,然后用特定的值填充属性。与System Composer的内置分析功能一起,构造型帮助您优化系统的性能、成本和可靠性。

创建概要文件和添加原型

创建配置文件。

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

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

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

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

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

为连接创建一个模板。

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

添加属性

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

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

保存配置文件

profile.save;

将配置文件应用于模型

将概要文件应用到模型。

applyProfile(模型,“GeneralProfile”);

将原型应用于组件。有些组件是物理组件,有些则是软件组件。

applyStereotype (componentPlanning“GeneralProfile.softwareComponent”) applyStereotype (componentSensor“GeneralProfile.physicalComponent”) applyStereotype (componentMotion“GeneralProfile.physicalComponent”

将连接器刻板印象应用于所有连接。

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

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

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

为每个组件设置属性。

setProperty (componentSensor“GeneralProfile.projectElement.ID”“001”);setProperty (componentSensor“GeneralProfile.projectElement.Description”“‘所有传感器的中央单元’”);setProperty (componentSensor“GeneralProfile.physicalComponent.Cost”'200');setProperty (componentSensor“GeneralProfile.physicalComponent.Weight”“450”);setProperty (componentPlanning“GeneralProfile.projectElement.ID”“002”);setProperty (componentPlanning“GeneralProfile.projectElement.Description”''''计划电脑'');setProperty (componentPlanning“GeneralProfile.softwareComponent.develCost”“20000”);setProperty (componentPlanning“GeneralProfile.softwareComponent.develTime”'300');setProperty (componentMotion“GeneralProfile.projectElement.ID”“003”);setProperty (componentMotion“GeneralProfile.projectElement.Description”“电机及电机控制器”);setProperty (componentMotion“GeneralProfile.physicalComponent.Cost”“4500”);setProperty (componentMotion“GeneralProfile.physicalComponent.Weight”“2500”);

设置连接的属性以相同。

连接= [c_sensorData c_motionData c_motionCommand c_Command];setProperty(connections(k)) = 1:length(connection)“GeneralProfile.standardConn.unitCost”'0.2');setProperty(连接(k),'generalprofile.standardconn.unitweight'“100”);setProperty(连接(k),“GeneralProfile.standardConn.length”'0.3');结束

添加层次结构

添加两个组件控制器范围运动组件。定义端口。将组件连接到体系结构,彼此,应用连接器刻板印象。架构图中的层次结构创建了一种额外的详细信息,指定组件在内部的行为方式。

motionArch = componentMotion.Architecture;motionController = motionArch.addComponent (“控制器”);controllerPorts = addPort (motionController。架构,{“controlIn”“controlOut”},{“在”“出”});ControllerCompportin = MotionController.getPort(“controlIn”);controllerCompPortOut = motionController.getPort (“controlOut”);motionScope = motionArch.addComponent (“范围”);scopePorts = addPort (motionScope。架构,{“scopeIn”“scopeOut”},{“在”“出”});scopeCompPortIn = motionScope.getPort (“scopeIn”);scopeCompPortOut = motionScope.getPort (“scopeOut”);c_planningcontroller = connect(MotionPorts(1),ControllerCompportin);%对于输出连接,必须指定接口元素c_planningScope =连接(scopeCompPortOut motionPorts (2),“DestinationElement”“旋转”);c_planningConnect =连接(controllerCompPortOut scopeCompPortIn,“GeneralProfile.standardConn”);

保存模型。

模型.Save.

按Pressıng安排布局ctrl + shift + a或者使用这个命令。

金宝appSimulink.BlockDiagram.arrangeSystem ('mobilerobotapi / motion');

创建模型参考

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

创建一个新的System Composer模型。转换传感器组件转换为引用组件以引用新模型。在。上添加其他端口传感器组件,您必须更新引用的模型“mobileSensor”

referenceModel = systemcomposer.createModel (“mobileSensor”);referenceArch = referenceModel.Architecture;newComponents = addComponent (referenceArch,“电磁传感器”);linkDictionary (referenceModel“SensorInterfaces.sldd”);ReferenceModel.save linktomodel(Componentsensor,“mobileSensor”);

将构造型应用于链接引用模型的体系结构和组件。

referenceModel.applyProfile (“GeneralProfile”);referenceArch.applyStereotype (“GeneralProfile.softwareComponent”);batchApplyStereotype (referenceArch“组件”“GeneralProfile.projectElement”

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

SensorPorts = Addport(ComponentSensor.architecture,{'motiondata'“SensorData”},{“在”“出”});sensorPorts (2) .setInterface(接口)连接(拱、componentSensor componentPlanning,'规则'“接口”);连接(拱门,componentMotion componentSensor);

保存模型。

referenceModel。保存model.save

使不同组件

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

[VariantComp,Choice1] = Mantuvariant(ComponentPlanning);

添加一个名为策划.第二个参数定义名称,第三个参数定义标签。标签标识选择。主动选择是由标签控制的。

choice2 = addChoice (variantComp, {'策划'},{'策划'});

创建所需的端口策划

setActiveChoice(VariantComp,Choice2)Cranslaltports = Addport(Choice2.Architecture,{“命令”“SensorData1”“MotionCommand”},{“在”“在”“出”});CannerAltports(2).setInterface(接口)

使策划活跃的变体。

setActiveChoice (variantComp'策划'

按Pressıng安排布局ctrl + shift + a或者使用这个命令。

金宝appSimulink.BlockDiagram.arrangeSystem (“mobileRobotAPI /规划”);

保存模型。

模型.Save.

清理

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

%bdclose('mobilerobotapi')% bdclose(“mobileSensor”)% 金宝appSimulink.data.dictionary.closeAll%systemcomposer.profile.profile.closeall%删除('profile.xml')%删除('sensorinterfaces.sldd')

更多关于

展开全部

介绍了R2019a