主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

使用分析函数分析架构模型属性

在模型元素上指定属性后,您可以使用 MATLAB® 对设计中的所有元素进行分析并计算总成本。然后,您可以为系统中的各个组件的设计人员创建额外的衍生需求。根据元素属性执行静态分析,以执行数据驱动的权衡研究并验证系统需求。

在本教程中,您将使用具有属性的移动机器人架构模型来计算系统的总成本并执行静态分析。有关属性和构造型的更多信息,请参阅 使用构造型扩展架构设计

有关 System Composer™ 中基于模型的系统工程工作流的详细信息,请参阅使用架构模型构建和分析系统

具有属性的移动机器人架构模型

此示例显示了一个移动机器人架构模型,其中对组件和属性应用了构造型。

执行分析

分析机器人模型中所有组件的总成本。此程序使用模型 ex_RobotArch_props.slx

  1. 导航至 建模 > 分析模型 以打开实例化架构模型工具。

  2. 添加一个分析函数。在分析函数框中,输入函数名 ex_RobotArch_analysis_new(不带扩展名),然后点击 add analysis function 按钮。创建一个 MATLAB 函数文件,并以 ex_RobotArch_analysis_new.m 名称保存它。

    Instantiate architecture model screen with all stereotypes selected. Configure analysis to use iteration order bottom-up.

    分析函数包括从模型元素获取属性的构造,以模板形式给出。修改此模板以添加各个元素的成本,并获得其父架构的总成本。该函数计算一个模型元素的成本,即其自身成本与所有子组件成本之和。将以下函数复制并粘贴到您的分析函数中。

    function ex_RobotArch_analysis_new(instance,varargin)
        
        if instance.isComponent()
            if instance.hasValue("sysBaseStereotype.unitPrice")
                sysComponent_totalPrice = instance.getValue("sysBaseStereotype.unitPrice");
            else
                sysComponent_totalPrice = 0;
            end
            if ~isempty(instance.Components)        
                for child = instance.Components
                    if child.hasValue("sysBaseStereotype.totalPrice")
                        comp_price = child.getValue("sysBaseStereotype.totalPrice");
                        sysComponent_totalPrice = sysComponent_totalPrice + comp_price;
                    end
                end
            end
            sysPort_totalPrice = 0;
            for port = instance.Ports
                if port.hasValue("sysBaseStereotype.unitPrice")
                    unitPrice = port.getValue("sysBaseStereotype.unitPrice");
                    sysPort_totalPrice = sysPort_totalPrice + unitPrice;
                end
            end
            sysConnector_totalPrice = 0;
            for connector = instance.Connectors
                if connector.hasValue("sysBaseStereotype.unitPrice")
                    unitPrice = connector.getValue("sysBaseStereotype.unitPrice");
                    length = connector.getValue("sysConnector.length");
                    sysConnector_totalPrice = sysConnector_totalPrice + unitPrice*length;
                end
            end
            if (instance.hasValue("sysBaseStereotype.totalPrice"))
                totalPrice = sysComponent_totalPrice + ...
                             sysPort_totalPrice + sysConnector_totalPrice;
                instance.setValue("sysBaseStereotype.totalPrice",totalPrice);
            end
        end
    end
    
  3. 返回实例化架构工具,选择所有构造型,然后点击实例化分析查看器打开并显示每个模型元素的属性。分析开始时的默认值取自您将构造型附加到模型并编辑其值时输入的属性值。

  4. 分析部分,选择 BottomUp 作为迭代方法,然后点击分析

    每个元素的成本从下往上累加,以得出系统的成本。结果被写入分析实例,并在分析查看器中可见。

    Analysis viewer with data.

    总成本以黄色突出显示为计算值。顶行代表 ex_RobotArch_props 架构的总和。

另请参阅

主题