Моделирование созвездия с блоком распространителя орбиты

Этот пример показывает, как распространить орбиты созвездия спутников и вычислить и визуализировать интервалы доступа между отдельными спутниками и несколькими наземными станциями. Он использует:

  • Aerospace Blockset Orbit Propagator блок

  • Aerospace Toolbox satelliteScenario объект

Aerospace Toolbox satelliteScenario позволяет вам загрузить ранее сгенерированные эфемеридные данные с отметкой времени в сценарий из timeseries или объекта timetable. Данные интерполируются в объект сценария, чтобы соответствовать временным шагам сценария, что позволяет включать данные, сгенерированные в модели Simulink, в новый или существующий satelliteScenario объект. В этом примере показано, как распространить созвездие спутников в Simulink с помощью Aerospace Blockset Orbit Propagator блокируйте, и загружайте записанные эфемеридные данные в satelliteScenario объект для анализа доступа.

Задайте параметры миссии и начальные условия созвездия

Укажите дату и длительность начала миссии. Этот пример использует структуры MATLAB для организации данных миссии. Эти структуры делают доступ к данным позже в примере более интуитивно понятным. Они также помогают объявить глобальное базовое рабочее пространство.

mission.StartDate = datetime(2020, 11, 30, 22, 23, 24);
mission.Duration  = hours(24);

Созвездие в этом примере является созвездием Walker-Delta, смоделированным аналогично созвездию ESA Galileo GNSS (Глобальная навигационная спутниковая система). Созвездие состоит из 24 спутников на средней околоземной орбите (MEO).

Созвездия Уокера-Дельты используют обозначение:

i:T/P/F

где

i= склонность

T= общее количество спутников

P= количество одинаково пространственных геометрических плоскостей

F= интервалы между спутниками в смежных плоскостях

Созвездия Уокер-Дельта являются общим решением для максимального геометрического покрытия Земли при минимизации количества спутников, необходимых для выполнения миссии. Навигационная система Galileo является Walker-Delta 56:24/3/1 созвездие (24 спутника в 3 плоскостях, наклоненных под углом 56 степени) на орбите 23 222 км.

Задайте орбитальные элементы Кеплера для созвездия в mission.StartDate.

mission.Satellites.SemiMajorAxis  = 23222e3 * 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

Восходящие узлы орбитальных плоскостей созвездия Уокера-Дельты равномерно распределены с интервалами 360P вокруг экватора. Количество спутников на самолет, S, задается как S=TP. С 24 спутниками всего, это приводит к 3 плоскостям из 8 спутников с 120 градусными интервалами вокруг экватора. Спутники в каждой орбитальной плоскости распределены с интервалами 360Sили 45 степени.

mission.Satellites.RAAN               = sort(repmat([0 120 240], 1,8))'; % deg
mission.Satellites.TrueAnomaly        = repmat(0:45:315, 1,3)'; % deg

Наконец, учитывайте относительный угловой сдвиг между смежными орбитальными плоскостями. Различие фаз задаётся как Δϕ=F*360Tили 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.3222e+07    0.0005      56           0        350          0  
    2.3222e+07    0.0005      56           0        350         45  
    2.3222e+07    0.0005      56           0        350         90  
    2.3222e+07    0.0005      56           0        350        135  
    2.3222e+07    0.0005      56           0        350        180  
    2.3222e+07    0.0005      56           0        350        225  
    2.3222e+07    0.0005      56           0        350        270  
    2.3222e+07    0.0005      56           0        350        315  
    2.3222e+07    0.0005      56         120        350         15  
    2.3222e+07    0.0005      56         120        350         60  
    2.3222e+07    0.0005      56         120        350        105  
    2.3222e+07    0.0005      56         120        350        150  
    2.3222e+07    0.0005      56         120        350        195  
    2.3222e+07    0.0005      56         120        350        240  
    2.3222e+07    0.0005      56         120        350        285  
    2.3222e+07    0.0005      56         120        350        330  
      ⋮

Откройте и сконфигурируйте модель распространения орбиты

Откройте включенную модель Simulink. Эта модель содержит Orbit Propagator блок, соединенный с выходными портами. The Orbit Propagator блок поддерживает векторизацию. Это позволяет вам смоделировать несколько спутников в одном блоке путем определения массивов начальных условий в Block Parameters окно или использование set_param. Модель также включает раздел «Анализ и визуализация миссии», который содержит приборную панель Callback button. При нажатии этой кнопки запускает модель, создает новый объект satelliteScenario в глобальном базовом рабочем пространстве, содержащем спутник или созвездие, заданную в Orbit Propagator Блок и открывает окно Средства просмотра Satellite Scenario для нового сценария. Чтобы просмотреть исходный код для этого действия, дважды нажмите кнопку коллбэка. Раздел «Анализ и визуализация миссии» является автономным рабочим процессом для создания нового объекта satelliteScenario и не используется в качестве части этого письменного примера.

