インポートされたFMUを使用する
Modelicaが主要モデリング言語として使われているSystem ModelerでインポートされたFMUが使用できるようにするために,ModelicaモデルはFMUを中心にして作られる.そのモデルはラッパーモデルと呼ばれる.このページでは,ラッパーモデルの特性について述べる.
FMIのイントロダクションとしては,ファンクショナルモックアップインターフェースのページを参照のこと.
アイコンビュー
Model CenterでFMUをインポートすると,自動的にラッパーモデルのアイコンビューが開く.組込みアイコンを使ったFMUではSystem Modelerにおいてもそのアイコンが維持されるが,右上の角に小さいパズルの画像が加えられる.これはインポートされたFMUとSystem Modelerで作られたモデルの区別を容易にするために加えられるものである.インポートされたFMUがアイコンを含まない場合は,アイコンとしてパズルの画像が与えられる.
ダイアグラムビュー
ラッパーモデルのダイアグラムビューには入力,出力,入出力に接続されたフィルタのグラフィカル表現が含まれる.また,FMUについてのテキストによる情報も含まれる:
ドキュメント
FMUに付属するドキュメントは,インポート後にSystem Modelerから利用できるようになる.ドキュメントを含まないFMUについては,Modelicaクラス用のデフォルトのドキュメントページが表示される.クラスのドキュメントを見る方はドキュメントセンターユーザガイドを参照されたい.
コンポーネントブラウザ
Model Centerの右側のコンポーネントブラウザ には,現在開いているクラスのすべてのコンポーネントとラッパーモデルのパラメータすべてがリストされる.これにはFMUのインポート時にSystem Modelerによって作成された多数の内部変数が含まれる.名前の最後にアンダースコアが付いている変数とパラメータ( debugLogging_ , x_等)はすべてインポートによって生成されたものであり,FMU変数と混同してはならない.コンポートブラウザについての詳細情報はModel Centerユーザガイドのコンポーネントブラウザを参照されたい.
インポートされた水槽システムのFMUのコンポーネントブラウザ
一般ビュー
ラッパーモデルの一般ビューは,Model Centerの下部にある.このビューには,最上位モデルに存在するすべての入力,出力,パラメータが表示される.一般ビューには,FMUの内容によって表示されるいくつかのセクションがある:
変数の初期値の設定に使用されるパラメータで,<nameOfVariable>_start_という形式の名前のものは,FMUのインポート時に生成されたものである.例えば,インポートされたFMUのMyModelにおいて,変数m1Outの初期値の設定に使用されるパラメータはm1Out_start_という名前を持つ(上図参照).これは厳密な初期値であるため固定初期値セクションに表示される.
FMUビュー
「FMU」タブには,デバッグのログのための設定等,FMU全体のパラメータが表示される.
入力フィルタと出力フィルタ
FMUのインポートについてのページで述べたとおり,入力または出力にフィルタを加えると,FMUを安全に他のコンポーネントにループで接続できるようになる.インポートの際にFMUインターフェースフィルタを加えるオプションに「入力で」(または「出力で」)が選択されていた場合,入力または出力はインポートされたFMUのフィルタに接続される.
インポートされたTankのFMの入力はフィルタに接続されている
上のスクリーンショットから分かるように,フィルタは端子ブロックに交互に接続される.これらの端子により,デフォルトのフィルタをユーザがカスタマイズしたフィルタやDiscreteDelays_サブパッケージのフィルタに交換することが可能となる.フィルタを右クリックし,「タイプを変更」を選び,その他フィールドに新しいクラスを入力する.これは,デフォルトのフィルタをダイアグラムレイヤーから削除し,新しいフィルタをダイアグラムビューにドラッグアンドドロップしても行える.その後,接続線ツールを使ってフィルタを入力(または出力),および対応する端子ブロックに再び接続する.
ラッパーモデルの入力と出力には,モデル記述ファイルで指定されているもとの名前が与えられるが,対応する端子ブロックにあるFMUの実際の変数の名前には,接尾辞_fmu_が使われる.例えば,上に示したインポートされたTankのFMUにおいて,ラッパーインターフェース変数は qIn や qOutのようにそのモデル記述ファイルで指定されたものと同じ名前が付けられ,ここで実際のFMU変数はそれぞれqIn_fmu_.u,qOut_fmu_.yと命名される.フィルタブロックの命名は重要ではない.
ラッパービュー
FMUのインポートダイアログのFMUインターフェースフィルタを加えるオプション「入力で」または「出力で」が選択されていると,Model Centerのメインウィンドウ下部に「ラッパー」タブが現れる.ラッパービューには,加えられたすべてのフィルタのデフォルトの時間定数filterT_と,選択可能な遅延を持つ離散遅延にのみ適用できるdelayKind_の入出力フィルタのパラメータが含まれている.
filterT_パラメータはラッパービューで直接編集することができ,その変更はすべての入出力フィルタのデフォルトに適用される.もちろん各フィルタの時間定数に異なる遅延を使用したい場合は,個々のフィルタの値をデフォルトの時間定数に優先することもできる.
delayKind_パラメータは,DiscreteDelays_.Integer_SelectDelayのような選択可能な遅延を持つ離散遅延のデフォルトである.これには3つの選択肢がある:
- Fixed.シミュレーション中に変化することのない固定の遅延(filterT_の値)を使う.filterT_のデフォルト値は,連続フィルタを考慮して決定される.離散変数しかない場合は,ずっと小さな値が適しているであろう.
Co-Simulationビュー
FMI for Co-simulationでは,FMUはSystem ModelerにおいてModelicaモデルとは独立に動作する独自のシミュレータを持つ.シミュレータを制御するラッパーモデルのパラメータはCo-Simulationビューで見られる.
FMUとModelicaモデルとの間でのデータ(入力および出力)交換は,離散的な通信点で行われる.ラッパーモデルには通信点を決める2つの動作モードがあり,動作モードはuseTriggerInput_で制御される.useTriggerInput_ が true ならstepTrigger_に接続された外部のトリガ信号が通信点のトリガに使用される.useTriggerInput_ が false の場合は,通信はstep_で与えられるステップサイズで定期的に行われる.
FMUが可変ステップサイズソルバと誤差推定を使用する場合は,tolerance_をゼロより大きいものに設定することで,誤差推定に許容範囲を与えることが可能である.