satellite

Добавьте спутники в спутниковый сценарий

Описание

sat = satellite(scenario,tlefile) добавляет Satellite объект от файла TLE до спутникового сценария задан scenarioВ виде строкового скаляра или вектора символов. Рыскание (z) оси точки спутников к низшей точке и крен (x) оси спутников выравнивается с их соответствующими инерционными векторами скорости.

satellite(scenario,semimajoraxis,eccentricity,inclination,RAAN,argofperiapsis,trueanomaly) добавляет Satellite объект от Кеплеровских элементов, заданных в Geocentric Celestial Reference Frame (GCRF) к спутниковому сценарию.

пример

satellite(scenario,positiontable) добавляет Satellite объект из данных о положении задан в positiontable расписание объект) к сценарию. Эта функция создает Satellite с OrbitPropagator="ephemeris".

пример

satellite(scenario,positiontable,velocitytable) добавляет Satellite объект из данных о положении задан в positiontable расписание объект), и скоростные данные заданы в velocitytable расписание объект) к сценарию. Эта функция создает Satellite с OrbitPropagator="ephemeris".

satellite(scenario,positiontimeseries) добавляет Satellite объект из данных о положении задан в positiontimeseries Временные ряды объект. Эта функция создает Satellite с OrbitPropagator="ephemeris".

satellite(scenario,positiontimeseries,velocitytimeseries) добавляет Satellite возразите против scenario от положения (в метрах) данные заданы в positiontimeseries Временные ряды объект), и скорость (в метрах/секунда) данные заданы в velocitytimeseries Временные ряды объект. Эта функция создает Satellite с OrbitPropagator="ephemeris".

satellite(___,Name,Value) задает опции с помощью одного или нескольких аргументов значения имени в дополнение к любой комбинации входных аргументов от предыдущих синтаксисов. Например, ('Name','satellite1') задает имя спутника как 'satellite1'. .

sat = satellite(___) возвращает вектор из указателей на добавленные спутники. Задайте любую комбинацию входных аргументов от предыдущих синтаксисов.

Примеры

свернуть все

Добавьте четыре спутника в спутниковый сценарий от расписания положения до спутникового сценария и визуализируйте их траектории.

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

sc = satelliteScenario;

Загрузите спутниковое эфемеридное расписание, приняв, что данные находятся в системе координат координаты GCRF.

load("timetableSatelliteTrajectory.mat","positionTT");

Добавьте спутники в сценарий.

sat = satellite(sc,positionTT);

Визуализируйте траектории спутников.

play(sc);

Добавьте, что четыре спутника к спутниковому сценарию из расписаний положения и скорости в Земле фиксированной земле в центре (ECEF) структурируют и визуализируют свои траектории.

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

sc = satelliteScenario;

Загрузите спутниковое эфемеридное расписание, приняв, что данные находятся в системе координат координаты ECEF.

load("timetableSatelliteTrajectory.mat","positionTT","velocityTT");

Добавьте спутники в сценарий.

sat = satellite(sc,positionTT,velocityTT,"CoordinateFrame","ecef")

Визуализируйте траектории спутников.

play(sc);

Создайте спутниковый сценарий и добавьте наземные станции из широт и долгот.

startTime = datetime(2020, 5, 1, 11, 36, 0);
stopTime = startTime + days(1);
sampleTime = 60;
sc = satelliteScenario(startTime, stopTime, sampleTime);
lat = [10];
lon = [-30];
gs = groundStation(sc, lat, lon);

Добавьте спутники с помощью Кеплеровских элементов.

semiMajorAxis = 10000000;
eccentricity = 0;
inclination = 10; 
rightAscensionOfAscendingNode = 0; 
argumentOfPeriapsis = 0; 
trueAnomaly = 0; 
sat = satellite(sc, semiMajorAxis, eccentricity, inclination, ...
        rightAscensionOfAscendingNode, argumentOfPeriapsis, trueAnomaly);

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

ac = access(sat, gs);
intvls = accessIntervals(ac)
intvls=8×8 table
       Source              Target          IntervalNumber         StartTime                EndTime           Duration    StartOrbit    EndOrbit
    _____________    __________________    ______________    ____________________    ____________________    ________    __________    ________

    "Satellite 2"    "Ground station 1"          1           01-May-2020 11:36:00    01-May-2020 12:04:00      1680          1            1    
    "Satellite 2"    "Ground station 1"          2           01-May-2020 14:20:00    01-May-2020 15:11:00      3060          1            2    
    "Satellite 2"    "Ground station 1"          3           01-May-2020 17:27:00    01-May-2020 18:18:00      3060          3            3    
    "Satellite 2"    "Ground station 1"          4           01-May-2020 20:34:00    01-May-2020 21:25:00      3060          4            4    
    "Satellite 2"    "Ground station 1"          5           01-May-2020 23:41:00    02-May-2020 00:32:00      3060          5            5    
    "Satellite 2"    "Ground station 1"          6           02-May-2020 02:50:00    02-May-2020 03:39:00      2940          6            6    
    "Satellite 2"    "Ground station 1"          7           02-May-2020 05:59:00    02-May-2020 06:47:00      2880          7            7    
    "Satellite 2"    "Ground station 1"          8           02-May-2020 09:06:00    02-May-2020 09:56:00      3000          8            9    

