LoginSignup
2
1

More than 3 years have passed since last update.

Salome-Meca 2018を用いた塑性変形の基本(SSNV)

Last updated at Posted at 2020-02-16

材料の特性(応力と歪の関係)が弾性域では比例(線形)しているため、構造解析の解は、容易に求める事ができます。
しかし、塑性域に入ると、応力と歪の関係が線形ではなく、非線形となるため、解を求める事が難しくなってきます。
求め方は、負荷を一度に掛けず少しづつ掛けてその都度、解を求め、最終的に解を求める方法で解きます。
したがって、あまりに大きな負荷を掛け過ぎると、途中の解が収束せず求められなくなります。
この場合は、さらに時間をかけて少しづつ負荷を掛けていく方法となります。

この資料はオープンCAE勉強会@岐阜で公開されているFS氏ご提供の「SALOME-Mecaの使用法解説:7.0 塑性変形の基本(1),(2)」をSalome-Meca 2018(Code_Aster 13.6)のAsterStudyモジュールを用いて実行しました。

単純な四角柱の片持ち梁

ジオメトリ

幅10mm×高さ20mm×長さ100mmの直方体

材料

  • ヤング率:E=70,000MPa
  • ポアソン比:$\nu$=0.3
  • Stress Strain Curve Data
Stress Strain
105.0 0.0015
200.0 0.0500
300.0 0.2000

拘束条件と荷重条件

境界条件 トポロジ 境界条件の種類 条件
fix 変位 DX=DY=DZ=0
load 変位 DZ=5

image.png

解析結果

相当応力図を示します。

plastic.png

コマンドファイル

bar.comm
DEBUT(LANG='EN')

mesh = LIRE_MAILLAGE(FORMAT='MED',
                     UNITE=20)

model = AFFE_MODELE(AFFE=_F(MODELISATION=('3D', ),
                            PHENOMENE='MECANIQUE',
                            TOUT='OUI'),
                    MAILLAGE=mesh)

elast_pl = DEFI_FONCTION(INTERPOL=('LIN', ),
                         NOM_PARA='EPSI',
                         NOM_RESU='TOUTRESU',
                         PROL_DROITE='LINEAIRE',
                         PROL_GAUCHE='CONSTANT',
                         VALE=(0.0015, 105.0, 0.05, 200.0, 0.2, 300.0))

mater = DEFI_MATERIAU(ELAS=_F(E=70000.0,
                              NU=0.3),
                      TRACTION=_F(SIGM=elast_pl))

fieldmat = AFFE_MATERIAU(AFFE=_F(MATER=(mater, ),
                                 TOUT='OUI'),
                         MAILLAGE=mesh)

depl_imp = DEFI_FONCTION(NOM_PARA='INST',
                         VALE=(0.0, 0.0, 1.0, 1.0))

listr = DEFI_LIST_REEL(DEBUT=0.0,
                       INTERVALLE=_F(JUSQU_A=1.0,
                                     PAS=0.1))

times = DEFI_LIST_INST(DEFI_LIST=_F(LIST_INST=listr),
                       METHODE='MANUEL')

load = AFFE_CHAR_MECA(DDL_IMPO=_F(DZ=5.0,
                                  GROUP_MA=('load', )),
                      MODELE=model)

fix = AFFE_CHAR_MECA(DDL_IMPO=_F(DX=0.0,
                                 DY=0.0,
                                 DZ=0.0,
                                 GROUP_MA=('fix', )),
                     MODELE=model)

resnonl = STAT_NON_LINE(CHAM_MATER=fieldmat,
                        COMPORTEMENT=_F(DEFORMATION='SIMO_MIEHE',
                                        RELATION='VMIS_ISOT_TRAC'),
                        CONVERGENCE=_F(ITER_GLOB_MAXI=200,
                                       RESI_GLOB_MAXI=1e-06),
                        EXCIT=(_F(CHARGE=fix),
                               _F(CHARGE=load,
                                  FONC_MULT=depl_imp)),
                        INCREMENT=_F(LIST_INST=listr),
                        METHODE='NEWTON',
                        MODELE=model,
                        NEWTON=_F(MATRICE='TANGENTE',
                                  REAC_INCR=1,
                                  REAC_ITER=1))

resnonl = CALC_CHAMP(reuse=resnonl,
                     CONTRAINTE=('SIGM_ELNO', 'SIGM_NOEU'),
                     CRITERES=('SIEQ_ELNO', 'SIEQ_NOEU', 'EPEQ_ELNO', 'EPEQ_NOEU'),
                     DEFORMATION=('EPSP_ELNO', 'EPSP_NOEU'),
                     FORCE=('FORC_NODA', 'REAC_NODA'),
                     MODELE=model,
                     RESULTAT=resnonl,
                     TOUT='OUI')

IMPR_RESU(FORMAT='MED',
          RESU=_F(MAILLAGE=mesh,
                  RESULTAT=resnonl,
                  TOUT_CHAM='OUI'),
          UNITE=80)

