Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
小型ハイブリッド用フライトシミュレータの開発
Search
sksat
February 03, 2020
Programming
0
1.1k
小型ハイブリッド用フライトシミュレータの開発
村井研2期目(Arch)のWIP発表です.
実装:
https://github.com/sk2sat/trochia
sksat
February 03, 2020
Tweet
Share
More Decks by sksat
See All by sksat
人工衛星開発のための C2A フレームワークとその開発体験
sksat
1
330
人工衛星の開発体験向上のために、ソフトウェアからできること
sksat
4
710
3ヶ月でできる! 探査機自作ゼミ教材自作入門
sksat
6
2.1k
セキュリティ・キャンプ全国大会2024 S17 探査機自作ゼミ 事前学習・当日資料
sksat
3
18k
AE Rust 勉強会: github-webhook-rs
sksat
0
240
万国のサーバ管理者よ, 自動化せよ!
sksat
1
7.4k
teleka.suを支える技術
sksat
1
16k
ふつうのLinuxプログラミング-プロセスとハードウェア
sksat
26
7.9k
大学生でもできる!ハイブリッドロケット入門
sksat
0
1.8k
Other Decks in Programming
See All in Programming
API for docs
soutaro
4
1.7k
Global Azure 2025 @ Kansai / Hyperlight
kosmosebi
0
130
一緒に働きたくなるプログラマの思想 #QiitaConference
mu_zaru
80
20k
AWS Summit Hong Kong 2025: Reinventing Programming - How AI Transforms Our Enterprise Coding Approach
dwchiang
0
130
今話題のMCPサーバーをFastAPIでサッと作ってみた
yuukis
0
120
Improve my own Ruby
sisshiki1969
0
100
プロダクト横断分析に役立つ、事前集計しないサマリーテーブル設計
hanon52_
3
550
Optimizing JRuby 10
headius
0
580
By the way Google Cloud Next 2025に行ってみてどうだった
ymd65536
0
120
Storybookの情報をMCPサーバー化する
shota_tech
1
260
GitHub Copilot for Azureを使い倒したい
ymd65536
1
330
Designing Your Organization's Test Pyramid ( #scrumniigata )
teyamagu
PRO
4
930
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
230
18k
Unsuck your backbone
ammeep
671
57k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Docker and Python
trallard
44
3.4k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Embracing the Ebb and Flow
colly
85
4.7k
Faster Mobile Websites
deanohume
306
31k
Practical Orchestrator
shlominoach
187
11k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
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向けにビルド