Help us understand the problem. What is going on with this article?

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

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

この資料はオープン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()
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした