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に依存します。
FORCEONLY”はVFOSUBを使用します。
TORQUEEONLY”はVTOSUBを使用します。
FORCEANDTORQUE”はGFOSUBを使用します。
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>

コメント

  1. marker_idは、Force_Vector_TwoBodyの作用点として指定されます。
  2. 力およびトルクの式(またはユーザーサブルーチン)は、滑らかである必要があり、微分可能であることが望まれます。これにより、数値的な手法で効果的に力を処理することができます。
  3. VX()VY()VZ()などの速度を使用して減衰力を計算する場合、適切な参照フレームで時間微分を取るようにしてください。詳細については、例をご参照ください。
  4. Force_Vector_OneBodyは、すべてのタイプのボディ(Body_RigidBody_Flexible、およびBody_Point)に作用できます。