【プラント】最小構成のMBD事例 第2章 その8【OpenModelica②】

【プラント】最小構成のMBD事例 第2章 その8【OpenModelica②】 事例
【プラント】最小構成のMBD事例 第2章 その8【OpenModelica②】

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

はじめに

OpenModelicaを構成するのツール群の説明。

  • OpenModelica Compiler (OMC)
    • Cコード生成、コンパイル
  • OpenModelica Connection Editor (OMEdit)
    • グラフィックエディタ

などなど。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

OpenModelicaのツール群

フクさん
フクさん

前回書いたOpenModelicaツール群を再度列挙しておこう。

  • OpenModelica Compiler (OMC)
  • OpenModelica Connection Editor (OMEdit)
  • OpenModelica Shell (OMShell)
  • OpenModelica Notebook (OMNotebook)
  • OpenModelica Python Interface (OMPython)
  • OpenModelica Matlab Interface (OMMatlab)
  • Modelica Development Tooling (MDT)
太郎くん
太郎くん

上から順番に説明していく感じかな?

フクさん
フクさん

うん。
その流れで行こう。

OpenModelica Compiler (OMC)

フクさん
フクさん

まずは「OpenModelica Compiler (OMC)」。
名前の通りコンパイラになる。

フクさん
フクさん

なのだが、
直接実行用のオブジェクトが生成されるわけではない。

太郎くん
太郎くん

え?そうなの?
JavaみたいなVMが居るとか?

フクさん
フクさん

単純にC言語に変換してくれるイメージ。
そのC言語をビルドしてシミュレーション実行用の実行オブジェクトが生成されるって流れだね。

太郎くん
太郎くん

なんかSimulinkのアクセラレータモードみたいな感じか。
あれも確か高速化のために内部でC言語を出力してたと思う。

フクさん
フクさん

その振舞は厳密にはクラシックアクセラレータモードだね。
最近のアクセラレータモードはC言語までは生成せずに高速に動作するインタプリタ用コードへの変換にしているみたいだ。

アクセラレータ モード:既定では、アクセラレータ モードは Just-in-Time (JIT) アクセラレーションを使用して、C コードや MEX ファイルを生成せずにメモリ内に実行エンジンを生成します。モデルをクラシック アクセラレータ モードに戻すこともできます。そうすると、Simulink がコードを作成してそれを C-MEX S-Function にリンクします。

MathWorksヘルプセンター(https://jp.mathworks.com/help/simulink/ug/how-the-acceleration-modes-work.html)
太郎くん
太郎くん

いつの間にか進化してた!!

フクさん
フクさん

まぁそういう意味ではOpenModelicaもデバッグ目的でインタプリタ用コードを生成するパターンもあるようだけど。

太郎くん
太郎くん

うーん。なかなか高度なことをやってるんだな。

OpenModelica Connection Editor (OMEdit)

フクさん
フクさん

次は「OpenModelica Connection Editor (OMEdit)」
これは各モデルをVisual的に接続するエディタだね。
Simulinkっぽいヤツって言えば伝わり易いかな。

太郎くん
太郎くん

あー、そういうのがあるとやり始めの抵抗感が少なくなるよねー。

フクさん
フクさん

そうだね。
言語だけでも動作はするんだけど、
なかなかイメージ湧かないからね。
こういったグラフィックエディタがあると教える方も楽できる。

フクさん
フクさん

余談としてはC++/Qtの環境で作られたもので、
Windows、Linux、Macの環境上で同一のユーザインターフェースで操作できる。

太郎くん
太郎くん

そういうのもありがたいよねー。

まとめ

フクさん
フクさん

まとめだよ。

  • OpenModelica Compiler (OMC)はコンパイラ。
    • C言語を生成する。
    • インタプリタ用言語を生成してデバッグ動作を実現。
  • OpenModelica Connection Editor (OMEdit)
    • グラフィックエディタ。
    • C++/Qtで作成されているためマルチプラットフォーム。

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

コメント

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