薄板筒の静的応力解析

未分類
sponsored

街中でよく見かけるクレーン車。この記事の対象は、クレーン車のブームです。
入れ子状になっていて、道を走る時は短く、作業するときは長く伸ばします。
(photoACより)

ブームの形状はAからCへ変わってきました。使われているのは1200MPa級の高張力鋼です。(Webiloによる)

クレーンのブームがスライドする部分の構造です。断面Cの下側の円弧状の部分のスライドプレートが内箱を支えます。
(特開2008-265980より)

全体はこんな感じ。
(特開2008-265980より)

解析モデルはこんな感じ。元の部分はSHELLで、他はBEAMで簡略化。

ポイントは拘束部。パッドの部分では法線方向の変位と法線・接線軸周りの回転を拘束しました。
他の部分はZ軸(長手)方向とx軸・y軸周りの回転を拘束しました。

モデル全景は下図になります。

解析モデル 全体
解析モデル 拘束部分
DEBUT();
 meshinit=LIRE_MAILLAGE(FORMAT='MED',
                        INFO=1,);

開始とmeshデータの読み込みです。

modeinit=AFFE_MODELE(MAILLAGE=meshinit,
                      AFFE=(_F(TOUT='OUI',
                               PHENOMENE='MECANIQUE',
                               MODELISATION='3D',),
                            _F(GROUP_MA=('t50','upper','lower',),
                               PHENOMENE='MECANIQUE',
                               MODELISATION='DKT',),
                            _F(GROUP_MA=('beam','beamt',),
                               PHENOMENE='MECANIQUE',
                               MODELISATION='POU_D_E',),),);

3次元の構造解析であること、shell(DKT)要素のグループとbeam要素のグループを設定しました。

meshinit=MODI_MAILLAGE(reuse =meshinit,
                        MAILLAGE=meshinit,
                        ORIE_PEAU_3D=_F(GROUP_MA=('t50','lower','upper',),),);

shell要素の方向を揃えるときに使いますが、今回は意味がありません。
境界条件の設定にむけての準備です。

code asterには面の法線方向を拘束する便利な機能があります。
これを使うため、パッドが接する領域の節点を2つのグループに分けます。

meshinit=DEFI_GROUP(reuse =meshinit,
                        MAILLAGE=meshinit,
                        CREA_GROUP_NO=(_F(GROUP_MA=('end',),NOM='end'), 
                                       _F(GROUP_MA=('center',),NOM='center'),
                                       _F(GROUP_MA=('lowlef',),NOM='lowlef'),
                                       _F(DIFFE=('lowlef','end'),NOM='nsanlef'),
                                       _F(GROUP_MA=('lowrig',),NOM='lowrig'),
                                       _F(DIFFE=('lowrig','end'),NOM='nsanrig'),
                                       _F(DIFFE=('lowrig','nsanrig'),NOM='fixrig'),
                                       _F(DIFFE=('lowlef','nsanlef'),NOM='fixlef'),
                                       ),
                     );

まず、エッジやフェースのグループから節点のグループを作成します。
そして、フェースのグループlowlef、lowrigから、endにも含まれる節点を除いた節点グループnsanlefとnsanrigを作成します。
次に、フェースとエッジの両方に含まれる節点のグループfixlefとfixrigを作成していますが、これは計算には使用していません。

shellch=AFFE_CARA_ELEM(MODELE=modeinit,
                        POUTRE=(_F(GROUP_MA='beam',
                                   SECTION='CERCLE',
                                   CARA=('R','EP',),
                                   VALE=(1000.0,500.0,),),
                                _F(GROUP_MA='beamt',
                                   SECTION='CERCLE',
                                   CARA=('R','EP',),
                                   VALE=(1000.0,500.0,),),),
                        COQUE=(_F(GROUP_MA='t50',
                                  EPAIS=50.0,
                                  COQUE_NCOU=1,),
                               _F(GROUP_MA='upper',
                                  EPAIS=5.0,
                                  COQUE_NCOU=1,),
                               _F(GROUP_MA='lower',
                                  EPAIS=7.0,
                                  COQUE_NCOU=1,),
                               _F(GROUP_MA='vface',
                                  EPAIS=50.0,
                                  VECTEUR=(0.0,1.0,0.0,),),),
                        ORIENTATION=_F(GROUP_MA='beamt',
                                       CARA='VECT_Y',
                                       VALE=(1.0,0.0,0.0,),),);
 Material properties
 define plastic behaviour of steel by Traction
 steel=DEFI_MATERIAU(ELAS=_F(E=206800.0,
                             NU=0.27,),);
 matprops=AFFE_MATERIAU(MAILLAGE=meshinit,
                        AFFE=_F(TOUT='OUI',
                                MATER=steel,),);

上のように各要素の設定(板厚や断面特性)と材料特性を設定しました。

LoadFix=AFFE_CHAR_MECA(MODELE=modeinit,
                        DDL_IMPO=(_F(GROUP_NO='end',
                                     DX=0.0,
                                     DRY=0.0,
                                     DRZ=0.0,),
                                  _F(GROUP_NO='center',
                                     DZ=0.0,),),
                        FACE_IMPO=(_F(GROUP_MA='lowlef',
                                      SANS_GROUP_NO='nsanlef',
                                      DNOR=0.0,),
                                   _F(GROUP_MA='lowrig',
                                      SANS_GROUP_NO='nsanrig',
                                      DNOR=0.0,),),
                        FORCE_NODALE=_F(GROUP_NO='load',
                                        FY=ydisp,),);

境界条件です。x方向の併進、DRY=DRZ=0(DRN=DRT=0と同じ)は拘束部分の節点共通です。
法線方向の拘束はFACE_IMPOを使用しています。フェースグループと対象外の節点グループを設定することで、端の円弧部分に法線方向の拘束を与えています。

resu=MECA_STATIQUE(MODELE=modeinit,
                    CHAM_MATER=matprops,
                    CARA_ELEM=shellch,
                    EXCIT=_F(CHARGE=LoadFix,),
                    OPTION='SIEF_ELGA',);
 resu=CALC_CHAMP(reuse =resu,
                 RESULTAT=resu,
                 CONTRAINTE=('EFGE_ELNO','SIEF_ELNO','EFGE_NOEU',),
                 CRITERES='SIEQ_ELNO',);
 res_sup=POST_CHAMP(RESULTAT=resu,
                    EXTR_COQUE=_F(NOM_CHAM='SIEQ_ELNO',
                                  NUME_COUCHE=1,
                                  NIVE_COUCHE='SUP',),);
 res_inf=POST_CHAMP(RESULTAT=resu,
                    EXTR_COQUE=_F(NOM_CHAM='SIEQ_ELNO',
                                  NUME_COUCHE=1,
                                  NIVE_COUCHE='INF',),);
 res_moy=POST_CHAMP(RESULTAT=resu,
                    EXTR_COQUE=_F(NOM_CHAM='SIEQ_ELNO',
                                  NUME_COUCHE=1,
                                  NIVE_COUCHE='MOY',),);
 res_sup=CALC_CHAMP(reuse =res_sup,
                    RESULTAT=res_sup,
                    CRITERES='SIEQ_NOEU',);
 res_inf=CALC_CHAMP(reuse =res_inf,
                    RESULTAT=res_inf,
                    CRITERES='SIEQ_NOEU',);
 res_moy=CALC_CHAMP(reuse =res_moy,
                    RESULTAT=res_moy,
                    CRITERES='SIEQ_NOEU',);

線形構造解析を行い、結果resuから、shell要素のMises応力を求めています。その際、shellの表、中立、裏の3面について行っています。

IMPR_RESU(FORMAT='MED',
           UNITE=81,
           RESU=(_F(RESULTAT=resu,NOM_CHAM='DEPL',GROUP_MA=('t50','upper','lower',),),
                 _F(RESULTAT=res_inf,),
                 _F(RESULTAT=res_moy,),
                 _F(RESULTAT=res_sup,),),);

beam要素についてMises応力を計算できません。変位は、shellについて出力するようにします。これで、paraviewに取り込んだ時、同じグループとして扱われます。

TB_nodf=CREA_TABLE(RESU=_F(GROUP_NO=('end','load',),
                           NOM_CHAM='DEPL',
                           NOM_CMP=('DX','DY','DZ','DRX','DRY','DRZ', ),
                           RESULTAT=resu),
                           TITRE='depl_Tab',
                          TYPE_TABLE='TABLE') ;
 IMPR_TABLE(TABLE=TB_nodf,
            FORMAT='TABLEAU',
            UNITE=8,
            SEPARATEUR=' * ',
            TITRE='displacements at nodes on group end',);

拘束の状態を確認するための節点変位の出力を行いました。

FIN();

終了です。

解析結果です。

ミーゼス応力と変形 その1
ミーゼス応力と変形 その2

拘束している部分の変形を調べました。節点の変位を1000倍にしてあります。パッド部分の拘束は意図したものになっていました。

モデル(hdf、med)、解析データ(astk、comm)は以下にあります。

追加
Code Aster13.6では、標準のSOLVERはMULT_FRONTでしたが、Code Aster14.4ではMUMPSのようです。Code Aster14.4で解析するときは、commの一部を次のように変更してください。

resu=MECA_STATIQUE(MODELE=modeinit,
                    CHAM_MATER=matprops,
                    CARA_ELEM=shellch,
                    EXCIT=_F(CHARGE=LoadFix,),
                    SOLVEUR=_F(RESI_RELA=1.E-04,
                               METHODE='MUMPS',),
                    OPTION='SIEF_ELGA',);

コメント

タイトルとURLをコピーしました