モデル間のインタフェースを規定

 このような、複数のシミュレーション・モデルを組み合わせるメリットを得やすくする目的で、モデル間のインタフェースFMI(Functional Mockup Interface)を標準化しようという動きが始まった。当初は、独Daimler社が独自に開発を始め、その後欧州の公的プロジェクトが規格化し、2010年にバージョン1.0が公開された。FMIはModelicaの仕様と直接の関係はないが、目的が似ているなどの理由で2011年にModelica協会が引き継いだ。

 FMIを用いる場面は、[1]ツール間での「モデル交換」(Model Exchange)、[2]同時に計算を進めているモデル同士の「連成シミュレーション」(Co-Simulation)、の2つである。FMIの対象となるモデルはFMU(Function Mockup Unit)と呼ぶ。FMIが決めるのは、このFMUが物理量をやり取りする際の枠組みである(図2)。

図2●FMIにおける2つの規定
図2●FMIにおける2つの規定
「モデル交換(Model Exchange)」では、モデル(FMU、Functional Mockup Unit)とソルバの間のインタフェースと、同じソルバで計算される他のモデルとのインタフェースを規定する。「連成シミュレーション(Co-Simulation)」では、モデルとソルバの組みをFMUと捉え、これとマスタ(連成シミュレーションの計算全体を制御するソフト)との間のインタフェースを規定する。
[画像のクリックで拡大表示]

 モデル交換と連成シミュレーションでは、それぞれ規定が分かれている。モデル交換の規定では、システムのシミュレーション・モデル(システムモデル)が動いているシミュレーション・ツールに、外部からFMUを読み込むことを想定している。そのFMUとシステムモデルの間と、FMUとソルバ(積分器)との間の物理量のやり取りを規定する〔図2(a)〕。

 連成シミュレーションの規定では、独立して動作する複数のシミュレーション・モデルを想定しており、FMUはソルバを含む。FMU同士は対等であり、シミュレーション全体を制御するマスタの下で動作する。従ってFMIではFMUとマスタとのインタフェースを規定する〔図2(b)〕。

 FMIの開発を始めたDaimler社では、商用車のギヤのシミュレーション・システムを複数のシミュレータとFMIで構成するプロジェクトを実行した(図3)。制御モデルと、物理モデル(トランスミッション、エンジン、車体)がそれぞれ別のシミュレータ上のモデルやDaimler社が作成したプログラムとして存在しており、これらをFMIで接続した。

 FMIの次期バージョン2.0(2013年12月公開予定)では、モデル交換と連成シミュレーションの規定の親和性を高める。さらに、2014年中ごろに小さな改訂を加えたFMI2.1を確定し、「これで主要な規定がほぼ出そろうため、普及を拡大できる時期になる」〔Modelica協会FMIプロジェクト議長のTorsten Blochwitz氏(独ITI社R&Dマネジャ)〕という。

図3●独Daimler社におけるFMI応用プロジェクト
図3●独Daimler社におけるFMI応用プロジェクト
商用車のギヤのシミュレーションを、複数のツールを用いて実行した。図の右から、トランスミッションの制御モデル(独自プログラム)とエンジン制御モデル(「Simulink」上に作成)を1Dシミュレーション・ツール(SimulationX)の物理モデルに組み込む。さらに、これを機構解析ツール(SIMPACK)の車体の物理モデルに組み込む。
[画像のクリックで拡大表示]