システムとモデリング

modelica, Julia, Design Structure Matrix, SysML, 他モデリング全般について。

【modelica vs simulink】因果的モデルと非因果的モデルの強みと弱み

今回の内容は以下論文を大いに参考にしております。またグラフなども以下のものから引用しております。

arxiv.org

我々が物理現象を数理モデルで書き下す際、因果的モデリング非因果的モデリングという、大きく分けて2つのモデリング方法を利用しています。

因果的モデリング

入力と出力を明示して書き記したモデルになります。例えばプログラムでa = 2*bと書いた場合「bの2倍をaに代入する」という意味になり、bが入力でaが出力であると明示的に決まっています。このような方法で記述したモデルを因果的モデルと言います。

代表的なシミュレーションソフトウェア……Simulink

非因果的モデリング

非因果的モデルは、因果的モデルとは対照的に入力と出力を明示していないモデルになります。例えば方程式x = 2yは「xとyの2倍は等しい]という意味で、どちらが入力でどちらが出力かは明示されていません。このように方程式ベースで記述されたモデルを非因果的モデルと言います。

代表的なシミュレーションソフトウェア……Dymola, OpenModelica, Simscape

因果的モデリングと非因果的モデリングの普及度

冒頭で引用した論文では因果的モデリングと非因果的モデリングがそれぞれどのくらい普及しているか調査しています。 下記グラフはそれぞれの代表的なキーワードで出版物がどの程度存在するか調べたものです。

f:id:Otepipi:20210516203507p:plain
Simlink(因果的)の出版物の数

f:id:Otepipi:20210516203617p:plain
非因果的モデリングの出版物の数

普及度は因果的モデルの圧勝です。非因果的モデリングが束になってもSimulink1つに叶いません。実際、modelicaなどは日本ではあまり普及していませんがSimulinkは大学や企業などで頻繁に使われている印象です。

また、GoogleトレンドでSimulinkとmodelicaを比較してみました。

予想通りSimulinkが大勝していますね。

因果的モデリングと非因果的モデリングの強みと弱み

因果的モデリングが普及しているということは、因果的モデリングのほうが優れているということなのでしょうか? 必ずしもそうではありません

冒頭の文献によりますと、多くの専門家は大規模システムのモデリングにおいては非因果的モデリング技術のほうが、因果的モデリング技術よりも優れていると考えているようです。

f:id:Otepipi:20210516205237p:plain

ここで、文献にある因果的モデルと非因果的モデルの強みと弱みをまとめます。

非因果的モデリング

強み

  • 方程式で記述された既存の知見を容易に活用できる。
  • ラピッドプロトタイピングに適している
  • モデルの可読性が高い
  • 教育に適している

弱み

  • デバッグが難しい
  • 使用者が少ない
  • 大規模システムシミュレーションへの適性が限定的である。
  • 教材やドキュメントが不足している

因果的モデリング

強み

  • 制御分野への適性が高い
  • 使用者が多い
  • 大規模システムシミュレーションへの適性がある
  • 商用ツールのサポートが有る

弱み

非因果的モデリングの最大の弱点はデバッグの難しさです。Open Modelicaなども、かなりデバッグは難しいと私自身感じます(変数100個のうち方程式が99個しかないと言われても困るという状況が何度かあります)。ただ、モデルの可読性の高さやラピッドプロトタイピングの容易性などで非因果的モデリングは本質的には優れた技術のはずです。個人的には、非因果的モデルは概念としては優れていますが、ツールが追いついていないという印象です。

短いですが今回はここまでにします。