接触解析について

641 views
Skip to first unread message

Akira Yamamoto

unread,
Oct 11, 2015, 2:38:41 PM10/11/15
to Salome-Meca & Code_Aster + Code_Saturne
Yamamotoと申します。

添付ファイルの接触解析で、収束させる事が出来ず、悩んでいます。
半径11.2の穴と、半径11.1の円柱が、離れた状態から接触する解析です。
設定の問題が有りましたら、教えて頂けると嬉しいです。

接触解析は、同じような解析をしているつもりなのに、
収束するケースとしないケースが有り、その差異が何なのか、理解できていません・・・。

CONTACT.comm
Compound_Mesh_1.med

kengo

unread,
Oct 13, 2015, 11:30:08 AM10/13/15
to Salome-Meca & Code_Aster + Code_Saturne

まだ解決できていませんが、気になったことを一つだけ。

荷重にしても変位にしても、非線形計算で与える場合は、少しずつ与えたほうが計算が安定します。
具体的には下記のように、DEFI_FONCTION と FONC_MULT を使います。

ですが、今回の場合はこれでも収束はしません。


FONC=DEFI_FONCTION(
                   NOM_PARA='INST',
                   VALE=(0.0 ,0.0 ,
                         1.0 ,1.0 ,),);

RESU2=STAT_NON_LINE(MODELE=MODE,
                    CHAM_MATER=MATE,
                    CARA_ELEM=softSp,
                    EXCIT=_F(CHARGE=CHAR2,
                             FONC_MULT=FONC,),
                    CONTACT=CONT,
                    COMP_ELAS=_F(RELATION='ELAS',),
                    INCREMENT=_F(LIST_INST=pas2,
                                 INST_INIT=0.05,),
                    NEWTON=_F(REAC_INCR=1,),
                    SOLVEUR=_F(METHODE='MUMPS',
                               SYME='OUI',),);


以上

Akira Yamamoto

unread,
Oct 13, 2015, 5:46:27 PM10/13/15
to Salome-Meca & Code_Aster + Code_Saturne
kengo様

御回答ありがとうございます。

仰る通り、荷重は、FONC_MULTで徐々に負荷した方が良いですね。
今度から、接触解析のコマンドファイルに加えるようにしたいと思います。

収束は、今夜から、以下の2つの方法でトライしてみようと思ってます。
①メッシュの粗密を変える。
②ペナルティ法でやってみる。

*添付は修正したコマンドファイルです。
  収束とは無関係ですが、STAT_NON_LINEのARCHIVAGEに出力設定も加えました。

CONTACT_repair1.comm

Akira Yamamoto

unread,
Oct 14, 2015, 6:09:22 AM10/14/15
to Salome-Meca & Code_Aster + Code_Saturne
STAT_NON_LINEの設定で、REAC_ITER=0となっていましたので、REAC_ITER=1に修正しました。
REAC_INCR=1(デフォルト通り)を表示させて、REAC=ITER=1の設定をしたつもりになっていました・・・。

本コマンドファイルをベースに修正していきたいと思います。
CONTACT_repair2.comm

kengo

unread,
Oct 14, 2015, 9:17:09 AM10/14/15
to Salome-Meca & Code_Aster + Code_Saturne

メッシュとコマンドファイルを変更して収束させることができました。


メッシュについては、内側の円筒がY軸上に節点を持つように回転させ、
外側の円筒も回転させて、内側の円筒の節点が相対的に均等になるように、配置しました。


コマンドファイルについては、0-1時間で、強制変位を与え少し接触するようにし、
1-2時間で荷重を与えるようにしています。
先の投稿では少しずつ荷重、変位を与えてほうが良いと言いましたが、
今回は最初のステップで全荷重、全変位を与えるようにしています。

また、バネについては無視できるくらい弱いものに変更しています。


以上

Compound_Mesh_1.med
CONTACT_repair2.comm

Akira Yamamoto

unread,
Oct 14, 2015, 4:43:09 PM10/14/15
to Salome-Meca & Code_Aster + Code_Saturne
解析を試して頂き、有難う御座います。

昨日は、ペナルティ法でTRYするなどしておりましたが、収束させる事が出来ませんでした・・・
メッシュの節点配置ですが、メッシュが接触する線に対して、対称に配置される方が良いのでしょうか?

kengo様のコマンドファイルですが、
2つのSTAT_NON_LINE共に、EXCITがCHAR3になっており、変位拘束になっているようです。
添付のコマンドファイルのように、1-2時間をCHAR2にすると、収束させる事が出来ませんでした。

