皆様,ご無沙汰しております!
STEP元機体班シミュ担当の人です。
うちのCFD担当からシミュレータについてブログで書けとのお達しが来たため,筆をとっている次第でございます。
以前まで弊団体はICGという,Excelシートでシミュレーションをしていました。
↓若かりし頃のCFD担当のブログ。
https://ameblo.jp/tsukuba-step/entry-12359397745.html
ICGと格闘していた,そんな時期もありましたね。
今では懐かしく感じます。。
さて,話を戻しましてこのICG何かと問題があり(ロケットの3次元運動を2次元運動に近似?して計算していたなど)団体内外部からいろいろ言われていたりしたのですが,使ってる側としての問題点は以下の2つ。
- 使いづらい ex. セルが足りなくなったら4シート分拡張したり,風速変えるのが手動だったりetc.
- 計算が遅い。シミュレーション中Excelが非常に重くなる。確か当時の記憶だと弾道の落下分散計算するだけでも20分ぐらいしたような。。。
もうExcelでシミュレーションはやらない,心にそう誓いました。
そんなこんなでICGではやってられん,ということで全く新しいシミュレータの作成を開始しました。
開発は2019大島あたりからぼちぼち進めてたけど,そういえばSNSとかでは一切触れてなくていい機会なので軽く説明。
言語
Java。
(学生団体でJavaでシミュレータ書いてるのOpenRocket除いたらうちだけ?python,matlabあたりが多数派な印象)
Javaで書いてるのでまあまあ計算は速い方だと思います。
700 mクラスの機体なら1仰角当たり,弾道・減速の計算結果合わせて約35秒で落下分散の計算が終わる。[注]
計算時間に関しては数あるシミュレータの中でもトップクラスに速い気がします(少なくともpythonで書かれているシミュレータよりは圧倒的に高速)。
モータ・タンクモデル
液体酸化剤,固体燃料はそれぞれ時間当たりの質量変化率が一定であるとして計算。
- タンク : 液体酸化剤は円柱近似で慣性モーメント,重心などを求める。スロッシングの影響は無視。
- モータ : 円筒近似で慣性モーメントを計算
座標系
- ENU座標系 : 地上固定座標系として使用(ENU座標系は原点を機体重心にとるので厳密には間違ってる。原点を発射点にとり座標軸の向きをENU座標系に合わせてる)
- 機体軸系 : 機体にかかる力を計算するときに使用。空気力は軸力・法線力の機体軸系で分解。
- 推力 : 圧力推力項を考慮している。
- 空気力
- 軸力
- 法線力
- 横力
- 重力
- 空力モーメント : 重心から圧力中心までのモーメントの腕と空気力の外積
- 減衰モーメント
- 空力的な減衰モーメント
- ジェット・ダンピングモーメント
- ジャイロモーメント : Pitch, Yawの慣性モーメントが同じかつRoll軸回りの回転運動が発生しないため,実質計算に影響しない。
- チップオフ : チップオフ前までは機軸方向の力のみ計算。回転運動はしない。
- ランチクリア : チップオフ後はYaw軸回りの回転運動のみ許容。
- 弾道飛行
- 減速落下 : 地面鉛直方向の運動方程式,位置の微分方程式のみ解いている。開傘後は風下に流されると仮定し,水平方向の速度は風速と同じ。
- 4次Runge-Kutta:最初の3step分のみ計算
- 予測子・修正子法:Runge-Kuttaよりも計算が高速なので,4step以降はこれで計算
実験結果との比較
シミュレータ完成後にまともに飛翔したのがBlueROSEしかないので,BlueROSEとの比較をします。
といってもBlueROSEから得られた結果が弾道時の飛翔時間しかないため,飛翔時間のみの比較となりますが。
当日の気象条件などに合わせて再度シミュレーションを行ったところ,シミュレータでは63 s, 実際の飛翔時間は65 sとなっていました。
この結果から,少なくとも飛翔時間に関してはある程度妥当性があるのではないかと考えています。
--------------------------------------------------------------------------------------
著者変わってCFDの人です。
彼曰く徹夜状態でこの数時間でこれを書いたらしいんですが,
はっきり言って変態ですね……(何も分からない顔
あと,人の過去を張り付けるのは止めようね
このプログラム,GitHub上に上がっているので,
共有しようと思ったらすぐにできるんですけどね,しないんですか???????
まあ,その前にREADMEを調整して,アカウント名変えないといけないですが。
StepSimっていうアカウント名にしているんですが,STEPはSTEPであってStepではないんですよね……
まじで誰がアカウント作ったんだ(((((
まー自分は環境の構築を手伝ったぐらいなもので,ほぼほぼ彼の実績もんですよ。
あと,自分はCFDに偏重しすぎて,構造の知識は皆無だったので
その辺り,シミュと構造の間のコミュニケーションがとれたのは彼のおかげですね,結構感謝してます。
てなわけで,最近更新のなかったSTEPですが,
ちゃんと活動していますので--今は能代に向けて開発中ですね,
応援のほどよろしくお願い致します。
[注]
PCスペック書いてないじゃないですか。動作環境は次の通りですね。
CPU : core i3-7020U
RAM : 4GB
(割とありふれたスペックだと思います)
プログラム自体はシングルスレッド実装ですね