对系统Composer™架构进行静态分析,以评估系统的特性。分析是一种对体系结构的某些特性进行定量评价的方法。静态分析使用分析功能和系统模型中捕获的属性参数值。使用分析来计算系统的总体可靠性、质量卷升、性能或热特性,或执行SWaP分析。
编写基于元素属性的静态分析,执行数据驱动的贸易研究并验证系统需求。考虑一个机电系统,其中有成本和重量之间的权衡,更轻的组件往往成本更高。决策过程包括基于系统元素的属性分析系统的总体成本和权重,并对这些属性进行迭代,以得到一个从成本和权重角度都可以接受的解决方案。
分析工作流包括以下步骤:
定义包含一组刻板印象的配置文件,该刻板印象描述了一些可分析的属性(例如,成本和重量)。
将配置文件应用于架构模型,并将其从该配置文件添加到模型的元素(组件,端口或连接器)的构造型。
指定这些元素上属性的值。
创建体系结构模型的实例,它是一个元素树,对应于具有扩展的所有共享体系结构的模型层次结构以及应用的变体配置。
写一个分析函数来计算研究所需的值。这是一个静态约束求解器,用于获取系统模型中相关属性的参数和值。
运行分析函数,然后在analysis Viewer中查看分析计算和结果。
这个例子展示了如何通过向模型元素添加原型和设置属性值来支持分析。该模型为机器人系统简单体系结构模型中各部件总成本与权重之间的权衡提供了依据。
打开systemwithprops.
建筑模型。
通过首次导入配置文件来实现对属性的分析。在ToolStrip中,导航到建模>概要文件>进口并浏览到配置文件以导入它。
将刻板印象应用于部分分析的所有模型元素。使用将刻板印缺应用于某种类型的所有元素的菜单项。选择应用刻板印象>适用于然后组件>这一层。如果要计算累积值,请确保将立体型应用于顶级组件。
设置属性检查器中每个模型元素的属性值。打开物业检查员,导航到建模>设计>属性检查器。
选择模型元素。
在“属性”检查器中,展开“属性的刻板印象名称”和“类型”值。
创建一个可以用于分析的体系结构模型实例。一个实例是在给定时间点的架构模型元素的发生。一个实例冻结了实例模型中组件的活动变量或模型引用。
一个实例模型是实例的集合。您可以使用对模型的更改来更新实例模型,但是实例模型不会使用活动变体或模型引用中的更改来更新。您可以使用实例模型,保存在。垫
文件分析系统作曲家架构模型的文件。
导航建模>的观点>分析模型要打开“实例化架构模型”对话框。指定创建和查看分析模型所需的所有参数。
这选择的刻板印象树列出了已加载在当前会话中的所有配置文件的刻板印象,并允许您选择该属性在实例模型中可用的配置文件。您可以浏览分析功能,在此时创建新的一个或跳过分析。如果分析函数需要模型中的元素以外的输入(例如汇率计算成本)输入它函数参数。选择一种以通过模型元素迭代的模式,例如,自下而上
从树叶移动到树根。
笔记
如果实例的规范有应用刻板印象,则严格的模式确保仅获取属性。
要查看实例,请单击实例化并启动分析观众。分析观众显示第一列中的所有组件。其他列是为此实例选择的所有刻板印象的属性。如果属性不是应用于元素的刻板印象的一部分,则该字段灰色。您可以使用过滤器按钮隐藏某些刻板印象的属性。选择元素时,实例属性显示其刻板型和属性值。您可以在Mat文件中保存实例,然后在分析查看器中再次打开它。
如果在窗口打开时在模型中进行更改,则可以使用模型同步实例。更新将更改从实例从模型推动到模型。刷新从模型中更新实例。未同步的更改以不同的颜色显示。选择单个元素可以选择更新元素。
使用实例写入函数以分析架构模型。分析函数定量评估架构以实现某些特征。一个分析功能是一个matlab.®使用模型实例中的每个元素的属性计算评估架构所需的值的函数。使用分析功能来计算分析结果。
您可以在设置分析实例模型时添加分析功能。选择感兴趣的原型后,通过单击创建一个模板函数旁边的分析功能场地。生成的M文件包括代码,用于从受到分析的所有刻板印象中获取所有属性值的代码。分析函数在单个元素上运行 - 通过在从分析查看器运行分析时迭代模型中的所有元素来生成聚合值。
功能systemwithprops_1(实例,varargin)如果instance.iscomponent()如果instance.hasValue (“SystemProfile.PhysicalElement.unitCost”)syscomponent_unitprice = instance.getValue(“SystemProfile.PhysicalElement.unitCost”);结束为child = instance.components comp_price = child.getValue(“SystemProfile.PhysicalElement.unitCost”);syscomponent_unitprice = syscomponent_unitprice + comp_price;结束instance.setValue(“SystemProfile.PhysicalElement.unitCost”,syscomponent_unitprice);结束
在生成的文件中,实例
当前运行分析函数的元素的实例。您可以执行以下分析操作:
访问实例的属性:instance.getValue(“<文件>。<刻板印象>。<属性> ')
设置一个实例的属性:instance.setValue('
访问组件的子组件:instance.Components.
访问组件中的连接器:instance.Connectors.
这getValue
如果属性不存在,则函数会生成错误。您可以使用hasValue
在获取值之前查询模型中的元素是否具有属性。
例如,这段代码将组件的权重计算为其子组件的权重之和。
如果instance.iscomponent()如果instance.hasValue (“SystemProfile.PhysicalElement.weight”)权重= instance.getValue(“SystemProfile.PhysicalElement.weight”);结束为child = instance.components subcomp_weight = child.getValue(“SystemProfile.PhysicalElement.weight”);重量=重量+ subcomp_weight;结束instance.setValue(“SystemProfile.PhysicalElement.weight”、重量)结束
分析功能完成后,将其添加到分析下分析功能盒子。分析函数可以接受额外的输入参数,例如,如果权重在不同的构造型中以不同的单位表示,则转换常量。当这段代码对所有组件递归运行时,从层次结构中最深层的组件到最高层的组件,系统的总体权重被分配给重量
属性的顶层组件。
使用分析查看器运行分析函数。
属性选择或更改分析功能分析菜单。
选择迭代方法。
预购
-从顶层开始,移动到一个子组件,在移动到兄弟组件之前递归地处理该组件的子组件。
自顶向下
-像预购,但在移动到子组件之前处理所有的兄弟组件。
后订单
- 从没有子组件的组件启动,处理每个兄弟姐妹,然后移动到父级。
自下而上
-类似于post-order,但在移动到父组件之前以相同的深度处理所有子组件。
迭代方法取决于要运行什么样的分析。例如,对于组件权重是其组件的权重的总和的分析,您必须确保首先计算子组件权重,因此迭代方法必须自下而上。
点击分析按钮。
系统作曲家在每个模型元素上运行分析功能并计算结果。计算的属性在分析查看器中突出显示黄色。
这里,系统的总成本是25500美元
总重量是55千克
。
systemcomposer.analysis.Instance
|迭代
|实例化
|deleteInstance.
|更新
|刷新
|保存
|loadInstance.
|抬头
|getValue
|设定值
|hasValue