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

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

  • Aerospace Blockset Orbit Propagator блок

  • Aerospace Toolbox satelliteScenario объект

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

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

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

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

Созвездие в этом примере является созвездием Уокера-Delta, смоделированным похожий на Галилео GNSS ЕКА (Глобальная навигационная спутниковая система) созвездие. Созвездие состоит из 24 спутников в средней земной орбите (MEO).

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

i:T/P/F

где

i= наклон

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

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

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

Созвездия Уокера-Delta являются общим решением для максимизации геометрического покрытия по Земле при минимизации количества спутников, требуемых выполнять миссию. Система навигации Галилео является Уокером-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

Возрастающие узлы орбитальных плоскостей созвездия Уокера-Delta равномерно распределены с промежутками в 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. Модель также включает раздел "Mission Analysis and Visualization", который содержит инструментальную панель Callback button. Когда кликнувшийся, эта кнопка запускает модель, создает новый объект satelliteScenario в глобальном базовом рабочем пространстве, содержащем спутник или созвездие, заданное в Orbit Propagator блокируйтесь, и открывает окно Satellite Scenario Viewer для нового сценария. Чтобы просмотреть исходный код для этого действия, дважды щелкают по кнопке коллбэка. Раздел "Mission Analysis and Visualization" является автономным рабочим процессом, чтобы создать новый объект 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");

Запустите модель и соберите спутниковый Ephemerides

Симулируйте модель.

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

Загрузите спутниковый Ephemerides в satelliteScenario Object

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

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

Добавьте все 24 спутника в спутниковый сценарий от объектов timeseries положения и скорости ECEF с помощью 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 в Исманинге (под Мюнхеном), Германия (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 и Остановки.

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   
      ⋮

Просмотрите спутниковый сценарий

Откройте 2D и 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   

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

Ссылки

[1] Wertz, Джеймс Р, Дэвид Ф. Эверетт и Джеффри Дж. Пушелл. Разработка космической миссии: новый Smad. Хоуторн, CA: нажатие микромира, 2011. Печать.

[2] Бук, Тереза В., Sefania Cornana, Мигель Б. Мора. Исследование Трех Спутниковых Алгоритмов Проекта Созвездия. 14-й Международный Симпозиум по Динамике Космического полета, Foz делают Iguaçu, Бразилия 1999.

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