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 (timetable объект) сценарию. Эта функция создает Satellite с OrbitPropagator="ephemeris".

пример

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

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

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

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

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

Примеры

свернуть все

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

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

sc = satelliteScenario;

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

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

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

sat = satellite(sc,positionTT);

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

play(sc);

Добавить четыре спутника к сценарию спутника из расписаний положения и скорости в кадре Earth Centered Earth Fixed (ECEF) и визуализировать их траектории.

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

sc = satelliteScenario;

Загрузите расписание satellite ephemeris, принимая, что данные находятся в координатной системе координат 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-June-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 объект.

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

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

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

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

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

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

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

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

  • argofperiapsis (аргумент periapsis) - Этот вектор задает угол между направлением восходящего узла и 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

Позиционные данные в метрах, заданные как timeseries объект или a tscollection объект.

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

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

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

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

Данные скорости в метрах/секунду, заданные как 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 недоступен для входов данных ephemeris (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.

Зависимости

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

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

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

свернуть все

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

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

Введенный в R2021a