Constraint: User

Model ElementConstraint_UserConstr要素を使用して、ユーザー定義の拘束を指定します。拘束方程式には、システムのコンフィギュレーションと速度を含めることができます。

説明

MotionSolveでは、選択肢として多くの拘束が用意されていますが(Constraint_Jointを参照)、非標準の拘束が必要になる場合があります。例えば、ホイールが滑らずに回転するという拘束は、Constraint_UserConstr要素を使用してモデル化できる非ホロノミックな拘束です。

フォーマット

< Constraint_UserConstr
   id                    =  "integer" 
 [ label                 =  "string" ]   
   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" > ]
}
</Constraint_UserConstr>

属性

id
要素識別番号(整数 > 0)。この番号は、すべてのConstraint_UserConstr要素の中で一意です。
label
Constraint_UserConstr要素の名前。
usrsub_dll_name
ユーザーサブルーチンを含むDLLまたは共有ライブラリのパスと名前を指定します。MotionSolveはこの情報を使用して、実行時にDLL内のユーザーサブルーチンを読み込みます。
usrsub_param_string
データファイルからユーザー定義のサブルーチンUCOSUBに渡されるパラメータのリスト。この属性は、すべてのタイプのユーザーサブルーチンおよびスクリプトに共通です。
usrsub_fnc_name
ユーザーサブルーチンUCOSUBの代替名を指定します。
script_name
usrsub_fnc_nameで指定されたルーチンを含むユーザー作成スクリプトのパスと名前を指定します。
interpreter
Specifies the interpreted language that the user script is written in. Valid choices are MATLAB or PYTHON.

コメント

  1. 速度の項に依存しない方程式として記述できる拘束は、ホロノミックな拘束と呼ばれ、それ以外の拘束は非ホロノミックな拘束と呼ばれます。後者は、速度の項の線形関数に限定されます。
  2. 拘束は、マーカーまたはパートの位置と速度について次のように定義できます。
    • 拘束方程式は、モデル内の任意マーカーの位置、方向余弦マトリクス、速度について定義できます。
    • 拘束方程式は、モデル内の任意パートの主座標系の位置、方向余弦マトリクス、速度について定義することもできます。主座標系は、パートの質量中心に配置され、慣性主軸と揃えられています。一般に、主座標系は質量中心座標系とは異なります。これら2つの座標系が同一となるのは、慣性モーメントマトリクスのすべての非対角項がゼロである特殊なケースのみです。