3.1 クリープの基礎
クリープとは、高温下で一定応力を受けたときに生じる時間依存の塑性変形です。タービンや原子炉などの高温用途において極めて重要となります。
📐 クリープひずみ速度: $$\dot{\epsilon} = A\sigma^n \exp\left(-\frac{Q}{RT}\right)$$
ここで $A$ は定数、$n$ は応力指数、$Q$ は活性化エネルギーです。
💻 コード例1: クリープ曲線の生成
# 必要環境:
# - Python 3.9+
# - matplotlib>=3.7.0
# - numpy>=1.24.0, <2.0.0
import numpy as np
import matplotlib.pyplot as plt
def creep_curve(time, stress, temperature, Q=200000, A=1e-15, n=5):
"""クリープひずみ-時間曲線を生成する"""
R = 8.314
T = temperature + 273
# 第1期クリープ(遷移クリープ)
t1 = time[time <= 100]
eps1 = 0.01 * np.sqrt(t1)
# 第2期クリープ(定常状態)
strain_rate_ss = A * stress**n * np.exp(-Q/(R*T))
t2 = time[(time > 100) & (time <= 900)]
eps2 = eps1[-1] + strain_rate_ss * (t2 - 100)
# 第3期クリープ(加速クリープ)
t3 = time[time > 900]
eps3 = eps2[-1] + strain_rate_ss * (t3 - 900) * np.exp((t3-900)/100)
strain = np.concatenate([eps1, eps2, eps3])
return strain
time = np.linspace(0, 1000, 500)
strain = creep_curve(time, stress=100, temperature=600)
plt.figure(figsize=(10, 6))
plt.plot(time, strain*100, 'b-', linewidth=2)
plt.axvline(100, color='r', linestyle='--', alpha=0.5, label='第1期→第2期')
plt.axvline(900, color='g', linestyle='--', alpha=0.5, label='第2期→第3期')
plt.xlabel('時間 (hours)')
plt.ylabel('クリープひずみ (%)')
plt.title('クリープ曲線: 3つの段階')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()3.2 ラーソン・ミラー パラメータ
ラーソン・ミラー パラメータを用いると、短時間のクリープデータから長時間の性能を外挿できます。
📐 ラーソン・ミラー パラメータ: $$P_{LM} = T(C + \log t_r)$$
ここで $T$ は温度 (K)、$t_r$ は破断時間 (hours)、$C$ ≈ 20 です。
💻 コード例2: ラーソン・ミラー解析
def larson_miller_parameter(temperature, rupture_time, C=20):
"""ラーソン・ミラー パラメータを計算する"""
T = temperature + 273 # Kに変換
P_LM = T * (C + np.log10(rupture_time))
return P_LM
def predict_life(stress, P_LM, temperature, C=20):
"""P_LMから破断時間を予測する"""
T = temperature + 273
log_t = (P_LM / T) - C
t_r = 10**log_t
return t_r
# 例
T1, t1 = 650, 1000
P_LM = larson_miller_parameter(T1, t1)
t2_predicted = predict_life(stress=100, P_LM=P_LM, temperature=600)
print(f"ラーソン・ミラー パラメータ: {P_LM:.0f}")
print(f"600°Cでの予測寿命: {t2_predicted:.1f} hours")3.3 応力緩和
応力緩和とは、一定ひずみ下で応力が減少する現象であり、クリープとは逆の関係にあります。
📐 応力緩和: $$\sigma(t) = \sigma_0 \exp\left(-\frac{t}{\tau}\right)$$
ここで $\tau$ は緩和時定数です。
💻 コード例3: 応力緩和のモデル化
def stress_relaxation(time, sigma_0, tau):
"""応力緩和をモデル化する"""
return sigma_0 * np.exp(-time / tau)
time = np.linspace(0, 500, 200)
sigma = stress_relaxation(time, sigma_0=300, tau=100)
plt.figure(figsize=(10, 6))
plt.plot(time, sigma, 'b-', linewidth=2)
plt.xlabel('時間 (hours)')
plt.ylabel('応力 (MPa)')
plt.title('応力緩和曲線')
plt.grid(True, alpha=0.3)
plt.show()3.4 クリープ試験規格
ASTM E139は、クリープ試験およびクリープ破断試験の手順を規定しています。
💻 コード例4: クリープ試験の解析
class CreepTest:
"""クリープ試験データの解析"""
def minimum_creep_rate(self, time, strain):
"""最小(定常状態)クリープ速度を求める"""
strain_rate = np.gradient(strain, time)
min_idx = np.argmin(strain_rate[100:]) + 100
return strain_rate[min_idx]
def time_to_rupture(self, time, strain, failure_strain=0.20):
"""破断までの時間を推定する"""
idx = np.argmin(np.abs(strain - failure_strain))
return time[idx]
test = CreepTest()
time = np.linspace(0, 1000, 500)
strain = creep_curve(time, 100, 600)
mcr = test.minimum_creep_rate(time, strain)
ttr = test.time_to_rupture(time, strain)
print(f"最小クリープ速度: {mcr:.2e} /hour")
print(f"破断までの時間: {ttr:.1f} hours")3.5 温度と応力の影響
クリープ速度は、温度に対しては指数関数的に、応力に対してはべき乗則に従って増加します。
💻 コード例5: パラメトリックスタディ
temperatures = [500, 550, 600, 650]
stresses = [50, 75, 100, 125]
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 5))
# 温度の影響
for T in temperatures:
strain = creep_curve(time, stress=100, temperature=T)
ax1.plot(time, strain*100, linewidth=2, label=f'{T}°C')
ax1.set_xlabel('時間 (hours)')
ax1.set_ylabel('クリープひずみ (%)')
ax1.set_title('クリープに対する温度の影響')
ax1.legend()
ax1.grid(True, alpha=0.3)
# 応力の影響
for sigma in stresses:
strain = creep_curve(time, stress=sigma, temperature=600)
ax2.plot(time, strain*100, linewidth=2, label=f'{sigma} MPa')
ax2.set_xlabel('時間 (hours)')
ax2.set_ylabel('クリープひずみ (%)')
ax2.set_title('クリープに対する応力の影響')
ax2.legend()
ax2.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()3.6 クリープ損傷と寿命予測
クリープ損傷は時間とともに蓄積し、最終的に破壊に至ります。損傷モデルは残存寿命を予測します。
💻 コード例6: 損傷の蓄積
def monkman_grant(time_to_rupture, min_creep_rate, m=1, C=0.05):
"""モンクマン・グラント関係"""
# MCR * t_r^m = C
predicted_tr = (C / min_creep_rate)**(1/m)
return predicted_tr
mcr = 1e-5
predicted_life = monkman_grant(None, mcr)
print(f"予測破断寿命: {predicted_life:.1f} hours")3.7 応用と設計
クリープの考慮は、ガスタービン、原子炉、高温配管において極めて重要です。
💻 コード例7: 設計許容応力
def design_allowable_stress(temperature, design_life=100000):
"""設計寿命に対する許容応力を計算する"""
# 簡略化したマスターカーブを使用
T = temperature + 273
sigma_allow = 500 * np.exp(-0.003 * temperature) * (design_life / 100000)**(-0.15)
return sigma_allow
temps = np.linspace(400, 700, 50)
sigma_allow = [design_allowable_stress(T) for T in temps]
plt.figure(figsize=(10, 6))
plt.plot(temps, sigma_allow, 'b-', linewidth=2)
plt.xlabel('温度 (°C)')
plt.ylabel('許容応力 (MPa)')
plt.title('設計許容応力 vs 温度(10万時間寿命)')
plt.grid(True, alpha=0.3)
plt.show()📝 章末演習
✏️ 演習問題
- 650°Cで5000時間後のクリープ破断に対するラーソン・ミラー パラメータを計算しなさい。
- 演習1で求めたP_LMを用いて、600°Cでの破断寿命を予測しなさい。
- クリープ曲線を解析し、最小クリープ速度と5%ひずみに達するまでの時間を求めなさい。
- アレニウス式を用いて、同一応力下での550°Cと650°Cのクリープ速度を比較しなさい。
- 600°Cで10年間の使用寿命に対する設計許容応力を求めなさい。
まとめ
- クリープは高温下で生じる時間依存の塑性変形である
- 3つの段階: 第1期(速度減少)、第2期(速度一定)、第3期(速度加速)
- クリープ速度: $\dot{\epsilon} = A\sigma^n \exp(-Q/RT)$
- ラーソン・ミラー パラメータにより短時間データから寿命を予測できる
- 応力緩和は一定ひずみ下での応力減少である
- タービン、原子炉、配管などの高温用途で極めて重要である
- 長期的な構造健全性を確保するため、設計にはクリープの考慮が不可欠である