FMU

Functional Mock-up Unitを追加して、マルチボディモデルと結合するには、FMUツールを使用します。

FMUエンティティの追加

  1. FMUエンティティの追加先とするシステムを選択します。
  2. 次の方法のいずれかによって、システムにFMUエンティティを追加します。
    • ControlツールバーのFMUアイコンを右クリックします。
    • Project Browserでシステムを右クリックして、コンテキストメニューでAdd > Control Entity > FMUの順に選択します。
    • Project Browserで既存のFMUフォルダのいずれかを右クリックして、コンテキストメニューから Add FMU…を選択します。
    Add FMUダイアログが表示されます。
  3. ラベルと変数名を指定します。
    Note: デフォルトで、MotionView内のエンティティの変数名は特定の規則に従います。例えば、すべてのFMUエンティティの変数名は“fmu_”で始まります。これは、MotionViewでモデルを構築する場合に従う推奨規則であり、モデル編集やモデル操作中にエンティティを識別するうえでさまざまな利点が得られます。
  4. Filenameブラウザを使用し、FMUファイル(.fmu)を特定して選択します。
  5. OKをクリックしてウィンドウを閉じるか、Applyをクリックしてエンティティの作成を継続します。
FMUエンティティをモデルに追加すると、それが選択され、パネル領域にそのパネルが自動的に表示されます。

FMUの表示と編集

FMUは、入力(U)、動的状態(X)、および出力(Y)によって特性を記述できる動力学システムを表現します。また、FMUには、そのFMUで表現するモデルの初期状態を変更するために変更可能なパラメータを設定できます。


Figure 1. FMUパネル - Propertiesタブ
FMUパネルのPropertiesタブには、次の情報が表示されます。
プロパティ タイプ 説明
Filename File パスを含むFMUファイル名。
FMU Type 文字列 FMUのタイプ。
  • モデル交換

    または、

  • 連成シミュレーション

両方のタイプを備えたFMUの場合は、このオプションを選択できます。

Number of states 整数 FMUに含まれる状態量の数。
Number of inputs 整数 FMUが検索する入力チャンネルの数。
Number of outputs 整数 FMUから出力するチャンネルの数。
Number of parameters 整数 FMUにあるパラメータの数。
Check FMU   FMUコンプライアンスチェッカーを実行し、詳細な情報を用意してFMUの有効性を確認します。コメントをご参照ください。
Reload FMU   FMUが再読み込みされます。

Edit FMU...をクリックして、Input、Output、Parameters、およびSettingsを表示して編集します。

FMUダイアログが表示されます。


Figure 2. FMUダイアログ

このダイアログには、次のタブがあります。

Input

Inputタブには、入力配列にあるすべての入力チャンネルおよびその名前と説明が一覧表示されます。

FMUへの入力として、各チャンネルのValue列にソルバー式を入力します。このソルバー式の値は、シミュレーションの際にMotionSolveによって計算され、シミュレーションの時間ステップごとにFMUに伝達されます。

Output

このタブには、FMUにある出力配列のすべての出力チャンネルおよびそれらの名前と説明が一覧表示されます。

パラメータ

Parametersタブには、各パラメータ、その初期条件、およびFMUでのそのデフォルト値が一覧表示されます。パラメータは、FMUによって公開される変数で、シミュレーションの開始時点でさまざまな値を取ることができます。パラメータのタイプは、実数、整数、ブーリアン、または文字列にすることができます。

Settings

Settingsタブには、追加のオプションが表示されます。
プロパティ タイプ 説明
Error tolerance factor 実数 モデル交換タイプのFMUにのみ適用されます。変位積分許容誤差に乗算するスケールファクターによって、FMUの連続する状態に対する積分許容誤差を定義します。

0より大きい値を指定します。デフォルト値は1.0です。

Communication Interval 実数 MotionSolveがFMUと通信する時間間隔。

0より大きい値を指定します。デフォルトは最大積分ステップサイズです。

Static Hold ブーリアン モデル交換タイプのFMUにのみ適用されます。

静的シミュレーションまたは疑似静的シミュレーションで、FMUの動的状態の値を一定に保持するフラグです。

デフォルト値はFalseです。
Use Address ブーリアン FMUを別のマシンで実行している場合はこのオプションをONにします。デフォルト値はOFFです(MotionSolveと同じマシンでFMUを実行している状態)。
IP Address 文字列 Use AddressがONの場合は、FMUを実行するマシンのIPアドレスを指定します。

モデルへのFMUの結合

入力と出力によってFMUがモデルに結合されます。FMUへの入力は、モデルの状態に基づく式と時間に基づく式で定義したモデル評価基準です。FMUからの出力は、多くの場合、モデルに使用するエンティティを生成するフォースまたはモーションによって参照されます。
  1. InputタブのValue列にチャネルごとのソルバー式を入力します。
  2. FMU出力を定義します。これらは、モデルのフォースまたはモーションエンティティから参照されます。
    モデルのフォース / モーションで使用される式では、ARYVAL関数を使用してFMU出力が参照されます。FMU出力は、FMUエンティティのy_arrayデータメンバーの属性として使用できます。例えば、{fmu_1.y_array.output_3}には、FMUの3番目の出力が収められます。


    Figure 3. FMUの出力を参照するフォース式

    上図のクワッドローター型ドローンのモデルの場合は、ソルバー式のDX()やDY()で求めた機器の位置や速度をFMUへの入力として指定します。FMUからの出力は、ソルバー式ARYVALに解決された、FMUのy_arrayデータメンバーの出力属性を使用して指名します。確認された条件下では、ブレードの1つに対するモーションで2番目と3番目の出力が使用されています。式{fmu_controller.y_array.output_2}からは、FMU(fmu_controller)の出力配列(y_array)にある2番目の出力が返されます。

コメント

FMU(.fmu)は、zip圧縮されたパッケージであり、モデルの説明(.xml)ファイルと並んで、そのFMUで表現しているモデルを解析するために必要なバイナリとリソースを格納できます。

FMUのタイプは、モデル交換(ME)または連成シミュレーション(CS)があり、どちらか一方もしくは両方を含めることができます。ME FMUは、呼び出し元ソルバーで解析できる所要の状態と変数を備えています。CS FMUは、独自のソルバーを伴うことができるほか、別のソルバーを呼び出すこともできます。この場合、1つのソルバーは呼び出し元ソルバーとして機能し、もう1つはFMUを解析するソルバーとして機能して、2つのソルバーによる連成シミュレーションでモデル全体を解析します。FMUには、MEとCSの両方のモードを設定できます。この場合は、FMUパネルのType属性が編集可能になり、FMUを解析するモードを選択できます。

Check FMUでは、FMI標準に従って用意されたFMUコンプライアンスチェッカーを通じてFMUを実行します。このチェッカーでは、FMUの内容に関する情報と併せ、各種情報の有効性を確認してFMUを実行しようとします。警告やエラーがあれば、ダイアログに表示されます。
Note: MotionViewでは、モデルのチェック、ソルバーデックのエクスポート、シミュレーションの実行の際に、FMUが設定されたモデルに対してCheck FMUを実行し、エラーや警告を報告します。


Figure 4. Check FMUによるFMUコンプライアンスチェックログ

詳細については、次のトピックをご参照ください:

MV-7012: MotionViewとMotionSolveにおけるFunctional Mockup Unit(FMU)

MotionSolve Reference GuideのControl: FMU > XML Format

MotionSolve Reference GuideのARYVAL (MotionSolve Function)

*FMU() (HyperWorks Desktop Reference Guids > MotionView > MDL Statement)

http://www.fmi-standard.org/