しかし、最初に変位拘束で接触させてから、荷重拘束に切り替えるのは、成功(収束)に近い気がします。
どうしても荷重拘束で収束させられなければ、最初から最後まで変位拘束で接触させて、
節点反力で、与えた荷重を読みとる方法で妥協するしかないですね・・・。






2015年10月14日水曜日 22時17分09秒 UTC+9 kengo:
CONTACT_repair2_a1.comm

kengo

unread,
Oct 15, 2015, 6:25:05 AM10/15/15
to Salome-Meca & Code_Aster + Code_Saturne


メッシュの節点配置ですが、メッシュが接触する線に対して、対称に配置される方が良いのでしょうか?

接触解析では、マスター、スレイブの節点配置が重要ですので、対称形なら節点も対称に配置したほうが良いです。
 


kengo様のコマンドファイルですが、
2つのSTAT_NON_LINE共に、EXCITがCHAR3になっており、変位拘束になっているようです。
添付のコマンドファイルのように、1-2時間をCHAR2にすると、収束させる事が出来ませんでした。

すみません。良く確認せずに計算をしておりました。

ですが、CHAR3 の条件で計算した結果を見ると、節点が円周方向に飛び飛びに接触していることがわかります。
現状のメッシュでは、曲面を表現するには節点が少なく、これが収束しない原因に思います。


以上

Akira Yamamoto

unread,
Oct 16, 2015, 10:22:03 AM10/16/15
to Salome-Meca & Code_Aster + Code_Saturne
御助言ありがとうございます。

kengo様のご指摘通り、メッシュを細かくすると、収束するようになりました。
メッシュファイル、コマンドファイル、解析結果(ミーゼス応力)は添付の通りです。

メッシュは、外側円筒・内側円柱共に、YZ平面でPartitionを切ってから実行し、
接触するライン(Z軸方向のライン)で、対称になるようにしました。
また、マスター側の外側円筒メッシュを、スレーブ側の内側円柱メッシュより少し粗くしました。

バネ力は、100N/mmで設定してあります。1N/mmでは収束しませんでした。
小さいバネ力でも収束させられるか、もう少し試してみようと思います。
CONTACT_repair2_a1.comm
ミーゼス応力.png
Compound_Mesh_7.lzh

kengo

unread,
Oct 16, 2015, 10:47:50 AM10/16/15
to Salome-Meca & Code_Aster + Code_Saturne

前の結果よりも定性的には良い結果になっているので、やはりメッシュの粗さが原因でしたね。

接触解析では、発散したステップの一つ前の最後に収束できたステップの解析結果を出力して、
可視化してみると発散した原因がわかることがあります。
見ただけで明らかにおかしい結果が出ていることもあり、何が原因かがすぐにわかります。

接触解析に限った話ではないですが、発散直前の結果を出力するのも解決の一つの手段です。


以上

Akira Yamamoto

unread,
Oct 16, 2015, 9:54:42 PM10/16/15
to Salome-Meca & Code_Aster + Code_Saturne
ご指摘の通りで、メッシュを細かくすると、収束するようになりました。
コマンドファイルの設定ばかりを触っていましたが、メッシュに問題が有りました。

バネ力10N/mmの設定でも、発散しましたので、途中経過を出力させてみました。
途中経過の出力は、下記サイトを参考にさせて頂き、
DEBUTで、PAR=LOT='NON' を設定し、STAT_NON_LINEを"try:~pass"で囲む方法を採用しました。
添付は、Y方向変位のコンターになってます。変形倍率は1倍です。
変位拘束の最終ステップの結果と、荷重拘束の発散前ステップの結果です。

メッシュの潰れは、無いようですが、
Y方向変位が変位拘束で無理やり押しつけている時の方が大きくなってます。
これが原因でしょうか・・・?

色々と知識不足で、接触以外にも分からない所がたくさん有りますので、1個ずつ潰しながら、検討していきます。
・発散前結果の表示:try:~passの方法では、変位しか出力されなかった・・・。
・発散前結果の表示:POURSUITEでは失敗・・・。
・接触の変位では、成分に、LAGS_Cというのが混じっていて、Magnitudeもこの成分が支配的なっているように見える・・・。





変位拘束_最終ステップ.png
荷重拘束_発散前ステップ.png
Reply all
Reply to author
Forward
0 new messages