Skip to content

Add Astra example: ascent+descent validation, hazard zone & abort#72

Merged
sksat merged 1 commit into
masterfrom
feat/example-astra
Jun 27, 2026
Merged

Add Astra example: ascent+descent validation, hazard zone & abort#72
sksat merged 1 commit into
masterfrom
feat/example-astra

Conversation

@sksat

@sksat sksat commented Jun 27, 2026

Copy link
Copy Markdown
Owner

#70(launcher length/azimuth の config 化)はマージ済み。本 PR は example のみの差分です。
(元 #71 は base ブランチ削除に伴い自動 close されたため open し直し)

概要

RocketPy の検証用ロケット "Astra"(Faraday Rocketry UPV / EuRoC 2022,
市販 Cesaroni 4263L1350-P, apogee ~3.25 km)を題材にした km スケールの
実飛行 example。既存の検証 example と違い、上昇と降下の両方を実測と
照合できるのが要点です(Astra は回収がうまく展開せず降下がほぼ弾道だったため、
apogee だけでなく降下も実データで検証できる)。

内容

1. 妥当性検証(実測トラジェクトリと比較)

config-validation.toml(無風で実飛行を再構成)

validation

実測 trochia
apogee 3249 m 3260 m(+0.3 %
到達時刻 ~24 s 25.0 s
降下速度(接地付近) ~100 m/s ~108 m/s

降下は「回収部分展開」を有効 CdA としてキャリブレートし、実測記録が終わる
~145 m AGL まで ~70 m(約 2 %)で一致。

2. Cd 感度

無風で定数 Cd をスイープ → 実測 apogee が apogee を合わせる有効定数 Cd ≈ 0.55
を選ぶことを示す(遷音速の抗力上昇を 1 つの定数に畳み込み。燃焼終了で約 Mach 0.88)。

cd-sensitivity

3. 警戒区域(落下分散)+ 途中破談

config.toml:風向スイープ × 4 シナリオ(nominal=dual deploy / recovery-failure=
弾道 / motor-cutoff / cato)→ シナリオごとの着地 footprint。打上げは 84° / 方位 133°
に傾けてあり、各 footprint は 133° 方向にバイアス。

footprints

EuRoC サイト(Ponte de Sor)の OSM 地図に実測 GPS トラックを重ねて表示:

footprints map

モデル上の注意(README に明記)

  • 定数 Cd は遷音速抗力上昇のタイミングは再現できず、apogee への正味効果のみ。
  • 回収ハードの抗力は非公開のため、降下は実測にキャリブレートした有効 CdA。
    recovery-failure シナリオは parachute なし(実飛行の部分回収より厳しい弾道)。
  • mass は装填エンジンを除いた機体質量(9.10 kg)。エンジンは .eng から
    (装填 3.57 kg / 推進剤 2.02 kg)→ 離昇 12.67 kg は RocketPy モデルと一致。
  • cato は単体飛翔(推力停止+回収無効)で、破片分散モデルではない。
  • CG/CP/慣性/Cna は RocketPy ジオメトリからの推定(apogee・降下主体の結果では二次的)。

実行

cd examples/astra && ./run.sh   # motor 取得→検証+警戒区域/破談→図生成(地図は要ネット+uv)

run.sh は通しで動作し、4 つの図がすべてバイト単位で同一に再生成される(差分ゼロ)。

🤖 Generated with Claude Code

A km-scale real-flight example built on RocketPy's "Astra" (Faraday Rocketry
UPV, EuRoC 2022; Cesaroni 4263L1350-P, apogee ~3.25 km). Unlike the existing
validation examples it validates trochia on BOTH legs of the flight: the
recovery did not deploy cleanly, so the measured descent is near ballistic and
can be checked against real data, not just the apogee.

What it shows:
- validation vs the measured trajectory (measured.dat): apogee 3260 m vs
  measured 3249 m (+0.3 %, t 25.0 s vs ~24 s); the as-flown partial-recovery
  descent reproduced to ~70 m over the 3.2 km fall (effective recovery CdA).
- Cd sensitivity: a still-air Cd sweep shows the measured apogee selects a
  flight-averaged constant Cd ~ 0.55 (the transonic drag rise folded into one
  number; the rocket reaches ~Mach 0.88 at burnout).
- hazard zone (落下分散) + abort (途中破談): a wind-direction sweep over four
  contingency scenarios (nominal dual-deploy / recovery-failure ballistic /
  motor-cutoff / cato) -> one landing footprint each, on an OSM basemap of the
  EuRoC site (Ponte de Sor) with the measured GPS track overlaid.

Uses the 12 m rail / 84 deg / 133 deg launch geometry now expressible via the
config [launcher] length & azimuth.

Files: config.toml (hazard+abort), config-validation.toml (still-air
reconstruction), measured.dat / measured-track.dat (RocketPy flight data, GPS
dropout fixes removed), fetch-engine.sh, run.sh, the gnuplot scripts +
footprints-map.py, and the four committed result plots. Also cites the example
from the repo and examples READMEs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LiKBVgTqjZV84zcMVY3w46
@sksat sksat self-assigned this Jun 27, 2026
@sksat sksat merged commit 09f19a7 into master Jun 27, 2026
6 checks passed
@sksat sksat deleted the feat/example-astra branch June 27, 2026 23:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant