FMU

FMU(Functional Mock-up Unit)は、MotionSolveで汎用モデリング要素を定義する抽象モデリング要素です。

クラス名

Fmu

説明

標準的な、ツールに依存しないインターフェースであるファンクショナルモックアップインターフェース(FMI)は、FMUのデータにアクセスしたり、これにデータを配置するためのインターフェースを定義します。XMLファイルとコンパイルされたCコードの組み合わせを使用してモデルをサポートします。

MotionSolveは、FMIを使用して1つ以上のFMUをシステムモデルにインポートし、それらを他のモデリングコンポーネントに結合して、解析用に組み合わせたモデルを生成します。

制御: FMU

属性の概要

名前 プロパティ コマンドで変更可能か 設計可能か
id Int () × ×
label Str ()
type Enum ()
path FileName ()
x Reference (Array)
y Reference (Array)
u Reference (Array)
ic Reference (Array)
static_hold Bool ()
dll FileName
interval Double ()
ip_address Str ()
var_name Str ()
var_ic Double ()

使用法

Fmu(
  path    = "mefmu_siso_cs.fmu", 
  type    = "CS",
  x       = array_x, 
  y       = array_y, 
  u       = array_u, 
  ip_addr = "localhost"
)

属性

id
整数
要素識別番号。この番号は、すべてのFMUの中で一意です。
label
文字列
FMU要素の“短い”名前。
type
文字列
FMUのタイプ。"CS"(CoSimulation)または"ME"(ModelExchange)を選択します。
  • デフォルト:“ME
path
FileName
FMUファイルへのパス。
x
Reference(Array)
このFMUの連続状態xを格納するために使用するReference_Arrayを指定します。
そのIDを持つARYVAL()関数を使用することで、MotionSolveの式のこの状態にアクセスすることができます。また、SYSFNCおよびSYSARYでそのIDを使用することで、ユーザーサブルーチンの状態にアクセスすることもできます。
y
Reference(Array)
このFMUの出力yを格納するために使用するReference_Arrayを指定します。
そのIDを持つARYVAL()関数を使用することで、MotionSolveの式の出力にアクセスすることができます。また、SYSFNCおよびSYSARYでそのIDを使用することで、ユーザーサブルーチンの出力にアクセスすることもできます。
u
Reference(Array)
このFMUの入力uを格納するために使用するReference_Arrayを指定します。
このIDを持つARYVAL()関数を使用することで、MotionSolveの式の入力にアクセスすることができます。また、SYSFNCおよびSYSARYでこのIDを使用することで、ユーザーサブルーチンの入力にアクセスすることもできます。
ic
Reference(Array)
このFMUの連続状態の初期条件を格納するために使用するReference_Arrayを指定します。
そのIDを持つARYVAL()関数を使用することで、MotionSolveの式のICにアクセスすることができます。また、SYSFNCおよびSYSARYでそのIDを使用することで、ユーザーサブルーチンのIC値にアクセスすることもできます。
static_hold
ブール
動的状態の値が静的または擬似静的シミュレーションで一定に保たれるかどうかを示すフラグ。モデル交換FMUにのみ適用されます。
詳細については、Control:FMUのコメント8をご参照ください。
dll
文字列
ユーザーのFMUを読み込むために使用するDLLまたは共有ライブラリのパスと名前を指定します。MotionSolveはこの情報を使用して、実行時にDLL内のユーザーサブルーチンを読み込みます。
  • デフォルト:“nugsefmu”
interval
倍精度
FMUとの連続する通信間の時間間隔。他のすべての呼び出しでは、FMU出力が補間されます。
  • デフォルト:HMAX、シミュレーション制御パラメータによってシミュレーション用に定義された最大ステップサイズ。
ip_address
文字列
MotionSolveに結合するFMUのIPアドレス。
  • デフォルト:“PIPE”
パイプは、MotionSolveFMUが同じマシン上に存在する場合にプロセス間通信の手段として使用されます。MotionSolveFMUが別のマシン上に存在する場合は、実際のIPアドレスを文字列として指定します。
詳細については、Control:FMUのコメント6をご参照ください。
var_name
文字列
値を割り当て可能なFMU内の各変数の名前をリストした文字列。
  • “;”(セミコロン)で区切られた値
  • デフォルト:“”
var_ic
文字列
ユーザーが設定する必要がある“var_name”によって定義された各変数の値をリストした文字列。
  • “;”(セミコロン)で区切られた値
  • デフォルト:“”

x = Array(label="States", type="x")
y = Array(label="Outputs", type="y")
u = Array(label="Inputs", type="u", size=1)
u. variables = Variable(
    label    = "u[0]",
    function = "-wz(30102010)+varval(30100100)"
    )
fmu = Fmu(
   path       = "Hydraulic_Valve.fmu", 
   type       = "ME", 
   x          = x, 
   y          = y,
   u          = u, 
   ip_address = "PIPE")

コメント

  1. プロパティの概要、使用理由、および拡張方法については、プロパティをご参照ください。
  2. FMUの詳細については、モデルステートメント制御:FMUのコメントセクションをご参照ください。をご参照ください。