このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
解析関数を使用したアーキテクチャ モデルのプロパティの解析
モデル要素に指定されたプロパティにより、MATLAB® を使用して解析を実行し、設計内のすべての要素の総コストを計算できます。その後、システム内の個々のコンポーネントのデザイナーについて、派生する追加の要件を作成できます。データ駆動型のトレード スタディを実行してシステム要件を検証するには、要素のプロパティに基づいて静的解析を実行します。
このチュートリアルでは、プロパティをもつモバイル ロボットのアーキテクチャ モデルを使用し、システムの総コストを計算して静的解析を実行します。プロパティとステレオタイプの詳細については、ステレオタイプを使用したアーキテクチャ設計の拡張を参照してください。
System Composer™ におけるモデルベース システムズ エンジニアリング ワークフローの詳細については、アーキテクチャ モデルを使用したシステムの構成と解析を参照してください。
プロパティをもつモバイル ロボットのアーキテクチャ モデル
この例で示すモバイル ロボットのアーキテクチャ モデルでは、コンポーネントにステレオタイプが適用されてプロパティが定義されています。

解析の実行
ロボット モデルのすべてのコンポーネントの総コストを解析します。この手順ではモデル ex_RobotArch_props.slx を使用します。
[モデル化] 、 [解析モデル] に移動してアーキテクチャ モデルのインスタンス化ツールを開きます。
解析関数を追加します。[解析関数] ボックスに
ex_RobotArch_analysis_newという関数の名前を拡張子なしで入力し、
ボタンをクリックします。MATLAB 関数ファイルが作成され、ex_RobotArch_analysis_new.mという名前で保存されます。
解析関数には、モデル要素からプロパティを取得する構造がテンプレートとして含まれています。このテンプレートを変更して、個々の要素のコストを合計し、それらの親アーキテクチャの総コストを取得します。この関数では、各モデル要素のコストを、それ自体のコストとそのすべての子コンポーネントのコストの合計として計算します。以下の関数をコピーして解析関数に貼り付けます。
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
アーキテクチャ モデルのインスタンス化ツールに戻り、すべてのステレオタイプを選択して [インスタンス化] をクリックします。解析ビューアーが開き、各モデル要素のプロパティが表示されます。解析の最初の既定値は、モデルにステレオタイプを付加してその値を編集したときに入力したプロパティ値から取得されます。
[解析] セクションで
BottomUpを反復手法として選択し、[解析] をクリックします。システムのコストを求めるために各要素のコストがボトムアップで合計されます。結果が解析インスタンスに書き込まれ、解析ビューアーに表示されます。

総コストが計算値として黄色で強調表示されます。一番上の行が
ex_RobotArch_propsアーキテクチャの総計を表します。