1.1 固相反応の基礎
固相合成は、高温下で固体反応物同士を直接反応させる手法です。主要なメカニズムは、相境界を横切る固相拡散です。
📐 拡散律速の速度論:
$$x^2 = kt$$
ここで $x$ は反応層の厚さ、$k$ は速度定数、$t$ は時間です(放物線成長則)。
💻 コード例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 solidstate_reaction(time, D, T, Q=200000):
"""固相反応の厚さをモデル化する"""
R = 8.314
k = D * np.exp(-Q/(R*T))
thickness = np.sqrt(k * time)
return thickness
time = np.linspace(0, 10, 100)
temps = [1000, 1200, 1400]
plt.figure(figsize=(10, 6))
for T in temps:
x = solidstate_reaction(time, D=1e-10, T=T+273)
plt.plot(time, x*1e6, linewidth=2, label=f'{T}°C')
plt.xlabel('Time (hours)')
plt.ylabel('Reaction Layer Thickness (μm)')
plt.title('Solid-State Reaction Kinetics')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()1.2 粉末冶金プロセス
粉末冶金は、金属粉末を圧縮成形と焼結を経て部品にする手法です。
💻 コード例2: 焼結による緻密化
def sintering_densification(time, T, rho_0=0.60, Q=300000):
"""焼結中の密度上昇をモデル化する"""
R, A = 8.314, 1e8
k = A * np.exp(-Q/(R*T))
rho = rho_0 + (1 - rho_0) * (1 - np.exp(-k*time))
return rho
time = np.linspace(0, 5, 100)
rho = sintering_densification(time, T=1400+273)
plt.figure(figsize=(10, 6))
plt.plot(time, rho*100, 'b-', linewidth=2)
plt.xlabel('Sintering Time (hours)')
plt.ylabel('Relative Density (%)')
plt.title('Densification During Sintering')
plt.grid(True, alpha=0.3)
plt.show()1.3 メカノケミカル合成
高エネルギーボールミリングは、機械的エネルギーを通じて化学反応を誘起します。
💻 コード例3: ボールミリングのシミュレーション
def ball_milling_model(time, energy_input=100):
"""粒径の減少と反応をモデル化する"""
particle_size = 10 * np.exp(-0.1 * time * energy_input/100)
conversion = 1 - np.exp(-0.05 * time * energy_input/100)
return particle_size, conversion
time = np.linspace(0, 20, 100)
size, conv = ball_milling_model(time)
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 5))
ax1.plot(time, size, 'b-', linewidth=2)
ax1.set_xlabel('Milling Time (hours)')
ax1.set_ylabel('Particle Size (μm)')
ax2.plot(time, conv*100, 'r-', linewidth=2)
ax2.set_xlabel('Milling Time (hours)')
ax2.set_ylabel('Conversion (%)')
plt.show()1.4 セラミックスプロセッシング
酸化物粉末から仮焼と焼結を経てセラミックスを合成します。
💻 コード例4: 相形成温度
def phase_formation_temperature(composition, heating_rate=5):
"""相形成温度を予測する"""
# 簡略化モデル
T_form = 800 + 200 * composition + 50 * heating_rate
return T_form
compositions = np.linspace(0, 1, 50)
T = [phase_formation_temperature(x) for x in compositions]
plt.figure(figsize=(10, 6))
plt.plot(compositions, T, 'b-', linewidth=2)
plt.xlabel('Composition (x in A_xB_{1-x}O)')
plt.ylabel('Formation Temperature (°C)')
plt.grid(True, alpha=0.3)
plt.show()1.5 反応雰囲気の制御
雰囲気の組成は、酸化・還元の制御において決定的に重要です。
💻 コード例5: 酸素分圧
def oxygen_partial_pressure(T, composition='air'):
"""酸素分圧を計算する"""
if composition == 'air':
pO2 = 0.21
elif composition == 'reducing':
pO2 = 1e-15 * np.exp(-100000/(8.314*T))
return pO2
temps = np.linspace(800, 1400, 100)
pO2_air = [oxygen_partial_pressure(T+273, 'air') for T in temps]
pO2_red = [oxygen_partial_pressure(T+273, 'reducing') for T in temps]
plt.figure(figsize=(10, 6))
plt.semilogy(temps, pO2_air, label='Air')
plt.semilogy(temps, pO2_red, label='Reducing')
plt.xlabel('Temperature (°C)')
plt.ylabel('Oxygen Partial Pressure (atm)')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()1.6 結晶粒成長の制御
結晶粒径の制御は、機械的特性にとって決定的に重要です。
💻 コード例6: 結晶粒成長モデル
def grain_growth(time, T, D_0=1, Q=400000, n=2):
"""焼結中の結晶粒成長をモデル化する"""
R = 8.314
k = D_0 * np.exp(-Q/(R*T))
D = (D_0**n + k*time)**(1/n)
return D
time = np.linspace(0, 10, 100)
D = grain_growth(time, T=1500+273)
plt.figure(figsize=(10, 6))
plt.plot(time, D, 'b-', linewidth=2)
plt.xlabel('Time (hours)')
plt.ylabel('Grain Size (μm)')
plt.title('Grain Growth During Sintering')
plt.grid(True, alpha=0.3)
plt.show()1.7 応用
固相合成は、構造用セラミックス、磁性材料、超伝導体に応用されます。
💻 コード例7: プロセス最適化
def optimize_sintering(target_density=0.95):
"""目標密度に対する温度と時間を最適化する"""
temps = np.linspace(1200, 1600, 50)
times = []
for T in temps:
# 目標密度に到達する時間を求める
t = np.linspace(0, 20, 1000)
rho = sintering_densification(t, T+273)
idx = np.argmin(np.abs(rho - target_density))
times.append(t[idx])
return temps, times
temps, times = optimize_sintering()
plt.figure(figsize=(10, 6))
plt.plot(temps, times, 'b-', linewidth=2)
plt.xlabel('Temperature (°C)')
plt.ylabel('Time to 95% Density (hours)')
plt.grid(True, alpha=0.3)
plt.show()📝 演習問題
✏️ 演習問題
- D=1e-12 m²/s のとき、1200°Cで5時間後の反応層の厚さを計算してください。
- 1300°Cで90%密度に到達する焼結時間を予測してください。
- 10時間のボールミリング後の粒径をモデル化してください。
- 1000°Cの還元雰囲気における酸素分圧を求めてください。
- 結晶粒成長を最小に抑えつつ95%密度を得る焼結プロファイルを最適化してください。
まとめ
- 固相合成は、高温での拡散律速反応により進行する
- 粉末冶金: 金属粉末の圧縮成形と焼結
- メカノケミカル合成: 機械的エネルギーによって誘起される反応
- セラミックスプロセッシング: 酸化物粉末の仮焼と焼結
- 雰囲気の制御は酸化状態にとって決定的に重要
- 最適な特性のためには結晶粒成長を制御する必要がある
- 応用: セラミックス、磁石、超伝導体