Проигрывайте сценарий, чтобы визуализировать наземные станции.

play(sc)

Создайте спутниковый сценарий со временем начала от 02 июня 2020 8:23:00 UTC и набор времени остановки к один день спустя. Установите шаг расчета симуляции на 60 секунд.

startTime = datetime(2020,6,02,8,23,0);
stopTime = startTime + days(1);
sampleTime = 60;
sc = satelliteScenario(startTime,stopTime,sampleTime);

Добавьте два спутника в сценарий с помощью их Кеплеровских элементов.

semiMajorAxis = [10000000; 15000000];
eccentricity = [0.01; 0.02];
inclination = [0; 10];
rightAscensionOfAscendingNode = [0; 15];
argumentOfPeriapsis = [0; 30];
trueAnomaly = [0; 20];

sat = satellite(sc, semiMajorAxis, eccentricity, inclination, ...
    rightAscensionOfAscendingNode, argumentOfPeriapsis, trueAnomaly)
sat = 
  1×2 Satellite array with properties:

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

Просмотрите спутники в орбите, и земля отслеживает более чем один час.

show(sat)
groundTrack(sat,'LeadTime',3600)
ans=1×2 object
  1×2 GroundTrack array with properties:

    LeadTime
    TrailTime
    LineWidth
    TrailLineColor
    LeadLineColor
    VisibilityMode

play(sc)

Входные параметры

свернуть все

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

Имя файла TLE в виде вектора символов или строкового скаляра. Файл TLE должен существовать в текущем каталоге, существовать в директории на пути MATLAB® или включать полный или относительный путь в файл.

Для получения дополнительной информации о файлах TLE смотрите Файлы Два линейных элемента (TLE).

Типы данных: char | string

Кеплеровские элементы заданы в GCRF в виде списка, разделенного запятыми векторов. Кеплеровские элементы:

  • semimajoraxis – Этот вектор задает полуглавную ось орбиты спутника. Каждое значение равно половине самого длинного диаметра орбиты.

  • eccentricity – Этот вектор задает форму орбиты спутника.

  • inclination – Этот вектор задает угол между орбитальной плоскостью и xy - плоскость GCRF для каждого спутника.

  • RAAN (правильный подъем возрастающего узла) – Этот элемент задает угол между xy - плоскость GCRF и направлением возрастающего узла, как замечено по центру Земли массы для каждого спутника. Возрастающий узел является местоположением, где орбита пересекает xy - плоскость GCRF и выходит за предел плоскости.

  • argofperiapsis (аргумент периапсиды) – Этот вектор задает угол между направлением возрастающего узла и periapsis, как замечено по центру Земли массы. Периапсида является местоположением на орбите, которая является самой близкой к центру Земли массы для каждого спутника.

  • trueanomaly – Этот вектор задает угол между направлением периапсиды и текущим местоположением спутника, как замечено по центру Земли массы для каждого спутника.

Для получения дополнительной информации о Кеплеровских элементах смотрите Орбитальные Элементы.

Данные о положении в метрах в виде расписания, созданного с помощью timetable функция. positiontable имеет точно один монотонно увеличивающийся столбец rowTimes (datetime или duration значения) и один или несколько столбцов переменных, где каждый столбец содержит отдельное спутниковое положение в зависимости от времени.

Если значения rowTimes имеют тип duration, временные стоимости измеряются относительно текущего сценария StartTime свойство. Расписание VariableNames используются по умолчанию, если никакие имена не обеспечиваются как вход. Государства-сателлиты приняты, чтобы быть в GCRF если CoordinateFrame аргумент значения имени обеспечивается. Состояния считаются постоянные в GCRF в течение тактов сценария за пределами области значений времени positiontable.

Типы данных: table | timetable

Скоростные данные в метрах/секунда в виде расписания, созданного с помощью timetable функция. velocitytable имеет точно один монотонно увеличивающийся столбец rowTimes (datetime или duration значения) и один или несколько столбцов переменных, где каждый столбец содержит отдельное спутниковое положение в зависимости от времени.

Если значения rowTimes имеют тип duration, временные стоимости измеряются относительно текущего сценария StartTime свойство. Расписание VariableNames используются по умолчанию, если никакие имена не обеспечиваются как вход. Государства-сателлиты приняты, чтобы быть в GCRF если CoordinateFrame аргумент значения имени обеспечивается. Состояния считаются постоянные в GCRF в течение тактов сценария за пределами области значений времени velocitytable.

