5.0 線形熱応力


トップページはこちらです。
1.0、2.0、4.0の記事の読了を前提として、操作についての記載を省略している場合があります。
ver1.1.1では近接している面を自動認識する機能が追加されていますが、ここでは使用しません。

解析内容

使用ファイル
bar-100x20x10.stp
単位
mm-ton
材料物性値
Aluminum  (注1)
縦弾性係数:E=70600 [MPa]
ポアソン比:ν=0.343

荷重状態
元の練習問題では物体全体を均一温度120℃にする設定をしています。ここでは表面温度を120℃とします。定常計算であり表面温度などの熱的境界条件を設定しない面は断熱条件になるため、結果的に物体全体が均一な温度120℃になります。
 a) fix0(面):Dx = Dy = Dz =0 [mm]
   fix100(面):Dx = 0 [mm]
   Surface-1(残りの4つの面):T = 120 [℃]
 b) fix100(面):DxをFreeに変更する。つまり拘束なしとする。


  • (注1)
    この値は元の例題での値です。ここでは PrePoMax の Material Library に登録済の近い値の材料を使います。

形状の読込

PrePoMaxの新規起動または新規作業開始をしてください。
unit system:mm,ton,s,℃ に設定してください。

bar-100x20x10.stpをインポートしてください。
オブジェクト・ブラウザのGeometryタブのツリーにSolid_part-1が作成され、グラフィック・パネルには部品が表示されます。

メッシュ作成

デフォルトのメッシュサイズのままでは粗いため計算結果が見難くなります。そのためメッシュサイズを小さくします。
 GeometryタブのツリーのSolid_part-1の右クリックメニューの Meshinng Parameters。
 メニューバーの場合はMesh → Meshinng Parameters。

Mesh size
Max element size = 2.5 [mm]
他はデフォルトのままで良いです。
「OK」を左クリックしてください。

Solid_part-1にCreate Meshを実行してメッシュを生成してください。

材料物性値の設定

Material Library から材料物性値を呼び出してください。

 FE ModelタブのツリーのMaterialsの右クリックメニューのMaterial Library。
 メニューバーの場合はProperty→Material library。

 Aluminum:1060_Alloy

セクションの設定をしてください。

 FE ModelタブのツリーのSectionsの右クリックメニューのCreate。
 メニューバーの場合はProperty→Section→Create。

 Type = Solid section
 Properties
 Name = Solid_selection-1 (デフォルトのまま)
 Material = 1060_Alloy
 Region type = Part name
 Part = Solid_part-1

 「OK」を左クリック

面の命名

面に名前を付けてください。

 FE ModelタブのツリーのMeshのSurfaces の右クリックメニューのCreate。
 メニューバーの場合はModel→Surfce→Create

1) Properties
  Name = fix0
  Surface type = Element
  Region type = Selection
2) Surfaces, edges and vertices
3) 面を選択してください。
4) 「Ok-New」を左クリックしてください。

同様にして、あと2つの面の設定をしてください。
複数の面を選択するときは、Shittキーを押しながら左クリックすると面を追加できます。CTRLキーを押しながら左クリックすると選択済みの面をセットから外すことができます。
2つ目までは「OK-New」 最後の3つ目は「OK」です。
Name = fix100
Name = Surface-1

ツリーのSurfacesの下に fix0、fix100、Surface-1 が表示されます

解析設定

解析ステップを新規作成してください。

 FE ModelタブのツリーのStepsの右クリックメニューのCreate。
 メニューバーの場合はStep→Step→Createです。

 Type = Coupled temperature-displacement step
 Data
 Name = Step-1 (デフォルトのまま)
 Solver = Default (デフォルトのまま)
 Nlgeom = Off (デフォルトのまま)
 Stedy state = On (デフォルトのまま)
 Incrementation = Default (デフォルトのまま)

BCs(Boundary Conditions;境界条件)を作成してください。

 FE ModelタブのツリーのStep-1/BCsの右クリックメニューのCreate。
 メニューバーの場合はStep→BC→Createです。

≪固定面≫
 Type = Fixed
 Properties
 Name = Fixed-1 (デフォルトのまま)
 Region type = Surface name
 Surfaces = fix0

≪表面温度≫
 Type = Temperature
 Properties
 Name = Temperature-1 (デフォルトのまま)
 Region type = Surface name
 Surfaces = Surface-1
 Magnitude = 120 ℃

≪先端面≫
 Type = Displacement/Rotation
 Properties
 Name = Displacement_rotation-1 (デフォルトのまま)
 Region type = Surface name
 Surfaces = fix100
 U1 = 0 mm
 U2 = Unconstrained
 U3 = Unconstrained
 UR1 = Unconstrained
 UR2 = Unconstrained
 UR3 = Unconstrained
 Color = Lime (デフォルトのまま)

≪ファイル保存≫
いったんファイルを保存してください。名前は任意ですが、ここでは05_00フォルダーの05_00_a.pmxファイルとしました。

ソルバー計算

ソルバー計算を実施してください。

結果の表示

表示例を示します。
先端のfix100(面)ではDx=0としているため部品全体の伸びはゼロです。
先端のfix100(面)ではY方向とZ方向には拘束していないため、先端のfix0(面)と比べて大きな応力は発生していません。


端面の拘束が無い場合

元にした例題では端面の拘束を無くした場合の計算をしているので、それも実施してみます。
さっき作成した Displacement_rotation-1を削除してください。
  Displacement_rotation-1を選択状態にして右クリックメニューの中のDelete。
  メニューバーの場合はStep→BC→Deleteです。

別名でファイルを保存してください。名前は任意ですが、ここでは05_00フォルダーの05_00_b.pmxファイルとしました。

ソルバー計算を実施してください。

表示例を示します


≪注意≫ --- 2022/02/05 追記 ---

熱膨張の計算をしているので初期温度は何℃か?というのが問題になります。
元の例題では、20℃から120℃に温度上昇させています。
PrePoMax の Material Library 登録データーの Thermal expansion/Zero temperature が 20℃だったため、初期温度も20℃になるだろうと思っていました。しかし、どうやらそうではなくて初期温度は0℃になってるようです。 別に試してみた非定常伝熱計算での挙動から、そう推測してます。オブジェクトブラウザーのツリーにあるInitial conditionsで初期温度を設定してみましたが計算条件に反映されません

バイメタル

解析内容

使用ファイル
5_0_BiMetal_Upper.stp と 5_0_BiMetal_Lower.stl (注2)
サイズ:R=40mm t=3mm、 R=50mm t=3mm
単位
mm-ton
材料物性値:Upper
Aluminum  (注3)
縦弾性係数:E=70600 [MPa]
ポアソン比:ν=0.343
材料物性値:Lower
Steel  (注)
縦弾性係数:E=212000 [MPa]
ポアソン比:ν=0.293

荷重状態
元の練習問題では物体全体を均一温度120℃にする設定をしています。ここでは表面温度を120℃とします。定常計算であり表面温度などの熱的境界条件を設定しない面は断熱条件になるため、結果的に物体全体が均一な温度120℃になります。対称性を考慮した1/4のモデルでの計算です。
 fixX(面):Dx = 0 [mm] XZ平面でカットした断面
 fixY(面):Dy = 0 [mm] YZ平面でカットした断面
 Surface-1(図に示す4つの面):T = 120 [℃]
 CtPoint(点):Dx = Dy = Dz=0 [mm] Lower部品の下の面の中心


  • (注2)
  • 元の例題の形状セットには含まれていないため作成が必要でした。
    作成したファイルをこちらに置きました。
  • (注3)
  • この値は元の例題での値です。ここでは PrePoMax の Material Library に登録済の近い値の材料を使います。

