(注意) このプログラムは開発中です!!
筑波大学「結」プロジェクトが開発中の次世代CubeSat "ITF-3"のための姿勢制御シミュレーターです。
本シミュレータのモジュールは、「環境部」と「衛星部」に大別されます。「環境部」では、外乱や衛星のダイナミクス、軌道やセンサ・アクチュエータのモデルを計算しています。「衛星部」では、姿勢決定、及び姿勢制御のアルゴリズムなど、衛星内部での計算をモデル化しています。シミュレータのフローチャートは"readme_fig.jpg"を参照してください。
モジュール | 完成予定 |
---|---|
要求分析 | 2019年10月 |
仕様決定 | 2019年11月 |
軌道計算部門開発 | 2019年12月 |
衛星内環境部門開発 | 2020年2月 |
衛星外環境部門開発 | 2020年2月 |
衛星ダイナミクス開発 | 2020年2月 |
技術書典向け執筆 | 2020年2月 |
可視化開発 | 2020年3月 |
衛星部門開発 | 2020年5月 |
開発完了 | 2020年7月 |
- main.jlが全てを呼び出す
- モジュール内では、orbit.jl、 static_model.jl、dynamic_model.jl、dynamics.jl、satellite.jlが全てを呼び出す。
- main_light.jl は、計算済みの軌道情報を格納してあるHDF5ファイルを呼び出して実行
- 衛星の状態を次のあらゆるパラメータは、常にmain.jlが保持する
- 時刻
- 衛星の位置、速度、角速度、(加速度)
- DCM
main.jl
|- orbit:軌道計算
|- external_model:衛星外環境
|- internal_mode:衛星内環境
|- dynamics:衛星ダイナミクス
|- stellite:衛星モデル
|- figs:出力画像
|- plot:"plot"と"Makie"によるplot関数群
- 基本的に時刻はDateTime型で管理する。必要に応じてDate型やユリウス通日に変換。
6つの座標系(Jaxa 人工衛星の力学と制御:宇宙機ダイナミクス・姿勢制御技術ユニット参照)
- 太陽中心黄道面基準慣性座標系(SEEcF?, heliocentric?) 太陽を中心として、秋分点方向をx軸とし、地球軌道面に垂直上向きにz軸を取った座標系。英語では、Galactic coordinate systemと書かれる。
- 地球中心黄道面基準慣性座標系(ECEcF?) 英語では、Ecliptic coordinate systemと書かれる。
- 地球中心赤道面基準慣性座標系(ECI) Earth-Centered Inertial。Geocentric equatorial coordinatesとも。
- 地球中心赤道面基準地球固定座標系(ECEF) 地球中心から、緯度0度、経度0の方向にx軸を、北極にz軸を取った座標系。Earth-Centered, Earth-Fixed。プログラム上基準となる座標系。
- 軌道座標系(SEOF?) 進行方向をx軸、地球中心をz軸とする座標系。
- 衛星座標系(SCSF?) 英語では、Satellite Coordinatesと書かれる。←ほんまか?
- geodetic座標系(geodetic) 衛星の位置を緯度,経度,高度で表す座標系。主にECEF→geodeticで衛星の高度を求める。
- コーディング規約PEP8に則る。と思ってたが、ファイル名命名規則だけ変更!
ただし、固有名詞はこの限りではない。(例えばDCMとか)
- 変数名、関数名は小文字とアンダースコア(val_num)
- クラス名は先頭大文字パスカルケース(HogeClass)
- 定数名は全て大文字とアンダースコア(CONST_HOGE)
ファイル名は全て小文字、アンダースコアなし(hogemodel)- ファイル名は全て小文字、アンダースコア(hoge_model)
- dockstringをできるだけ記述する。以下、例。
"""
static_model(datetime,r_ecef)
静的環境モデルに関わる全ての計算
## Arguments
- `datetime`: 時刻
- `r_ecef`: 衛星位置
## Returns
- `sun_vec`: 太陽方向ベクトル
- `shot_vec`: 撮影地点方向ベクトル
- `mag_vec`: 地磁場方向ベクトル
- `atoms_dens`: 大気密度スカラー
"""
function static_model(datetime,r_ecef)
hogehoge
return mag_vel, sun_vec, atoms_dens
end
軌道計算には、軌道モデルのダウンロードが必要であるため、オンラインである必要があります。 main_light.jlは、計算済みの軌道データが格納されたHDF5ファイルを読み込んでおり軌道計算は行わないので、オフラインで実行可能です。また、ちょっと早く実行できます。
git pull
- コードをごにょごにょ編集
git add -A
git commit -m "Message"
git push
- ブランチを切る元になるブランチに移動する(例:
git branch master
) - 新しいローカルブランチを作る(
git checkout -b new-branch
) - 新しく作ったブランチをリモート (GtiHub) に反映させる (
git push
)