Functional Mock-Up Interface(FMI)のサポート

Functional Mock-Up Interface(FMI)は様々なツール間のインターフェースを作成するための新たな規準です。

FMI規準は、2つの主要なインターフェースソリューション:モデル交換と連成シミュレーションを定義します。あるツールから別のツールへのエクスポートは、FMUファイルを通して行われます。Twin Activateは、FMI-1.0、2.0、および3.0からのFMUブロックをシミュレートでき、モデル交換と連成シミュレーションの両方のブロックタイプをサポートしています。

FMU Import

FMUブロックは、FMUブロックのインポートとシミュレートを可能にします。

このブロックは、パレットのActivate > CoSimulationにあります。

FMUブロックは、FMIバージョン(1.0、2.0、または3.0)とFMIタイプ(モデル交換または連成シミュレーション)を自動検出し、対応するシミュレーション方法を適用します。FMU Importブロックをダブルクリックすると、ブロックダイアログが表示されます。

このブロックダイアログでは、FMUブロックの選択とロードが可能です。入力数、出力数、状態変数の数などの値を各フィールドに入力するか、ReloadをクリックしてFMUブロックを読み取り、フィールドに自動入力します。パラメーターテーブルには、FMU変数変数が表示されており、その開始値は編集可能です。値の変更は、シミュレーション開始前に考慮されます。

ダイアログに値が入力されると、FMUブロックをモデルダイアグラムに追加できるようになります。次の例は、水力学ソフトウェア製品による連成シミュレーションを実施するダイアグラムのFMUブロックを示しています。

FMUエクスポート

FMUエクスポート機能では、Twin ActivateのスーパーブロックをFMUモジュールとしてエクスポートできます。

FMUエクスポート機能には次の特徴があります:
  • FMI-2.00または3.0としてエクスポートします。
  • モデル交換または連成シミュレーション、あるいはその両方としてFMUをエクスポートします。
  • スーパーブロックの内部情報がIP保護のために秘匿されます。
  • 内部ブロックのパラメータがFMUに表示されます。
  • いくつかの固定ステップソルバーと可変ステップソルバーを、連成シミュレーション向けにFMIへエクスポートできます。
  • エクスポートしたFMUを、Twin ActivateなどのFMI互換ツールにインポートできます。
現在のバージョンのFMIエクスポートでは、以下がサポートされていません:
  • ReadfromMatやSignalInなどの信号インポートブロック。
  • WritetoMatやSignalOutなどの信号エクスポートブロック。
  • ScopeやDisplayなどの信号ビューアブロック。
  • MotionSolve、Spiceなどの連成シミュレーションブロック。
  • メモリブロックはサポートされていません。
  1. FMUにエクスポートするには、ダイアグラムの中でエクスポートする領域を選択し、それをスーパーブロックに変換します。
    たとえば、以下のモデルでは、スーパーブロックcontroller_to_exportを選択できます。

    controller-to-export スーパーブロックは線形システムとマトリックスゲインブロックを有し、1つのスカラー入力と2つのベクトル出力を備えています。

  2. このスーパーブロックの作成後、リボンでエクスポート(Export) > エクスポート(Export)の順に選択します。
    スーパーブロックを右クリックし、コードの生成とエクスポート(Code Generation and Export)を選択することもできます。
  3. ターゲット(Target)でFMUを選択します。
  4. コード生成ツール:標準コード生成(Standard code generation)またはインラインコード生成(Inlined code generation)
    • 標準コード生成(Standard code generation)Twin Activateで使われているのと同じライブラリがFMUの中にパッケージされています。この方法は、FMUエクスポート用により多くのTwin Activateブロックをサポートますが、すべての必要なライブラリのバイナリがFMUに含まれるため、FMUサイズが大きくなる可能性があります。
    • インラインコード生成(Inlined code generation)Twin Activate ブロックに対して最適化されたCコードが生成されます。生成されたCコードはFMUでエクスポートし、別のOS用に再コンパイルすることができます。
      注: Modelicaブロックは、連成シミュレーション用のインラインコード生成だけでなく、標準コード生成でもエクスポートできます。
      注: Modelicaブロックなど、Twin Activateブロックの中には、モデル交換用のインラインコード生成でエクスポートできないものがあります。
      注: インラインコード生成はFMI-3.0としてもエクスポートでき、配列とクロックをサポートします。
  5. FMUタイプ:モデル交換(Model Exchange)連成シミュレーション(CoSimulation)、または連成シミュレーションとモデル変換(CoSimulation and Model Exhange)

    エクスポートしたFMUの名前と識別子では、スーパーブロックの名前が保持されています。したがって、スーパーブロックの名前にサポート対象外の文字を使用していると、それはASCII文字に変換されます。例えば、スーパーブロックの名前がSuperB !\%lockの場合、この名前はsb_SuperB32339237lockに変換されます。

    エクスポート方式として連成シミュレーションを選択した場合は、Twin Activateのシミュレーターのほか、シミュレーションパラメータもモデルとともにエクスポートされます。

    注:

    FMIエクスポート機能には、C/ C++コンパイラーが必要です。

    Windowsプラットフォームでは、Microsoft Visual Studio C/C++コンパイラーが必要です。作成したCコードをコンパイルするには、システムに正しいコンパイラーがインストールされていることを確認します。コンパイラーがないと、FMUに対応したバイナリが存在しないのでFMIエクスポートができません。

    Linuxプラットフォームでは、Twin Activateはシステム上のGCCコンパイラーを使用します。

    注:

    Twin Activateによって、システム上のCコンパイラーが自動的に検出されます。OMLコマンドvssGetCompilerName()を使用すると、Twin Activateで認識されたCコンパイラーが表示されます。

  6. エクスポート方式を選択すると、によってスーパーブロックがエクスポートされ、FMUの保存先を指定するように求められます。デフォルトの保存場所は、元のモデルファイルが保存されているフォルダです。

FMUドキュメントのエクスポート

OML コマンドを発行して、FMU情報を .html ファイルで出力します。

FMUをエクスポートする際に、FMU内のスーパーブロックの説明を記載した.htmlファイルを生成して含めることができます。エクスポートされる記述は、スーパーブロックダイアグラムのモデルレポートです。

デフォルトでは、.html ページは生成されません。この機能を有効にするには、OMLコマンドウィンドウで、次のように入力します:setenv('Activate_FMU_export_DOC','true')

LinuxプラットフォームでのFMUエクスポート

LinuxでFMUのエクスポートを行うには、ldバージョン2.27以上が必要です。

LinuxプラットフォームでFMUをTwin Activateにエクスポートするには、Cコードのコンパイルとリンクにldバージョン2.27以降が必要です。Binutilsをコマンドでインストールまたはアップデートすることにより、互換性のあるバージョンのldで作業していることを確認することができます。yum install binutils.

FMUエディター

FMUエディターでは、FMUの階層の操作、変数や属性の表示/非表示、カスタマイズされたFMUの保存とエクスポートが可能です。

  1. リボン上でツール > FMUを選択します。
  2. FMUエディターで、ファイル > 開く を選択し、FMUに移動します。


    FMUエディターには、 FMU 変数FMU属性 タブがあります。
  3. FMU変数タブを選択すると、複数のオプションで変数をカスタマイズできます:
    • FMU内をツリービューで移動します。
    • 表示する変数を選択します。
    • 非表示にする変数の選択を解除します。
    • 変数の記述を修正します。
    • FMUのエディターツールを使って、変数の操作を行います:すべて選択/選択解除、順番の反転、検索。




  4. FMU属性タブを選択すると、これらのオプションを使用してFMUをカスタマイズすることができます。
    • FMU属性の説明を修正します。
    • 編集可能な属性フィールドを変更する。グレーアウトした項目は、変更できません。


  5. 名前をつけてFMUを保存(Save FMU A)ボタンをクリックし、カスタマイズしたFMUに名前を付けて保存します。
    これで、カスタマイズしたFMUの共有が可能になります。元のFMUは変更されません。