Modelicaコンポーネントのパラメータ化

ModelicaコンポーネントをOML式でパラメータ化する方法について学びます。

Twin Activateでは、Modelicaコンポーネントは、通常のTwin Activateブロックと同様に、OML式を使用して定義された値を持つパラメータを持つことができます。これらの式は、コンポーネントが配置されているダイアグラムのワークスペースで、Twin Activateブロックの通常のスコープルールに従って評価されます。

ほとんどの場合、Modelicaコンポーネントのパラメータは、数値、ベクトル、行列、ブール値、または文字列であり、対応する型のOML式で提供することが可能です。例えば、コンデンサーの場合、コンポーネントのパラメータである静電容量の値は、OMLの数値または式で定義することができます。

ここで、C1とC2は、ダイアグラムコンテキストまたはモデル初期化スクリプトで定義されたOML変数です。

Twin Activate Modelicaコンポーネントのパラメータは、基礎となるModelicaライブラリコンポーネントのパラメータに対応します。これらのパラメータの値は、ほとんどの場合OMLで定義できますが、Modelicaコンポーネントのパラメータの値の中には、Modelicaライブラリで利用できる定数や関数を使ってより簡易的に定義できるものもあります。場合によっては、Modelica固有のエンティティを参照するためにOML標準のデータ型を使って表現することができません。

コンポーネントのパラメータを評価するためにModelica環境にアクセスできるようにするため、Twin ActivateはOML関数であるFromModelicaを提供しています。この関数は、ModelicaExpression型のOML オブジェクトを作成し、返します。このオブジェクトはOML式の中でパラメータ値を定義するために使用することができます。ModelicaExpression型の変数の中には、特にFromModelicaが返すエンティティがModelica固有でない場合、単純なOML式で使用できるものがあります。これらの式はModelicaのコードに変換され、Modelicaコンパイラで処理されます。このプロセスは、ユーザーから見て透明性のあるものです。