接触のモデリング

MotionSolveは、剛体間の複雑な接触のケースを扱うことができる非常に高度な接触モデリング機能を備えています。

モデル内の剛体接触をシミュレートするには、次のことを行う必要があります:
  • 相互に接触できる2つのボディの形状を特定します。MotionSolveでは、これらの形状を定義するためのいくつかのオプションが用意されています。
  • 接触材料プロパティを指定します(剛性、減衰、反発係数、摩擦など)。MotionSolveは指定された形状の相互の近接性を監視します。2つの形状セットの接触が起こった際、定義された物理プロパティに基づいたフォースが作成されます。これが、接触フォースを表わします。垂直抗力と摩擦力の両方をモデル化できます。ボディが分離されると、フォースはゼロになります。
MotionSolveの接触機能には、下記の3つの中心的な特徴があります:
  • 接触しているボディの形状のモデル化
  • 接触の検出
  • 接触フォースの適用

接触しているボディの形状のモデル化

接触しているボディの形状の定義には、いくつかのオプションがあります。

単純な形状の場合、球、円筒、直方体、面、円錐を含むMotionSolveのプリミティブグラフィックスの使用が可能です。これらのグラフィックスは、三角形要素を使ってMotionSolveにより自動的にモザイク化(メッシュ化)されます。より複雑な形状は、CADパッケージを使って定義し、それらをH3Dフォーマットに変換した後、MotionViewにインポートすることが可能です。この変換は、MotionViewのToolsメニューでCreate graphics from CAD or Meshを選択することによって実行できます。H3Dファイルには、MotionSolveが解釈できるモザイク化された形状が含まれます。代わりに、GraphicsパネルでParasolidグラフィックを直接インポートすることで、形状をParasolidグラフィックとして定義することもできます。MotionSolveへのエクスポート時に、三角形要素を使用してこのParasolidグラフィックがメッシュ化されます。

MotionSolveでは、2つの形状間のカーブに沿って発生するカーブをシミュレーションすることも可能です。この場合、それぞれの剛体が関わっている2つのカーブを定義し、3次元剛体接触と比べてより正確な結果をもたらし、接触の解析もより速い可能性がある特殊な2次元曲線-曲線接触を使用します。接触は、定義された2つのカーブの面でのみ発生すると想定されます。つまり、面外の接触力は想定されません。

MotionSolveによって計算される接触力の品質と精度は、接触シミュレーションで使用されるグラフィックスのメッシュ / カーブの品質に大きく依存します。MotionSolveでの接触用グラフィックスのメッシュ化に関するヒントと最良の方法については、MotionSolveで3D接触モデルを実行するための最良の方法をご参照ください。

接触検出

衝突の開始が検出されると、衝突検出アルゴリズムが接触している三角形を探します。

これらから、MotionSolveでは以下の値が計算されます:
  • 接触のポイントとサーフェス法線ベクトル。貫通の深さはこれらの量に基づいて決定されます。
  • 垂直抗力および摩擦力の方向と大きさ。

最初の接触の開始を正確に捕捉する際には、ソルバーのステップサイズの選択が重要になります。ステップサイズが十分に小さくないために、接触イベントを検出できない場合は、大きな接触力をもたらす大きな貫通が発生する可能性があります。このような状況を回避するため、MotionSolveのセンサーによって、接触の開始が監視され、ソルバーのステップサイズが自動的に変更されることで、最初の接触イベントが正確に特定されます。これにより、シミュレーション全体のステップサイズを小さくする必要なく、より現実的な接触力が得られます。この使用法の詳細については、Sensor:イベントのモデリング要素をご参照ください。

接触力の適用

接触のポイント、貫通の深さ、およびサーフェス法線ベクトルがわかると、垂直抗力と摩擦力が計算されます。

接触力を検出するには以下のモードを使用します。

垂直抗力

  • ポアソンベースまたはペナルティベースのモデル
  • インパクトベースのモデル
  • ボリュームモデル
  • ユーザー定義のモデル

これらすべてのモデルでは、垂直抗力は剛性と減衰のパラメータに基づいて計算されます。次の表は、各モデルの垂直接触力の計算に使用されるパラメータを示しています。

  ポアソンモデル インパクトモデル ボリュームモデル ユーザー定義
Stiffness ペナルティ 剛性、指数 弾性定数、層の深さ、指数 ユーザー定義
Damping 反発係数 減衰係数 減衰係数 ユーザー定義

これらの垂直抗力モデルがいずれも問題に適さない場合は、ユーザーサブルーチンCNFSUBを使ってカスタム垂直抗力モデルを実装できます。

摩擦力

  • 静的および動的なクーロンモデル
  • 動的のみのクーロンモデル
  • ユーザー定義のモデル
摩擦力は次の式によって計算されます:(1) F f r i c = ( μ ( v ) | F n o r m a l | ) v ^

ここで、

(2) μ ( v ) = { μ d y n | v | > v d S T E P ( | v | , v s , μ s t a , v d , μ d y n ) v d > | v | > v s S T E P ( | v | , v s , μ s t a , v s , μ s t a ) v s > | v |

は、静的および動的なクーロンモデルの摩擦係数であり、

(3) μ ( v ) = { μ d y n | v | > v d S T E P ( | v | , v d , μ d y n , v d , μ d y n ) v d > | v |

は、動的のみのクーロンモデルの摩擦係数です。

上の式において:
  • F f r i c は、摩擦力
  • μ ( v ) は、ある時点における摩擦係数
  • F n o r m a l は、垂直接触力
  • μ d y n は、動摩擦係数
  • μ s t a は、静摩擦係数
  • v s は、静摩擦遷移速度
  • v d は、動摩擦遷移速度

これらのパラメータの詳細については、Force: Contactのモデル要素をご参照ください。

このような摩擦力モデルが問題に適さない場合は、ユーザーサブルーチンCFFSUBを使ってカスタム摩擦力モデルを実装できます。