フックの法則と弾性係数の理論を完全解説

フックの法則は材料力学の最も基本的な構成則(材料の応力-ひずみ関係)です。弾性域において応力とひずみが比例するという法則は、構造設計のあらゆる計算の出発点となります。

本記事では、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}$

次のステップとして、以下の記事も参考にしてください。