≪形状の読込≫
PrePoMaxの新規起動または新規作業開始をしてください。
unit system:mm,ton,s,℃ に設定してください。
5_0_BiMetal_Upper.stpをインポートしてください。
続いて、5_0_BiMetal_Lower.stpをインポートしてください。

ツリーに表示される名前の変更ができますが、ここでは
・Upper部品のインデックス = 1
・Lower部品のインデックス = 2
という規則で設定していきます。

≪メッシュ作成≫
Solid_part-1にCreate Meshを実行してメッシュを生成してください。
Solid_part-2にCreate Meshを実行してメッシュを生成してください。
※ 番号順に操作してください。

≪材料物性値の設定≫
Material Library から材料物性値を呼び出してください。
 Steel:S185
 Aluminum:1060_Alloy

≪セクションの設定≫
セクションの設定をしてください。
 Type = Solid section
 Properties
 Name = Solid_selection-1 (デフォルトのまま)
 Material = 1060_Alloy
 Region type = Part name
 Part = Solid_part-1

 Type = Solid selection
 Properties
 Name = Solid_selection-2 (デフォルトのまま)
 Material = S185
 Region type = Part name
 Part = Solid_part-2

≪面/点の命名≫
面に名前を付けてください。
 FE ModelタブのツリーのMeshのSurfaces の右クリックメニューのCreate。
 メニューバーの場合はModel→Surfce→Create
複数の面を選択するときは、Shittキーを押しながら左クリックすると面を追加できます。CTRLキーを押しながら左クリックすると選択済みの面をセットから外すことができます。

作成する面は、既に説明済の fixX、fixY、Surface-1 に加えて、contUpper(Upper部品の下側の面)、contLower(Lower部品の上側の面)です。

Upper部品の下側の面を選択するときにはLower部品を非表示にしたほうがやりやすいでしょう。非表示と表示を切り替える方法は下記です。

 Properties
 Name = 各々
 Surface type = Element
 Region type = Selection

点に名前を付けてください。
 FE ModelタブのツリーのMesh の Node sets の右クリックメニューのCreate。
 メニューバーの場合はModel → Node sets → Create

 Properties
 Name = CtPoint
 点の数、重心位置、バウンディングボックス中心は自動的に計算されます。

≪拘束面(相互作用)の設定≫
相互作用の設定をしてください。
 FE ModelタブのツリーのContraints の右クリックメニューのCreate。
 メニューバーの場合はInteraction→Constrant→Create

 Type = Tie
 Data
  Name = Tie-1 (デフォルトのまま)
  Position tolerance = Default (デフォルトのまま)
  Adjust = Yes (デフォルトのまま)
 Properties
  Master region type = Surface name
  Master surface = contLower
  Slave region type = Surface name
  Slave surface = contUpper
 「Ok」を左クリックしてください。

≪解析設定≫
解析ステップを新規作成してください。
 FE ModelタブのツリーのStepsの右クリックメニューのCreate。
 メニューバーの場合はStep→Step→Createです。

 Type = Coupled temperature-displacement step
 Data
 Name = Step-1 (デフォルトのまま)
 Solver = Default (デフォルトのまま)
 Nlgeom = Off (デフォルトのまま)
 Stedy state = On (デフォルトのまま)
 Incrementation = Default (デフォルトのまま)

BCs(Boundary Conditions;境界条件)を作成してください。
 FE ModelタブのツリーのStep-1/BCsの右クリックメニューのCreate。
 メニューバーの場合はStep→BC→Createです。

≪固定点≫
 Type = Fixed
 Properties
 Name = Fixed-1 (デフォルトのまま)
 Region type = Node set name
 Surfaces = CtPoint

