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