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
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
200
人工衛星の開発体験向上のために、ソフトウェアからできること
sksat
4
590
3ヶ月でできる! 探査機自作ゼミ教材自作入門
sksat
6
180
セキュリティ・キャンプ全国大会2024 S17 探査機自作ゼミ 事前学習・当日資料
sksat
3
930
AE Rust 勉強会: github-webhook-rs
sksat
0
210
万国のサーバ管理者よ, 自動化せよ!
sksat
1
7k
teleka.suを支える技術
sksat
1
15k
ふつうのLinuxプログラミング-プロセスとハードウェア
sksat
26
7.8k
大学生でもできる!ハイブリッドロケット入門
sksat
0
1.5k
Other Decks in Programming
See All in Programming
テストコード書いてみませんか?
onopon
2
220
Zoneless Testing
rainerhahnekamp
0
120
Effective Signals in Angular 19+: Rules and Helpers
manfredsteyer
PRO
0
130
オニオンアーキテクチャを使って、 Unityと.NETでコードを共有する
soi013
0
150
良いユニットテストを書こう
mototakatsu
10
3.2k
ある日突然あなたが管理しているサーバーにDDoSが来たらどうなるでしょう?知ってるようで何も知らなかったDDoS攻撃と対策 #phpcon.2024
akase244
2
6.6k
毎日13時間もかかるバッチ処理をたった3日で60%短縮するためにやったこと
sho_ssk_
1
390
生成AIでGitHubソースコード取得して仕様書を作成
shukob
0
540
GitHubで育つ コラボレーション文化 : ニフティでのインナーソース挑戦事例 - 2024-12-16 GitHub Universe 2024 Recap in ZOZO
niftycorp
PRO
0
230
menu基盤チームによるGoogle Cloudの活用事例~Application Integration, Cloud Tasks編~
yoshifumi_ishikura
0
110
テストコードのガイドライン 〜作成から運用まで〜
riku929hr
5
1k
競技プログラミングへのお誘い@阪大BOOSTセミナー
kotamanegi
0
360
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
182
21k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
KATA
mclloyd
29
14k
Building Applications with DynamoDB
mza
91
6.1k
Code Reviewing Like a Champion
maltzj
521
39k
GraphQLとの向き合い方2022年版
quramy
44
13k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Facilitating Awesome Meetings
lara
50
6.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.1k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
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向けにビルド