≪対象面:fixX≫
 Type = Displacement/Rotation
 Properties
 Name = Displacement_rotation-1 (デフォルトのまま)
 Region type = Surface name
 Surfaces = fixX
 U1 = 0 mm
 U2 = Unconstrained
 U3 = Unconstrained
 UR1 = Unconstrained
 UR2 = Unconstrained
 UR3 = Unconstrained

≪対象面:fixY≫
 Type = Displacement/Rotation
 Properties
 Name = Displacement_rotation-2 (デフォルトのまま)
 Region type = Surface name
 Surfaces = fixY
 U1 = Unconstrained
 U2 = 0 mm
 U3 = Unconstrained
 UR1 = Unconstrained
 UR2 = Unconstrained
 UR3 = Unconstrained

≪表面温度≫
 Type = Temperature
 Properties
 Name = Temperature-1 (デフォルトのまま)
 Region type = Surface name
 Surfaces = Surface-1
 Magnitude = 120 ℃

≪ファイル保存≫
いったんファイルを保存してください。名前は任意ですが、ここでは05_00フォルダーの05_00_BiMetal.pmxファイルとしました。

≪ソルバー計算≫
ソルバー計算を実施してください。

≪結果の表示≫
表示例を示します。
変形量をデフォルメして表示しています。
 メニューバーで、Tools → Settings を左クリックしてください。
 Data
   Post-proccessing
 Deformation
   Defomation scale factor = Automatic

 ・Automatic は、変形量が大きい時は拡大し小さい時は縮小します。
 ・User difined は、スケールファクターの値を指定できます。
 ・True scale は、デフォルメをしません。(スケールファクターの値=1)

初期温度の設定方法:ただし未完成

 初期温度は0℃になってしまう。オブジェクトブラウザーのツリーにあるツリーにある Initial conditions  の設定は機能しないようです。ここでは、初期温度を設定する方法について調べた結果を記載します。

最初に行ったバーのモデルを使います。以前に保存してある 05_00_a.pmx または 05_00_b.pmx ファイルを読み込んで、05_01_1.pmxという名前で保存してください。
保存していない人は解析設定の手前まで実施してください。既存のファイルを利用する場合は、オブジェクトブラウザーのツリーにあるツリーにあるSteps/Step-1を削除してください。

熱連成計算について

初期温度の設定を行う前に熱連成機能の説明をします。

解析設定(Step)のところで、熱に関係しそうな選択肢として以下の3つが出てきました。
a) Heat transfer step
b) Unoupled temperature-displacement step
c) Coupled temperature-displacement step

a)は熱だけの計算で、b)とc)は熱連成計算です。

熱連成計算の方法を図示すると下の図になります。下の図にはb)とc)の違いも説明してあります。参考にさせていただいた元の例題は弱連成で行っていました。元の例題が定常状態を求める計算のため、弱連成でも強連成でも結果は変わりません。

図は数値計算の基礎の知識を持っている人ならば理解できるように書いてあります。この図で判らない人は数値計算の入門書を読んでください。Uncoupled と Coupled の細かい違いを知りたい人はマニュアルを読んでください


解析ステップを新規作成してください。
 Type = Heat transfer step
 Data
 Name = Step-1 (デフォルトのまま)
 Solver = Default (デフォルトのまま)
 Stedy state = On (デフォルトのまま)
 Incrementation = Default (デフォルトのまま)

BCs(Boundary Conditions;境界条件)を作成してください。
≪表面温度≫
 Type = Temperature
 Properties
 Name = Temperature-1 (デフォルトのまま)
 Region type = Surface name
 Surfaces = Surface-1
 Temperature magnitude
 Magnitude = 20 ℃ 

解析ステップを新規作成してください。
 Type = Coupled temperature-displacement step
 Data
 Name = Step-1 (デフォルトのまま)
 Solver = Default (デフォルトのまま)
 Nlgeom = Off (デフォルトのまま)
 Stedy state = On (デフォルトのまま)
 Incrementation = Default (デフォルトのまま)

