对System Composer™架构执行静态分析,以评估系统的特征。分析是一种针对特定特性定量评估体系结构的方法。静态分析使用系统模型中捕获的属性的分析函数和参数值。使用分析来计算系统的总体可靠性、质量上卷、性能或热特性,或执行SWaP分析。
编写基于元素属性的静态分析,以执行数据驱动的贸易研究并验证系统需求。考虑机电系统,在成本和重量之间进行权衡,较轻的组件往往成本更高。决策过程包括基于元素的属性分析系统的总体成本和权重,并在属性上迭代,以获得从成本和权重角度都可接受的解决方案。
分析工作流由以下步骤组成:
定义一个包含描述一些可分析属性(例如,成本和重量)的一组原型的概要文件。
将概要文件应用到架构模型,并将该概要文件中的原型添加到模型的元素(组件、端口或连接器)。
为这些元素上的属性指定值。
创建架构模型的一个实例,它是一个元素树,对应于扩展了所有共享架构并应用了一个变体配置的模型层次结构。
编写一个分析函数来计算研究所需的值。这是用于系统模型中捕获的相关属性的参数和值的静态约束求解器。
运行分析函数,然后在analysis Viewer中查看分析计算和结果。
这个例子展示了如何通过向模型元素添加原型和设置属性值来启用分析。该模型为分析机器人系统简单架构模型中部件总成本与重量之间的权衡提供了基础。
打开systemWithProps
体系结构模型。
通过首先导入概要文件来启用属性分析。在工具条中,导航到建模>配置文件>进口并浏览到概要文件以导入它。
将原型应用到作为分析一部分的所有模型元素。使用将构造型应用于特定类型的所有元素的菜单项。选择应用的刻板印象>适用于然后组件>这一层.如果要计算一个累积值,请确保您将原型应用到顶级组件。
在属性检查器中为每个模型元素设置属性值。要打开属性检查器,请导航到建模>设计>属性检查器.
选择模型元素。
在属性检查器中,展开属性的原型名称和类型值。
创建可以用于分析的体系结构模型实例。一个实例是体系结构模型元素在给定时间点上的出现情况。实例冻结了实例模型中组件的活动变量或模型引用。
一个实例模型实例的集合。您可以通过对模型的更改来更新实例模型,但是实例模型不会随着活动变量或模型引用中的更改而更新。您可以使用实例模型,保存在.MAT
文件,用于分析的System Composer体系结构模型。
导航到建模>的观点>分析模型打开实例化架构模型对话框。指定创建和查看分析模型所需的所有参数。
的选择的刻板印象Tree列出了当前会话中加载的所有概要文件的原型,并允许您选择那些属性应该在实例模型中可用的概要文件。此时,您可以浏览分析函数、创建新函数或跳过分析。如果分析函数需要模型中元素以外的输入(例如计算成本的汇率),请输入它函数参数.为遍历模型元素选择一个模式,例如,自底向上
从树叶到树根。
请注意
严格模式确保实例只有在实例的规范应用了原型时才能获得属性。
单击,查看实例实例化并启动Analysis Viewer。Analysis Viewer在第一列中显示所有组件。其他列是为该实例选择的所有原型的属性。如果一个属性不是应用于元素的原型的一部分,该字段将被灰色覆盖。您可以使用Filter按钮来隐藏某些构造型的属性。当您选择一个元素时,实例属性会显示它的构造型和属性值。您可以将实例保存在mat文件中,然后在Analysis Viewer中再次打开它。
如果在实例打开时对模型进行更改,则可以将实例与模型同步。更新将更改从实例推到模型。刷新从模型更新实例。未同步的更改用不同的颜色显示。选择单个元素使该选项能够更新元素.
编写一个函数来使用实例分析体系结构模型。分析功能对架构的某些特征进行定量评估。一个分析功能是一个MATLAB®函数,该函数使用模型实例中每个元素的属性计算评估体系结构所需的值。使用分析函数来计算分析的结果。
您可以在设置分析实例模型时添加分析函数。在选择感兴趣的原型之后,通过单击创建模板函数旁边是分析功能字段。生成的m文件包含从所有原型中获取所有属性值的代码,这些原型都是要分析的。分析函数对单个元素进行操作——当您从analysis Viewer中运行分析时,通过在模型中的所有元素上迭代该函数来生成聚合值。
函数变长度输入宗量systemWithProps_1(实例)如果instance.isComponent ()如果instance.hasValue (“SystemProfile.PhysicalElement.unitCost”sysComponent_unitPrice = instance.getValue(“SystemProfile.PhysicalElement.unitCost”);结束为Child = instance。组件comp_price = child.getValue(“SystemProfile.PhysicalElement.unitCost”);sysComponent_unitPrice = sysComponent_unitPrice + comp_price;结束instance.setValue (“SystemProfile.PhysicalElement.unitCost”, sysComponent_unitPrice);结束
在生成的文件中,实例
当前分析函数在其上运行的元素的实例。您可以通过以下操作进行分析:
访问实例的一个属性:instance.getValue(“<文件>。<刻板印象>。<属性> ')
设置一个实例的属性:instance.setValue(“<文件>。<刻板印象>。< >属性”,值)
访问一个组件的子组件:实例。组件
访问组件中的连接器:实例。连接器
的getValue
函数如果属性不存在,则生成错误。你可以使用hasValue
在获取值之前查询模型中的元素是否具有属性。
例如,这段代码将组件的权重计算为其子组件的权重之和。
如果instance.isComponent ()如果instance.hasValue (“SystemProfile.PhysicalElement.weight”) weight = instance.getValue(“SystemProfile.PhysicalElement.weight”);结束为Child = instance。组件subcomp_weight = child.getValue(“SystemProfile.PhysicalElement.weight”);Weight = Weight + subcomp_weight;结束instance.setValue (“SystemProfile.PhysicalElement.weight”、重量)结束
完成分析功能后,将其添加到分析功能盒子。分析函数可以接受额外的输入参数,例如,如果权重在不同构造型中的不同单位中,则可以使用转换常数。当此代码递归地为所有组件运行时(从层次结构中最深的组件开始到顶层),系统的整体权重将分配给重量
顶级组件的属性。
使用analysis Viewer运行一个分析函数。
属性选择或更改分析功能分析菜单。
选择迭代方法。
预购
-从顶层开始,移动到子组件,在移动到兄弟组件之前,递归地处理该组件的子组件。
自顶向下
-类似于预购,但在移动到其子组件之前处理所有兄弟组件。
后序
-从没有子组件的组件开始,处理每个兄弟组件,然后移动到父组件。
自底向上
-类似于后处理,但在移动到它们的父组件之前,以相同的深度处理所有子组件。
迭代方法取决于要运行哪种类型的分析。例如,对于一个组件权重是其组件权重之和的分析,您必须确保先计算子组件权重,因此迭代方法必须是自底向上的。
单击分析按钮。
System Composer在每个模型元素上运行分析函数并计算结果。计算出来的属性在Analysis Viewer中以黄色高亮显示。
这里,系统的总成本是25500美元
总重量是55公斤
.
systemcomposer.analysis.Instance
|迭代
|实例化
|deleteInstance
|更新
|刷新
|保存
|loadInstance
|查找
|getValue
|setValue
|hasValue