Simulinkのモデリングパターン

 Simulinkでモデルを作る時に、自分が作ったモデルがうまく書けているか悩むときがよくあります。その時に、モデリングのパターンやガイドラインがあると、モデリングの指針になり最終的なモデルの品質も高まるのではないかと思い、どのような情報が公開されているのかを調べてみました。

 

■制御モデリングガイドライン

http://jmaab.mathworks.jp/free/ctrl2018/index.html

 

 JMAABモデリングガイドラインには、主にモデリングのスタイルに関する内容が書かれています。一方で、モデルアーキテクチャに関する説明が9章に書かれています。モデルアーキテクチャ6つのレイヤに分類し、全体のモデルを構成する方法が考察されています。

 また、11章にモデリングノウハウの記載があります。これは、アーキテクチャレベルではなく、一つ一つのモデルを作る時のブロックの使い方を書いているイメージです。例えば、SwitchブロックとIf Action Subsystemの使い分けなどが書かれています。

 英語では、MABが出している版があります。内容は、JMAABガイドラインとほぼ同内容です。

https://www.mathworks.com/solutions/mab-guidelines.html

 

Simulink による ISO 26262 アプリケーション開発のための11のベストプラクティス

https://jp.mathworks.com/campaigns/offers/iso-26262-functional-safety-best-practices.html

 

 Mathworksが公開しているホワイトペーパーです。タイトルにISO 26262と入っていますが、自動車以外のドメインについても応用できそうな内容に感じます。モデルアーキテクチャと信号の定義、コード生成の設定について11のベストプラクティスが紹介されています。例えば、単一の機能をまとめるのにモデル参照を使う、機能を連結するレイヤでアルゴリズム演算を記述しない、といった内容が書かれています。一方、細かいモデルの記法に関しては書かれていません。

 同様のホワイトペーパーとして、AUTOSARに関連したものもあります。こちらは、どちらかと言うとプロセス寄りの内容となっているようです。

https://jp.mathworks.com/campaigns/offers/deploy-autosar-using-simulink.html

 

 論文では以下の2つがありました。こちらは参考まで。

 

Structuring Simulink Models for Verification and Reuse

 モデルの種類を4種類に分類して、それらを場面に応じて繋ぎ方を変えて検証することにより、効率高く検証できるモデルアーキテクチャの構築を提案する論文です。

Supporting Modularity in Simulink Models

 Simulinkモデルについて、モジュール性を高めるガイドライン4つ提案されています。