電通総研では、SysMLに準拠したモデリングツールとして、ダッソー・システムズ社製のCATIA Magicを取り扱っています。
本テーマでは、システム全体のデータを集計する際の効率的な方法として、CATIA Magicの"Rollup Pattern"機能について御紹介します。
システム全体のバジェットや重量を求める際には、サブシステムやコンポーネント毎の数値を積み上げ計算して集計します。しかしその数値計算を手動で行うと、システム構成が複雑になるにつれ、作業に時間がかかってしまい計算ミスを起こしてしまう可能性があります。また構成要素の数値が異なる大量のデータパターンの中から要求を満たす最適な組み合わせを比較検討する際には、大量の比較データを作成する必要があり、手動でのデータ集計は効率的ではありません。そのため、システム全体のデータ集計を自動化することができる管理方法が必要となります。
CATIA Magicは、Magic Model Analystを利用することで、簡易的なシミュレーションによるモデル検証を行うことができます。システム全体の重量やコストを集計したい場合、"Rollup Pattern"機能を利用してシミュレーションを行うことで、各構成要素のデータを積み上げ計算することができます。
またCATIA Magicはシミュレーション結果をインスタンスとして保存することができます。そしてインスタンステーブルを利用すれば、複数のインスタンスをテーブル形式で並べて比較検討することが可能です。
以降より、機能の詳細について御紹介します。
"Rollup Pattern"はシステム全体の重量やコストを算出するためのシミュレーション機能の一つです。CATIA Magicではブロック定義図でシステム構成を表現することができますが、"Rollup Pattern"機能を用いると、構成要素のブロックが有するValue Propertyを積み上げ計算して、システム全体のデータを自動集計することができます。
具体的には、標準ライブラリのブロックをシステム構成の最上位ブロックに適用して利用します。標準ライブラリには以下の重量値、コスト、電力の積み上げ計算を行うブロックが用意されています。
ここでは、"MassRollUpPattern"ブロックを利用して機能紹介を行います。
"MassRollUpPattern"ブロックは以下のようなブロック構成とパラメトリック図を有しており、末端下層からブロックの重量を再帰的に合計していくRollup Patternブロックです。
適用方法としては、最上位ブロックの右クリックメニューのTool>Apply Rollup Patternから"MassRollUpPattern"ブロックを選択します。そうすることで、システム最上位のブロックとサブシステム以降のブロックが"MassRollUpPattern"ブロックと"Generalization"関係で紐づきます。そして、紐づくブロックに"MassRollUpPattern"ブロックが有するValue Property(mass, totalMass)が引き継がれます。これらの引き継がれたValue Propertyは、シミュレーション実行時のウィンドウで確認できます。
最上位ブロックの右クリックメニューのSimulation>Runからシミュレーションを実行し、開かれるシミュレーションウィンドウで構成要素のValue Propertyに値を設定することで、積み上げ計算されることが確認できます。(下図赤枠)
計算が完了した後は、下図青枠のボタンを押下することで、シミュレーション結果をインスタンスとして保存することができます。
保存した複数のインスタンスをテーブル形式で並べて比較検討するためには、インスタンステーブルを利用します。下図のように、"Classifier"と範囲を指定することで該当のインスタンスを全表示できます。カラムは、対象のインスタンスが有する属性を選択することで任意表示することができます。
本テーマでは、CATIA Magicを用いたシステム全体のデータ集計を効率化する方法として、"MassRollUpPattern"を例に"Rollup Pattern"機能を御紹介しました。今回は詳細説明を省略しましたが、"CostRollupPattern"と"PowerRollupPattern"も同様の操作で利用することができます。これらのブロックは標準ライブラリとして用意されており、Magic Cyber Systems Engineerライセンスで確認することが可能です。
他にも、CATIA Magicは様々な機能を豊富に有しています。今後も引き続き機能紹介を掲載していきますので、ぜひご覧下さい。
本記事は役に立ちましたか?コメント・問合せも承ります。