フックの法則は材料力学の最も基本的な構成則(材料の応力-ひずみ関係)です。弾性域において応力とひずみが比例するという法則は、構造設計のあらゆる計算の出発点となります。
本記事では、1次元のフックの法則から始め、ヤング率・ポアソン比・剛性率・体積弾性率の定義と相互関係、そして3次元の一般化フックの法則(テンソル形式)まで解説します。
本記事の内容
- 1次元のフックの法則
- 弾性定数(ヤング率、ポアソン比、剛性率、体積弾性率)
- 弾性定数間の関係
- 一般化フックの法則(3次元)
- Pythonでの計算と可視化
前提知識
1次元のフックの法則
$$ \begin{equation} \sigma = E\varepsilon \end{equation} $$
$E$: ヤング率(Young’s modulus)[Pa]、$\sigma$: 垂直応力 [Pa]、$\varepsilon$: 線ひずみ [無次元]。
棒の伸びに適用すると:
$$ \Delta L = \frac{FL}{EA} $$
$F$: 力、$L$: 元の長さ、$A$: 断面積。$EA$ を 軸剛性 と呼びます。
弾性定数
ヤング率 $E$
引張(圧縮)における応力とひずみの比。応力-ひずみ曲線の弾性域の傾き。
ポアソン比 $\nu$
$$ \nu = -\frac{\varepsilon_{\text{横}}}{\varepsilon_{\text{縦}}} $$
理論的な範囲: $-1 \leq \nu \leq 0.5$。等方性材料では $0 \leq \nu \leq 0.5$。
剛性率(せん断弾性係数)$G$
$$ \tau = G\gamma $$
$\tau$: せん断応力、$\gamma$: せん断ひずみ。
体積弾性率 $K$
$$ p = -K\frac{\Delta V}{V} $$
等方圧力に対する体積変化の抵抗。
弾性定数間の関係
等方性弾性体では、4つの弾性定数のうち 独立なのは2つだけ です:
$$ \begin{align} G &= \frac{E}{2(1 + \nu)} \\ K &= \frac{E}{3(1 – 2\nu)} \\ E &= \frac{9KG}{3K + G} \end{align} $$
導出($G$ と $E, \nu$ の関係):
純せん断状態を主応力に変換すると、45°回転した座標系で引張と圧縮の組み合わせになります。この変換から $G = E/(2(1+\nu))$ が導かれます。
一般化フックの法則(3次元)
テンソル形式
$$ \begin{equation} \sigma_{ij} = C_{ijkl} \varepsilon_{kl} \end{equation} $$
$C_{ijkl}$: 弾性テンソル(4階テンソル、81成分)。対称性から独立な成分は最大21個、等方性材料では2個($E$ と $\nu$、または $\lambda$ と $\mu$)。
等方性材料のフックの法則
$$ \begin{equation} \sigma_{ij} = \lambda \varepsilon_{kk} \delta_{ij} + 2\mu \varepsilon_{ij} \end{equation} $$
$\lambda$: ラメの第1パラメータ、$\mu = G$: ラメの第2パラメータ(= 剛性率)。
工学的な記法(ボイト記法)
$$ \begin{pmatrix} \sigma_{xx} \\ \sigma_{yy} \\ \sigma_{zz} \\ \tau_{yz} \\ \tau_{xz} \\ \tau_{xy} \end{pmatrix} = \frac{E}{(1+\nu)(1-2\nu)} \begin{pmatrix} 1-\nu & \nu & \nu & 0 & 0 & 0 \\ \nu & 1-\nu & \nu & 0 & 0 & 0 \\ \nu & \nu & 1-\nu & 0 & 0 & 0 \\ 0 & 0 & 0 & \frac{1-2\nu}{2} & 0 & 0 \\ 0 & 0 & 0 & 0 & \frac{1-2\nu}{2} & 0 \\ 0 & 0 & 0 & 0 & 0 & \frac{1-2\nu}{2} \end{pmatrix} \begin{pmatrix} \varepsilon_{xx} \\ \varepsilon_{yy} \\ \varepsilon_{zz} \\ \gamma_{yz} \\ \gamma_{xz} \\ \gamma_{xy} \end{pmatrix} $$
逆関係(コンプライアンス形式):
$$ \begin{pmatrix} \varepsilon_{xx} \\ \varepsilon_{yy} \\ \varepsilon_{zz} \end{pmatrix} = \frac{1}{E} \begin{pmatrix} 1 & -\nu & -\nu \\ -\nu & 1 & -\nu \\ -\nu & -\nu & 1 \end{pmatrix} \begin{pmatrix} \sigma_{xx} \\ \sigma_{yy} \\ \sigma_{zz} \end{pmatrix} $$
具体例
例: 鋼の丸棒の引張
直径 $d = 10$ mm、長さ $L = 1$ m の鋼棒($E = 200$ GPa、$\nu = 0.3$)に $F = 10$ kN の引張力。
$$ \sigma = \frac{F}{A} = \frac{10000}{\pi(0.005)^2} = 127.3 \text{ MPa} $$
$$ \varepsilon = \frac{\sigma}{E} = \frac{127.3}{200000} = 6.37 \times 10^{-4} $$
$$ \Delta L = \varepsilon L = 0.637 \text{ mm} $$
横方向の収縮: $\Delta d = -\nu \varepsilon d = -0.3 \times 6.37 \times 10^{-4} \times 10 = -1.91 \times 10^{-3}$ mm
Pythonでの実装
import numpy as np
import matplotlib.pyplot as plt
# 弾性定数の関係
E = 200e9 # ヤング率 [Pa](鋼)
nu = 0.3 # ポアソン比
G = E / (2 * (1 + nu))
K = E / (3 * (1 - 2 * nu))
lam = E * nu / ((1 + nu) * (1 - 2 * nu)) # ラメの第1パラメータ
print(f"ヤング率 E = {E/1e9:.0f} GPa")
print(f"ポアソン比 ν = {nu}")
print(f"剛性率 G = {G/1e9:.1f} GPa")
print(f"体積弾性率 K = {K/1e9:.1f} GPa")
print(f"ラメのλ = {lam/1e9:.1f} GPa")
# 各種材料の弾性定数比較
materials = {
'鋼': (200, 0.30),
'アルミ合金': (70, 0.33),
'チタン合金': (110, 0.34),
'銅': (120, 0.34),
'ゴム': (0.01, 0.49),
'コンクリート': (30, 0.20),
}
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
names = list(materials.keys())
E_vals = [v[0] for v in materials.values()]
nu_vals = [v[1] for v in materials.values()]
G_vals = [E/(2*(1+nu)) for E, nu in materials.values()]
x = np.arange(len(names))
axes[0].bar(x, E_vals, color='steelblue', alpha=0.8)
axes[0].set_xticks(x)
axes[0].set_xticklabels(names, fontsize=11)
axes[0].set_ylabel('ヤング率 E [GPa]', fontsize=12)
axes[0].set_title('各種材料のヤング率', fontsize=14)
axes[0].grid(True, alpha=0.3, axis='y')
axes[1].bar(x, nu_vals, color='coral', alpha=0.8)
axes[1].set_xticks(x)
axes[1].set_xticklabels(names, fontsize=11)
axes[1].set_ylabel('ポアソン比 ν', fontsize=12)
axes[1].set_title('各種材料のポアソン比', fontsize=14)
axes[1].grid(True, alpha=0.3, axis='y')
axes[1].set_ylim(0, 0.55)
plt.tight_layout()
plt.show()
まとめ
- フックの法則: $\sigma = E\varepsilon$(弾性域での応力-ひずみの線形関係)
- 4つの弾性定数: ヤング率 $E$、ポアソン比 $\nu$、剛性率 $G$、体積弾性率 $K$
- 等方性材料では独立な定数は2つだけ: $G = E/(2(1+\nu))$
- 一般化フックの法則: $\sigma_{ij} = \lambda\varepsilon_{kk}\delta_{ij} + 2\mu\varepsilon_{ij}$
次のステップとして、以下の記事も参考にしてください。