せん断応力の分布と計算

梁に横荷重が作用すると、断面にはせん断力が生じます。このせん断力に対応して、断面内部にはせん断応力 $\tau$ が分布します。曲げ応力 $\sigma = My/I$ が断面の上端・下端で最大となるのに対し、せん断応力は中立軸付近で最大となるのが特徴です。

本記事の内容

  • 断面一次モーメント $Q$ の定義と計算
  • せん断応力公式 $\tau = VQ/(Ib)$ の導出
  • 矩形断面での放物線分布
  • 円形断面でのせん断応力
  • Pythonでの応力分布の可視化

前提知識

この記事を読む前に、以下の記事を読んでおくと理解が深まります。

断面一次モーメント $Q$ の定義

せん断応力公式を導出する前に、断面一次モーメント(first moment of area)$Q$ を定義します。

中立軸から距離 $y$ の位置で断面を水平に切ったとき、切断面より外側(中立軸から遠い側)の部分の面積を $A’$ とします。

$$ \boxed{Q(y) = \int_{A’} y \, dA = A’ \bar{y}’} $$

ここで $\bar{y}’$ は面積 $A’$ の図心から中立軸までの距離です。$Q$ は中立軸で最大、断面の上端・下端でゼロになります。

せん断応力公式の導出

梁の微小要素 $dx$ を考えます。左断面のせん断力を $V$、曲げモーメントを $M$、右断面ではそれぞれ $V + dV$、$M + dM$ とします。

中立軸から距離 $y$ の位置で切断し、上側部分(面積 $A’$)の水平方向の力の釣り合いを考えます。

左断面の曲げ応力による合力:

$$ F_{\text{left}} = \int_{A’} \frac{M y}{I} \, dA = \frac{M}{I} \int_{A’} y \, dA = \frac{MQ}{I} $$

右断面の曲げ応力による合力:

$$ F_{\text{right}} = \frac{(M + dM)Q}{I} $$

この差を埋めるのが水平面に作用するせん断力 $\tau \cdot b \cdot dx$ です。水平方向の釣り合いより:

$$ \frac{(M + dM)Q}{I} – \frac{MQ}{I} = \tau \cdot b \cdot dx $$

整理すると:

$$ \frac{dM \cdot Q}{I} = \tau \cdot b \cdot dx $$

$$ \tau = \frac{Q}{Ib} \cdot \frac{dM}{dx} $$

梁の平衡方程式より $dM/dx = V$ を代入すると:

$$ \boxed{\tau = \frac{VQ}{Ib}} $$

記号 意味 単位
$\tau$ せん断応力 Pa
$V$ せん断力 N
$Q$ 切断位置より外側の断面一次モーメント
$I$ 断面二次モーメント(中立軸まわり) m⁴
$b$ 切断位置での断面の幅 m

矩形断面でのせん断応力分布

幅 $b$、高さ $h$ の矩形断面を考えます。中立軸から距離 $y$ で切断した上側部分の $Q$ は:

$$ \begin{align} Q(y) &= b\left(\frac{h}{2} – y\right) \cdot \frac{1}{2}\left(y + \frac{h}{2}\right) \\ &= \frac{b}{2}\left(\frac{h^2}{4} – y^2\right) \end{align} $$

$I = bh^3/12$ を代入すると:

$$ \tau(y) = \frac{V}{2I}\left(\frac{h^2}{4} – y^2\right) = \frac{6V}{bh^3}\left(\frac{h^2}{4} – y^2\right) $$

$y = 0$(中立軸上)で最大値をとります。

$$ \boxed{\tau_{\max} = \frac{3}{2} \cdot \frac{V}{A} \quad \text{(矩形断面)}} $$

平均せん断応力 $V/A$ の 1.5倍 が最大せん断応力です。

円形断面でのせん断応力

半径 $r$ の中実円形断面では $I = \pi r^4/4$、幅 $b(y) = 2\sqrt{r^2 – y^2}$ です。

$$ Q(y) = \frac{2}{3}(r^2 – y^2)^{3/2} $$

せん断応力は:

$$ \tau(y) = \frac{4V}{3\pi r^4}(r^2 – y^2) $$

最大値($y = 0$)は:

$$ \boxed{\tau_{\max} = \frac{4}{3} \cdot \frac{V}{A} \quad \text{(円形断面)}} $$

Pythonでの可視化

import numpy as np
import matplotlib.pyplot as plt

V = 10e3        # せん断力 [N]
b_rect = 0.05   # 矩形断面の幅 [m]
h_rect = 0.10   # 矩形断面の高さ [m]
r_circ = 0.04   # 円形断面の半径 [m]

fig, axes = plt.subplots(1, 2, figsize=(14, 6))

# --- 矩形断面 ---
I_rect = b_rect * h_rect**3 / 12
y_rect = np.linspace(-h_rect/2, h_rect/2, 200)
Q_rect = b_rect / 2 * (h_rect**2 / 4 - y_rect**2)
tau_rect = V * Q_rect / (I_rect * b_rect)

axes[0].plot(tau_rect / 1e6, y_rect * 1e3, 'b-', linewidth=2.5)
axes[0].fill_betweenx(y_rect * 1e3, 0, tau_rect / 1e6, alpha=0.2, color='blue')
axes[0].axhline(0, color='r', linestyle='--', label='Neutral axis')
axes[0].set_xlabel('Shear stress $\\tau$ [MPa]', fontsize=12)
axes[0].set_ylabel('Position $y$ [mm]', fontsize=12)
axes[0].set_title('Rectangular cross-section', fontsize=13)
axes[0].legend(); axes[0].grid(True, alpha=0.3)

# --- 円形断面 ---
I_circ = np.pi * r_circ**4 / 4
y_circ = np.linspace(-r_circ, r_circ, 200)
b_circ = 2 * np.sqrt(np.maximum(r_circ**2 - y_circ**2, 0))
Q_circ = 2/3 * np.maximum(r_circ**2 - y_circ**2, 0)**1.5
tau_circ = np.where(b_circ > 1e-10, V * Q_circ / (I_circ * b_circ), 0)

axes[1].plot(tau_circ / 1e6, y_circ * 1e3, 'r-', linewidth=2.5)
axes[1].fill_betweenx(y_circ * 1e3, 0, tau_circ / 1e6, alpha=0.2, color='red')
axes[1].axhline(0, color='gray', linestyle='--', label='Neutral axis')
axes[1].set_xlabel('Shear stress $\\tau$ [MPa]', fontsize=12)
axes[1].set_ylabel('Position $y$ [mm]', fontsize=12)
axes[1].set_title('Circular cross-section', fontsize=13)
axes[1].legend(); axes[1].grid(True, alpha=0.3)

plt.tight_layout()
plt.show()

まとめ

本記事では、梁のせん断応力について解説しました。

  • せん断応力公式: $\tau = VQ/(Ib)$
  • 断面一次モーメント $Q$ は中立軸で最大、端部でゼロ
  • 矩形断面: 放物線分布、$\tau_{\max} = 3V/(2A)$
  • 円形断面: $\tau_{\max} = 4V/(3A)$
  • 曲げ応力が端部で最大なのに対し、せん断応力は中立軸で最大

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