FIN()

円柱の圧縮

塑性加工として、かしめ加工がありますが、このかしめを想定したモデルで塑性解析を実施します。
モデルは、円盤の上に、円柱が立っているモデルで円柱を圧縮して、円柱の形状がどのように変化するかを確認します。
(通常円柱を圧縮すると、たいこ形状になります。
円柱の端面に荷重を掛けるので、端面は、摩擦により、ほとんど伸びません。
円柱の中央付近は、圧縮により膨らんで、たいこ形状になります。)

ジオメトリ

  • 円柱外形:$\phi$10mm
  • 円柱高さ:10mm
  • つなぎR:R1mm
  • 円盤外形:$\phi$20mm
  • 円盤板厚:t3mm

材料

  • ヤング率:E=70,000MPa
  • ポアソン比:$\nu$=0.3
  • Stress Strain Curve Data
Stress Strain
105.0 0.0015
200.0 0.0500
300.0 0.2000

拘束条件と荷重条件

境界条件 トポロジ 境界条件の種類 条件
fix 変位 DX=DY=DZ=0
press 変位 DX=DY=0
DZ=-3

image.png

解析結果

変形図を示します。

pole.png

コマンドファイル

pole.comm
DEBUT(LANG='EN')

mesh = LIRE_MAILLAGE(FORMAT='MED',
                     UNITE=20)

model = AFFE_MODELE(AFFE=_F(MODELISATION=('3D', ),
                            PHENOMENE='MECANIQUE',
                            TOUT='OUI'),
                    MAILLAGE=mesh)

elast_pl = DEFI_FONCTION(INTERPOL=('LIN', ),
                         NOM_PARA='EPSI',
                         NOM_RESU='TOUTRESU',
                         PROL_DROITE='LINEAIRE',
                         PROL_GAUCHE='CONSTANT',
                         VALE=(0.0015, 105.0, 0.05, 200.0, 0.2, 300.0, 2.0, 3000.0))

mater = DEFI_MATERIAU(ELAS=_F(E=70000.0,
                              NU=0.3),
                      TRACTION=_F(SIGM=elast_pl))

fieldmat = AFFE_MATERIAU(AFFE=_F(MATER=(mater, ),
                                 TOUT='OUI'),
                         MAILLAGE=mesh)

depl_imp = DEFI_FONCTION(NOM_PARA='INST',
                         VALE=(0.0, 0.0, 1.0, 1.0))

listr = DEFI_LIST_REEL(DEBUT=0.0,
                       INTERVALLE=(_F(JUSQU_A=0.1,
                                      NOMBRE=5),
                                   _F(JUSQU_A=1.0,
                                      NOMBRE=5)))

times = DEFI_LIST_INST(DEFI_LIST=_F(LIST_INST=listr),
                       METHODE='MANUEL')

load = AFFE_CHAR_MECA(DDL_IMPO=_F(DZ=-3.0,
                                  GROUP_MA=('press', )),
                      MODELE=model)

fix = AFFE_CHAR_MECA(DDL_IMPO=(_F(DX=0.0,
                                  DY=0.0,
                                  DZ=0.0,
                                  GROUP_MA=('fix', )),
                               _F(DX=0.0,
                                  DY=0.0,
                                  GROUP_MA=('press', ))),
                     MODELE=model)

resnonl = STAT_NON_LINE(CHAM_MATER=fieldmat,
                        COMPORTEMENT=_F(DEFORMATION='SIMO_MIEHE',
                                        RELATION='VMIS_ISOT_TRAC'),
                        CONVERGENCE=_F(ITER_GLOB_MAXI=200,
                                       RESI_GLOB_MAXI=1e-06),
                        EXCIT=(_F(CHARGE=fix),
                               _F(CHARGE=load,
                                  FONC_MULT=depl_imp)),
                        INCREMENT=_F(LIST_INST=listr),
                        METHODE='NEWTON',
                        MODELE=model,
                        NEWTON=_F(MATRICE='TANGENTE',
                                  REAC_INCR=1,
                                  REAC_ITER=1))

resnonl = CALC_CHAMP(reuse=resnonl,
                     CONTRAINTE=('SIGM_ELNO', 'SIGM_NOEU'),
                     CRITERES=('SIEQ_ELNO', 'SIEQ_NOEU', 'EPEQ_ELNO', 'EPEQ_NOEU'),
                     DEFORMATION=('EPSP_ELNO', 'EPSP_NOEU'),
                     FORCE=('FORC_NODA', 'REAC_NODA'),
                     MODELE=model,
                     RESULTAT=resnonl,
                     TOUT='OUI')

IMPR_RESU(FORMAT='MED',
          RESU=_F(MAILLAGE=mesh,
                  RESULTAT=resnonl,
                  TOUT_CHAM='OUI'),
          UNITE=80)

FIN()
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1