【FMU】最小構成のMBD事例 第2章 その35【FMI⑥】

【FMU】最小構成のMBD事例 第2章 その35【FMI⑥】 事例
【FMU】最小構成のMBD事例 第2章 その35【FMI⑥】

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

はじめに

前回は、調査結果についての気になったところとして、各社ツールがFMU/FMI対応に対して追加費用を取っていない点について。
恐らくだが、非競争領域として、広めることを重要視した結果と考えられる。
あと、2016年あたりから各社ツールに機能が追加されている傾向がある。
これはFMI関連のSDKが2014年リリースが理由である可能性が高い。

FMU/FMIのversionについてと各version間で互換性が無いことも話をした。
最後にsolverという単語が出てきたが・・・。

登場人物

博識フクロウのフクさん

指差しフクロウ

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

FMU/FMIのシミュレーション方式について

太郎くん
太郎くん

前回は、最後に「solver」って単語だけ出して終わりにされちゃったから、
気になって仕方なかったじゃないかー。

フクさん
フクさん

ごめんごめん。
結構長くなりそうだったんであそこで話を一旦切るしかなかったんだよねー。

太郎くん
太郎くん

で、solverって何?

フクさん
フクさん

その前にFMU/FMIのシミュレーション方式の種類について説明しよう。

太郎くん
太郎くん

方式の種類?
ってことは複数あるってことかな?

フクさん
フクさん

うん。
以下、2種類だけどね。

  • Model Exchange(通称ME)
  • Co-Simulation(通称CS)
太郎くん
太郎くん

ほーう?
どういう違いがあるの?

フクさん
フクさん

MEはFMUの外部にsolverがあって、
CSはFMUの内部にsolverがある。

solver

太郎くん
太郎くん

で、そのsolverが分からないんだけど!!

フクさん
フクさん

solverはODE solverのことを指していて、
ODEはOrdinary Differential Equationの略で常微分方程式って意味になる。
つまり、ODE solverは「常微分方程式を解決する機能」ってことになるね。

太郎くん
太郎くん

???

フクさん
フクさん

たぶん「常微分方程式を解決する」ってのが分からない感じだな。

太郎くん
太郎くん

そう!それ!!

フクさん
フクさん

実は以前ちょっとやってるんだよねー。
オイラー法とかホルン法
その時はそういう名前じゃなくて
差分法中心差分法って言い方だったけど、
差分法 → オイラー法
中心差分法 → ホルン法

太郎くん
太郎くん

そういえばここらへんでやったかも!
確かテイラー展開がどうのってヤツ!

フクさん
フクさん

そうそう。
Simulink、OpenModelicaも内部で「常微分方程式を解決」することでシミュレーション結果を出してる。

太郎くん
太郎くん

たしか、テイラー展開の次数で精度が決まるんだけど、
あくまで近似だったと思うんだけど?

フクさん
フクさん

そうだよ。
前提条件の無い微分方程式は基本解けない近似するのが限界だね。
その近似して解決してくれる機能がODE solver。
オイラー法は「テイラー1次相当の近似」でホルン法が「テイラー2次相当の近似」。
って言い方になるね。

太郎くん
太郎くん

なんとなくイメージは湧いてきたかなー。

まとめ

フクさん
フクさん

まとめだよ。

  • FMU/FMIのシミュレーション方式は2種類ある。
    • Model Exchange(通称ME)。
      • 外部にSolver。
    • Co-Simulation(通称CS)。
      • 内部にSolver。
  • SolverはODE Solverのこと。
    • 常微分方程式を解決する機能。
      • オイラー法、ホルン法などが有名。

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

コメント

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