Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

FMU ブロックの実装

ブロックを実装し、Functional Mockup Unit (FMU) をブロックに割り当てます。その後、ブロックを調べて FMU を確認できます。この例では、車両の FMU を備えた FMU ブロックを使用します。

  1. モデルを作成し、FMU ブロックを追加します。

  2. ブロックのダイアログ ボックスの [FMU 名] パラメーターに FMU ファイルのパス名を入力し、[OK] または [適用] をクリックします。ファイルの拡張子 .fmu はオプションです。

    [OK] または [適用] の初回クリック時に、FMU に設定する FMU モード (コシミュレーションまたはモデル交換) がブロックによって特定されます。

    また、ブロックによって slprj/_fmu/fmu_name フォルダーが作成され、FMU ファイルの内容がこのフォルダーにアンパックされます。このフォルダーには必要に応じて次を含めることができます。

    • binaries — FMU のバイナリ ファイル

    • documentation — FMU のドキュメンテーションの HTML ファイル

    • resources — FMU のソース ファイル

    • sources — FMU のソース ファイル

    • ブロック マスク ファイルや記述ファイルなど、その他のサポート ファイル

FMU ブロックのアイコンと端子ラベルは、対応する FMU のラベルに更新されます。ブロックを FMU に関連付けた後で FMU を変更する場合は、FMU ブロックを右クリックして [ブロック パラメーター] を選択し、[FMU 名] に新しい FMU 名を入力します。このトピックの節ではFMU Import ブロックによる構造化データのインターフェイスの簡略化の例からの FMU を使用します。

FMU ブロックの確認

ブロックをダブルクリックします。現在のフォルダーから fmuVehicAOB.fmu という名前の FMU を入力したと仮定します。FMU ブロックのダイアログ ボックスには fmuVehicAOB.fmu ファイルで定義された FMU パラメーターが反映されます。

[パラメーター] タブ

FMU ブロック パラメーターのリストが表示されます。必要に応じて値を編集します。ツリー ビューを展開して構造体パラメーターの要素を編集できます。

[シミュレーション] タブ

ログ記録と関連付けられたカスタマイズを有効にします。

  • 相対許容誤差を入力するには、[FMU 許容誤差の有効化] を選択し、それを設定します。

  • モデル内のブロックのサンプル時間を決定するには、[通信ステップ サイズ] を設定します。Simulink® ソルバーからステップ サイズを継承するには、-1 に設定します。このオプションは、FMU がコシミュレーション FMU である場合のみ利用できます。

  • イベント モードでシミュレートする場合は、[イベント モードを有効にする] オプションをオンにします。このオプションは、FMU がコシミュレーション モードで使用されていて、FMI 3.0 標準との互換性がある場合にのみ使用可能です。

  • ログ記録を有効にするには、[FMU のデバッグ ログを有効にする] を選択します。

  • [デバッグ ログのリダイレクト先] でログのリダイレクト先を選択します。

    • [ファイル]slprj\_fmu\_logs_modelname\modelname_blockname.txt に保存されます。

    • [Display]。MATLAB® コマンド ウィンドウに表示されます。

    [FMU のデバッグ ログを有効にする] チェック ボックスが選択されており、[デバッグ ログのリダイレクト先] パラメーターが Display に設定されている FMU ブロックは、コシミュレーションに利用できません。コシミュレーションと複数のコアの詳細については、複数のコアにおけるコシミュレーション コンポーネントの実行を参照してください。

  • [戻りステータスでログをフィルター処理] で、希望する戻りステータスのチェック ボックスをオンにします。

[入力バス] タブと [出力バス] タブ

これらの 2 つのタブには、ブロックが定義する入出力のバス オブジェクトが示されます。

[バス オブジェクト名] パラメーターでは、ワークスペースで定義されたバス オブジェクトに一致するようにバス オブジェクト名を変更できます。

ワークスペースでバス オブジェクトを作成するには、次を実行します。

fmudialog.createBusType(gcb)

ブロックの入力、出力、パラメーター、および内部変数構造体の変更

FMU ブロックの入力端子、出力端子、およびパラメーターのレイアウトを以下のパラメーターを使用して変更できます。

パラメーター動作設定
FMUInputMapping入力端子の階層を変更します。

'Flat' — 入力を個々の信号に分割します。

'Structured' — 入力を組み合わせて信号の構造体 (バス) を作成します。

FMUOutputMapping出力端子の階層を変更します。

'Flat' — 出力を個々の信号に分割します。

'Structured' — 出力を組み合わせて信号の構造体 (バス) を作成します。

FMUParamMappingパラメーターの階層を変更します。

'Flat' — パラメーターを個々のパラメーターに分割し、パラメーター名と値でリストします。

'Structured' — パラメーターを組み合わせてパラメーター値の構造体 (struct) を作成します。

FMUInternalMapping内部変数の階層を変更します。

'Flat' — 内部変数を個々の信号に分割します。

'Structured' — 内部変数を組み合わせて信号の構造体 (バス) を作成します。

関数 get_paramset_param を使用して、これらの値を設定します。たとえば、以下のような構造体の構成を示す [ブロック パラメーター] タブがあると仮定します。

パラメーターは struct に含まれています。パラメーターを個別にリストするには、FMUParamMapping プロパティを 'Flat' に設定します。

set_param(gcb,'FMUParamMapping', 'Flat')

タイミングに関する考慮事項

[通信ステップ サイズ] パラメーターで FMU ブロックのサンプル時間を設定できます。このブロックのサンプル時間設定 tC は、すべての Simulink ブロックと同様に、モデルのサンプル時間 tM の整数倍でなければなりません。Simulink では、通信ステップ サイズ tC がモデル ステップ サイズ tM の倍数でない場合エラーが発生します。

一方、FMU tL のローカル ステップ サイズは FMU 指定の一部で、FMU でのみ内部で認識されます。適切に動作させるために、通信ステップ サイズ tC は tL の整数倍でもなければなりません。モデルのサンプル時間 tM またはブロックのサンプル時間 tC が FMU ローカル ステップ サイズ tL と互換しない場合、FMU では、実装に応じて実行時にエラーが発生する場合としない場合があります。

FMU のトラブルシューティング

FMU の使用に関して問題が発生した場合は、以下のことを行ってください。

  • FMI 標準に対する FMU の準拠性を確認する。FMU 準拠性チェッカーを使用する。

  • FMU ブロックの [シミュレーション] タブで [FMU のデバッグ ログを有効にする] チェック ボックスをオンにする。

  • FMU のサプライヤに問い合わせる。

参考

|

関連するトピック

外部の Web サイト