バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回は、調査結果についての気になったところとして、各社ツールがFMU/FMI対応に対して追加費用を取っていない点について。
恐らくだが、非競争領域として、広めることを重要視した結果と考えられる。
あと、2016年あたりから各社ツールに機能が追加されている傾向がある。
これはFMI関連のSDKが2014年リリースが理由である可能性が高い。
FMU/FMIのversionについてと各version間で互換性が無いことも話をした。
最後にsolverという単語が出てきたが・・・。
登場人物
博識フクロウのフクさん
![指差しフクロウ](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
![技術者太郎](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
FMU/FMIのシミュレーション方式について
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」11アップ.png)
前回は、最後に「solver」って単語だけ出して終わりにされちゃったから、
気になって仕方なかったじゃないかー。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
ごめんごめん。
結構長くなりそうだったんであそこで話を一旦切るしかなかったんだよねー。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
で、solverって何?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
その前にFMU/FMIのシミュレーション方式の種類について説明しよう。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
方式の種類?
ってことは複数あるってことかな?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
うん。
以下、2種類だけどね。
- Model Exchange(通称ME)
- Co-Simulation(通称CS)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
ほーう?
どういう違いがあるの?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
MEはFMUの外部にsolverがあって、
CSはFMUの内部にsolverがある。
solver
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」11アップ.png)
で、そのsolverが分からないんだけど!!
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
solverはODE solverのことを指していて、
ODEはOrdinary Differential Equationの略で常微分方程式って意味になる。
つまり、ODE solverは「常微分方程式を解決する機能」ってことになるね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」10アップ.png)
???
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
たぶん「常微分方程式を解決する」ってのが分からない感じだな。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
そう!それ!!
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
実は以前ちょっとやってるんだよねー。
オイラー法とかホルン法。
その時はそういう名前じゃなくて
差分法と中心差分法って言い方だったけど、
差分法 → オイラー法
中心差分法 → ホルン法
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者03アップ.png)
そういえばここらへんでやったかも!
確かテイラー展開がどうのってヤツ!
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
そうそう。
Simulink、OpenModelicaも内部で「常微分方程式を解決」することでシミュレーション結果を出してる。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
たしか、テイラー展開の次数で精度が決まるんだけど、
あくまで近似だったと思うんだけど?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
そうだよ。
前提条件の無い微分方程式は基本解けない。近似するのが限界だね。
その近似して解決してくれる機能がODE solver。
オイラー法は「テイラー1次相当の近似」でホルン法が「テイラー2次相当の近似」。
って言い方になるね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
なんとなくイメージは湧いてきたかなー。
まとめ
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まとめだよ。
- FMU/FMIのシミュレーション方式は2種類ある。
- Model Exchange(通称ME)。
- 外部にSolver。
- Co-Simulation(通称CS)。
- 内部にSolver。
- Model Exchange(通称ME)。
- SolverはODE Solverのこと。
- 常微分方程式を解決する機能。
- オイラー法、ホルン法などが有名。
- 常微分方程式を解決する機能。
バックナンバーはこちら。
コメント