主要内容

分析架构

分析是一种对体系结构的某些特性进行定量评价的方法。静态分析分析系统的结构。静态分析使用分析功能和系统模型中捕获的属性参数值。使用分析来计算系统的总体可靠性、质量卷升、性能或热特性,或执行SWaP分析。

编写基于元素属性的静态分析,执行数据驱动的贸易研究并验证系统需求。考虑一个机电系统,其中有成本和重量之间的权衡,更轻的组件往往成本更高。决策过程包括基于系统元素的属性分析系统的总体成本和权重,并对这些属性进行迭代,以得到一个从成本和权重角度都可以接受的解决方案。

分析工作流包括以下步骤:

  1. 定义一个包含一组描述一些可分析属性(例如,成本和权重)的原型的概要文件。

  2. 将概要文件应用到体系结构模型,并将原型从该概要文件添加到模型的元素(组件、端口或连接器)。

  3. 为这些元素的属性指定值。

  4. 创建体系结构模型的实例,它是一个元素树,对应于扩展了所有共享体系结构并应用了变体配置的模型层次结构。

  5. 写一个分析函数来计算研究所需的值。这是一个静态约束求解器,用于获取系统模型中相关属性的参数和值。

  6. 运行analysis功能。

设置分析属性

这个例子展示了如何通过向模型元素添加原型和设置属性值来支持分析。该模型为机器人系统简单体系结构模型中各部件总成本与权重之间的权衡提供了依据。

负荷模型

打开systemWithProps模型。

systemWithProps

导入配置文件

通过首先导入概要文件来启用属性分析。在配置文件部分的工具条,单击管理>进口并浏览到配置文件。

应用原型到模型元素

将构造型应用到作为分析一部分的所有模型元素。使用将原型应用于特定类型的所有元素的菜单项。选择应用的刻板印象>适用于然后组件>这一层.如果要计算累积值,请确保将原型应用到顶层组件。

设置属性值

为每个模型元素设置属性值。

  1. 选择模型元素。

  2. 在属性检查器中,展开属性的原型名称和类型值。

机器人组件原型显示从属性检查员称为物理组件的属性命名:单位成本5000美元,体积0米立方,重量3公斤。

为分析创建一个模型实例

创建一个可以用于分析的体系结构模型实例。一个实例是体系结构模型在给定时间点的出现。您可以使用对模型的更改来更新实例,但实例不会使用活动变体或模型引用中的更改进行更新。您可以使用实例,保存在.MAT文件,用于分析的System Composer体系结构模型。

的观点部分中,选择分析模型>分析模型.在此对话框中,指定创建和查看分析模型所需的所有参数。

实例化体系结构模型窗口,在左边列出原型,在右边配置分析功能,迭代顺序自底向上,实例模型名称系统与道具。选项是取消或实例化。

原型树列出了在当前会话中加载的所有概要文件的原型,并允许您选择其属性在实例模型中可用的那些。此时,您可以浏览分析函数、创建新的分析函数或跳过分析。如果分析功能需要的输入不是模型中的元素(比如计算成本的汇率),那么就输入它函数参数.选择迭代模型元素的模式,例如,自底向上从树叶移动到树根。

请注意

严格模式确保实例只有在实例的规范应用了原型时才能获得属性。

要查看实例,请单击实例化

分析输出图表。

Analysis Viewer在第一列中显示所有组件。其他列是为该实例选择的所有原型的属性。如果属性不是应用于元素的原型的一部分,那么该字段将变为灰色。您可以使用Filter按钮来隐藏特定原型的属性。当您选择一个元素时,Instance Properties会显示它的原型和属性值。您可以将实例保存到mat文件中,并在Analysis Viewer中再次打开它。

在分析查看器中选择一个接口元素,以查看更新到更新元素下的下拉选项。

如果在实例打开时对模型进行更改,则可以将实例与模型同步。更新将更改从实例推到模型。刷新从模型更新实例。非同步的更改以不同的颜色显示。选择单个元素可以启用选项更新元素

写分析功能

编写一个函数来使用实例API分析体系结构模型。分析函数为MATLAB®使用模型实例中每个元素的属性计算评估体系结构所需的值的函数。

您可以在设置分析实例时添加分析函数。选择感兴趣的原型后,通过单击创建一个模板函数旁边的分析功能字段。生成的m文件包括从所有要分析的构造型中获取所有属性值的代码。分析函数对单个元素进行操作——当您从analysis Viewer运行分析时,通过在模型中的所有元素上迭代此函数,将生成聚合值。

函数变长度输入宗量systemWithProps_1(实例)如果instance.isComponent ()如果instance.hasValue (“SystemProfile.PhysicalElement.unitCost”sysComponent_unitPrice = instance.getValue(“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 ()如果instance.hasValue (“SystemProfile.PhysicalElement.weight”)权重= instance.getValue(“SystemProfile.PhysicalElement.weight”);结束孩子=实例。组件subcomp_weight = child.getValue(“SystemProfile.PhysicalElement.weight”);Weight = Weight + subcomp_weight;结束instance.setValue (“SystemProfile.PhysicalElement.weight”、重量)结束

一旦分析功能完成,将其添加到分析功能盒子。分析函数可以接受额外的输入参数,例如,如果权重在不同的构造型中以不同的单位表示,则转换常量。当这段代码对所有组件递归运行时,从层次结构中最深层的组件到最高层的组件,系统的总体权重被分配给重量属性的顶层组件。

运行分析功能

使用分析查看器运行分析函数。

  1. 属性选择或更改分析功能分析菜单。

  2. 选择迭代方法。

    • 预购-从顶层开始,移动到一个子组件,在移动到兄弟组件之前递归地处理该组件的子组件。

    • 自顶向下-像预购,但在移动到子组件之前处理所有的兄弟组件。

    • 后序-从没有子组件的组件开始,处理每个兄弟组件,然后移动到父组件。

    • 自底向上-类似于post-order,但在移动到父组件之前以相同的深度处理所有子组件。

    迭代方法取决于要运行的分析类型。例如,对于组件权重是其组件权重之和的分析,您必须确保先计算子组件权重,因此迭代方法必须是自下而上的。

  3. 单击分析按钮。

System Composer对每个模型元素运行分析功能并计算结果。计算的属性在Analysis Viewer中以不同的颜色显示。

单位成本用黄色表示。

另请参阅

|||||||||||

相关的话题