Constraint: PTSF

Model ElementConstraint_PTSFは、高次対偶拘束を定義します。一方のボディ上の固定ポイントが、もう一方のボディに固定されたサーフェス上をスライドします。このポイントは、このサーフェスからリフトオフすることはできません。

フォーマット

<Constraint_PTSF
     id             =     "integer"     
     label          =     "Name of Constraint_PTSF element"
     i_marker_id    =     "integer"     
     j_marker_id    =     "integer" 
 [ 
     disp_xo        =     "real"     
     disp_yo        =     "real"     
     disp_zo        =     "real" 
 ]     
     surface_id     =     "integer"  >
/>

属性

id
要素識別番号(整数 > 0)。この番号は、すべてのConstraint_PTSF要素の中で一意です。
label
Constraint_PTSF要素の名前。
i_marker_id
1つ目のボディ上の結合を定義するReference_Markerを指定します。このReference_Markerの原点によって、サーフェス上をスライドするように要求されるポイントが定義されます。このReference_Markerを含むボディは、剛体、弾性体、またはポイントボディのいずれかです。このパラメータは必須です。
j_marker_id
サーフェスポイントが定義される座標系を定義するReference_Markerを指定します。このサーフェスは、このReference_Markerが含まれているボディで定義され、このボディと共に動きます。この曲線を含むボディは、剛体またはポイントボディである必要があります。このパラメータは必須です。
disp_x0, disp_y0, disp_z0
サーフェス上の初期接触ポイントの推測位置を定義します。座標はj_marker_idを基準にして測定され、その座標系で定義されます。このパラメータは省略可能です。 2

次の図は、立体カムタイプの正弦波ジェネレーターを示しています。

スライドカム1は、固定軸y-yの周りを回転します。このカムに設けられた平面の作動面‘a’の法線は、y-y軸と角度βをなしています。フォロワー2は、y-y軸に平行なx-x軸を有する固定ガイドS内をスライドします。フォロワー2は、このフォロワーに固定されたホルダー(非表示)内で小さな半径のボールBを運びます。

カム1が角度αだけ回転されると、ボールBとサーフェス‘a’の接触ポイントが次の距離だけ移動されます。

z = R . tan (β) . sin (α)

Rは、y-y軸とx-x軸の間の距離です。したがって、フォロワー2の変位は、カムの回転角である角度αの正弦に比例します。

この例では、以下のように想定します:
  • Reference_Marker 1101はサーフェス‘a’の中心に配置されており、そのz軸はこのサーフェスの法線に沿っています。そのx軸は、初期コンフィギュレーションで、ボールとサーフェスの接触ポイントがこの軸上となるように合わせられます。y-y軸とx-x軸間の距離は100mmとします。
  • サーフェス‘a’は、MotionSolveモデルではReference_Surface 11で表されます。このサーフェスは、Reference_Marker 1101を基準にして定義されています。
  • Reference_Marker 2101はボールBの中心に配置されており、この中心をボールとサーフェスの接触ポイントとします。
  • Constraint_PTSF 1で、ボールBとサーフェス‘a’の接触が定義されます。
図 1. 立体カムの正弦波ジェネレーター

上記システムのConstraint_PTSFオブジェクトは次のとおりです:

<Constraint_PTSF
     id            = "1"
     Label         = "Advanced Joint Name"
     i_marker_id   = "2101"
     j_marker_id   = "1101"
     disp_xo       = "100.0"
     disp_yo       = "0.0"
     disp_zo       = "0.0"
     surface_id    = "11"
/>

コメント

  1. Constraint_PTSFで定義される高次対偶拘束では、一方のボディ(ボディ1)上の固定ポイントが、もう一方のボディ(ボディ2)上で定義されたサーフェスに沿ってスライドする必要があります。これを概略的に以下の図に示します。Constraint_PTSFは、1つの自由度のみを除去します。

    このサーフェスは、Constraint_ParamSurfaceオブジェクトを使用してパラメータで表現されます。サーフェスポイントは、Reference_Marker Jの原点を基準にして定義されます。これらのポイントの座標は、Reference_Marker Jに関連付けられた座標系で測定されます。このサーフェスは、ボディ2に対して固定されている必要があります。

    Reference_Marker Iの原点によって、ボディ1上の固定ポイントが定義されます。ボディ1は、Body_RigidBody_Flexible、またはBody_Pointのどのボディでも構いません。
    図 2. 曲線上のポイントの拘束
  2. 属性disp_x0disp_y0disp_z0によって、サーフェス上の初期接触ポイントが定義されます。このポイント(下図のP0)は、厳密に曲線上に位置している必要はありません。
    MotionSolveによって、P0に最も近い曲線上のポイントPが検出されます。曲線上の初期ポイントを使用して、サーフェスパラメータu0とv0の初期値が計算されます。反復プロセスが使用されます。
    図 3. 初期接触ポイントP(u0、v0)の計算
  3. この拘束では、サーフェスに対して指定されたデータの範囲内に接触ポイントが常に収まることは保証されません。この要件を満たすためには、端部における追加の力を定義する必要があります。同様に、サーフェスには穴がないと見なされます。これらは、MotionSolveで用意されているFORCE要素を使用して明示的にモデル化される必要があります。
  4. 開いたサーフェスと閉じたサーフェスの両方がサポートされています。サーフェスは、一方または両方のパラメータで閉じていてもかまいません。
  5. これらのサーフェスは、2次まで滑らかである必要があります。言い換えると、すべての箇所の曲線パラメータに関して、一意的に定義された1次導関数と2次導関数を有している必要があります。滑らかでないサーフェスは数値的な問題を生じさせます。
  6. PTSF(...)関数を使用して、接触ポイントにおける任意方向の反力の成分を抽出できます。
  7. Constraint_PTSFでは、リフトオフは許可されません。反力を調べて、ポイントフォロワーが曲線からリフトオフする傾向があるかどうかを判断できます。接触ポイントにおける法線に沿った反力の成分が正の値である場合、“接触”力は反発する方向に働きます。この値が負の場合、“接触”力は引き寄せる方向に働くため、この拘束が適用されていなければ、ポイントフォロワーは曲線から離れていたと推測されます。
  8. “引き寄せる”反力が確認された場合は、リフトオフが許可されるForce_Contactオブジェクトを使用してサブシステムをモデル化することを検討してください。