mission.mdl = "OrbitPropagatorBlockExampleModel";
open_system(mission.mdl);
snapshotModel(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");

Сконфигурируйте распространитель. Этот пример использует 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;

Установите начальные данные из миссии в объект timeseries.

mission.Satellites.TimeseriesPosECEF.TimeInfo.StartDate = mission.StartDate;
mission.Satellites.TimeseriesVelECEF.TimeInfo.StartDate = mission.StartDate;

Объекты timeseries содержат данные о положении и скорости для всех 24 спутников.

mission.Satellites.TimeseriesPosECEF
  timeseries

  Common Properties:
            Name: ''
            Time: [79x1 double]
        TimeInfo: [1x1 tsdata.timemetadata]
            Data: [24x3x79 double]
        DataInfo: [1x1 tsdata.datametadata]

  More properties, Methods

Загрузите эфемериды спутника в satelliteScenario Object

Создайте объект спутникового сценария для анализа.

scenario = satelliteScenario(mission.StartDate, mission.StartDate + hours(24), 60);

Добавьте все 24 спутника к спутниковому сценарию из положения ECEF и объектов timeseries скорости, используя satellite способ.

sat = satellite(scenario, mission.Satellites.TimeseriesPosECEF, mission.Satellites.TimeseriesVelECEF, ...
    "CoordinateFrame", "ecef", "Name", "GALILEO " + (1:24))
sat = 
  1×24 Satellite array with properties:

    Name
    ID
    ConicalSensors
    Gimbals
    Transmitters
    Receivers
    Accesses
    GroundTrack
    Orbit
    OrbitPropagator
    MarkerColor
    MarkerSize
    ShowLabel
    LabelFontSize
    LabelFontColor

disp(scenario)
  satelliteScenario with properties:

         StartTime: 30-Nov-2020 22:23:24
          StopTime: 01-Dec-2020 22:23:24
        SampleTime: 60
           Viewers: [0×0 matlabshared.satellitescenario.Viewer]
        Satellites: [1×24 matlabshared.satellitescenario.Satellite]
    GroundStations: []
          AutoShow: 1

Установка графических свойств на спутниках

Средства просмотра со многими спутниками могут стать переполненными и трудными для чтения. Чтобы сохранить окно читаемым, мы вручную управляем графическими свойствами элементов сценария.

Скрыть метки спутника и наземные дорожки.

set(sat, "ShowLabel", false);
hide([sat(:).GroundTrack]);

Установите спутники в каждой орбитальной плоскости, чтобы иметь один и тот же цвет орбиты.

set(sat(1:8), "MarkerColor", "red");
set(sat(9:16), "MarkerColor", "blue");
set(sat(17:24), "MarkerColor", "green");
orbit = [sat(:).Orbit];
set(orbit(1:8), "LineColor", "red");
set(orbit(9:16), "LineColor", "blue");
set(orbit(17:24), "LineColor", "green");

Добавление наземных станций к сценарию

Чтобы предоставить точные данные о местоположении, местоположение на Земле должно иметь доступ как минимум к 4 спутникам в созвездии в любой данный момент времени. В этом примере используйте три местоположения MathWorks, чтобы сравнить общий доступ к созвездиям за 1-дневное окно анализа с различными областями Земли:

  • Штаб-квартира MathWorks в Натике, Массачусетс, США (42.30048 °, -71.34908 °)

  • MathWorks München in Ismaning (около Мюнхена), Германия (48.23206 °, 11.68445 °)

  • MathWorks Bangalore в Бангалоре, Индия (12.94448 °, 77.69256 °)

gsUS = groundStation(scenario, 42.30048, -71.34908, ...
    "MinElevationAngle", 10, "Name", "MW Natick");
gsDE = groundStation(scenario, 48.23206, 11.68445, ...
    "MinElevationAngle", 10, "Name", "MW Munchen");
gsIN = groundStation(scenario, 12.94448, 77.69256, ...
    "MinElevationAngle", 10, "Name", "MW Bangalore");

figure
geoscatter([gsUS.Latitude gsDE.Latitude gsIN.Latitude], ...
    [gsUS.Longitude gsDE.Longitude gsIN.Longitude], "red", "filled")
geolimits([-75 75], [-180 180])
title("MathWorks Ground Stations")

Вычисление доступа наземной станции к спутнику (видимость линии видимости)

Вычислите доступ к линии видимости между наземными станциями и каждым отдельным спутником с помощью access способ.

for idx = 1:numel(sat)
    access(gsUS, sat(idx));
    access(gsDE, sat(idx));
    access(gsIN, sat(idx));
end
accessUS = [gsUS(:).Accesses];
accessDE = [gsDE(:).Accesses];
accessIN = [gsIN(:).Accesses];

Установите цвета доступа, чтобы соответствовать цветам орбитальной плоскости, назначенным ранее в примере.

set(accessUS(1:8), "LineColor", "red");
set(accessUS(9:16), "LineColor", "blue");
set(accessUS(17:24), "LineColor", "green");

set(accessDE(1:8), "LineColor", "red");
set(accessDE(9:16), "LineColor", "blue");
set(accessDE(17:24), "LineColor", "green");

set(accessIN(1:8), "LineColor", "red");
set(accessIN(9:16), "LineColor", "blue");
set(accessIN(17:24), "LineColor", "green");

Просмотрите полную таблицу доступа между каждой наземной станцией и всеми спутниками в совокупности как таблицы. Отсортируйте интервалы доступа по времени начала интервала. Спутники, добавленные из эфемеридных данных, не отображают значения для StartOrbit и Stop orbit.

intervalsUS = accessIntervals(accessUS);
intervalsUS = sortrows(intervalsUS, "StartTime", "ascend")
intervalsUS=52×8 table
      Source          Target       IntervalNumber         StartTime                EndTime           Duration    StartOrbit    EndOrbit
    ___________    ____________    ______________    ____________________    ____________________    ________    __________    ________

    "MW Natick"    "GALILEO 1"           1           30-Nov-2020 22:23:24    01-Dec-2020 01:40:24     11820         NaN          NaN   
    "MW Natick"    "GALILEO 2"           1           30-Nov-2020 22:23:24    01-Dec-2020 00:08:24      6300         NaN          NaN   
    "MW Natick"    "GALILEO 3"           1           30-Nov-2020 22:23:24    30-Nov-2020 22:34:24       660         NaN          NaN   
    "MW Natick"    "GALILEO 12"          1           30-Nov-2020 22:23:24    30-Nov-2020 23:35:24      4320         NaN          NaN   
    "MW Natick"    "GALILEO 13"          1           30-Nov-2020 22:23:24    30-Nov-2020 22:47:24      1440         NaN          NaN   
    "MW Natick"    "GALILEO 18"          1           30-Nov-2020 22:23:24    01-Dec-2020 01:51:24     12480         NaN          NaN   
    "MW Natick"    "GALILEO 19"          1           30-Nov-2020 22:23:24    01-Dec-2020 00:13:24      6600         NaN          NaN   
    "MW Natick"    "GALILEO 20"          1           30-Nov-2020 22:23:24    30-Nov-2020 22:27:24       240         NaN          NaN   
    "MW Natick"    "GALILEO 11"          1           30-Nov-2020 22:38:24    01-Dec-2020 00:00:24      4920         NaN          NaN   
    "MW Natick"    "GALILEO 17"          1           30-Nov-2020 22:47:24    01-Dec-2020 03:19:24     16320         NaN          NaN   
    "MW Natick"    "GALILEO 8"           1           30-Nov-2020 23:09:24    01-Dec-2020 03:15:24     14760         NaN          NaN   
    "MW Natick"    "GALILEO 7"           1           01-Dec-2020 00:28:24    01-Dec-2020 04:55:24     16020         NaN          NaN   
    "MW Natick"    "GALILEO 24"          1           01-Dec-2020 00:29:24    01-Dec-2020 04:40:24     15060         NaN          NaN   
    "MW Natick"    "GALILEO 6"           1           01-Dec-2020 01:54:24    01-Dec-2020 06:41:24     17220         NaN          NaN   
    "MW Natick"    "GALILEO 23"          1           01-Dec-2020 02:04:24    01-Dec-2020 05:52:24     13680         NaN          NaN   
    "MW Natick"    "GALILEO 5"           1           01-Dec-2020 03:30:24    01-Dec-2020 08:25:24     17700         NaN          NaN   
      ⋮

intervalsDE = accessIntervals(accessDE);
intervalsDE = sortrows(intervalsDE, "StartTime", "ascend")
intervalsDE=51×8 table
       Source          Target       IntervalNumber         StartTime                EndTime           Duration    StartOrbit    EndOrbit
    ____________    ____________    ______________    ____________________    ____________________    ________    __________    ________

    "MW Munchen"    "GALILEO 2"           1           30-Nov-2020 22:23:24    01-Dec-2020 02:01:24     13080         NaN          NaN   
    "MW Munchen"    "GALILEO 3"           1           30-Nov-2020 22:23:24    01-Dec-2020 00:20:24      7020         NaN          NaN   
    "MW Munchen"    "GALILEO 4"           1           30-Nov-2020 22:23:24    30-Nov-2020 22:40:24      1020         NaN          NaN   
    "MW Munchen"    "GALILEO 19"          1           30-Nov-2020 22:23:24    01-Dec-2020 00:42:24      8340         NaN          NaN   
    "MW Munchen"    "GALILEO 20"          1           30-Nov-2020 22:23:24    30-Nov-2020 23:35:24      4320         NaN          NaN   
    "MW Munchen"    "GALILEO 10"          1           30-Nov-2020 22:38:24    30-Nov-2020 22:49:24       660         NaN          NaN   
    "MW Munchen"    "GALILEO 18"          1           30-Nov-2020 22:42:24    01-Dec-2020 01:37:24     10500         NaN          NaN   
    "MW Munchen"    "GALILEO 9"           1           30-Nov-2020 22:44:24    01-Dec-2020 00:43:24      7140         NaN          NaN   
    "MW Munchen"    "GALILEO 1"           1           30-Nov-2020 22:55:24    01-Dec-2020 03:37:24     16920         NaN          NaN   
    "MW Munchen"    "GALILEO 16"          1           30-Nov-2020 23:24:24    01-Dec-2020 02:15:24     10260         NaN          NaN   
    "MW Munchen"    "GALILEO 17"          1           01-Dec-2020 00:13:24    01-Dec-2020 02:19:24      7560         NaN          NaN   
    "MW Munchen"    "GALILEO 15"          1           01-Dec-2020 00:18:24    01-Dec-2020 03:45:24     12420         NaN          NaN   
    "MW Munchen"    "GALILEO 8"           1           01-Dec-2020 00:36:24    01-Dec-2020 05:07:24     16260         NaN          NaN   
    "MW Munchen"    "GALILEO 14"          1           01-Dec-2020 01:24:24    01-Dec-2020 05:17:24     13980         NaN          NaN   
    "MW Munchen"    "GALILEO 24"          1           01-Dec-2020 01:57:24    01-Dec-2020 02:36:24      2340         NaN          NaN   
    "MW Munchen"    "GALILEO 7"           1           01-Dec-2020 02:16:24    01-Dec-2020 06:29:24     15180         NaN          NaN   
      ⋮

intervalsIN = accessIntervals(accessIN);
intervalsIN = sortrows(intervalsIN, "StartTime", "ascend")
intervalsIN=45×8 table
        Source           Target       IntervalNumber         StartTime                EndTime           Duration    StartOrbit    EndOrbit
    ______________    ____________    ______________    ____________________    ____________________    ________    __________    ________

    "MW Bangalore"    "GALILEO 3"           1           30-Nov-2020 22:23:24    01-Dec-2020 02:38:24     15300         NaN          NaN   
    "MW Bangalore"    "GALILEO 4"           1           30-Nov-2020 22:23:24    01-Dec-2020 01:05:24      9720         NaN          NaN   
    "MW Bangalore"    "GALILEO 5"           1           30-Nov-2020 22:23:24    30-Nov-2020 23:17:24      3240         NaN          NaN   
    "MW Bangalore"    "GALILEO 9"           1           30-Nov-2020 22:23:24    01-Dec-2020 00:55:24      9120         NaN          NaN   
    "MW Bangalore"    "GALILEO 10"          1           30-Nov-2020 22:23:24    30-Nov-2020 23:19:24      3360         NaN          NaN   
    "MW Bangalore"    "GALILEO 16"          1           30-Nov-2020 22:23:24    01-Dec-2020 02:42:24     15540         NaN          NaN   
    "MW Bangalore"    "GALILEO 21"          1           30-Nov-2020 22:23:24    30-Nov-2020 23:02:24      2340         NaN          NaN   
    "MW Bangalore"    "GALILEO 22"          1           30-Nov-2020 22:23:24    30-Nov-2020 22:29:24       360         NaN          NaN   
    "MW Bangalore"    "GALILEO 15"          1           30-Nov-2020 23:36:24    01-Dec-2020 05:12:24     20160         NaN          NaN   
    "MW Bangalore"    "GALILEO 2"           1           30-Nov-2020 23:44:24    01-Dec-2020 04:05:24     15660         NaN          NaN   
    "MW Bangalore"    "GALILEO 21"          2           01-Dec-2020 01:15:24    01-Dec-2020 04:12:24     10620         NaN          NaN   
    "MW Bangalore"    "GALILEO 1"           1           01-Dec-2020 01:20:24    01-Dec-2020 05:26:24     14760         NaN          NaN   
    "MW Bangalore"    "GALILEO 14"          1           01-Dec-2020 01:29:24    01-Dec-2020 07:33:24     21840         NaN          NaN   
    "MW Bangalore"    "GALILEO 20"          1           01-Dec-2020 02:04:24    01-Dec-2020 05:56:24     13920         NaN          NaN   
    "MW Bangalore"    "GALILEO 8"           1           01-Dec-2020 02:56:24    01-Dec-2020 06:37:24     13260         NaN          NaN   
    "MW Bangalore"    "GALILEO 19"          1           01-Dec-2020 03:20:24    01-Dec-2020 07:32:24     15120         NaN          NaN   
      ⋮

Просмотр сценария спутника

Откройте 2-D и 3-D окно средства просмотра сценария. Окно средства просмотра содержит все 24 спутника в каждом из трех орбитальных плоскостей, а также три наземные станции, определенные ранее в этом примере. Линия рисуется между каждой наземной станцией и спутником во время их соответствующих интервалов доступа.

viewer3D = satelliteScenarioViewer(scenario);

Сравнение доступа между наземными станциями

Вычислите состояние доступа между каждым спутником и наземной станцией с помощью метода accessStatus. Постройте график кумулятивного доступа для каждой наземной станции в окне анализа за 1 день.

% Initialize array with size equal to number of timesteps in scenario
timeSteps = mission.StartDate:seconds(60):mission.StartDate+days(1);
statusUS = zeros(1, numel(timeSteps));
statusDE = statusUS;
statusIN = statusUS;

% Sum cumulative access at each timestep
for idx = 1:24
    statusUS = statusUS + accessStatus(accessUS(idx));
    statusDE = statusDE + accessStatus(accessDE(idx));
    statusIN = statusIN + accessStatus(accessIN(idx));
end
clear idx;

subplot(3,1,1);
plot(timeSteps, statusUS);
title("MW Natick to GALILEO")
ylabel("# of satellites")
subplot(3,1,2);
plot(timeSteps, statusDE);
title("MW München to GALILEO")
ylabel("# of satellites")
subplot(3,1,3);
plot(timeSteps, statusIN);
title("MW 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 = ["MW Natick", "MW München", "MW 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
                                    MW Natick    MW München    MW Bangalore
                                    _________    __________    ____________

    Total # of intervals                 52            51             45   
    Total interval time (hrs)        153.92        153.55         162.73   
    Mean interval length (min)        177.6        180.65         216.98   
    Mean # of satellites in view     6.4448        6.4289         6.8071   
    Min # of satellites in view           4             4              4   
    Max # of satellites in view           8             9              9   

Созвездия Волкера-Дельты равномерно распределены по долготам. Натик и Мюнхен расположены в сходных широтах, и поэтому имеют очень сходные характеристики доступа относительно созвездия. Бангалор находится на широте ближе к экватору, и, несмотря на меньшее количество отдельных интервалов доступа, он имеет самое большое среднее количество спутников на виду, самое большое общее время интервала и самую длинную среднюю длительность интервала (на 40 минут). Все местоположения всегда имеют минимум 4 спутника, как требуется для трилатерации GNSS.

Ссылки

[1] Wertz, James R, David F. Everett, and Jeffery J. Puschell. Space Mission Engineering: The New Smad. Хоторн, Калифорния: Microcosm Press, 2011. Печать.

[2] Бич, Тереза У., Сефания Корнана, Мигель Б. Мора. Исследование алгоритмов проекта трех спутниковых созвездий. 14-й Международный симпозиум по динамике космических рейсов, Фос-ду-Игуасу, Бразилия, 1999 год.

[3] Европейское космическое агентство: Галилео Факты и фигур. https://www.esa.int/Applications/Navigation/Galileo/Facts_and_figures