【プラント】最小構成のMBD事例 第2章 その2【Modelica①】

【プラント】最小構成のMBD事例 第2章 その2【Modelica①】 事例
【プラント】最小構成のMBD事例 第2章 その2【Modelica①】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/

はじめに

オブジェクト指向のマルチドメイン・モデリング言語であるModelicaについて簡単に説明。

特に物理現象を表現するモデルの構築に使用される。

Modelica自体はプログラミング言語に類するものとなる。
ただし、一般的なプログラミング言語とは大きく性質が異なる。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

Modelicaとは

太郎くん
太郎くん

確か今回はModelicaってものの話なんだっけ?
どういうものなの?

フクさん
フクさん

ここはWikipediaを引用しよう。

Modelica(モデリカ)とは、オブジェクト指向のマルチドメイン・モデリング言語である。他分野に跨る複雑なシステム(例えば、機械、電気、電子、油圧、熱、制御、電力、プロセス指向のサブコンポーネントを含むシステム)のモデリングに最適で、特に物理現象を表現するモデルの構築で使われている。オープンソースである為、特定のツールに依存することなく資産の共有や開発が出来る。言語仕様やメンテナンスは非営利国際組織のModelica協会によって行われており、標準ライブラリとしてフリーで公開されている。

Wikipediaより(https://ja.wikipedia.org/wiki/Modelica)
太郎くん
太郎くん

プログラミング言語・・・なのかな???

フクさん
フクさん

そうだね。
Modelica自体はプログラミング言語にカテゴライズされるね。

太郎くん
太郎くん

UMLみたいに言語と言いつつ実は表現方法的なものではない?
Simulinkっぽいって話が前回でてたから。

フクさん
フクさん

Modelica自体は純粋とは言い難いが、本当にプログラミング言語。
それをVisual的に編集できるエディアがあって、
それがSimulinkっぽいってだけだねー。

Modelicaのプログラミング言語としての特性

太郎くん
太郎くん

なんかModelicaが純粋なプログラミング言語じゃないような言い方したね・・・。
それはどういうことになるんだ・・・?

フクさん
フクさん

まぁC言語とかJavaとかPythonとかRubyのようなイメージとは異なるって意味が含まれてるねー。

太郎くん
太郎くん

???

フクさん
フクさん

まぁ一般的なプログラミング言語は割と現実世界に存在するものか、それに類するものを入出力にすると思うんだよね。
例えばファイルだったり通信電文だったり人間の操作だったり。

太郎くん
太郎くん

うん。そうだね。

フクさん
フクさん

Modeliacの場合はそういうのはほぼできなくて、

  • モデル定義
  • 接続

くらいしかない。

太郎くん
太郎くん

モデル定義?

フクさん
フクさん

モデル定義はパラメータ方程式(equation)の定義でなりたってる。

太郎くん
太郎くん

オブジェクト指向言語のクラスみたいな感じかな???

フクさん
フクさん

構成としてはそっくりだね。
一応Modelicaもオブジェクト指向の思想は組み込んでるというか・・・。
オブジェクト指向自体が元々現実世界のシミュレーションを基礎としているからModelicaのアプローチの方が本来のオブジェクト指向っぽいとも言える。
なんだけど、これを大きな声で言うと宗教論争になりかねないので、
「Modelicaこそがオブジェクト指向」
とは言えないな・・・。

太郎くん
太郎くん

うーん、確かにそこはいろんな人の琴線に触れてしまいそうだ・・・。

フクさん
フクさん

というわけで、オブジェクト指向云々は一旦忘れて、
次回は簡単にModelicaのコードを見てみよう。

まとめ

フクさん
フクさん

まとめだよ。

  • Modelicaの説明。
    • オブジェクト指向のマルチドメイン・モデリング言語。
    • 機械、電気、電子、油圧、熱、制御などの領域を横断して記述できる。
  • Modelicaはプログラミング言語だが、一般的な言語とは性質が異なる。
    • シミュレーション特化言語。
    • モデル定義としてパラメータと方程式を内包。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました