このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
FMU ブロックの実装
ブロックを実装し、Functional Mockup Unit (FMU) をブロックに割り当てます。その後、ブロックを調べて FMU を確認できます。この例では、車両の FMU を備えた FMU ブロックを使用します。
モデルを作成し、FMU ブロックを追加します。
ブロックのダイアログ ボックスの [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 のデバッグ ログを有効にする] を選択します。
[デバッグ ログのリダイレクト先] でログのリダイレクト先を選択します。
[ファイル]
。slprj\_fmu\_logs_
に保存されます。modelname
\modelname_blockname
.txt[Display]
。MATLAB® コマンド ウィンドウに表示されます。
[FMU のデバッグ ログを有効にする] チェック ボックスが選択されており、[デバッグ ログのリダイレクト先] パラメーターが
Display
に設定されている FMU ブロックは、コシミュレーションに利用できません。コシミュレーションと複数のコアの詳細については、複数のコアにおけるコシミュレーション コンポーネントの実行を参照してください。[戻りステータスでログをフィルター処理] で、希望する戻りステータスのチェック ボックスをオンにします。
[入力バス] タブと [出力バス] タブ
これらの 2 つのタブには、ブロックが定義する入出力のバス オブジェクトが示されます。
[バス オブジェクト名] パラメーターでは、ワークスペースで定義されたバス オブジェクトに一致するようにバス オブジェクト名を変更できます。
ワークスペースでバス オブジェクトを作成するには、次を実行します。
fmudialog.createBusType(gcb)
ブロックの入力、出力、およびパラメーター構造体の変更
FMU ブロックの入力端子、出力端子、およびパラメーターのレイアウトを以下のパラメーターを使用して変更できます。
パラメーター | 動作 | 設定 |
---|---|---|
FMUInputMapping | 入力端子の階層を変更します。 |
|
FMUOutputMapping | 出力端子の階層を変更します。 |
|
FMUParamMapping | パラメーターの階層を変更します。 |
|
関数 get_param
と set_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 のサプライヤに問い合わせる。