Force: One Body Vector
Model ElementForce_Vector_OneBodyは、1つのReference_Markerで作用する一般的な力やトルクを定義します。
説明
これは、力、トルク、またはその両方をモデル化するために使用できます。力やトルクのベクトルは、別のReference_Markerを基準にして、3つの成分により定義されます。成分は、MotionSolveの式を使用するか、ユーザー定義のサブルーチンを使用して定義できます。任意のシステム状態および時間の関数にできます。
フォーマット
<Force_Vector_OneBody
id = "integer"
[ label = "string" ]
marker_id = "integer"
ref_marker_id = "integer"
{
type = "FORCEONLY"
{
fx_expression = "motionsolve_expression"
fy_expression = "motionsolve_expression"
fz_expression = "motionsolve_expression" >
| 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 = "TORQUEONLY"
{
tx_expression = "motionsolve_expression"
ty_expression = "motionsolve_expression"
tz_expression = "motionsolve_expression" >
| 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 = "FORCEANDTORQUE"
{
fx_expression = "motionsolve_expression"
fy_expression = "motionsolve_expression"
fz_expression = "motionsolve_expression"
tx_expression = "motionsolve_expression"
ty_expression = "motionsolve_expression"
tz_expression = "motionsolve_expression" >
| 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 = "custome_fnc_name" >
}
}
</Force_Vector_OneBody>
属性
- id
- 要素識別番号(整数 > 0)。この番号は、すべてのForce_Vector_TwoBody要素の中で一意です。
- label
- Force_Vector_OneBody要素の名前。
- marker_id
- 力が適用されるReference_Markerを指定します。これは力の作用点として指定されます。
- ref_marker_id
- 力ベクトルの成分を定義する基準として使用する座標系を持つReference_Markerを指定します。
- type
- “FORCEONLY”、“TORQUEONLY”、および“FORCEANDTORQUE”から選択します。
- “FORCEONLY”
- この要素によって、2つのReference_Marker間に力が適用されることを意味します。トルクは適用されません。
- “TORQUEONLY”
- この要素によって、2つのReference_Marker間にトルクが適用されることを意味します。力は適用されません。
- “FORCEANDTORQUE”
- この要素によって、2つのReference_Marker間に力とトルクが適用されることを意味します。
- fx_expression, fy_expression, fz_expression
- 関数式として力ベクトルの3つの成分を指定します。
- tx_expression, ty_expressiontz_expression
- 関数式としてトルクベクトルの3つの成分を指定します。
- usrsub_param_string
- データファイルからユーザー定義のサブルーチンに渡されるパラメータのリスト。このキーワードは、type = USERSUBが選択されている場合にのみ使用します。この属性は、すべてのタイプのユーザーサブルーチンおよびスクリプトに共通です。ユーザーサブルーチンの名前は、要素のtypeに依存します。
- usrsub_dll_name
- ユーザーサブルーチンを含むDLLまたは共有ライブラリのパスと名前を指定します。MotionSolveはこの情報を使用して、実行時にDLL内のユーザーサブルーチンを読み込みます。
- usrsub_fnc_name
- ユーザーサブルーチンVFOSUB/VTOSUB/GFOSUBの代替名を指定します。
- script_name
- usrsub_fnc_nameで指定されたルーチンを含むユーザー作成スクリプトのパスと名前を指定します。
- interpreter
- ユーザースクリプトが記述されたインタープリタ型言語を指定します。有効な選択肢は、MATLABまたはPYTHONです。
例
次の例では、Force_Vector_OneBody要素を使用して、idが1のReference_Markerの負のZ方向に沿って作用する、大きさが100単位で一定の力をモデル化しています。
<Force_Vector_OneBody
id = "18"
type = "FORCEONLY"
marker_id = "1801"
ref_marker_id = "1"
fx_expression = "0"
fy_expression = "0"
fz_expression = "-100" >
</Force_Vector_OneBody>
コメント
- marker_idは、Force_Vector_TwoBodyの作用点として指定されます。
- 力およびトルクの式(またはユーザーサブルーチン)は、滑らかである必要があり、微分可能であることが望まれます。これにより、数値的な手法で効果的に力を処理することができます。
- VX()、VY()、VZ()などの速度を使用して減衰力を計算する場合、適切な参照フレームで時間微分を取るようにしてください。詳細については、例をご参照ください。
- Force_Vector_OneBodyは、すべてのタイプのボディ(Body_Rigid、Body_Flexible、およびBody_Point)に作用できます。