接触計算を上手く行うには

Kosuke_IKEDA
Kosuke_IKEDA
Altair Employee
edited April 2023 in 質問と回答 (Q&A)

接触計算を行った場合に、物体が吹っ飛んでいったり、接触力がノイズだらけという場合はないでしょうか?

今回は接触計算を上手く行う方法を紹介します。

 

まずは、接触を定義した物体を落下させる計算を行いました。

パラメータはすべてデフォルトです。接触力がノイズだらけでした。

image

 

MotionView / MotionSolveのデフォルトパラメータでは接触計算がうまくいかないことが多いです。

maximum step sizeをデフォルトの0.01から一桁は小さくしていただいたほうがよいです。

 

さっそく、maximum step sizeを0.01 -> 0.001としました。

結果を見てみます。

剛体接触ですので、初期は跳ねますが、次第に一定値に収まることが確認できました。

 

ほか、接触を検知するとmaximum step sizeを小さくするオプションもあります。現在のmaximum step sizeに対して倍率で指示する方法と、maximum step sizeを直接指示する方法があります。ただ、接触しっぱなしや頻繁に接触する問題を取り扱うことが多いと思いますので、先の方法で最初からmaximum step sizeを小さくするのがおすすめです。

 

本スレッドで使用したモデルです。お試しください。

model.zip

※ファイルのダウンロードには、必ず当フォーラムへのログインが必要となります。ログインしない状態でファイルをダウンロードすると、ファイルが存在しないといった旨のメッセージが表示されますが、実際にはログインするとダウンロードが可能になります。

Answers

  • Kosuke_IKEDA
    Kosuke_IKEDA
    Altair Employee
    edited September 2020

    続きまして、接触パラメータをどうしたらよいかということを考えたいと思います。

    MotionSolveには接触力の計算手法として、Impact / Poisson / Volume Methodの3つが提供されていますが、いづれもペナルティ法であり、接触剛性と減衰の与え方が異なるだけです。

    要は、めり込み量に応じてある剛性で反力を求めて、押し返してあげるだけにすぎません。

    <?xml version="1.0" encoding="UTF-8"?>image.thumb.png.d0e2d30c9873f57c2b8bc188e0444e90.png

    それぞれの反力の算出式はMotionSolve Reference Guideをご参照ください。

    https://connect.altair.com/CP/SA/hwhelp/2020/hwsolvers/ms/topics/solvers/ms/xml-format_57.htm(オンラインヘルプの参照にはAltair Oneへの登録が必要です)

    <?xml version="1.0" encoding="UTF-8"?>image.thumb.png.b914ec9449a8bcd9b50c24113cf9a759.png

     

    ペナルティ法で計算する以上、必ずめり込みが発生してしまいますので、そのめり込み量が現在評価したい量に対して許容可能かどうかをユーザが判断して、接触剛性を調整する必要があります。接触剛性を大きくすると、めり込み量は少なくなり、よりCADの表面に近い位置で押し返してくれて、幾何的な精度は向上しますが、接触とともに急激な荷重変化が生じますので、安定して計算するには小さな時間刻みが必要となり、結果として計算時間がかかります。精度と計算時間の兼ね合いから接触剛性を調整する必要がある場合が多いです。

     

    ということで、3つの反力計算手法Impact / Poisson / Volume Methodが提供されているのですが、結局のところ調整が必要ですので、調整が簡単なImpactがおすすめです。

    StiffnessとDampingの調整で解決する場合がほとんどです。ほかのパラメータが気になる方はMotionSolve Reference Guideをご参照ください。

    <?xml version="1.0" encoding="UTF-8"?>image.thumb.png.f6169fac1617a9d78ead4a76cbcb8a4d.png

     

    まずは、デフォルトパラメータでの計算をお勧めします。多くの場合、上記で説明しましたmaximum step sizeを一桁小さくしておけば計算できます(0.01 -> 0.001)。

    ただし、場合によってはめり込み量が大きく、調整が必要な場合があります。

    めり込み量は結果のContact OverView機能で確認できます。

    HyperViewのResults BrowserでTransient -> Contact Overviewに変更して、Contact Penetration Depthをコンター表示します。

    全解析を通した最大のめり込み量を一枚の絵でプロットしてくれます。これで、最大めり込み量が2.379mmであることがわかります。

    <?xml version="1.0" encoding="UTF-8"?>image.thumb.png.9a408856bbc57642bcac8ef316ba0a80.png

    現在、50mm落下させているので、50mmに対して無視できると思われる方はそれで結構です。許容できない方は、Stiffnessを大きくして再度めり込み量を確認してください。一桁、二桁大きくする感じでよいと思います。Stiffnessを大きくしすぎると、冒頭にしめしたノイズが多くなる場合があります。そうなった場合はmaximum step sizeをさらに小さくしていただく必要があります。

    <?xml version="1.0" encoding="UTF-8"?>image.thumb.png.66b38dc95ce132a313b1f6c2a50b1a3d.png

     

    ほか、接触後の振動が大きい場合はdampingを大きくすることで低減できます。

    <?xml version="1.0" encoding="UTF-8"?>image.thumb.png.94909b8df587075fb612f8c382393106.png

    結果、上下変位の振動がすばやく収まっていることが確認できます。

    大きすぎるDampingも計算不安定につながりますのでデフォルト値から徐々に大きくしてください。

    <?xml version="1.0" encoding="UTF-8"?>image.thumb.png.6b004c4091716d7c30188a742115e303.png

     

  • Kosuke_IKEDA
    Kosuke_IKEDA
    Altair Employee
    edited July 2022

    MotionView2022のActive Contact Iterationにチェックを付けると、デフォルトのタイムステップ0.01でもノイズの少ない接触力が得られます。

    image

    機能の詳細につきましては、MotionSolve/MotionView 2021.2 - 新機能紹介ウェビナー動画のスライド11をご参照ください。

    https://community.altair.com/community/?id=kb_article_view&sysparm_article=KB0117218