Reference: Array

Model ElementReference_Arrayモデルステートメントは、変数(他のMotionSolveモデリング要素によって使用される)または定数のリストを指定します。

説明

変数のリストを指定するには、次のタイプのいずれかを選択します:
  • X:このタイプは、Control_StateEqnおよびControl_SISO要素に対応する状態ベクトルを格納するために使用します。
  • Y:このタイプは、Control_StateEqnおよびControl_SISO要素に対応する出力ベクトルを格納するために使用します。
  • U:このタイプは、Control_StateEqnControl_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つ目は、テーブルトップの加速度による外乱を表します。

コメント

  1. Reference_Array要素は、要素Control_StateEqnControl_SISO、およびSimulateによって参照されます。
  2. ユーザー定義のサブルーチンに渡す定数のリストを定義するには、配列をタイプICに定義します。
  3. Reference_Arrayのタイプに関係なく、配列に含まれるデータには、以下からアクセスできます:
    • ARYVAL()関数を使用した関数式。
    • ユーザー作成のサブルーチン:任意のユーザー作成サブルーチンからユーザー呼び出し可能なユーティリティ関数であるGTARAYを使用。ユーザーサブルーチンのGTARAYをご参照ください。