モデル間のインタフェースを規定
このような、複数のシミュレーション・モデルを組み合わせるメリットを得やすくする目的で、モデル間のインタフェース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)。
モデル交換と連成シミュレーションでは、それぞれ規定が分かれている。モデル交換の規定では、システムのシミュレーション・モデル(システムモデル)が動いているシミュレーション・ツールに、外部から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マネジャ)〕という。