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

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

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

はじめに

前回は、FMU/FMIのシミュレーション方式について説明。

  • Model Exchange(通称ME)。
    外部にSolver。
  • Co-Simulation(通称CS)。
    内部にSolver。

SolverはODE Solverこと常微分方程式解決機能。
以前やった差分法(オイラー法:テイラー1次相当の近似)、中心差分法(ホルン法:テイラー2次相当の近似)。

今回はその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の位置づけを図解

フクさん
フクさん

前回の話を図にまとめてみた。

太郎くん
太郎くん

おーい!
それを先にやってよー!!

フクさん
フクさん

えー。
けっこうメンドクサイんだよー。

太郎くん
太郎くん

まぁそれは分かる。

フクさん
フクさん

とりえあず貼る。

FMU/FMIのシミュレーション方式(ME/CS)、Model Exchange方式、Co-Simulation方式、FMU、Solver、FMI、プラットフォーム(Simulink,LabView等)

Solverの位置づけ

太郎くん
太郎くん

MEは外部っていってたけど、
プラットフォーム側で演算させるって意味だったのかー。

フクさん
フクさん

そうだね。

太郎くん
太郎くん

これって、どっちが良いとかってあるの?

フクさん
フクさん

そうだねー。
精度含めてコントロールしたいならME。
とりあえずサクっと動かしたいならCS。
ってところかな。

太郎くん
太郎くん

精度をコントロール?
なんか具体例みたいなのってない?

フクさん
フクさん

ME方式のようにSolverをFMUの外に持ってくる理由としては以下が考えらえるかな。

  • 制御モデル等は求める精度からsolverを調整したい場合がある。(テイラー1次or2次)
  • 軽量solverにして全体のシミュレーション速度を上げたい。(ルンゲクッタ法=テイラー4次)

solverを調整したい場合

太郎くん
太郎くん

うーん、イマイチぴんとこない。

フクさん
フクさん

制御側って結局のところはECUことソフトウェア側で処理するじゃん?

太郎くん
太郎くん

うん。
ほとんどの場合はそうだろうね。

フクさん
フクさん

そうすると、演算負荷を上げたくないからテイラー1次か2次ぐらいの近似にすると思うんだよね。

太郎くん
太郎くん

あ!そうか!
わざとECUで実現している精度に落としたい場合があるってことか?!

フクさん
フクさん

その通り。

全体のシミュレーション速度を上げたい

太郎くん
太郎くん

シミュレーション速度を上げたいって方はどうなるの?

フクさん
フクさん

ふむ。
プラントモデルなんかは制御モデルと違って実物を模すものなので
限界まで精度を上げたいってのはある。

太郎くん
太郎くん

そうだね。
近似するにしても可能な限り本物に近づけたいよね。

フクさん
フクさん

しかし、近似精度を上げると演算負荷があがる
ECUほどじゃないにしても演算速度を上げたい場合は・・・。

太郎くん
太郎くん

あ、こっちも精度を少し落として調整したい!
ってなるのか!?

フクさん
フクさん

そういうことだねー。

MEとCS、結局どっちが良いのか?

太郎くん
太郎くん

じゃー、MEの方が良いってことになるのかな?

フクさん
フクさん

まぁCSの方がお手軽ではあるし、
MEをサポートしてないツールもあるだろうから、無条件でMEでOKにはならないかな?
とりあえず動かすことを目的にするならCSが一番楽だし。
S-Functionと同等の使い方を想定するとCS側だし。

太郎くん
太郎くん

なるほど。
そこらへんのトレードオフがあるのかー。
あとS-Functionと同等ってのはCSを使う上ではポイント高いかもね。

フクさん
フクさん

と、まぁここまではFMU/FMIの大雑把な話になる。

太郎くん
太郎くん

(これで・・・まだ「大雑把」・・・だと・・・?)

まとめ

フクさん
フクさん

まとめだよ。

  • FMU/FMIのシミュレーション方式とSolverの位置づけを図解した。
  • MEは近似精度を調整したい場合に有利。
    • ECUの粗い制度を再現したい。
    • プラントの演算負荷を下げてシミュレーションを高速化したい。
  • CSは内部にSolverがあり、繋ぐだけで動くので設定が簡単。
    • CSのみのサポートしかしていないツールもある。

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

コメント

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