Skip to content

Latest commit

 

History

History
149 lines (104 loc) · 3.4 KB

File metadata and controls

149 lines (104 loc) · 3.4 KB

空気力の基礎

ロケットが大気中を飛行する際には、空気から力を受けます。ここでは空気力学の基礎を学びます。

空気抵抗(抗力)

物体が流体中を移動するとき、進行方向と反対向きに力を受けます。これを**抗力(Drag)**と呼びます。

抗力の式

$$ F_D = \frac{1}{2} \rho v^2 C_D A $$

  • $F_D$: 抗力 [N]
  • $\rho$: 空気密度 [kg/m³](海面付近で約1.225 kg/m³)
  • $v$: 速度 [m/s]
  • $C_D$: 抗力係数 [-](形状による無次元数)
  • $A$: 代表面積 [m²](通常は断面積)

抗力の特徴

  1. 速度の2乗に比例: 速度が2倍になると抗力は4倍
  2. 進行方向と逆向き: 常に運動を妨げる方向
  3. 形状依存: 流線型は抗力が小さい

抗力係数の例

形状 $C_D$
0.47
円柱(垂直) 1.2
流線型 0.04-0.2
ロケット 0.3-0.8

揚力

物体の形状や姿勢によって、進行方向に垂直な力が発生します。これを**揚力(Lift)**と呼びます。

揚力の式

$$ F_L = \frac{1}{2} \rho v^2 C_L A $$

  • $F_L$: 揚力 [N]
  • $C_L$: 揚力係数 [-]

ロケットと揚力

  • 軸対称のロケットが軸方向に飛行する場合、揚力はほぼゼロ
  • 迎角(進行方向と機軸のずれ)があると揚力が発生
  • 今回の教材では主に抗力のみを考慮

動圧

空気力の式に共通して現れる $\frac{1}{2}\rho v^2$動圧と呼びます。

$$ q = \frac{1}{2} \rho v^2 $$

動圧は「単位面積あたりの運動エネルギー」に相当します。

ベクトルとしての抗力

3次元では、抗力は速度ベクトルの反対方向を向きます:

$$ \mathbf{F}_D = -\frac{1}{2} \rho |\mathbf{v}|^2 C_D A \cdot \hat{\mathbf{v}} $$

ここで $\hat{\mathbf{v}}$ は速度の単位ベクトル:

$$ \hat{\mathbf{v}} = \frac{\mathbf{v}}{|\mathbf{v}|} $$

Pythonでの実装

import numpy as np

def calc_drag(velocity, rho=1.225, Cd=0.5, A=0.01):
    """
    抗力ベクトルを計算

    Parameters
    ----------
    velocity : np.ndarray
        速度ベクトル [m/s]
    rho : float
        空気密度 [kg/m³]
    Cd : float
        抗力係数
    A : float
        代表面積 [m²]

    Returns
    -------
    np.ndarray
        抗力ベクトル [N]
    """
    v_mag = np.linalg.norm(velocity)
    if v_mag < 1e-10:
        return np.zeros_like(velocity)

    v_unit = velocity / v_mag
    drag_mag = 0.5 * rho * v_mag**2 * Cd * A

    return -drag_mag * v_unit

1次元での抗力

1次元(鉛直方向のみ)の場合、速度の符号を考慮:

def calc_drag_1d(v, rho=1.225, Cd=0.5, A=0.01):
    """1次元の抗力"""
    drag_mag = 0.5 * rho * v**2 * Cd * A
    return -np.sign(v) * drag_mag
  • 上昇時($v > 0$): 抗力は負(下向き)
  • 下降時($v < 0$): 抗力は正(上向き)

終端速度

落下中、重力と抗力が釣り合うと一定速度になります。これを終端速度と呼びます。

$$ mg = \frac{1}{2} \rho v_t^2 C_D A $$

終端速度: $$ v_t = \sqrt{\frac{2mg}{\rho C_D A}} $$

実行してみよう

scripts/02_physics/02_aerodynamics_example.py を実行してください:

python scripts/02_physics/02_aerodynamics_example.py

次章: 座標系と座標変換