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
980
小型ハイブリッド用フライトシミュレータの開発
村井研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
160
人工衛星の開発体験向上のために、ソフトウェアからできること
sksat
4
550
3ヶ月でできる! 探査機自作ゼミ教材自作入門
sksat
6
170
セキュリティ・キャンプ全国大会2024 S17 探査機自作ゼミ 事前学習・当日資料
sksat
3
850
AE Rust 勉強会: github-webhook-rs
sksat
0
200
万国のサーバ管理者よ, 自動化せよ!
sksat
1
6.9k
teleka.suを支える技術
sksat
1
14k
ふつうのLinuxプログラミング-プロセスとハードウェア
sksat
26
7.7k
大学生でもできる!ハイブリッドロケット入門
sksat
0
1.4k
Other Decks in Programming
See All in Programming
WebフロントエンドにおけるGraphQL(あるいはバックエンドのAPI)との向き合い方 / #241106_plk_frontend
izumin5210
4
1.4k
『ドメイン駆動設計をはじめよう』のモデリングアプローチ
masuda220
PRO
8
540
flutterkaigi_2024.pdf
kyoheig3
0
150
OnlineTestConf: Test Automation Friend or Foe
maaretp
0
120
광고 소재 심사 과정에 AI를 도입하여 광고 서비스 생산성 향상시키기
kakao
PRO
0
170
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
100
Jakarta EE meets AI
ivargrimstad
0
640
Streams APIとTCPフロー制御 / Web Streams API and TCP flow control
tasshi
2
350
macOS でできる リアルタイム動画像処理
biacco42
9
2.4k
Flutterを言い訳にしない!アプリの使い心地改善テクニック5選🔥
kno3a87
1
210
カンファレンスの「アレ」Webでなんとかしませんか? / Conference “thing” Why don't you do something about it on the Web?
dero1to
1
110
Figma Dev Modeで変わる!Flutterの開発体験
watanave
0
150
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
130
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Thoughts on Productivity
jonyablonski
67
4.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
Making Projects Easy
brettharned
115
5.9k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
Building Your Own Lightsaber
phodgson
103
6.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向けにビルド