衛星軌道のJ2昇交点歳差率計算ツール
惑星のふくらみが軌道をゆっくり回す速さが分かります。地球を回る軌道長半径7000キロメートル、傾き98度の軌道では、昇交点が1日に約1度ずつ進みます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 半長軸
- 7,000
- 離心率
- 0.001
- 軌道傾斜角(度)
- 98
- J2
- 0.0010826267
- 天体の半径
- 6,378.137
- 昇交点歳差率(rad/s)
- 0.0000002023
- 昇交点歳差率(°/日)
- 1.0013270925
- 平均運動(rad/s)
- 0.0010780076
- 半直弦
- 6,999.993
このJ2昇交点歳差率計算ツールは、中心天体の扁平によって生じる昇交点の永年ドリフトを推定します。軌道長半径、離心率、赤道面基準の軌道傾斜角、J2係数、赤道半径を入力してください。標準的な一次平均摂動モデルを用い、結果をラジアン毎秒と度毎日で返します。地球の重力パラメータが初期値ですが、別の値を指定すれば他の扁平天体にも同じ決定論的な計算を適用できます。
軌道と中心天体の単位をそろえてください
メートルを使う場合は立方メートル毎秒二乗にしてください。初期値はキロメートル系で表した地球の値です。軌道傾斜角は、黄道面や任意のミッション基準面ではなく、中心天体の赤道面から測った度数で入力します。
離心率は無次元で、ゼロ以上一未満の楕円軌道に限ります。J2も無次元で、扁平な惑星では通常正の値です。軌道長半径は中心から測る距離であり、表面高度ではありません。
ほぼ円形の低軌道なら、概算高度に天体半径を加えて長半径を見積もれます。ゼロ以下の長半径は、このモデルが必要とする楕円軌道を表せないためエラーになります。
一次J2計算の内容をご確認ください
最初に、重力パラメータを軌道長半径の三乗で割った値の平方根から平均運動を求めます。次に、半通径pを、aに一から離心率の二乗を引いた値を掛けて算出します。昇交点の永年変化率は、マイナス三を二で割った係数に、J2、平均運動、天体半径とpの比の二乗、軌道傾斜角の余弦を掛けた値です。
これは昇交点赤経に対する標準的な軌道平均一次解です。符号にも物理的な意味があります。九十度未満の順行軌道では通常負の退行となり、九十度を超える逆行軌道では通常正になります。
厳密な極軌道では理想的な一次項はほぼゼロです。応答には二種類の変化率、平均運動、半通径が含まれ、計算内容を確認できます。
近似モデルの適用範囲内でご利用ください
この結果は永年変化の設計用推定値であり、完全な数値軌道伝播ではありません。式はJ2摂動を一周で平均し、短周期振動、高次の球面調和項、第三天体重力、大気抵抗、太陽放射圧、潮汐、天体自体の歳差、軌道変更を含みません。太陽同期軌道の初期検討、軌道傾斜角の比較、軌道面回転の概算、別実装の検証に適しています。
太陽同期設計では、度毎日の大きさと符号を、採用する規約で必要な太陽の見かけの年周運動と比較し、その後に高精度伝播で詳細化してください。データの定義を確認せず平均要素と接触要素を混在させないでください。精度が重要なら、同一基準系の定数をお使いください。
活用例
太陽同期軌道を概算する
候補となる高度と傾斜角について、予測されるJ2昇交点ドリフトの符号と大きさを比較できます。
中心天体による違いを調べる
整合するJ2、半径、重力パラメータを指定し、理想化した扁平天体の効果を比較できます。
よくある質問
どの式を使用していますか?
一次の永年J2式を使用します。マイナス三を二で割った係数にJ2、平均運動、赤道半径と半通径の比の二乗、傾斜角の余弦を掛けます。
多くの順行軌道で負になるのはなぜですか?
九十度未満では余弦が正なので、先頭の負号により昇交点が西向きに退行するためです。
軌道長半径の代わりに高度を入力できますか?
できません。 中心から測った軌道長半径をご入力ください。ほぼ円軌道なら、高度に天体半径を加えると概算できます。
どの単位を使えばよいですか?
軌道長半径と天体半径は同じ長さ単位にし、重力パラメータはその長さの三乗毎秒二乗にしてください。地球の初期値はキロメートル系です。
数値軌道伝播の代わりになりますか?
なりません。 これは一次平均J2推定であり、高次項、大気抵抗、第三天体、放射圧、軌道変更、短周期効果を省略しています。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/astro/nodal-regression-rate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"semi_major_axis":7000,"eccentricity":0.001,"inclination_degrees":98,"j2":0.00108262668,"body_radius":6378.137}'const res = await fetch("https://api.kit.forhosting.com/astro/nodal-regression-rate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"semi_major_axis": 7000,
"eccentricity": 0.001,
"inclination_degrees": 98,
"j2": 0.00108262668,
"body_radius": 6378.137
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/astro/nodal-regression-rate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"semi_major_axis": 7000,
"eccentricity": 0.001,
"inclination_degrees": 98,
"j2": 0.00108262668,
"body_radius": 6378.137
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/astro/nodal-regression-rate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"semi_major_axis":7000,"eccentricity":0.001,"inclination_degrees":98,"j2":0.00108262668,"body_radius":6378.137}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"semi_major_axis":7000,"eccentricity":0.001,"inclination_degrees":98,"j2":0.00108262668,"body_radius":6378.137}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/astro/nodal-regression-rate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"semi_major_axis": 7000,
"eccentricity": 0.001,
"inclination_degrees": 98,
"j2": 0.00108262668,
"body_radius": 6378.137
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "astro.nodal_regression_rate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
軌道と中心天体の単位をそろえてください
semi_major_axis と body_radius には同じ長さの単位をお使いください。両方をキロメートルで指定する場合、gravitational_parameter は立方キロメートル毎秒二乗で指定します。
近似モデルの適用範囲内でご利用ください
ブラウザーとAPIは同じ純粋な計算を実行し、APIの成功一件あたり$0.002です。不正な入力にはinvalid_inputを返します。
連携の活用例
飛行力学ソフトウェアを検証する
決定論的な一次結果を、軌道解析ライブラリの回帰テスト用基準値として利用できます。