Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
小型ハイブリッド用フライトシミュレータの開発
Search
sksat
February 03, 2020
Programming
0
1.4k
小型ハイブリッド用フライトシミュレータの開発
村井研2期目(Arch)のWIP発表です.
実装:
https://github.com/sk2sat/trochia
sksat
February 03, 2020
Tweet
Share
More Decks by sksat
See All by sksat
同時複数機開発・運用のDevOpsサイクル高速化のための取り組み
sksat
0
120
探査機自作ゼミ2025スライド
sksat
3
850
人になにかを教えるときに考えていること(2025-05版 / VRC-LT #18)
sksat
5
1.2k
人工衛星開発のための C2A フレームワークとその開発体験
sksat
1
470
人工衛星の開発体験向上のために、ソフトウェアからできること
sksat
4
830
3ヶ月でできる! 探査機自作ゼミ教材自作入門
sksat
6
3.4k
セキュリティ・キャンプ全国大会2024 S17 探査機自作ゼミ 事前学習・当日資料
sksat
4
29k
AE Rust 勉強会: github-webhook-rs
sksat
0
290
万国のサーバ管理者よ, 自動化せよ!
sksat
1
8k
Other Decks in Programming
See All in Programming
Rediscover the Console - SymfonyCon Amsterdam 2025
chalasr
2
160
手が足りない!兼業データエンジニアに必要だったアーキテクチャと立ち回り
zinkosuke
0
580
【Streamlit x Snowflake】データ基盤からアプリ開発・AI活用まで、すべてをSnowflake内で実現
ayumu_yamaguchi
1
120
Microservices Platforms: When Team Topologies Meets Microservices Patterns
cer
PRO
1
1k
エディターってAIで操作できるんだぜ
kis9a
0
700
なあ兄弟、 余白の意味を考えてから UI実装してくれ!
ktcryomm
11
11k
S3 VectorsとStrands Agentsを利用したAgentic RAGシステムの構築
tosuri13
6
300
Tinkerbellから学ぶ、Podで DHCPをリッスンする手法
tomokon
0
120
UIデザインに役立つ 2025年の最新CSS / The Latest CSS for UI Design 2025
clockmaker
18
7.2k
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
37
25k
愛される翻訳の秘訣
kishikawakatsumi
1
310
新卒エンジニアのプルリクエスト with AI駆動
fukunaga2025
0
190
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
9
490
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.3k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Documentation Writing (for coders)
carmenintech
76
5.2k
Agile that works and the tools we love
rasmusluckow
331
21k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
Designing Experiences People Love
moore
143
24k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Transcript
小型ハイブリッドロケット用 フライトシミュレータの開発 Arch B1 sksat 親: macchan-san 1
モチベーション ・COREという学生ロケットサークルに所属 ・開発中や安全審査で飛行のシミュレーションを行う ・今使っているシミュレータは色々ダメ ・作り直そう! 2
学生ロケットとは? ・大学の研究室やサークルによる小型ハイブリッドロケットの開発・打上 ・機体・電装・エンジンなど全て自作 ・能代や伊豆大島で打上実験 3
シミュレーション ・ロケットがどのように飛行するか? ・設計時・安全審査に用いる 4
既存のシミュレータ(FROGS)の問題点 ・扱える人が少ない ・Matlab製 → ライセンスを持っていないメンバーがいる ・メンテナンス性がとても悪い(関数に分けたりしてない) ・使用時の手間が多い ・計算が遅い 5 落下分散図
by 神Excel
目的 ・誰でも使えるようにしたい: not matlab ・簡単に使えるようにしたい ・「今の設計だとどれくらい飛ぶのか?」をもっと簡単に ・シミュレーション担当以外でも使えるように ・簡単・正確に可視化したい ・高速化(できれば) 6
先行事例 ・FROGS(COREで使用) ← ・OpenRocket ←プロトタイプ検討には良いが ... ・ForRocket(他団体OBが開発) ・OpenTsiolokvsky(IST) OSS文化があまり無い:そもそも少ない 正解は物理 → reference
implementationは無い 7
今回開発したシミュレータ(trochia) ・GitHubで公開: https://github.com/sk2sat/trochia/ ・C++17,LoC: 1300,マルチプラットフォーム対応 ・GitHub ActionsでWindows, Mac, Linux向けバイナリを自動ビルド ・改良点
・TOMLファイルによるパラメータ入力 ・落下分散図の出力スクリプト付属( FROGSからも使用可能) ・数値積分の改良 8
TOMLファイルによるパラメータ入力 ・複数条件で計算したい(ランチャ仰角,風向,風速, etc) ・FROGS: 毎回条件を指定 ・trochia: config.tomlで範囲を指定,一括実行 ・ランチャ仰角70°〜85°,風向16方位,風速1〜7m/s,など ・output/ランチャ仰角/風速/風向 に計算結果を出力 9 ランチャ仰角
落下分散図の出力 ・GHP(相対座標)をファイルに出力 ・簡単なスクリプトで緯度・経度に変換 ・国土地理院のAPIを使って可視化←正確 ・相対座標のGHPファイルさえあればいい ・FROGSからも使用可能 ・移行期間中も使える 10
数値積分 ・FROGS:回転運動は4次精度(RK4),並進運動は1次精度(オイラー法),時間刻み固定 ・trochia ・デフォルトで全て4次精度 ・後からソルバを簡単に追加可能( C++のtemplateを使って抽象化) ・時間刻みはconfig.tomlで指定(任意) 11
評価 12 trochia FROGS OpenRocket 配布形式 ソース・バイナリ ソース OpenRocket.jar 実行に必要なもの
無し Matlab JRE コマンドライン実行 ◯ △ ☓ パラメータの入力 config.toml 配列に代入 GUIで入力 計算・可視化に必要な操作数 3 2N ☓ 計算精度 デフォルト4次 1次+4次 4次 N: 検討する仰角の数
評価(2) ・計算時間の短縮 ・検証環境:Arch Linux, AMD Ryzen 5 3600 ・弾道落下時,地上風速 1~7m/s,風向9,17方位を連続実行
・FROGS:1ケースあたり平均1.2s ・trochia :1ケースあたり平均0.2s ・5.6〜5.8倍の高速化 13
今後 ・風向風速制限表の自動生成 ←できました ・空力周りのバグ修正 ・FROGSの結果と比較して妥当性検証 ・3月の伊豆大島共同打上実験を通しての妥当性検証 ・プラットフォーム毎の計算精度の検証,精度保証付き数値計算ライブラリの使用検討 ・燃焼試験データのオープンデータ化 ・高度11km以上の大気モデルの実装,ペイロード・多段ロケットの実装,パラメータ最適化, etc...
14
参考文献 ・田辺英二.ロケットシステム( 1999) ・George P. Sutton. ; ロケット推進工学.望月晶訳.( 1992) ・import
Avio.小型ハイブリッドロケットノウハウ vol.1.(2019) ・伊里正男,藤野和建.数値計算の常識.( 1985) 15
以降予備スライド 16
ハイブリッドロケットとは? ・固体の燃料と液体の酸化剤を用いるロケット ・固体燃料ロケットと液体燃料ロケットのいいとこ取り ・大型化は難しく,実用例はまだスペースシップワンのみ ・本質的に”爆発”しないため,比較的安全 ・学生でも開発・打上を行うことができる 17
安全審査 ・比較的安全 != 安全 こっちに飛んできたら死ぬ ) ・学生運営(経験者)が事前・直前に安全審査を行う ・構造系・推進系・燃焼実験計画・搭載計器・シミュレーションについて審査 ・容赦無く落とされる(大抵第2,3次で合格) ・1つでも落とされたらもちろん打てない 18
シミュレーション審査 ・安定して飛行するか? ・C D , C Nα はCFDで計算 ・どこに落ちるか? ・風の影響が大きい
・落下可能域が設定されている ・「打ったら落下可能域外に落ちる」風向・風速条件を出す 19 伊豆大島共同打上実験の落下可能域 左:陸打ち 右:海打ち 風向風速制限表の例
現行のシミュレータ(FROGS) ・Matlab製 → インカレなので困ることがある ・迫真のインデント無し・関数定義無し ・入力はパラメータ一覧を配列に代入 ・落下分散図は神Excelにコピペしてプロット ・回転はRK4だが並進は1次のオイラー法(!!) ・色々とひどい 20
GitHub Actionsによる自動ビルド・リリース 21 ・ほとんどの人はWindows or Mac ・Linuxで開発したい ・cmakeでビルド ・CIでWin,Mac,Linux向けにビルド