メインコンテンツ

FMU

Functional Mockup Unit (FMU) をモデルに含める

  • FMU block

ライブラリ:
Simulink Extras / FMU Import

説明

FMU ブロックは、既存の Functional Mockup Unit (FMU) を Simulink® にインポートします。インポートする既存の FMU に基づいて、ブロックで自動的に FMU モードが選択されます。

  • コシミュレーション — Functional Mock-up Interface (FMI) コシミュレーション インターフェイスを実装する FMU を統合します。これらの FMU には、ツールの結合に使用されるローカル ソルバーが含まれる場合があります。

  • モデル交換 — FMI モデル交換インターフェイスを実装する FMU を統合します。これらの FMU にはローカル ソルバーが含まれません。代わりに、Simulink からソルバーを継承します。

このブロックでは、FMI Version 1.0、2.0、および 3.0 がサポートされます。FMI Version 2.0 および 3.0 では、FMU にコシミュレーションとモデル交換の両方の要素が含まれていると、それらがブロックで検出され、ブロックの動作モードを選択するように求められます。

このブロックを使用するには、先に既存の FMU を用意する必要があります。別のツールからエクスポートするか、C 言語で作成します。

端子

出力

すべて展開する

そのままでは何も出力しないプレースホルダー端子。実際の FMU がブロックにインポートされると入力端子と出力端子が構成されます。入力端子と出力端子は、どちらも数値データ型と string データ型をサポートします。

パラメーター

すべて展開する

FMU の名前を指定します。ファイル拡張子は付けても付けなくてもかまいません。このエントリでは大文字と小文字が区別されます。FMU は MATLAB® パス上に存在しなければなりません。

FMU 名を指定するには、[FMU 名] テキスト ボックスに名前を入力します。

[OK] をクリックすると、アンパックされたファイルとファイル階層をそのまま使用して /slprj/_fmu/unique_ID フォルダーが作成されます。

依存関係

FMU 名を指定すると、4 つのタブを含むようにブロック ダイアログ ボックスが更新されます。

  • パラメーター

  • シミュレーション

  • 入力

  • 出力

プログラムでの使用

ブロック パラメーター: FMUName
型: 文字ベクトル
値: FMU の名前 (ファイル拡張子の有無は任意)
既定の設定: ' '

パラメーター

このタブには、FMU で定義されているパラメーターがリストされます。

  • 目的のパラメーターのみを表示するには、フィルター フィールドに検索文字列を入力します。この文字列でパラメーターの名前や説明のテキストを照合できます。

  • パラメーター テーブルの [値] フィールドでパラメーターの値を変更できます。

  • インポートされたパラメーターの名前には 55 文字の制限があります。

構造化されたモデル パラメーターの階層は、set_param 関数を使用して FMUParamMapping ブロック パラメーターを設定することで変更できます。このブロック パラメーターは、InheritFlat、または Structured に設定できます。既定では Inherit に設定されています。Flat に設定すると、構造化されたモデル パラメーターが、対応するパラメーター名と値をもつ個々のパラメーターに分割されます。Structured に設定すると、モデル パラメーターが組み合わされてパラメーター値の構造体が形成されます。

入力

このタブには、FMU の modelDescription.xml で指定されている入力変数がリストされます。

構造化された入力端子の変数を指定します。

変数に名前でフィルターを適用するには、テキスト ボックスに変数名を入力します。

変数テーブルには階層の最上位のノードとその子ノードの変数と値が一覧表示されており、このタブではその多くの項目を編集することができます。

  • 名前 — 変数名。これは編集できません。

  • 可視性 — このチェック ボックスをオンにすると、ブロックの入力端子が変数に対して有効になります。端子を削除するには、このチェック ボックスをオフにします。

    最上位ノードでこのチェック ボックスをオンにすると、子ノードがブロックの 1 つの端子として表示されるようになります。

    メモ

    [適用] をクリックすると、ブロック端子の数が変わります。それに応じて接続の追加や削除を忘れずに行ってください。

  • 開始 — modelDescription.xml で定義されている開始値を追加します。以下は実行できません。

    • 対応する入力端子が表示された状態で開始値を変更する。

    • 非リーフ ノードに開始値を追加する。(リーフ ノードに対してのみ開始値を編集できます。)

  • バス オブジェクト名 — 端子に対応するバス オブジェクト変数を設定します。既定では、modelDescription.xml で定義されている構造化された変数名が変数に使用されます。ワークスペースで新しい変数を作成するには、fmudialog.createBusType を使用します。

いずれかの変数の値を変更すると [出力を既定の設定に復元] ボタンが有効になり、クリックすると元の設定に戻すことができます。

FMU ブロックの入力端子のレイアウトは、set_param 関数を使用して FMUInputMapping パラメーターを設定することで変更できます。このパラメーターは、InheritFlat、または Structured に設定できます。既定では Inherit に設定されています。パラメーターを Flat に設定すると、バス入力端子が個々のバス要素信号の入力端子に分割されます。パラメーターを Structured に設定すると、個々のバス要素の入力端子が組み合わされてバス入力端子が形成されます。

出力

このタブには、FMU の modelDescription.xml で指定されている出力変数と内部変数が一覧表示されます。

構造化された出力端子の変数を指定します。

変数に名前でフィルターを適用するには、テキスト ボックスに変数名を入力します。

変数テーブルには階層の最上位のノードとその子ノードの変数と値が一覧表示されており、このタブではその多くの項目を編集することができます。

  • 名前 — 変数名。これは編集できません。

  • 可視性 — このチェック ボックスをオンにすると、ブロックの出力端子が変数に対して有効になります。端子を削除するには、このチェック ボックスをオフにします。この FMU に内部変数が存在する場合は、個々の内部変数について可視性を有効または無効にできます。内部変数が選択されている場合、追加の出力端子が作成されます。

    最上位ノードでこのチェック ボックスをオンにすると、子ノードがブロックの 1 つの端子として表示されるようになります。

    メモ

    [適用] をクリックすると、ブロック端子の数が変わります。それに応じて接続の追加や削除を忘れずに行ってください。

  • 開始 — modelDescription.xml で定義されている開始値を追加します。出力変数については、開始値を変更または追加することはできません。

  • バス オブジェクト名 — 端子に対応するバス オブジェクト変数を設定します。既定では、modelDescription.xml で定義されている構造化された変数名が変数に使用されます。ワークスペースで新しい変数を作成するには、fmudialog.createBusType を使用します。

いずれかの変数の値を変更すると [出力を既定の設定に復元] ボタンが有効になり、クリックすると元の設定に戻すことができます。

FMU ブロックの出力端子のレイアウトは、set_param 関数を使用して FMUOutputMapping パラメーターを設定することで変更できます。このパラメーターは、InheritFlat、または Structured に設定できます。既定では Inherit に設定されています。パラメーターを Flat に設定すると、バス出力端子が個々のバス要素信号の出力端子に分割されます。パラメーターを Structured に設定すると、個々のバス要素の出力端子が組み合わされてバス出力端子が形成されます。

シミュレーション

FMU に対する許容誤差の値の指定を有効にするには、このチェック ボックスをオンにします。それ以外の場合は、このチェック ボックスをオフにします。

依存関係

このパラメーターは、FMU のバージョンまたはモードで許容誤差の値がサポートされている場合にのみ適用されます。

プログラムでの使用

ブロック パラメーター: FMUIsToleranceUsed
型: 文字ベクトル
値: on | off
既定の設定: 'off'

FMU の相対許容誤差の値 (%)。スカラーとして指定します。​

依存関係

このパラメーターは、FMU のバージョンまたはモードで許容誤差の値がサポートされている場合にのみ適用されます。

プログラムでの使用

ブロック パラメーター: FMUToleranceValue
型: 文字ベクトル
値: 1E-3 | スカラー
既定の設定: '1E-3'

FMU のシミュレーション用のバイナリを選択します。Windows® の FMU について、FMU に Linux® バイナリが含まれている場合は、このオプションを linux64 として設定します。

依存関係

このような Windows での Linux バイナリを使用したシミュレーションには、次の製品のインストールが必要です。

  • Simulink Compiler™

  • FMU Builder for Simulink サポート パッケージ

  • Windows Subsystem for Linux (WSL) Version 2.0.9.0 以降

詳細については、Simulate FMU with Linux Binary on Windows (Simulink Compiler)を参照してください。

プログラムでの使用

