オイラーはりとティモシェンコはりのたわみ比較|Salome-Meca

書籍に記載された解析事例における両端固定はりの変形解析を行いました。

  • 文献:「例題で極める非線形有限要素法 CAEで正しい結果を導くためのトレーニング」
  • 著:渡辺浩志、出版:丸善出版
  • 事例:[CS05-06] 理論値と解析と実験値の比較 P.58

<動作確認環境>
 Salome-Meca 2019 (CAELinux2020Lite)

1.解析対象

下図に解析モデルを示します。両側固定をしたはりに対して中央部に荷重をかけたときの梁を計算しています。

1.1 モデル寸法・物性値

  • はり:長さ500mm、高さ:38mm、幅19mm
  • 荷重:10000N
  • ヤング率:205000MPa、ポアソン比0.3

1.2 解析モデル

  • メッシュ:ビーム要素(1D要素)、オイラーはり、ティモシェンコはりの2種類
  • 要素分割数:①20、②100
  • 出力:はり中央部のたわみ(Z方向変位)
  • 拘束条件:はり両端全固定、はり中央部に点荷重(詳細下図参照)

2.1 連成解析による結果

(1)オイラーはりのたわみ 0.366mm(①20分割、②100分割共に同じ)

(2)ティモシェンコはりの場合のたわみ 0.392mm (①20分割、②100分割共に同じ)

3.書籍での解説


書籍では、実測で試験をしておりそのときのたわみが0.392mmであり、ティモシェンコはりでの計算結果と同レベルでした。 はりの長さに対してはりの剛性が高い場合は、 材料力学でいうはり(オイラーはり)の0.366mmに対して、 せん断による変形を考慮したティモシェンコはりによる計算が必要なようです。

3.1 オイラー梁のたわみ

荷重位置がはりの中央部にある関係から、下図の考え方で片持ち梁の計算に換算できます。

①荷重が梁の中央部にあるので、両端にかかる荷重はP/2でありたわみ線図は荷重点Pに対して対称です。
②左端のたわみ角と荷重負荷位置(左端からの距離L/2)のたわみ角は0°、左端からの位置L/4のたわみ角は連続であることから、右側の片持ち梁は、左側の片持ち梁を上限反転したものです。
③この時の片持ち梁のたわみ δ/2 は片持ち梁の公式より
 δ/2 = 5000(N) *1253 / (205000 * 21720) = 0.1827mm、2倍するので、0.3654mm
となり、ほぼSalomeMecaと一致します。

試しにPythonで計算した結果を以下に示します。

#pythonのコード
hy=19
hz=38
span=125
load =5000
young_m=205000
poasson_v=0.3

iz=hz*hy**3/12
print(iz)
iz=hy*hz**3/12
print(iz)

delta= load*span**3/(3*young_m*iz)
print(f"たわみの半分は{delta}mm")
delta *=2
print(f"たわみは{delta}mm")
delta /=1000
print(f"たわみは{delta}m")
#実行結果
21720.166666666668
86880.66666666667
たわみの半分は0.18276868318210887mm
たわみは0.36553736636421774mm
たわみは0.00036553736636421775m

3.2 ティモシェンコ梁のたわみ

ティモシェンコはりは、普段使わないので計算は省略します。

4.まとめ

この本を見るまでは、材料力学のはり(オイラーはり)しか知りませんでした。はりの長さに対して曲げ剛性(断面二次モーメント)によっては、せん断による変形を考慮したティモシェンコはりによる計算が必要なようです。

解析ファイル
medファイル:メッシュファイル、commファイル:コマンドファイル(オイラーはり)

5.補足

解析モデルを選択する場合、オイラー梁の場合は、POU_D_E、ティモシェンコはりの場合、 POU_D_Tを選択します。
設定は、 AFFE_CARA_ELEM 上で設定し、はりの断面形状は、幅方向がY方向高さ方向がZ方向のため、それぞれHY=19HZ=38を入力します。また、 長方形断面でかつ中立軸が重心を通るため、本計算では補正設定は不要です。

DEBUT(identifier='0:1',
      )

elem0 = LIRE_MAILLAGE(identifier='1:1',
                      FORMAT='MED',
                      UNITE=3)

model = AFFE_MODELE(identifier='2:1',
                    AFFE=_F(MODELISATION=('POU_D_E', ),
                            PHENOMENE='MECANIQUE',
                            TOUT='OUI'),
                    MAILLAGE=elem0)

carael = AFFE_CARA_ELEM(identifier='3:1',
                        MODELE=model,
                        POUTRE=_F(CARA=('HY', 'HZ'),
                                  GROUP_MA=('edge', ),
                                  SECTION='RECTANGLE',
                                  VALE=(19.0, 38.0)))

prop = DEFI_MATERIAU(identifier='4:1',
                     ELAS=_F(E=205000.0,
                             NU=0.3))

material = AFFE_MATERIAU(identifier='5:1',
                         AFFE=_F(MATER=prop,
                                 TOUT='OUI'),
                         MAILLAGE=elem0)

load2 = AFFE_CHAR_MECA(identifier='6:1',
                       DDL_IMPO=_F(GROUP_NO=('hold1', 'hold2'),
                                   LIAISON='ENCASTRE'),
                       FORCE_NODALE=_F(FZ=-10000.0,
                                       GROUP_NO=('load', )),
                       MODELE=model)

reslin = MECA_STATIQUE(identifier='7:1',
                       CARA_ELEM=carael,
                       CHAM_MATER=material,
                       EXCIT=_F(CHARGE=load2),
                       MODELE=model)

unnamed0 = CALC_CHAMP(identifier='8:1',
                      CONTRAINTE=('SIPO_ELNO', 'SIPO_NOEU', 'SIEF_NOEU', 'SIEF_ELNO'),
                      FORCE=('FORC_NODA', 'REAC_NODA'),
                      RESULTAT=reslin)

IMPR_RESU(identifier='9:1',
          FORMAT='MED',
          RESU=(_F(MAILLAGE=elem0,
                   NOM_CHAM=('DEPL', ),
                   RESULTAT=reslin),
                _F(NOM_CHAM=('SIEF_NOEU', 'SIPO_NOEU'),
                   RESULTAT=unnamed0)),
          UNITE=2)

IMPR_RESU(identifier='10:1',
          FORMAT='RESULTAT',
          RESU=_F(IMPR_COOR='OUI',
                  NOM_CHAM=('DEPL', ),
                  RESULTAT=reslin),
          UNITE=8)

FIN(identifier='11:1',
    )