MotionSolveで3D接触モデルを実行するための最良の方法
MotionSolveでは、ソリッドを表すグラフィックエンティティ間の接触を検出して処理できます。
- 球体や円錐台などの解析的なシンプルな形状
- ネイティブフォーマットのCAD形状
- 三角メッシュ
これらの作成方法にかかわらず、すべての形状(球体間の接触と、球体-メッシュ間の接触を除く)は最終的にメッシュに変換され、メッシュ間の接触がシミュレーション時に計算されます。
このセクションでは、シミュレーションで成果を上げるうえで効果的な接触手順の概要を示します。
モデリングの最良の方法
- 拘束と接触
可能な限り、接触の代わりにジョイントやプリミティブ拘束およびその他の拘束を使用します。前者の方がはるかに効率的であるため、シミュレーション時間を節約できます。接触は、必要な場合にのみ使用します。
- 可能な限り解析的記述またはCAD形状を使用してソリッドを定義する
解析的記述はソリッドであることが保証されますが、使用できるのは形状がシンプルな場合のみです。可能な場合はこれらを使用します。
解析的形状を使用できない場合は、ネイティブCAD形状を使用します。CAD形状は通常は使用可能で、簡単に再利用できます。MotionViewは、すべての一般的なCAD形状フォーマットをインポートできます。CAD記述によってソリッドが定義されていることを簡単に確認できます。MotionViewは、CAD形状のインポート時に多くのチェックを実行します。エラーが検出された場合は、それらがメッセージウィンドウで報告されます。
解析的記述とCAD記述のどちらも使用できない場合は、FEプリプロセッサ、STLファイル、またはWavefront OBJファイルによって定義されたメッシュなどの他の入力ソースを使用することを検討します。MotionViewはこのデータもチェックして、このデータによってソリッドボディが定義されていることを確認します。
- MotionViewでメッシュを可視化して不適切なメッシュを特定する
- 剛体を表現しているメッシュには、適切な要素サイズが設定されている必要があります。
- このメッシュは、接触する予定の形状の湾曲を正確に捕捉している必要があります。多角形効果が接触応答に与える影響を最小化するように留意する必要があります。小さい要素を使用したメッシュでは、通常はより正確な結果が得られますが、その代わりに計算時間が長くなります。 図 1 は、“適切な”メッシュと“不適切な”メッシュを示しています。
図 1. 均一で適切なメッシュとゆがんだ不適切なメッシュの例 - メッシュの三角形は、要素サイズの均一性を保っている必要があります。
- これにより、正確な接触力が生成されます。同じグラフィックス内で粗いメッシュと細かいメッシュを混用しないでください。図 2をご参照ください。
図 2. メッシュ内の均一な(適切な)要素と不均一な(不適切な)要素の例 - メッシュは、外向きの法線を有している必要があります。
- “外向き”側は、接触が発生する側として定義されています。同様に、“内向き”側は、閉じたボリューム内で材料が存在する側として定義されています。外向きの法線を有する三角形は赤色で示され、内向きの法線を有する三角形は青色で示されています。図 3をご参照ください。
図 3. “内向き”(青色)と“外向き”(赤色)に定義された法線の例の例
- 不具合のある形状が指定された場合にMotionViewによって提供される診断情報を理解する
- MotionViewを使用して高品質の接触メッシュを生成する
MotionViewのControl mesh coarseness for contactsオプションを使用して、高品質のメッシュを生成できます。このオプションの目的は、接触シミュレーションに必要な均一なメッシュを提供することです。次の図 6は、ユーザーインターフェース内のオプションの位置を示しています。
図 6. MotionViewでは形状のインポート時にメッシュの粗さを制御可能最初は、粗さを指定するスライダーバーでデフォルト設定の“5”を使用します。ほとんどの場合、この設定によって湾曲を適切に捕捉する適切な均一メッシュが得られます。
インポートされたグラフィックス(特に、接触で使用されるボディ)を確認してください。メッシュのサイズが希望どおりでない場合は、粗さを指定するスライダーバーで値を大きくしてメッシュを細かくし、CADを再インポートします。以下に、メッシュを精緻化する際の留意事項を示します。
- 接触している三角形の数は接触の性能に影響を与えます。接触していないメッシュ部分は接触の速度や精度に影響を与えません。したがって、メッシュのごくわずかな部分だけが接触している場合でも、コンポーネント全体に細かいメッシュを使用しても問題ありません。初期セットアップの負荷が生じますが、シミュレーション速度はあまり影響を受けません。
- 非常に大きいCADファイルを使用する場合は、長い時間がかかる可能性があるため、注意が必要です。可能であれば、入力CADには、接触に関わるボディ以外は含まれないようにします。
- 接触に関わる可能性が高いボディの特徴を予測します。これらの特徴が出力メッシュで適切に捕捉されていることを確認します。
- 接触対象となるサーフェスの湾曲が、適切に小さい要素サイズによって正確に捕捉されていることを確認してください。また、その領域のメッシュが、前述の適切な基本メッシュの品質をすべて備えていることも確認してください。
- 結果的に生成されるメッシュが開いているエッジを有している場合は、メッセージログに警告が記録されます。これは、そのメッシュがボリュームを囲んでいないことを示します。
上記の精緻化手法によって希望どおりのメッシュが得られない場合は、HyperMeshのInteractive Meshオプションを使用して形状をメッシングします。
- CADグラフィックスが含まれたレガシーモデルの解析
レガシーモデルには、MotionSolve 14.0で使用される手法には適していない形状が含まれていることがあります。推奨される一般的な対処法は、MotionViewのImport CADツールで新しいツールや機能を使用して、接触のH3Dグラフィックスを再生成することです。
これが不可能な場合は、そのまま作業を進めてレガシー形状を使用します。MotionViewでは、形状クリーニングプロセスが新たにサポートされています。このプロセスでは、さまざまな発生し得るエラーが形状に含まれていないか体系的にチェックされ、それらのエラーが修正されます。この形状クリーンアッププロセスについては、Appendix-Iをご参照ください。
- 複雑な形状の処理
まれなケースとして、MotionSolveで接触のセットアップに大きな負荷が伴うことがあります。このような非一般的なシナリオでは、接触形状を分割してグラフィックスを分離し、これらのグラフィックスを接触に使用します。これを図 7に図示します。
図 7. 大きな形状を分割して別々のパートにする
接触プロパティ
MotionViewでは、接触プロパティに対して一連の適切なデフォルト値が用意されています。MotionViewで用意されている接触プロパティのデフォルト値を以下の表にまとめます。
- Impact Model
-
Normal Force Friction Force Stiffness = 1000 N/mm μstatic = 0.2 Damping = 0.1 N s / mm μdynamic = 0.2 Exponent = 2.1 Stiction Transition Velocity = 0.1 N s / mm Penetration Depth = 0.1 mm Friction Transition Velocity = 0.2 N s / mm - Poisson Model
- Penalty = 5000 N/mm
Restitution Coefficient = 0.8
Normal Transition Velocity = 1 mm/s
- Volume Model
- I/J body Bulk Modulus = 1.6E5 N/(mm)2
I/J Body Shear Modulus = 1.6E5 N/(mm)2
I/J Body Layer Depth = 1000 mm
Exponent = 2.1
Damping = 1 N/mm
これらのデフォルト値の変更は、モデルで使用している単位が上記と異なる場合や、上記の値が効果的でない場合にのみ、行うことをお勧めします。以下に、これらのパラメータの変更に関する一般的なガイドラインを示します。
- 接触剛性
垂直抗力の剛性(ペナルティ)には、最初“小さい”値が設定されています。これにより、高速なシミュレーションが可能になります。接触概要の表を参照して、シミュレーション結果で見られる最大貫通を確認してください。これらが想定を上回っている場合は、剛性を増大させます。接触力のノイズが多い場合に、大きい剛性(ペナルティ)値を使用しているときは、シミュレーションのステップサイズを小さくします。
- 接触減衰 / 反発係数
減衰を剛性の約0.1%~1%になるように設定するか、反発係数を約0.4に設定します。減衰を伴わないモデルでは減衰のない高周波振動が生じやすく、ステップサイズが小さくなります。逆に、減衰の大きいモデルも問題となる可能性があります。減衰力が応答全体の大半を占める可能性があるためです。
- 接触摩擦
Contact frictionをDisabledにセットして、モデリングを開始します。垂直抗力(妥当な貫通と垂直抗力の値)のみを使用してシミュレーションが正常に実行されたら、接触摩擦をオンにする必要があります。
パラメータStiction Transition VelocityおよびFriction Transition Velocityに小さい値を指定しないでください。小さい値を指定すると、シミュレーション速度が低下します。約1mm/ 秒が適切な値です。
摩擦力の追加が数値的な困難もしくはシミュレーションのスピード低下を生じる場合、速度推移の値を徐々に増やし、摩擦係数を小さくします。μstaticとμdynamicに大きい値を指定することは避けてください。
- 接触と静解析 / 準静解析
一般に、静解析を実行する際は、接触しているサーフェス間にわずかな初期貫通を生じさせることが推奨されます。これにより、ニュートン-ラプソン反復アルゴリズムで接触方向の大きな変化が計算されなくなります。
中立平衡の状況は回避します。モデルで中立平衡の状況が生じていることがわかっている場合は、STABILITYを大きくします。
- 断続的な接触の処理
モデルで多数の断続的な接触が生じている場合は、AdvancedタブのFind precise contact eventオプションを使用することをお勧めします。これにより、接触が見逃されたり、貫通が大きくなりすぎることがありません。図 8をご参照ください。
図 8. MotionViewで3D接触のモデリングに使用するAdvancedタブ- 1e-4という最大ステップサイズは、接触シミュレーション用に推奨される初期設定です。
- 形状長さの寸法に応じて、モデルで適切な単位を使用します。例えば、ハンドドリルのボールベアリングをモデリングする際は、メートル単位よりもmm単位を使用する方が適切です。
- 単位の変換
長さの単位としてmm以外を使用しており、力の単位としてニュートン以外を使用している場合は、使用している指数に基づいて、MotionViewにおける衝突モデル用のデフォルト剛性(K)をスケーリングする必要があります。
接触力 F = K*ze(zは貫通、eは指数)
K=1000 N/mmかつe=2.1と想定
この場合、力F = 1000 * z2.1 N
モデルがSI単位で定義されている場合は、同じ力を生じさせる新しい剛性は次の式によって計算されます:
F = 1000 * z2.1 = K * (z÷ 1000)2.1
∴ K = 1000 * (1000)2.1 = 1.9953E9
モデルでSI単位を使用している場合は、MotionViewのデフォルトと同等のパラメータを示している次の表をご参照ください。
- Impact Model
-
Normal Force Friction Force Stiffness = 1.9953E9 N/m μstatic = 0.2 Damping = 100 N s / M μdynamic = 0.2 Exponent = 2.1 Stiction Transition Velocity = 1E-4 m/s Penetration Depth = 1E-4 m Friction Transition Velocity = 2E-4 m/s - Poisson Model
- Penalty = 5E6 N/m
Restitution Coefficient = 0.8
Normal Transition Velocity = 1E-3 m/s
- Volume Model
- I/J body Bulk Modulus = 1.60E11 Pa
I/J Body Shear Modulus = 1.60E11 Pa
I/J Body Layer Depth = 1 m
Exponent = 2.1
Damping = 1E4 N/m
- マスター / メインとセカンダリサーフェス
MotionSolveでは、接触の解析時にマスターサーフェスとセカンダリサーフェスという概念が使用されます。接触力はマスター / メインサーフェス上でのみ計算されます。セカンダリサーフェス上の力はニュートンの第三法則に基づいて計算されます。
平均要素サイズが小さめのグラフィックスは、自動的に接触のマスターサーフェスと見なされます。この場合、よりスムーズな力が生じるためです。マスター / メインサーフェスを入れ替える場合は、接触で使用される他のグラフィックスを精緻化してください。
- エネルギーの保存
接触力は、ペナルティの定式化を使用してモデリングされます。非常に細かいステップサイズを使用している場合を除いて、力積は不正確になる可能性があります。したがって衝撃接触の場合は、接触内に減衰がない可能性がある場合でも、エネルギー散逸やエネルギー利得が生じることは珍しくありません。散逸を軽減するには、最大積分ステップサイズを小さくして、接触時間が十分にサンプリングされるようにします。
接触の解の評価
システムが意図したとおりに動作していることを確認するために、接触応答を常に確認する必要があります。
- 接触サマリーログを参照して、シミュレーションで見られる貫通を確認します。最大貫通深さが妥当なものになるように、剛性を変更します。
- 収束していない結果のアニメーションを参照して、接触で問題が発生している、または想定どおりの挙動を示していない可能性がある理由をより深く理解します。
- 接触のサマリーをMSログファイルで確認します。これにより、シミュレーション全体にわたる接触領域と貫通程度のサマリーを“ひと目”で確認できます。
- “接触概要”を参照して、予想外の領域で異常に大きい貫通が発生していないか確認します。
よくある質問
力の出力がスムーズではありません。どうすればよりスムーズな力が得られますか?
スムーズでない接触力が発生しやすいのは、接触が十分にサンプリングされていないことが原因です。通常の対応策は、ステップサイズを縮小して、接触が十分にサンプリングされるようにすることです。これにより、よりスムーズな接触力が得られます。以下では、ステップサイズの縮小に関する一般的なガイドラインについて説明します。
接触はペナルティ力としてモデリングされます。このため、各接触はマススプリングダンパーシステムと似ています。減衰を無視すると、次のようになります。
等価質量 = M 等価剛性 = K |
振動の周波数: 推奨される積分ステップ: |
- M = 1Kg
- K = 50,000 N/m
- f = 35.588 Hz
- h = 2.8099E-3 s
図 10. 質量の変位
接触シミュレーションに長い時間がかかります。どうすればシミュレーション速度を高めることができますか?
- 接触の代わりにフォース要素を使用する
- 接触が発生する場所がわかっている場合は、フォース要素を使用して接触をモデリングします。フォース要素を使用すると、時間のかかる接触検出プロセスを回避できます。
- 接触の代わりに拘束を使用する
- 可能な限り、接触の代わりにジョイントとジョイントのプリミティブを使用します。前者の方がはるかに効率的であるため、シミュレーション時間を節約できます。接触は、必要な場合にのみ使用します。
- 接触内のアクティブポイントの数を減らす
- メッシュを粗くすると、接触内に実在している三角形の数を減らすことができます。これにより、接触の運動特性を計算するのにかかる時間が短縮されます。
- 接触の剛性と減衰を小さくする
- 垂直抗力の剛性(ペナルティ)には、最初“小さい”値が設定されています。これにより、高速なシミュレーションが可能になります。接触概要の表を参照して、シミュレーション結果で見られる最大貫通を確認してください。これらが想定を上回っている場合は、剛性を増大させます。接触力のノイズが多い場合に、大きい剛性(ペナルティ)値を使用しているときは、シミュレーションのステップサイズを小さくします。減衰を剛性の約0.1%~1%になるように設定するか、反発係数を約0.4に設定します。2つのボディ間で力を伝達させることは回避します。
- 複数のコアを使用する
- MotionSolveにおける接触検出は並列化されており、MotionSolveはデフォルトでユーザーのCPUで使用可能な最大数のスレッドを使用します。次のプロットは、プロセッサ数に応じて接触検出が高速化される様子を示しています。この方法では、最大6倍の高速化を実現できます。
図 11. プロセッサ数の増加に伴う高速化
どの接触が負荷が大きく、最も長いシミュレーション時間がかかりますか?
301016,"Contact 16","M-Contact 16",90123, ,90163, ,"MILLIMETER","NEWTON",7.029375
301015,"Contact 15","M-Contact 15",90103, ,90163, ,"MILLIMETER","NEWTON",6.468759
301014,"Contact 14","M-Contact 14",90083, ,90163, ,"MILLIMETER","NEWTON",6.396231
301013,"Contact 13","M-Contact 13",90063, ,90163, ,"MILLIMETER","NEWTON",6.469902
301012,"Contact 12","M-Contact 12",90043, ,90163, ,"MILLIMETER","NEWTON",6.434288
301011,"Contact 11","M-Contact 11",90023, ,90163, ,"MILLIMETER","NEWTON",6.430164
301010,"Contact 10","M-Contact 10",90003, ,90163, ,"MILLIMETER","NEWTON",6.398585
301009,"Contact 9","M-Contact 9",90143, ,90163, ,"MILLIMETER","NEWTON",6.406428
301008,"Contact 8","M-Contact
8",90123, ,90001, ,"MILLIMETER","NEWTON",172.756276
301007,"Contact 7","M-Contact 7",90103, ,90001, ,"MILLIMETER","NEWTON",7.782117
301006,"Contact 6","M-Contact 6",90083, ,90001, ,"MILLIMETER","NEWTON",7.802998
301005,"Contact 5","M-Contact 5",90063, ,90001, ,"MILLIMETER","NEWTON",7.766806
301004,"Contact 4","M-Contact 4",90043, ,90001, ,"MILLIMETER","NEWTON",7.695826
301003,"Contact 3","M-Contact 3",90023, ,90001, ,"MILLIMETER","NEWTON",7.758897
301002,"Contact 2","M-Contact 2",90003, ,90001, ,"MILLIMETER","NEWTON",7.672547
301001,"Contact 1","M-Contact 1",90143, ,90001, ,"MILLIMETER","NEWTON",7.673137