メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

解析関数を使用したアーキテクチャ モデルのプロパティの解析

モデル要素に指定されたプロパティにより、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 アーキテクチャの総計を表します。

参考

トピック