このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
Orbit Propagator ブロックによるコンスタレーション モデリング
この例では、衛星のコンスタレーションの軌道を伝播し、個々の衛星と複数の地上局間のアクセス間隔を計算して視覚化する方法を示します。それは使用しています:
Aerospace Blockset ™
Orbit Propagator
ブロックAerospace Toolbox
satelliteScenario
オブジェクト
Aerospace Toolbox satelliteScenario
オブジェクトを使用すると、以前に生成されたタイムスタンプ付きのエフェメリス データを、timeseries オブジェクトまたは timetable オブジェクトからシナリオに読み込むことができます。データはシナリオ オブジェクト内で補間され、シナリオの時間ステップに合わせて調整されるため、Simulink ® モデルで生成されたデータを新しい satelliteScenario
オブジェクトまたは既存の satelliteScenario
オブジェクトに組み込むことができます。この例では、Aerospace Blockset Orbit Propagator
ブロックを使用して Simulink の衛星のコンスタレーションを伝播し、ログに記録されたエフェメリス データをアクセス分析のために satelliteScenario
オブジェクトにロードする方法を示します。
ミッションパラメータとコンスタレーションの初期条件を定義する
ミッションの開始日と期間を指定します。この例では、MATLAB ® 構造を使用してミッション データを整理します。これらの構造により、例の後半でのデータへのアクセスがより直感的になります。また、グローバル ベース ワークスペースの整理にも役立ちます。
mission.StartDate = datetime(2020, 11, 30, 22, 23, 24); mission.Duration = hours(24);
この例のコンスタレーションは、ヨーロッパの GNSS (全地球航法衛星システム) コンスタレーションである Galileo に似たモデル化された Walker-Delta コンスタレーションです。このコンスタレーションは中軌道(MEO)にある 24 個の衛星で構成されています。
Walker-Delta コンスタレーションでは次の表記法を使用します。
ここで、
傾向
衛星の総数
等間隔の幾何学的平面の数
隣接面の衛星間の間隔
Walker-Delta コンスタレーションは、ミッションの遂行に必要な衛星の数を最小限に抑えながら、地球上の幾何学的カバレッジを最大化するための一般的なソリューションです。ガリレオ航法システムは、29599.8 km の軌道上にあるWalker-Delta コンスタレーション (56 度傾斜した 3 つの平面に 24 個の衛星) です。
mission.StartDate
のコンスタレーションのケプラー軌道要素を指定します。
mission.Satellites.SemiMajorAxis = 29599.8e3 * ones(24,1); % meters mission.Satellites.Eccentricity = 0.0005 * ones(24,1); mission.Satellites.Inclination = 56 * ones(24,1); % deg mission.Satellites.ArgOfPeriapsis = 350 * ones(24,1); % deg
Walker-Delta コンスタレーションの軌道面の昇交点は、赤道の周りに 間隔で均一に分布しています。1 平面あたりの衛星数 S は で与えられます。合計 24 個の衛星があるため、赤道の周りに 120 度間隔で 8 個の衛星が 3 つの平面に配置されることになります。各軌道面上の衛星は、、つまり 45 度の間隔で分布しています。
mission.Satellites.RAAN = sort(repmat([0 120 240], 1,8))'; % deg mission.Satellites.TrueAnomaly = repmat(0:45:315, 1,3)'; % deg
最後に、隣接する軌道面間の相対的な角度シフトを考慮します。位相差は 、つまりこの場合は 15 度として表されます。
mission.Satellites.TrueAnomaly(9:16) = mission.Satellites.TrueAnomaly(9:16) + 15; mission.Satellites.TrueAnomaly(17:24) = mission.Satellites.TrueAnomaly(17:24) + 30;
コンスタレーション ノードをテーブルに表示します。
ConstellationDefinition = table(mission.Satellites.SemiMajorAxis, ... mission.Satellites.Eccentricity, ... mission.Satellites.Inclination, ... mission.Satellites.RAAN, ... mission.Satellites.ArgOfPeriapsis, ... mission.Satellites.TrueAnomaly, ... 'VariableNames', ["a (m)", "e", "i (deg)", "Ω (deg)", "ω (deg)", "ν (deg)"])
ConstellationDefinition=24×6 table
a (m) e i (deg) Ω (deg) ω (deg) ν (deg)
________ ______ _______ _______ _______ _______
2.96e+07 0.0005 56 0 350 0
2.96e+07 0.0005 56 0 350 45
2.96e+07 0.0005 56 0 350 90
2.96e+07 0.0005 56 0 350 135
2.96e+07 0.0005 56 0 350 180
2.96e+07 0.0005 56 0 350 225
2.96e+07 0.0005 56 0 350 270
2.96e+07 0.0005 56 0 350 315
2.96e+07 0.0005 56 120 350 15
2.96e+07 0.0005 56 120 350 60
2.96e+07 0.0005 56 120 350 105
2.96e+07 0.0005 56 120 350 150
2.96e+07 0.0005 56 120 350 195
2.96e+07 0.0005 56 120 350 240
2.96e+07 0.0005 56 120 350 285
2.96e+07 0.0005 56 120 350 330
⋮
軌道伝播モデルを開いて設定する
付属のSimulinkモデルを開きます。このモデルには、出力ポートに接続された Orbit Propagator
ブロックが含まれています。 Orbit Propagator
ブロックはベクトル化をサポートします。これにより、Block Parameters
ウィンドウで初期条件の配列を指定するか、set_param
を使用することで、1 つのブロックで複数の衛星をモデル化できます。モデルには、ダッシュボード Callback button
を含む「ミッション分析と視覚化」セクションも含まれています。このボタンをクリックすると、モデルが実行され、Orbit Propagator
ブロックで定義された衛星またはコンスタレーションを含む新しい satelliteScenario オブジェクトがグローバル ベース ワークスペースに作成され、新しいシナリオの Satellite Scenario Viewer ウィンドウが開きます。このアクションのソース コードを表示するには、コールバック ボタンをダブルクリックします。「ミッション分析と視覚化」セクションは、新しい satelliteScenario オブジェクトを作成するためのスタンドアロン ワークフローであり、この書面による例では使用されません。
mission.mdl = "OrbitPropagatorBlockExampleModel";
open_system(mission.mdl);
モデル内の Orbit Propagator
ブロックへのパスを定義します。
mission.Satellites.blk = mission.mdl + "/Orbit Propagator";
衛星の初期条件を設定します。前のセクションで定義したケプラーの軌道要素セットを割り当てるには、set_param
を使用します。
set_param(mission.Satellites.blk, ... startDate = num2str(juliandate(mission.StartDate)), ... stateFormatNum = "Orbital elements", ... orbitType = "Keplerian", ... semiMajorAxis = "mission.Satellites.SemiMajorAxis", ... eccentricity = "mission.Satellites.Eccentricity", ... inclination = "mission.Satellites.Inclination", ... raan = "mission.Satellites.RAAN", ... argPeriapsis = "mission.Satellites.ArgOfPeriapsis", ... trueAnomaly = "mission.Satellites.TrueAnomaly");
ブロックの位置と速度の出力ポートを、国際地球基準フレーム (ITRF) である地球中心の地球固定フレームを使用するように設定します。
set_param(mission.Satellites.blk, ... centralBody = "Earth", ... outportFrame = "Fixed-frame");
プロパゲーターを構成します。この例では、地球の扁平性を考慮して、衛星軌道計算に 2 次帯状調和摂動を含む Oblate ellipsoid (J2)
プロパゲーターを使用します。
set_param(mission.Satellites.blk, ... propagator = "Numerical (high precision)", ... gravityModel = "Oblate ellipsoid (J2)", ... useEOPs = "off");
set_param
を使用してモデルレベルのソルバー設定を適用します。数値プロパゲーターを使用する場合、最高のパフォーマンスと精度を得るには、可変ステップ ソルバーを使用します。
set_param(mission.mdl, ... SolverType = "Variable-step", ... SolverName = "VariableStepAuto", ... RelTol = "1e-6", ... AbsTol = "1e-7", ... StopTime = string(seconds(mission.Duration)));
モデル出力ポート データを時系列オブジェクトのデータセットとして保存します。
set_param(mission.mdl, ... SaveOutput = "on", ... OutputSaveName = "yout", ... SaveFormat = "Dataset");
モデルを実行して衛星暦を収集する
モデルをシミュレートします。
mission.SimOutput = sim(mission.mdl);
モデル出力データ構造から位置と速度データを抽出します。
mission.Satellites.TimeseriesPosECEF = mission.SimOutput.yout{1}.Values; mission.Satellites.TimeseriesVelECEF = mission.SimOutput.yout{2}.Values;
時系列オブジェクトにミッションの開始データを設定します。
mission.Satellites.TimeseriesPosECEF.TimeInfo.StartDate = mission.StartDate; mission.Satellites.TimeseriesVelECEF.TimeInfo.StartDate = mission.StartDate;
時系列オブジェクトには、24 基すべての衛星の位置と速度のデータが含まれています。
mission.Satellites.TimeseriesPosECEF
timeseries Common Properties: Name: '' Time: [57x1 double] TimeInfo: [1x1 tsdata.timemetadata] Data: [24x3x57 double] DataInfo: [1x1 tsdata.datametadata] More properties, Methods
衛星エフェメリスをsatelliteScenario O
オブジェクトにロードする
分析用の衛星シナリオ オブジェクトを作成します。
scenario = satelliteScenario(mission.StartDate, mission.StartDate + hours(24), 60);
satellite
メソッドを使用して、ECEF の位置と速度の時系列オブジェクトから 24 個の衛星すべてを衛星シナリオに追加します。
sat = satellite(scenario, mission.Satellites.TimeseriesPosECEF, mission.Satellites.TimeseriesVelECEF, ... CoordinateFrame="ecef", Name="GALILEO " + (1:24))
sat = 1x24 Satellite array with properties: Name ID ConicalSensors Gimbals Transmitters Receivers Accesses Eclipse GroundTrack Orbit CoordinateAxes OrbitPropagator MarkerColor MarkerSize ShowLabel LabelFontColor LabelFontSize Visual3DModel Visual3DModelScale
disp(scenario)
satelliteScenario with properties: StartTime: 30-Nov-2020 22:23:24 StopTime: 01-Dec-2020 22:23:24 SampleTime: 60 AutoSimulate: 1 Satellites: [1×24 matlabshared.satellitescenario.Satellite] GroundStations: [1×0 matlabshared.satellitescenario.GroundStation] Viewers: [0×0 matlabshared.satellitescenario.Viewer] AutoShow: 1
衛星のグラフィックプロパティを設定する
各軌道面の衛星が同じ軌道色になるように設定します。
set(sat(1:8), MarkerColor="#FF6929"); set(sat(9:16), MarkerColor="#139FFF"); set(sat(17:24), MarkerColor="#64D413"); orbit = [sat(:).Orbit]; set(orbit(1:8), LineColor="#FF6929"); set(orbit(9:16), LineColor="#139FFF"); set(orbit(17:24), LineColor="#64D413");
シナリオに地上局を追加する
正確な測位データを提供するには、地球上の場所が常にコンスタレーション内の少なくとも 4 つの衛星にアクセスできる必要があります。この例では、3 つの MathWorks ® ロケーションを使用して、1 日間の分析ウィンドウにおける地球のさまざまな地域へのコンスタレーションアクセスの合計を比較します。
アメリカ合衆国マサチューセッツ州ネイティック (42.30048°, -71.34908°)
ミュンヘン、ドイツ (48.23206°, 11.68445°)
インド、バンガロール (12.94448°, 77.69256°)
gsUS = groundStation(scenario, 42.30048, -71.34908, ... MinElevationAngle=10, Name="Natick"); gsUS.MarkerColor = "red"; gsDE = groundStation(scenario, 48.23206, 11.68445, ... MinElevationAngle=10, Name="Munchen"); gsDE.MarkerColor = "red"; gsIN = groundStation(scenario, 12.94448, 77.69256, ... MinElevationAngle=10, Name="Bangalore"); gsIN.MarkerColor = "red"; figure geoscatter([gsUS.Latitude gsDE.Latitude gsIN.Latitude], ... [gsUS.Longitude gsDE.Longitude gsIN.Longitude], "red", "filled") geolimits([-75 75], [-180 180]) title("Ground Stations")
地上局から衛星へのアクセス(見通し線可視性)を計算する
access
メソッドを使用して、地上局と各衛星間の見通しアクセスを計算します。
accessUS = access(gsUS, sat); accessDE = access(gsDE, sat); accessIN = access(gsIN, sat);
例の前のほうで割り当てた軌道面の色と一致するようにアクセス カラーを設定します。
set(accessUS, LineWidth="1"); set(accessUS(1:8), LineColor="#FF6929"); set(accessUS(9:16), LineColor="#139FFF"); set(accessUS(17:24), LineColor="#64D413"); set(accessDE, LineWidth="1"); set(accessDE(1:8), LineColor="#FF6929"); set(accessDE(9:16), LineColor="#139FFF"); set(accessDE(17:24), LineColor="#64D413"); set(accessIN, LineWidth="1"); set(accessIN(1:8), LineColor="#FF6929"); set(accessIN(9:16), LineColor="#139FFF"); set(accessIN(17:24), LineColor="#64D413");
各地上局とコンスタレーション内のすべての衛星間の完全なアクセス テーブルをテーブルとして表示します。アクセス間隔を間隔開始時刻で並べ替えます。エフェメリス データから追加された衛星では、StartOrbit と Stop orbit の値が表示されません。
intervalsUS = accessIntervals(accessUS); intervalsUS = sortrows(intervalsUS, "StartTime", "ascend")
intervalsUS=40×8 table
Source Target IntervalNumber StartTime EndTime Duration StartOrbit EndOrbit
________ ____________ ______________ ____________________ ____________________ ________ __________ ________
"Natick" "GALILEO 1" 1 30-Nov-2020 22:23:24 01-Dec-2020 04:04:24 20460 NaN NaN
"Natick" "GALILEO 2" 1 30-Nov-2020 22:23:24 01-Dec-2020 01:24:24 10860 NaN NaN
"Natick" "GALILEO 3" 1 30-Nov-2020 22:23:24 30-Nov-2020 22:57:24 2040 NaN NaN
"Natick" "GALILEO 12" 1 30-Nov-2020 22:23:24 01-Dec-2020 00:00:24 5820 NaN NaN
"Natick" "GALILEO 13" 1 30-Nov-2020 22:23:24 30-Nov-2020 23:05:24 2520 NaN NaN
"Natick" "GALILEO 18" 1 30-Nov-2020 22:23:24 01-Dec-2020 04:00:24 20220 NaN NaN
"Natick" "GALILEO 19" 1 30-Nov-2020 22:23:24 01-Dec-2020 01:42:24 11940 NaN NaN
"Natick" "GALILEO 20" 1 30-Nov-2020 22:23:24 30-Nov-2020 22:46:24 1380 NaN NaN
"Natick" "GALILEO 11" 1 30-Nov-2020 22:25:24 01-Dec-2020 00:18:24 6780 NaN NaN
"Natick" "GALILEO 17" 1 30-Nov-2020 22:50:24 01-Dec-2020 05:50:24 25200 NaN NaN
"Natick" "GALILEO 8" 1 30-Nov-2020 23:20:24 01-Dec-2020 07:09:24 28140 NaN NaN
"Natick" "GALILEO 7" 1 01-Dec-2020 01:26:24 01-Dec-2020 10:00:24 30840 NaN NaN
"Natick" "GALILEO 24" 1 01-Dec-2020 01:40:24 01-Dec-2020 07:12:24 19920 NaN NaN
"Natick" "GALILEO 14" 1 01-Dec-2020 03:56:24 01-Dec-2020 07:15:24 11940 NaN NaN
"Natick" "GALILEO 6" 1 01-Dec-2020 04:05:24 01-Dec-2020 12:14:24 29340 NaN NaN
"Natick" "GALILEO 23" 1 01-Dec-2020 04:10:24 01-Dec-2020 08:03:24 13980 NaN NaN
⋮
intervalsDE = accessIntervals(accessDE); intervalsDE = sortrows(intervalsDE, "StartTime", "ascend")
intervalsDE=40×8 table
Source Target IntervalNumber StartTime EndTime Duration StartOrbit EndOrbit
_________ ____________ ______________ ____________________ ____________________ ________ __________ ________
"Munchen" "GALILEO 2" 1 30-Nov-2020 22:23:24 01-Dec-2020 04:34:24 22260 NaN NaN
"Munchen" "GALILEO 3" 1 30-Nov-2020 22:23:24 01-Dec-2020 01:58:24 12900 NaN NaN
"Munchen" "GALILEO 4" 1 30-Nov-2020 22:23:24 30-Nov-2020 23:05:24 2520 NaN NaN
"Munchen" "GALILEO 10" 1 30-Nov-2020 22:23:24 30-Nov-2020 23:58:24 5700 NaN NaN
"Munchen" "GALILEO 19" 1 30-Nov-2020 22:23:24 01-Dec-2020 01:36:24 11580 NaN NaN
"Munchen" "GALILEO 20" 1 30-Nov-2020 22:23:24 01-Dec-2020 00:15:24 6720 NaN NaN
"Munchen" "GALILEO 21" 1 30-Nov-2020 22:23:24 30-Nov-2020 22:28:24 300 NaN NaN
"Munchen" "GALILEO 9" 1 30-Nov-2020 22:34:24 01-Dec-2020 02:22:24 13680 NaN NaN
"Munchen" "GALILEO 18" 1 30-Nov-2020 22:41:24 01-Dec-2020 02:31:24 13800 NaN NaN
"Munchen" "GALILEO 1" 1 30-Nov-2020 23:05:24 01-Dec-2020 06:42:24 27420 NaN NaN
"Munchen" "GALILEO 16" 1 30-Nov-2020 23:29:24 01-Dec-2020 04:47:24 19080 NaN NaN
"Munchen" "GALILEO 15" 1 01-Dec-2020 00:50:24 01-Dec-2020 07:27:24 23820 NaN NaN
"Munchen" "GALILEO 17" 1 01-Dec-2020 01:05:24 01-Dec-2020 03:00:24 6900 NaN NaN
"Munchen" "GALILEO 8" 1 01-Dec-2020 01:57:24 01-Dec-2020 08:25:24 23280 NaN NaN
"Munchen" "GALILEO 14" 1 01-Dec-2020 02:36:24 01-Dec-2020 10:19:24 27780 NaN NaN
"Munchen" "GALILEO 7" 1 01-Dec-2020 04:35:24 01-Dec-2020 09:43:24 18480 NaN NaN
⋮
intervalsIN = accessIntervals(accessIN); intervalsIN = sortrows(intervalsIN, "StartTime", "ascend")
intervalsIN=31×8 table
Source Target IntervalNumber StartTime EndTime Duration StartOrbit EndOrbit
___________ ____________ ______________ ____________________ ____________________ ________ __________ ________
"Bangalore" "GALILEO 3" 1 30-Nov-2020 22:23:24 01-Dec-2020 05:12:24 24540 NaN NaN
"Bangalore" "GALILEO 4" 1 30-Nov-2020 22:23:24 01-Dec-2020 02:59:24 16560 NaN NaN
"Bangalore" "GALILEO 5" 1 30-Nov-2020 22:23:24 01-Dec-2020 00:22:24 7140 NaN NaN
"Bangalore" "GALILEO 9" 1 30-Nov-2020 22:23:24 01-Dec-2020 03:37:24 18840 NaN NaN
"Bangalore" "GALILEO 10" 1 30-Nov-2020 22:23:24 01-Dec-2020 00:09:24 6360 NaN NaN
"Bangalore" "GALILEO 16" 1 30-Nov-2020 22:23:24 01-Dec-2020 08:44:24 37260 NaN NaN
"Bangalore" "GALILEO 21" 1 30-Nov-2020 22:23:24 30-Nov-2020 23:25:24 3720 NaN NaN
"Bangalore" "GALILEO 22" 1 30-Nov-2020 22:23:24 30-Nov-2020 22:58:24 2100 NaN NaN
"Bangalore" "GALILEO 15" 1 01-Dec-2020 00:17:24 01-Dec-2020 11:16:24 39540 NaN NaN
"Bangalore" "GALILEO 2" 1 01-Dec-2020 00:25:24 01-Dec-2020 07:10:24 24300 NaN NaN
"Bangalore" "GALILEO 22" 2 01-Dec-2020 00:48:24 01-Dec-2020 05:50:24 18120 NaN NaN
"Bangalore" "GALILEO 21" 2 01-Dec-2020 01:32:24 01-Dec-2020 08:29:24 25020 NaN NaN
"Bangalore" "GALILEO 1" 1 01-Dec-2020 03:06:24 01-Dec-2020 07:17:24 15060 NaN NaN
"Bangalore" "GALILEO 20" 1 01-Dec-2020 03:36:24 01-Dec-2020 12:38:24 32520 NaN NaN
"Bangalore" "GALILEO 14" 1 01-Dec-2020 05:48:24 01-Dec-2020 13:29:24 27660 NaN NaN
"Bangalore" "GALILEO 19" 1 01-Dec-2020 05:53:24 01-Dec-2020 17:06:24 40380 NaN NaN
⋮
衛星シナリオを見る
シナリオの 3D ビューアー ウィンドウを開きます。ビューアー ウィンドウには、この例で前に定義した 24 個の衛星と 3 つの地上局がすべて表示されます。各地上局と衛星の間には、対応するアクセス間隔中に線が引かれます。ShowDetails
の名前と値のペアを false
に設定して、衛星と地上局の詳細を非表示にします。衛星の軌道と地上局の位置のラベルを表示します。
viewer3D = satelliteScenarioViewer(scenario, ShowDetails=false); show(sat.Orbit); gsUS.ShowLabel = true; gsUS.LabelFontSize = 11; gsDE.ShowLabel = true; gsDE.LabelFontSize = 11; gsIN.ShowLabel = true; gsIN.LabelFontSize = 11;
地上局間のアクセスを比較する
accessStatus メソッドを使用して、各衛星と地上局間のアクセス ステータスを計算します。出力配列の各行は、コンスタレーション内の衛星に対応します。各列はシナリオ内の時間ステップに対応します。True
の値は、衛星がその特定の時間サンプルで航空機にアクセスできることを示します。accessStatus
の 2 番目の出力には、シナリオの時間ステップが含まれます。1 日間の分析期間にわたって各地上局の累積アクセスをプロットします。
[statusUS, timeSteps] = accessStatus(accessUS); statusDE = accessStatus(accessDE); statusIN = accessStatus(accessIN); % Sum cumulative access at each timestep statusUS = sum(statusUS, 1); statusDE = sum(statusDE, 1); statusIN = sum(statusIN, 1); subplot(3,1,1); stairs(timeSteps, statusUS); title("Natick to GALILEO") ylabel("# of satellites") subplot(3,1,2); stairs(timeSteps, statusDE); title("München to GALILEO") ylabel("# of satellites") subplot(3,1,3); stairs(timeSteps, statusIN); title("Bangalore to GALILEO") ylabel("# of satellites")
比較のために、各地上局のアクセス間隔メトリックを表に収集します。
statusTable = [table(height(intervalsUS), height(intervalsDE), height(intervalsIN)); ... table(sum(intervalsUS.Duration)/3600, sum(intervalsDE.Duration)/3600, sum(intervalsIN.Duration)/3600); ... table(mean(intervalsUS.Duration/60), mean(intervalsDE.Duration/60), mean(intervalsIN.Duration/60)); ... table(mean(statusUS, 2), mean(statusDE, 2), mean(statusIN, 2)); ... table(min(statusUS), min(statusDE), min(statusIN)); ... table(max(statusUS), max(statusDE), max(statusIN))]; statusTable.Properties.VariableNames = ["Natick", "München", "Bangalore"]; statusTable.Properties.RowNames = ["Total # of intervals", "Total interval time (hrs)",... "Mean interval length (min)", "Mean # of satellites in view", ... "Min # of satellites in view", "Max # of satellites in view"]; statusTable
statusTable=6×3 table
Natick München Bangalore
______ _______ _________
Total # of intervals 40 40 31
Total interval time (hrs) 167.88 169.95 180.42
Mean interval length (min) 251.82 254.93 349.19
Mean # of satellites in view 7.018 7.1041 7.5337
Min # of satellites in view 5 5 5
Max # of satellites in view 9 10 9
Walker-Delta コンスタレーションは経度にわたって均等に分布しています。ネイティックとミュンヘンは同様の緯度に位置しているため、コンスタレーションに関して非常に類似したアクセス特性を持っています。バンガロールは赤道に近い緯度にあり、個々のアクセス間隔の数が少ないにもかかわらず、視野内の衛星の平均数が最も多く、全体の間隔時間が最も長く、平均間隔期間が最も長い(約 95 分)都市です。GNSS 三辺測量に必要なように、すべての場所には常に少なくとも 4 つの衛星が視野内にあります。
参考文献
[1] ワーツ、ジェームズ・R、デイビッド・F・エヴェレット、ジェフリー・J・プシェル。宇宙ミッションエンジニアリング:新しいSmad 。カリフォルニア州ホーソーン:マイクロコズムプレス、2011年。印刷します。
[2] ビーチ、テレサW.、セファニアコルナナ、ミゲルB.モラ。3 つの衛星コンスタレーション設計アルゴリズムの研究。 第 14 回宇宙飛行力学に関する国際シンポジウム、ブラジル、フォス・ド・イグアス、1999 年。
[3] 欧州宇宙機関:ガリレオの事実と数字。https://www.esa.int/Applications/Navigation/Galileo/Facts_and_figures