ブロック パラメーター: FMUSelectedBinary
型: 文字ベクトル
値: x86_64-windows | x86-windows | linux64
既定の設定: 'win64'

FMU をイベント モードでシミュレートします。​

依存関係

このパラメーターは、FMU でイベント モードがサポートされている場合にのみ有効になり、FMU がコシミュレーション モードで使用されていて FMI 3.0 標準との互換性がある場合にのみ適用されます。

プログラムでの使用

ブロック パラメーター: CSEventModeEnabled
型: 文字ベクトル
値: on | off
既定の設定: 'on'

シミュレーション中の通信ステップ サイズ。スカラーとして指定します。ブロックのシミュレーション時点間の時間間隔を指定します。詳細については、タイミングに関する考慮事項を参照してください。

ほとんどの場合は、予期しない動作を防ぐために、この値を正の値に設定します。サンプル時間を駆動ブロックまたはモデルのソルバーから継承するには、このパラメーターを -1 に設定します。詳細については、サンプル時間の指定を参照してください。

ブロックでは、連続、離散、継承など、さまざまなタイプのサンプル時間がサポートされます。ただし、一般的なコシミュレーション FMU でサポートされるのは、オフセットなしの周期的離散サンプル時間 (正のスカラーなど) のみです。

依存関係

このパラメーターはコシミュレーション モードでのみ適用されます。

プログラムでの使用

ブロック パラメーター: FMUSampleTime
型: 文字ベクトル
値: スカラー
既定の設定: '-1'

FMU のデバッグ ログの表示を有効にするには、このチェック ボックスをオンにします。それ以外の場合は、このチェック ボックスをオフにします。

プログラムでの使用

ブロック パラメーター: FMUDebugLogging
型: 1 行 N 列の文字ベクトルの cell 配列
値: on | off
既定の設定: 'off'

デバッグ ログをタイプ別にフィルターを適用します。次のチェック ボックスをオンにして指定します。

  • OK

  • 警告

  • 破棄

  • エラー

  • 致命的

  • 保留中

プログラムでの使用

ブロック パラメーター: FMUDebugLoggingFilter
型: 文字ベクトル
値: OK | Warning | Discard | Error | Fatal | Pending
既定の設定: 'OK' | 'Warning' | 'Discard' | 'Error' | 'Fatal' | 'Pending'

デバッグ ログの送信先。以下として指定します。

  • ファイルslprj/_fmu/_logs_modelname/modelname_FMUblockname.txt​ にストリーミングします。

  • 表示 — MATLAB コマンド ウィンドウにストリーミングします。

依存関係

このパラメーターを [ファイル] に設定すると、[FMU のログ ファイルを開く] リンクが有効になります。

プログラムでの使用

ブロック パラメーター: FMUDebugLoggingRedirect
型: 文字ベクトル
値: File | Display
既定の設定: 'File'

コード生成

FMU ブロックの生成されたコードの FMI API のソースを指定します。生成コードで、ソース コードからインライン化された FMU 関数を使用するか、関数ポインターを使用してコンパイルされたバイナリから FMI API を参照するかを指定します。入れ子にされた FMU、ERT ターゲット、GRT ターゲット、およびラピッド アクセラレータ シミュレーション モードでは、ソース コード ベースのコード生成が既定のオプションです。例については、Integrate FMI APIs in Generated Code Using FMU Source Code or Binaryを参照してください。

ヒント

このオプションを [source code] として設定すると、生成コードを複数のプラットフォームでコンパイルできます。

依存関係

このオプションは、Simulink から生成されたソース コードが FMU パッケージに含まれている場合にのみアクティブになります。FMU に外部ツールからのバイナリまたはソース コードしか含まれていない場合、オプションは非アクティブになり、コンパイルされたバイナリがコード生成に使用されます。

プログラムでの使用

ブロック パラメーター: FMUCGType
型: 文字ベクトル
値: source code | shared library | auto

ブロックの特性

データ型

logicala | busa | doublea | integera | singlea | stringa

直達

はいa

多次元信号

はいa

可変サイズの信号

はいa

ゼロクロッシング検出

はいa

a 実際のデータ型または機能のサポートは、ブロックの実装に依存します。

バージョン履歴

R2017b で導入

すべて展開する