Reference: Array
Model ElementReference_Arrayモデルステートメントは、変数(他のMotionSolveモデリング要素によって使用される)または定数のリストを指定します。
説明
- X:このタイプは、Control_StateEqnおよびControl_SISO要素に対応する状態ベクトルを格納するために使用します。
- Y:このタイプは、Control_StateEqnおよびControl_SISO要素に対応する出力ベクトルを格納するために使用します。
- U:このタイプは、Control_StateEqn、Control_SISO、およびControl_PlantInput要素に対応する入力ベクトルを格納するために使用します。このタイプに格納されるデータは、モデリング要素への入力を指定するReference_Variable要素のIDのリストです。
- IC:このタイプは、主に、Control_StateEqnおよびControl_SISO要素の初期条件を指定するための数字のセットを格納するために使用します。また、モデルファイルで数字のセットを定義して、ユーザー作成サブルーチンからそれらにアクセスするためにも使用できます。
フォーマット
<Reference_Array
id = "integer"
[ label = "string" ]
{
type = "U"
num_element = "integer"
[ variable_id = "integer integer ... integer">
|
usrsub_dll_name = valid_path_name
usrsub_param_string = "USER([[par_1[,...][,par_n]])
"
usrsub_fnc_name = "custom_fnc_name" >
|
script_name = valid_path_name
interpreter = "PYTHON" | "MATLAB"
usrsub_param_string = "USER([[par_1[,...][,par_n]])
usrsub_fnc_name = "custom_fnc_name" >
]
| type = "X"
num_element = "integer" >
| type = "Y"
num_element = "integer" >
| type = "IC"
num_element = "integer" >
}
!
! The data
!
real real real real real real
... ... ... ... ... ...
real real real real real real
</Reference_Array>
属性
- id
- 要素識別番号(整数 > 0)。この番号は、すべてのReference_Array要素の中で一意です。
- label
- Reference_Array要素の名前。
- type
-
作成するReference_Arrayのタイプを指定します。次のいずれかを選択します。
- X(状態変数)
- Y(出力変数)
- U(入力変数)
- IC(初期条件)
- num_element
- Reference_ArrayタイプがUの場合に指定される入力変数の数。
- variable_id
- 入力配列(U)の定義に使用するReference_Variable要素のIDのリスト。
- num_element
- Reference_ArrayがタイプX(状態)、Y(出力)、またはIC(初期条件)の場合に指定する要素の数。
- usrsub_param_string
- データファイルからユーザー定義のサブルーチンに渡されるパラメータのリスト。このキーワードは、type = Uが選択されている場合にのみ使用します。この属性は、すべてのタイプのユーザーサブルーチン / スクリプトに共通です。
- usrsub_dll_name
- ユーザーサブルーチンを含むDLLまたは共有ライブラリのパスと名前を指定します。MotionSolveはこの情報を使用して、実行時にDLL内のユーザーサブルーチンARYSUBを読み込みます。このキーワードは、type = Uの場合にのみ使用します。
- usrsub_fnc_name
- ユーザーサブルーチンARYSUBの代替名を指定します。
- script_name
- usrsub_fnc_nameで指定されたルーチンを含むユーザー作成スクリプトのパスと名前を指定します。
- interpreter
- ユーザースクリプトが記述されたインタープリタ型言語を指定します。有効な選択肢は、MATLABまたはPYTHONです。
例
テーブルトップに置かれたボールは、テーブルトップの長さ方向に沿った1自由度で、転がることができます(滑りなし)。モーターがビームの角度(α)を制御します。水平位置から角度が変化すると、重力によってボールがビームに沿って転がります。完全状態フィードバックコントローラーを使用して、ビーム上のボールを維持します。システムの概略図を以下に示します。

図 1. 平坦なテーブルトップ上を転がるボール
ボールとコントローラー(赤色で表示)を支配する方程式を以下のように線形化します:

図 2.
パラメータcは、ボールの質量と慣性のプロパティの関数です。ここで、k1、k2、k3、およびk4は、設計されたコントローラーのプロパティ(利得)です。システムには4つの状態、があります。
は、それぞれボールの速度、テーブルの角度の変化速度を表します。システムへの入力は1つで、テーブルトップの角加速度に対する外乱uです。測定される出力は1つで、テーブルトップ上のボールの位置です。
c=-7、k1、k2、k3およびk4はそれぞれ、1.8E3、1.0E3、2.0E3、および1.0E3とします。この例に関係するReference_Arraysを指定します。4つの状態はすべて開始時点でゼロとします。
初期条件配列の指定:
<Reference_Array
id = "102"
type = "IC"
num_element = "4">
0.0 0.0 0.0 0.0
</Reference_Array>
X配列の指定:
<Reference_Array
id = "103"
type = "X"
num_element = "4">
</Reference_Array>
Y配列の指定:
<Reference_Array
id = "104"
type = "Y"
num_element = "1">
</Reference_Array>
U配列の指定:
<Reference_Array
id = "104"
type = "U"
num_element = "4"
variable_id = "1, 2, 3, 4" >
</Reference_Array>
IDが1、2、3、および4の4つのReference_Variable要素をモデル内の別の場所で作成し、4つの入力を定義する必要があります。この例では、最初の3つはゼロに設定されます。4つ目は、テーブルトップの加速度による外乱を表します。