バックナンバーはこちら。
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で作成されているためマルチプラットフォーム。
バックナンバーはこちら。
コメント