こんにちは、Ita-logです。
最近、Raspberry Pi Picoや各種センサーを使った電子工作の延長として、空から降下させてデータを取るギミックや、自作ドローンを安全にソフトランディングさせるための回収システムといった「物理的な落下・着陸の制御」に興味が湧いています。
これまではマイコン側のコードやサーボの配線といった「ハード・ソフトの内側」ばかり弄っていたのですが、いざ「地上まで安全に機体を落とす」というフェーズを考えたとき、大きな壁にぶつかりました。それは、「パラシュートのサイズって、どうやって決めるのが正解なんだ?」という疑問です。
ネットで検索すると「だいたいこれくらい」といった感覚的な記事は多いのですが、電子機器やセンサーの塊を確実に守るためには、やはり物理的な裏付けが欲しいところです。そこで、米ユタ州立大学(USU)のロケット・推進システム設計に関する講義資料(Section 7.5)などをベースに、パラシュート回収システムの空気力学と設計理論を本気で勉強してみました。
今回は、自分の理解の整理とアウトプットを兼ねて、パラシュートの基本的なパラメータから、終端速度の導出、最も機体に負荷がかかる「開傘時の衝撃荷重(Pflanz法)」の計算、解りやすくサイズを自動計算するPythonスクリプトの実装までを1つの記事にまとめておきます。
はじめに
電子工作で少し大きめの動くものや、高高度まで上がる機体を作った際、最終的な「回収(リカバリー)」の成否はプロジェクト全体の成否に直結します。どんなに高度なセンサーログを残していても、着陸(着地)の瞬間に物理的な衝撃で基板が割れてしまえばすべてが水の泡になるからです。
パラシュートは一見すると「ただの布と紐」ですが、航空宇宙工学の分野では非常に厳密な流体力学モデルとして扱われます。この記事では、感覚に頼らない「理論に基づいたパラシュート設計」ができるようになることを目指します。
具体的には、以下のステップに沿って解説を進めていきます。
- 幾何学的パラメータ(公称面積・直径など)の正しい定義
- 定常降下時における抗力と終端速度の数理モデル
- キャノピー(傘)の形状による空力特性の違い
- 一番の破損原因となる「開傘衝撃(オープニングロード)」の予測(Pflanz法)
- Pythonによる設計シミュレータの実装
- Raspberry Pi Pico等のマイコンで組む展開アルゴリズムの注意点
少し長くなりますが、数式を1つずつ紐解きながら、実際の設計に使えるコードまで落とし込んでいきます。
1. パラシュート設計における基本用語とパラメータ
パラシュートの設計書や論文を読むと、まず独特の用語がいくつか登場します。これらを正確に把握しておかないと、数式を組み立てる際に基準値がブレてしまうため、最初に整理しておきます。
公称面積(Nominal Area: S0)
パラシュートの性能を計算する際、最も重要になる「基準面積」です。これは、パラシュートの布地(キャノピー)を完全に平らな床にベタッと広げたときの総表面積として定義されます。このとき、頂部にある空気抜きの穴(ベント)などの開口部も含めた面積として扱うのが一般的です。
実際に空中で開いたパラシュートはお椀型(立体)に膨らむため、上から見たときの「投影面積」はこれよりも小さくなりますが、航空宇宙工学の計算では、扱いやすさのためにこの平らに広げたときの面積 S0 を基準として各種係数を決定します。
公称直径(Nominal Diameter: D0)
上記の公称面積 S0 を持つ完全な「真円」を仮定した場合の直径です。幾何学的に以下の式で計算されます。
D0 = √( 4S0 / π )
市販のパラシュートを買う際や、自分で布を裁断する際のベースとなる数値は、基本的にはこの D0 になります。
構造直径(Constructed Diameter: Dc)
パラシュートは複数の細長いパネル(ゴアと呼ばれる布地)を縫い合わせて立体を作ります。この縫い目に沿って測定した、実際の物理的な最大直径を Dc と呼びます。裁断のパターンによって D0 とはわずかにズレが生じます。
サスペンションライン長(Suspension Line Length: Ls)
キャノピーの下端から、ペイロード(機体)を繋ぐ結び目までの紐の長さです。ここが短すぎると傘が綺麗に広がりきらず、長すぎると重量が増える上に機体に絡まるリスクが高まります。一般的なロケットや探査機の設計では、公称直径の1.0倍から2.0倍(1.0 D0 ≦ Ls ≦ 2.0 D0)に設定するのが定石とされています。
2. 空気力学モデル:抗力と終端速度の導出
パラシュートが降下しているとき、機体には下向きの「重力」と、空気の抵抗による上向きの「抗力」が働いています。まずはこのバランスを数式でモデル化します。
抗力(Drag Force)の方程式
流体力学における基本的な抗力の式は以下のように表されます。
FD = (1/2) × ρ × V2 × CD × S0
各変数の意味は次の通りです。
- FD : 抗力(Drag Force) [N]
- ρ(ロー) : 大気密度 [kg/m3] (海面気圧の標準状態で約 1.225 kg/m3)
- V : 飛行速度(落下速度) [m/s]
- CD : パラシュートの抗力係数 [-]
ここで注目すべきは、抗力が「速度の2乗(V2)」に比例して大きくなるという点です。落下の初速が遅いうちは空気抵抗も小さいですが、加速するにつれて急激に抗力が増大していきます。
終端速度(Terminal Velocity: Vt)の導出
機体が自由落下を続けると、やがて重力と空気抵抗の大きさが完全に釣り合う瞬間に達します。力が釣り合うと加速度はゼロになり、それ以降は一定の速度で落下するようになります。この時の速度が終端速度(Vt)です。
機体全体の質量を m、重力加速度を g (9.81 m/s2)とします。ここで、パラシュートだけでなく「機体そのものの形状」が受ける空気抵抗も無視できない場合を考慮します。パラシュートの抗力面積を CDpSp、機体本体の抗力面積を CDbSb とすると、力の釣り合いは以下の式になります。
m × g = (1/2) × ρ × Vt2 × (CDpSp + CDbSb)
この式を、求めたい終端速度 Vt について解くと、以下のようになります。
Vt = √( 2mg / (ρ × (CDpSp + CDbSb)) )
もし、機体本体の空気抵抗がパラシュートに比べて十分に小さい(無視できる)と仮定するならば、式はさらにシンプルになります。
Vt = √( 2mg / (ρ × CDp × S0) )
この数式は非常に強力です。なぜなら、自分が設計している機体の重さ m が決まっており、内部の電子機器が壊れないための「目標着陸速度 Vt」を設定すれば、「じゃあパラシュートの面積 S0 はどれくらい必要なのか」を逆算して導き出すことができるからです。
3. キャノピー形状の種類とそれぞれの特徴
パラシュートの形にはいくつかバリエーションがあり、どれを選ぶかで先ほどの数式に登場した「抗力係数 CDp」の値や、降下中の安定性が大きく変わってきます。
布地に隙間がない「ソリッド(Solid)型」の代表的な3形状について、工学的な特徴を比較してみます。
半球型(Hemispherical)
展開したときに綺麗なお椀型(半球)になる、最も一般的な形状です。
- 空力特性: 抗力係数 CD が約 1.5 前後と非常に高く、効率よく減速できます。
- 製作面: 2次元の平面布地から「ゴア」と呼ばれる三角形に近いパネルを複数枚(6枚や8枚など)切り出し、それらを縫い合わせることで3次元の立体を作ります。
- 課題: 空気をガッツリ抱え込むため、逃げ場を失った空気が傘の端から交互に漏れ出し、降下中に左右に大きくユラユラと揺れる(スイングする)傾向があります。これを防ぐため、頂部に小さな穴(ベント)を開けて、意図的に空気を上に逃がす設計が必須となります。
円錐型(Conical)
展開したときに、頂点に向かって直線的な傾斜を持つ(メガホンのような)形状です。
- 空力特性: 半球型に近い高い抗力係数を持ちます。
- 製作面: 裁断パターンが半球型よりも直線的であるため、自作する際の難易度が少し低いというメリットがあります。
- 課題: やはり安定性にはやや難があり、適切なベントの設計をしないと、機体が激しくブレてセンサーデータに大きなノイズが乗る原因になります。
楕円型(Elliptical)
半球型を上から少し押しつぶしたような、扁平なドーム形状です。
- 空力特性: 半球型とほぼ同等の高い減速性能を維持します。
- メリット: 幾何学的な構造上、同じ投影面積(受風面積)を作るために必要な布地の総面積(S0)を、半球型よりも小さく抑えることができます。これはつまり、「パラシュート自体をより軽く、コンパクトに折りたたんで収納できる」ということを意味します。ドローンの内部スペースや、小さな放出ポッドに格納する上で、非常に有利な形状です。
4. 最重要の破壊要因:開傘衝撃(Opening Loads)とPflanz法
パラシュートの設計で一番やってはいけない失敗が、「終端速度(ゆっくり落ちているとき)の強度しか考えずに紐や布を選び、開いた瞬間の衝撃で引きちぎれる」というパターンです。
機体の頂点や、緊急降下時にパラシュートが放出されるとき、機体はまだかなりの高速で動いています。その状態で布が一気に広がると、定常降下時の何倍もの凄まじい力が一瞬だけ発生します。これを開傘荷重(オープニングロード)と呼びます。機体のパーツや3Dプリンタで作った構造体がこの衝撃に耐えられるかどうかが、設計の最大のハードルになります。
航空宇宙工学では、この開傘プロセスを機体質量との関係性から2つのモデルに分けて考えます。
① 無限質量インフレーション(Infinite-Mass Inflation)
パラシュートが開くスピードが機体の減速スピードに対して圧倒的に速い、あるいは機体が非常に重いために、「パラシュートが完全に開ききるまでの間、機体の速度がほとんど落ちない」と仮定するモデルです。 動圧(速度の勢い)が最大のまま傘が全開になるため、衝撃荷重は最大化します。
② 有限質量インフレーション(Finite-Mass Inflation)
パラシュートが徐々に広がっていくプロセスと同時に、機体もリアルタイムにグングン減速していくモデルです。 地球の低高度でドローンや自作の回収ギミックを展開する場合は、ほぼ間違いなくこのケースになります。傘が完全に開ききる「前」に機体が減速してくれるため、ピーク荷重は全開になる一歩手前で発生し、無限質量モデルよりも衝撃は和らぎます。
Pflanzの方法による衝撃荷重の計算
この有限質量インフレーションにおける最大開傘荷重 Fmax を概算するための実用的な数式として、Pflanz(プフランツ)法が知られています。
Fmax = q1 × CDp × Sp × Cx × X1
各項の意味は次の通りです。
- q1 : パラシュート展開開始時(紐が伸びきって布に風が入り始めた瞬間)の動圧 [N/m2]
- CDpSp : パラシュートの抗力面積
- Cx : 衝撃荷重係数(Opening Shock Factor、傘の開き方の特性による係数で、通常 1.1 〜 2.0 の範囲)
- X1 : 力低減係数(Force Reduction Factor)
この X1 という係数が極めて重要です。これは「開傘期間中にどれだけ減速できたか」を示す 0 から 1 の間の補正値です。機体の質量が軽いほど、また、布が空気を含んで全開になるまでの時間(充填時間:Inflation Time)が長いほど、X1 は小さくなります。
つまり、衝撃を和らげるためには「布地を一瞬でバッと開かせるのではなく、少しだけ時間をかけてスムーズに開かせる構造(あるいは柔軟な紐の選定)」が有効であるということが、この数理モデルからも分かります。
5. 【設計編】Pythonによるパラシュートサイズ計算スクリプト
ここまでの理論をベースに、自分の作りたい機体のスペックから、必要なパラシュートの幾何学的な数値を一発で算出するPythonスクリプトを書いてみました。
関数の引数に「機体の質量(kg)」と「目標とする着陸速度(m/s)」を渡すだけで、必要な公称面積や直径、推奨される紐の長さを返してくれます。
Python
import math
def calculate_parachute_dimensions(mass_kg, target_v_ms, cd_para=1.5, rho=1.225):
"""
目標着陸速度(終端速度)から、必要なパラシュートの設計パラメータを算出する
Parameters:
mass_kg (float): 機体全体の質量 (kg)
target_v_ms (float): 目標とする着陸速度 (m/s)
cd_para (float): パラシュートの抗力係数 (半球型の一般的な目安は1.5)
rho (float): 大気密度 (kg/m3, 標準大気海面面は1.225)
"""
g = 9.81 # 重力加速度
# 機体重量(必要な抗力)
weight_n = mass_kg * g
# 終端速度の式から必要な抗力面積 (Cd * S0) を逆算
# V_t = sqrt( (2 * m * g) / (rho * Cd * S0) ) より変形
required_drag_area = (2 * weight_n) / (rho * (target_v_ms ** 2))
# 必要公称面積 S0
required_s0 = required_drag_area / cd_para
# 公称直径 D0
required_d0 = math.sqrt((4 * required_s0) / math.pi)
# 推奨されるサスペンションライン長 (公称直径の1.5倍を基準とする)
recommended_line_len = required_d0 * 1.5
return {
"aircraft_weight_n": weight_n,
"drag_area_m2": required_drag_area,
"nominal_area_m2": required_s0,
"nominal_diameter_m": required_d0,
"line_length_m": recommended_line_len
}
# --- テスト実行 ---
if __name__ == "__main__":
# 例:総重量 1.2kg の機体を、安全な速度 4.5 m/s で着地させたい場合
my_mass = 1.2
my_target_v = 4.5
spec = calculate_parachute_dimensions(my_mass, my_target_v)
print("-" * 50)
print(f" パラシュート設計計算結果 (機体質量: {my_mass} kg / 目標速度: {my_target_v} m/s)")
print("-" * 50)
print(f"■ 機体重量 : {spec['aircraft_weight_n']:.2f} N")
print(f"■ 必要抗力面積(Cd*S0): {spec['drag_area_m2']:.4f} m^2")
print(f"■ 必要公称面積(S0) : {spec['nominal_area_m2']:.4f} m^2")
print(f"■ 必要公称直径(D0) : {spec['nominal_diameter_m']:.2f} m (約 {spec['nominal_diameter_m']*100:.1f} cm)")
print(f"■ 推奨ライン長 : {spec['line_length_m']:.2f} m")
print("-" * 50)
スクリプトの解説
このスクリプトを実行すると、コンソールに以下のような結果が得られます。
Plaintext
--------------------------------------------------
パラシュート設計計算結果 (機体質量: 1.2 kg / 目標速度: 4.5 m/s)
--------------------------------------------------
■ 機体重量 : 11.77 N
■ 必要抗力面積(Cd*S0): 0.9493
■ 必要公称面積(S0) : 0.6329
■ 必要公称直径(D0) : 0.90 m (約 89.8 cm)
■ 推奨ライン長 : 1.35 m
--------------------------------------------------
1.2kgの機体を人間の歩行〜軽いジョギング程度の速度(4.5 m/s)でそっと着陸させるには、直径約90cmの傘を作り、1.35mの紐を這わせれば良い、という具体的なターゲット数値が見えてきます。
この直径が分かれば、3Dプリンタでパラシュート格納ポッドを設計する際にも、「布を折りたたんだ時のボリューム」を予測しやすくなり、CAD設計の手戻りが格段に減るはずです。
6. 【実装の現場】マイコンによる開傘制御アルゴリズムの罠
設計したパラシュートを「いつ、どうやって開くか」は、電子工作側のコードの腕の見せ所です。 一般的には、Raspberry Pi Picoなどのマイコンに気圧センサー(BMP280など)や加速度センサーを繋ぎ、機体が最高高度(頂点:アポジー)に達した瞬間を検知してサーボモーターを回し、パラシュートを放出します。気圧センサー(BMP280)の使い方は下の記事をご覧ください。
ここで、実際にMicroPythonなどでロジックを組む際に「ほぼ確実に引っかかる誤動作の罠」とその対策について共有しておきます。
罠:気圧センサーの「生データ」で判定すると空中分解する
機体が上昇中、風を強く受けたり機体が回転したりすると、気圧センサーの周りの空気の流れが乱れます(動圧の影響)。すると、まだ激しく上昇している最中であるにもかかわらず、センサー値が一瞬だけ「気圧が上がった=高度が下がった」という偽のデータを吐くことがあります。
これをそのまま「降下に転じた」とマイコンが判定してしまうと、猛烈な高速飛行中にパラシュートが開いてしまい、前述の開傘衝撃(オープニングロード)が耐えきれないレベルまで跳ね上がり、紐がちぎれるか機体が空中分解します。
対策:二重系のフィルタリングとAND条件
この誤動作を防ぐために、私の実装では以下のような判定ロジックを組むようにしています。
- 移動平均またはカルマンフィルタの適用 センサーの生の値をそのまま使わず、直近10回程度のデータの移動平均を取り、局所的なスパイクノイズを完全に丸めます。
- 連続性の確認 「1回でも高度が下がったら頂点」とするのではなく、「連続して5回以上、高度の移動平均値が過去最高高度を下回った場合のみ」を降下判定のトリガーとします。
- 加速度センサーとのAND条件 頂点付近では、機体は速度がゼロになり、一瞬「無重力(自由落下状態)」に近くなります。気圧センサーによる降下判定だけでなく、「IMU(加速度センサー)が自由落下に近い挙動を示しているか」という条件をANDで掛け合わせることで、誤放出して全損するリスクを極限まで下げることができます。
7.実際につくってみて、(体感で)おすすめのパラシュート素材
ここまでつらつらとパラシュート設計について述べてきましたが、この手法を使おうが使わまいが実際にパラシュート・パラフォイルを制作する方へ、私の体験に基づいておすすめの素材を紹介します。
リップストップ (Ripstop)
リップストップは、格子状に編み込まれた補強構造を持ち、生地の破れに対してそれ以上の破れを防ぐことのできる高強度の素材です。1940年代の第二次世界大戦中に、アメリカ軍のパラシュートや軍服の耐久力を高めるために開発されたもので、頑丈さだけでなく軽さも持ち味です。
まとめ
一見、物理的な「布」の塊に過ぎないパラシュートですが、その裏側にある空気力学の数式を1つずつ紐解いていくと、マイコンのプログラミングや回路設計と同じくらいロジカルで面白い世界が広がっていることが分かりました。
- パラシュートの面積は、重力と抗力が釣り合う「終端速度の方程式」から論理的に逆算できる。
- 一番危険なのは全開になった瞬間であり、Pflanz法に代表される有限質量インフレーションの特性を意識する必要がある。
- 物理の設計値(直径)を基にCADで機構を作り、Picoとセンサーのコードで誤動作のない展開ロジックを組む。
これらがカチッと噛み合ったときに、初めて「大切な電子機器を確実に守って回収するシステム」が完成します。
というわけで、今回はここまで。次は実際にこの計算値をベースに、3Dプリンタを使ったパラシュート放出ポッドの製作や、PicoでのMicroPythonコードの実装を進めていく予定ですので、形になったらまた実機ベースの実装記録をアップしたいと思います。
参考資料:
- Utah State University (USU) – MAE 6530: Launch Vehicle Systems Design, Section 7.5: Parachute Recovery Systems


コメント