Типы данных: table | timetable

Данные о положении в метрах в виде a timeseries объект или a tscollection объект.

  • Если Data свойство timeseries или tscollection объект имеет две размерности, одна размерность должна равняться 3, и другая размерность должна выровняться с ориентацией временного вектора.

  • Если Data свойство timeseries или tscollection имеет три измерения, одна размерность должна равняться 3, или первое или последняя размерность должны выровняться с ориентацией временного вектора, и остальное измерение задает количество спутников в эфемериде.

    Когда timeseries.TimeInfo.StartDate пусто, временные стоимости измеряются относительно текущего сценария StartTime свойство. Timeseries Name свойство (если задано) используется по умолчанию, если никакие имена не обеспечиваются как входные параметры. Государства-сателлиты приняты, чтобы быть в GCRF если CoordinateFrame пара "имя-значение" обеспечивается. Состояния считаются постоянные в GCRF в течение тактов сценария за пределами области значений времени positiontimeseries.

Типы данных: timeseries | tscollection

Скоростные данные в метрах/секунда в виде a timeseries объект или a tscollection объект.

  • Если Data свойство timeseries или tscollection объект имеет две размерности, одна размерность должна равняться 3, и другая размерность должна выровняться с ориентацией временного вектора.

  • Если Data свойство timeseries или tscollection имеет три измерения, одна размерность должна равняться 3, или первое или последняя размерность должны выровняться с ориентацией временного вектора, и остальное измерение задает количество спутников в эфемериде.

    Когда timeseries.TimeInfo.StartDate пусто, временные стоимости измеряются относительно текущего сценария StartTime свойство. Timeseries Name свойство (если задано) используется по умолчанию, если никакие имена не обеспечиваются как входные параметры. Государства-сателлиты приняты, чтобы быть в GCRF если CoordinateFrame пара "имя-значение" обеспечивается. Состояния считаются постоянные в GCRF в течение тактов сценария за пределами области значений времени velocitytimeseries.

Типы данных: timeseries | tscollection

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Name','MySatellite' определяет спутниковое имя к 'MySatellite'.

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

Типы данных: char | string

Можно установить это свойство только при вызове спутника. После того, как вы вызовете спутник, это свойство только для чтения.

спутниковое имя в виде разделенной запятой пары, состоящей из 'Name' и строковый скаляр, представьте в виде строки вектор, вектор символов или массив ячеек из символьных векторов.

  • Если только один спутник добавляется, задайте Name как строковый скаляр или вектор символов.

  • Если несколько спутников добавляются, задают Name как вектор строки или массив ячеек из символьных векторов. Число элементов в векторном массиве строки или массиве ячеек должно быть равно количеству добавляемых спутников.

В значении по умолчанию idx является количеством спутника, добавленного satellite объектная функция. Если другой спутник того же имени существует, суффиксный _idx2 добавляется, где idx2 является целым числом, которое постепенно увеличивается 1 запуском от 1, пока дублирование имени не разрешено.

Типы данных: char | string

Можно установить это свойство при вызове satellite только. После того, как вы вызываете satelliteЭто свойство доступно только для чтения.

Имя распространителя орбиты, используемого для распространения спутникового положения и скорости в виде разделенной запятой пары, состоящей из 'OrbitPropagator' и любой "two-body-keplerian", "sgp4", "sdp4", или "ephemeris".

Зависимости

OrbitPropagator не доступно для эфемеридных вводов данных (timetable или timeseries). В этих случаях, satellite игнорирует эту пару "имя-значение".

Типы данных: string | char

Система координат координаты государства-сателлита в виде разделенной запятой пары, состоящей из 'CoordinateFrame' и одно из этих значений:

  • "inertial" — Для timeseries или timetable данные, задавая это значение принимают положение и скорость в системе координат GCRF.

  • "ecef" — Для timeseries или timetable данные, задавая это значение принимают положение и скорость в системе координат ECEF.

  • "geographic" — Для timeseries или timetable данные, задавая это значение принимают положение [lat, lon, altitude], где lat и lon являются широтой и долготой в градусах, и altitude является высотой выше Мировой Геодезической Системы 84 (WGS 84) эллипсоид в метрах.

    Скорость находится в локальной системе координат NED.

Зависимости

Включить этот аргумент значения имени, эфемеридные вводы данных (timetable или timeseries).

Типы данных: string | char

Выходные аргументы

свернуть все

Спутник в сценарии, возвращенном как Satellite объект, принадлежащий спутниковому сценарию, задан scenario.

Можно изменить Satellite объект путем изменения его значений свойств.

Введенный в R2021a