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
300
人工衛星の開発体験向上のために、ソフトウェアからできること
sksat
4
690
3ヶ月でできる! 探査機自作ゼミ教材自作入門
sksat
6
1.8k
セキュリティ・キャンプ全国大会2024 S17 探査機自作ゼミ 事前学習・当日資料
sksat
3
15k
AE Rust 勉強会: github-webhook-rs
sksat
0
230
万国のサーバ管理者よ, 自動化せよ!
sksat
1
7.4k
teleka.suを支える技術
sksat
1
15k
ふつうのLinuxプログラミング-プロセスとハードウェア
sksat
26
7.9k
大学生でもできる!ハイブリッドロケット入門
sksat
0
1.7k
Other Decks in Programming
See All in Programming
Lambda(Python)の リファクタリングが好きなんです
komakichi
3
170
リアクティブシステムの変遷から理解するalien-signals / Learning alien-signals from the evolution of reactive systems
yamanoku
3
1.2k
スモールスタートで始めるためのLambda×モノリス(Lambdalith)
akihisaikeda
2
260
Bedrock×MCPで社内ブログ執筆文化を育てたい!
har1101
6
970
AHC045_解説
shun_pi
0
520
Building a macOS screen saver with Kotlin (Android Makers 2025)
zsmb
1
150
Sharing features among Android applications: experience feedback
jbvincey
0
100
リストビュー画面UX改善の振り返り
splcywolf
0
130
Qiita Bash
mercury_dev0517
1
190
フロントエンドテストの育て方
quramy
11
3k
DomainException と Result 型で作る型安全なエラーハンドリング
karszawa
0
900
Strategic Design (DDD)for the Frontend @DDD Meetup Stuttgart
manfredsteyer
PRO
0
130
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
Making the Leap to Tech Lead
cromwellryan
133
9.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.6k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.4k
The Invisible Side of Design
smashingmag
299
50k
How STYLIGHT went responsive
nonsquared
99
5.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.2k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
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向けにビルド