exponenta event banner

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

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

  • Аэрокосмический блоксет Orbit Propagator блок

  • Панель инструментов для аэрокосмической промышленности satelliteScenario объект

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

Определение параметров миссии и исходных условий созвездия

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

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

Созвездие в этом примере представляет собой созвездие Уокера-Дельты, смоделированное аналогично созвездию ЕКА Galileo GNSS (Глобальная навигационная спутниковая система). Группировка состоит из 24 спутников на средней околоземной орбите (МЭО).

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

i: T/P/F

где

i = наклон

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

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

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

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

Укажите орбитальные элементы Keplerian для созвездия в 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

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

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

Наконец, учтите относительный угловой сдвиг между соседними орбитальными плоскостями. Разность фаз в данном случае задается как Δstart= 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 блок, соединенный с выходными портами. Orbit Propagator блок поддерживает векторизацию. Это позволяет моделировать несколько спутников в одном блоке путем задания массивов начальных условий в Block Parameters окно или использование set_param. Модель также включает раздел «Анализ и визуализация миссий», содержащий инструментальную панель Callback button. Когда по ней щелкают, эта кнопка управляет моделью, создает новый объект satelliteScenario в глобальном основном рабочем пространстве, содержащем спутник или созвездие, определенное в Orbit Propagator и открывает окно «Просмотр спутниковых сценариев» для нового сценария. Чтобы просмотреть исходный код для этого действия, дважды нажмите кнопку обратного вызова. Раздел «Mission Analysis and Visualization» - автономный технологический процесс, чтобы создать новый объект satelliteScenario и не используется в качестве части этого письменного примера.

mission.mdl = "OrbitPropagatorBlockExampleModel";
open_system(mission.mdl);
snapshotModel(mission.mdl);

Определите путь к Orbit Propagator блок в модели.

mission.Satellites.blk = mission.mdl + "/Orbit Propagator";

Задайте исходные условия спутника. Чтобы назначить набор орбитальных элементов Keplerian, определенный в предыдущем разделе, используйте 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;

Объекты временных рядов содержат данные о положении и скорости для всех 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 с помощью 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 Бангалор в Бангалоре, Индия (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);

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

Рассчитайте состояние доступа между каждым спутником и наземной станцией с помощью метода («По статусу»). Постройте график совокупного доступа для каждой наземной станции в течение 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 спутника, как это требуется для трилатерации ГНСС.

Ссылки

[1] Верц, Джеймс Р., Дэвид Ф. Эверетт и Джеффери Дж. Пушелл. Проектирование космических полетов: Новый Smad. Хоторн, Калифорния: Microcosm Press, 2011. Печать.

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

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