ここで、Type = Static step を選択するとBCsで温度が設定できません。したがってPrePomaxでは弱連成は出来ないようです。

BCs(Boundary Conditions;境界条件)を設定してください。
≪表面温度≫ Step-1から引き継がれています。
 Type = Temperature
 Properties
 Name = Temperature-1
 Region type = Surface name
 Surfaces = Surface-1
 Magnitude = 120 ℃ (修正)

≪fix0面とfix100面≫ 新規作成
既に命名していますが別々に指定すると煩雑なのでグラフィックパネルで選択する方法にしました。YZ平面内では自由に動くようにします。
 Type = Displacement/Rotation
 Properties
 Name = Displacement_rotation-1 (デフォルトのまま)
 Region type = Selection
 U1 = 0 mm
 U2 = Unconstrained
 U3 = Unconstrained
 UR1 = Unconstrained
 UR2 = Unconstrained
 UR3 = Unconstrained

≪エッジ≫ 新規作成
剛体移動を防止するためのBCです。
 Type = Displacement/Rotation
 Properties
 Name = Displacement_rotation-2 (デフォルトのまま)
 Region type = Selection
 U1 = Unconstrained
 U2 = 0 mm
 U3 = Unconstrained
 UR1 = Unconstrained
 UR2 = Unconstrained
 UR3 = Unconstrained

 Type = Displacement/Rotation
 Properties
 Name = Displacement_rotation-3 (デフォルトのまま)
 Region type = Selection
 U1 = Unconstrained
 U2 = Unconstrained
 U3 = 0 mm
 UR1 = Unconstrained
 UR2 = Unconstrained
 UR3 = Unconstrained

≪ソルバー計算≫
ソルバー計算を実施してください。

≪結果の表示≫
Step,Increment
 1,0:初期状態
 1,1:Step-1の計算が終了した状態
 2,1:Step-2の計算が終了した状態

Step,Increment=1,1で温度が20℃になっているのを確認してください。応力は表示されません(グレーアウトになります)。
Step,Increment=2,1で温度が120℃になっているのを確認してください。ミーゼス応力は196.7[MPa]でした。

Material Library に登録済の材料を使ったため、物性値を調べてみると
ヤング率:69000 [MPa]
線膨張係数:24.0e-6[ 1/℃]
でした。
温度差:120 - 20 =100 [℃]
バーの初期長さ:100 [mm]
自由膨張した場合の伸び:24.0e-6 × 100 × 100 = 24.0e-2 [mm]
伸びた分だけ圧縮して、もとの長さに戻していることになるので
ひずみ:24.0e-2 ÷ (100 + 24.0e-2) = 2.394253e-3
応力:69000 × 2.394253e-3 = 165.2035 [MPa]

CAE計算との差の原因は何か不明です?
CAE計算で、ポアソン比を 0.33 から 0 にしても、メッシュの最大サイズを 2.5mm から 1mm にしても、2次要素から線形要素にしてもミーゼス応力は196.7[MPa]でした。

どうやら、設定方法が間違っているようです。(2022/02/05 22:25)
Step-1の温度を変えてもStep-2の応力が変化しません。
温度差が120℃だと、応力:69000 × 2.871729e-3 = 198.149 [MPa]で、CAE結果との差は1%未満です。

2段階計算のバグについて

自分の設定方法が間違っていたと思いましたが、PrePoMaxの“仕様(笑)”です。
計算するときに必ず初期化をするようになっています。Initial Condition で初期温度が設定できるにも関わらず、それが反映されません。また2段階計算をしても前のステップの結果が反映されません。オブジェクトブラウザーのツリーで設定できるだけに、トホホな感じです。
PrePoMaxは、*.iniファイルを修正するために「Edit CalculiX Keywords」機能を持っていますが、保護が掛かっている部分で変更できませんでした。つまりPrepoMaxのGUI操作では絶対にできないことが判りました。
(2022/02/05 22:25)