Этот пример демонстрирует, как настроить ссылку спутниковой связи с несколькими скачками между двумя наземными станциями. Первая наземная станция расположена в MathWorks India, а вторая наземная станция - в MathWorks Australia. Ссылка маршрутизируется через два спутника (MathWorks Sat 1 и MathWorks Sat 2). Каждый спутник действует как регенеративные ретрансляторы. Регенеративный ретранслятор получает входной сигнал, а затем демодулирует, ремодулирует, усиливает и повторно передает принятый сигнал. Время в течение дня, в течение которого MathWorks India может отправлять данные в MathWorks Australia, определяется.
Использование satelliteScenario
создание спутникового сценария. Использование datetime
для определения времени запуска и времени остановки сценария. Установите шаг расчета равное 60 секундам.
startTime = datetime(2020,8,19,20,55,0); % 19 August 2020 8:55 PM UTC stopTime = startTime + days(1); % 20 August 2020 8:55 PM UTC sampleTime = 60; % seconds sc = satelliteScenario(startTime,stopTime,sampleTime);
Использование satelliteScenarioViewer
запуск Satellite Scenario Viewer.
satelliteScenarioViewer(sc);
Использование satellite
добавить спутники MathWorks Sat 1 и MathWorks Sat 2 к сценарию путем определения их орбитальных элементов Кеплера, соответствующих времени запуска сценария.
semiMajorAxis = 10000000; % meters eccentricity = 0; inclination = 0; % degrees rightAscensionOfAscendingNode = 0; % degrees argumentOfPeriapsis = 0; % degrees trueAnomaly = 0; % degrees mwSat1 = satellite(sc, ... semiMajorAxis, ... eccentricity, ... inclination, ... rightAscensionOfAscendingNode, ... argumentOfPeriapsis, ... trueAnomaly, ... "Name","MathWorks Sat 1", ... "OrbitPropagator","two-body-keplerian");
semiMajorAxis = 10000000; % meters eccentricity = 0; inclination = 30; % degrees rightAscensionOfAscendingNode = 120; % degrees argumentOfPeriapsis = 0; % degrees trueAnomaly = 300; % degrees mwSat2 = satellite(sc, ... semiMajorAxis, ... eccentricity, ... inclination, ... rightAscensionOfAscendingNode, ... argumentOfPeriapsis, ... trueAnomaly, ... "Name","MathWorks Sat 2", ... "OrbitPropagator","two-body-keplerian");
Использование gimbal
добавить гимбалы к спутникам. Каждый спутник состоит из двух карданов на противоположных сторонах спутника. Один gimbal содержит антенну приемника, а другой gimbal - антенну передатчика. Место установки задано в декартовых координатах в каркасе кузова спутника, что определяется , где , и являются осями крена, тангажа и рыскания соответственно спутника. Место монтажа кардана, который удерживает приемник, счетчики и таковые из gimbal, который удерживает передатчик, счетчики, как показано на схеме ниже.
gimbalMWSat1Tx = gimbal(mwSat1, ... "MountingLocation",[0;1;2]); % meters gimbalMWSat2Tx = gimbal(mwSat2, ... "MountingLocation",[0;1;2]); % meters gimbalMWSat1Rx = gimbal(mwSat1, ... "MountingLocation",[0;-1;2]); % meters gimbalMWSat2Rx = gimbal(mwSat2, ... "MountingLocation",[0;-1;2]); % meters
Каждый спутник состоит из приемника и передатчика, образующего регенеративный ретранслятор. Использование receiver
чтобы добавить приемник к карданным gimbalMWSat1Rx
и gimbalMWSat2Rx
. Место установки приемной антенны относительно карданной антенны является счетчики, как показано на схеме выше. Отношение усиление приемника к температуре 3dB/K, и необходимый Eb/No составляет 4 дБ.
mwSat1Rx = receiver(gimbalMWSat1Rx, ... "MountingLocation",[0;0;1], ... % meters "GainToNoiseTemperatureRatio",3, ... % decibels/Kelvin "RequiredEbNo",4); % decibels mwSat2Rx = receiver(gimbalMWSat2Rx, ... "MountingLocation",[0;0;1], ... % meters "GainToNoiseTemperatureRatio",3, ... % decibels/Kelvin "RequiredEbNo",4); % decibels
Использование gaussianAntenna
для установки диаметра тарелки антенн приемника на спутниках равного 0,5 м. Гауссова антенна имеет диаграмму направленности излучения, которая достигает максимума при своем борезайте и разрушается радиально-симметрично на основе Гауссова распределения при отходе от борсайта, как показано на схеме ниже. Пиковое усиление является функцией диаметра тарелки и эффективности апертуры.
gaussianAntenna(mwSat1Rx, ... "DishDiameter",0.5); % meters gaussianAntenna(mwSat2Rx, ... "DishDiameter",0.5); % meters
Использование transmitter
для добавления передатчика к карданным gimbalMWSat1Tx
и gimbalMWSat2Tx
. Место установки передающей антенны относительно карданной антенны является метров, где задайте каркас кузова гимбала. boresight антенны выровнена с . Оба спутника передают степенью 15 дБВ. Передатчик на борту MathWorks Sat 1 используется в сшивке для отправки данных в MathWorks Sat 2 на частоте 30 ГГц. Передатчик на борту MathWorks Sat 2 используется в нисходящем канале MathWorks Australia на частоте 27 ГГц.
mwSat1Tx = transmitter(gimbalMWSat1Tx, ... "MountingLocation",[0;0;1], ... % meters "Frequency",30e9, ... % hertz "Power",15); % decibel watts mwSat2Tx = transmitter(gimbalMWSat2Tx, ... "MountingLocation",[0;0;1], ... % meters "Frequency",27e9, ... % hertz "Power",15); % decibel watts
Как и приемник, передатчик также использует Гауссову антенну. Установите диаметр тарелки антенн передатчика спутников равным 0,5 м.
gaussianAntenna(mwSat1Tx, ... "DishDiameter",0.5); % meters gaussianAntenna(mwSat2Tx, ... "DishDiameter",0.5); % meters
Использование groundStation
добавить наземные станции в MathWorks India и MathWorks Australia.
latitude = 12.9436963; % degrees longitude = 77.6906568; % degrees mwIndia = groundStation(sc, ... latitude, ... longitude, ... "Name","MathWorks India");
latitude = -33.7974039; % degrees longitude = 151.1768208; % degrees mwAustralia = groundStation(sc, ... latitude, ... longitude, ... "Name","MathWorks Australia");
Использование gimbal
добавить gimbal в MathWorks India и MathWorks Australia. Gimbal в MathWorks India держит передатчик, а Gimbal в MathWorks Australia - приемник. Карданные стержни расположены на высоте 5 метров над соответствующими наземными станциями, как показано на схеме ниже. Следовательно, места их установки метров, где задайте ось тела наземных станций. , и всегда указывает на Север, Восток и вниз соответственно. Поэтому компонент карданов -5 метров так, чтобы они были размещены над наземной станцией, а не ниже. Кроме того, по умолчанию углы крепления кардана такие, что их оси тела выровнены с родительской (в данном случае с наземной станцией) осями тела . В результате, когда гимбалы не управляются, их ось указывает прямо вниз, и антенна прикреплена к ней также с помощью углов установки по умолчанию. Поэтому необходимо задать угол тангажа монтажа равные 180 степени, так чтобы точки вверх, когда карданный стержень не управляется.
gimbalMWIndia = gimbal(mwIndia, ... "MountingAngles",[0;180;0], ... % degrees "MountingLocation",[0;0;-5]); % meters gimbalMWAustralia = gimbal(mwAustralia, ... "MountingAngles",[0;180;0], ... % degrees "MountingLocation",[0;0;-5]); % meters
Использование transmitter
добавить передатчик в карданный в MathWorks India. Передатчик восходящей линии связи отправляет данные в MathWorks Sat 1 на частоте 30 ГГц и степени 30 дБВ. Антенна передатчика установлена на метров относительно карданного.
mwIndiaTx = transmitter(gimbalMWIndia, ... "Name","MathWorks India Transmitter", ... "MountingLocation",[0;0;1], ... % meters "Frequency",30e9, ... % hertz "Power",30); % decibel watts
Использование gaussianAntenna
установить диаметр тарелки антенны передатчика равным 2 м.
gaussianAntenna(mwIndiaTx, ... "DishDiameter",2); % meters
Использование receiver
добавить приемник к gimbal на наземной станции MathWorks Australia для приема нисходящих данных от MathWorks Sat 2. Отношение коэффициента усиления к шуму приемника составляет 3 дБ/К, а необходимый коэффициент Eb/Нет равен 1 дБ. Место установки антенны приемника: метров относительно карданного.
mwAustraliaRx = receiver(gimbalMWAustralia, ... "Name","MathWorks Australia Receiver", ... "MountingLocation",[0;0;1], ... % meters "GainToNoiseTemperatureRatio",3, ... % decibels/Kelvin "RequiredEbNo",1); % decibels
Использование gaussianAntenna
установить диаметр тарелки антенны приемника равным 2 м.
gaussianAntenna(mwAustraliaRx, ... "DishDiameter",2); % meters
Для наилучшего качества ссылки антенны должны постоянно указывать на свои соответствующие цели. Гимбалы могут управляться независимо от их родительских элементов (спутник или наземная станция) и конфигурироваться для отслеживания других спутников и наземных станций. Использование pointAt
установить цель слежения за карданами так, чтобы:
Антенна передатчика в MathWorks India указывает на MathWorks Sat 1
Антенна приемника на борту MathWorks Sat 1 точка в MathWorks India
Антенна передатчика на борту MathWorks Sat 1 точки на MathWorks Sat 2
Антенна приемника на борту MathWorks Sat 2 точки на MathWorks Sat 1
Антенна передатчика на борту MathWorks Sat 2 точки на MathWorks Australia
Антенна приемника в MathWorks Australia указывает на MathWorks Sat 2
pointAt(gimbalMWIndia,mwSat1); pointAt(gimbalMWSat1Rx,mwIndia); pointAt(gimbalMWSat1Tx,mwSat2); pointAt(gimbalMWSat2Rx,mwSat1); pointAt(gimbalMWSat2Tx,mwAustralia); pointAt(gimbalMWAustralia,mwSat2);
Когда задана цель для gimbal, его ось будет отслеживать цель. Поскольку антенна включена и его boresight выровнен с антенна также будет отслеживать желаемую цель.
Использование link
добавить анализ ссылки к передатчику в MathWorks India. Ссылка имеет регенеративный тип ретранслятора, который начинается с mwIndiaTx
и заканчивается на mwAustraliaRx
, и маршрутизируется через mwSat1Rx
, mwSat1Tx
, mwSat2Rx
и mwSat2Tx
.
lnk = link(mwIndiaTx,mwSat1Rx,mwSat1Tx,mwSat2Rx,mwSat2Tx,mwAustraliaRx);
Satellite Scenario Viewer автоматически обновляется для отображения всего сценария. Используйте средство просмотра как визуальное подтверждение того, что сценарий настроен правильно. Зеленые линии представляют ссылку и подтверждают, что ссылка закрыта.
Используйте linkIntervals
метод для определения времени закрытия ссылки. The linkIntervals
метод выводит таблицу начала и времен остановки закрытий ссылки, которые представляют интервалы, в течение которых MathWorks India может отправлять данные в MathWorks Australia. Source и Target являются первым и последним узлами в ссылке. Если один из Source или Target находится на спутнике, StartOrbit и EndOrbit предоставляют количество орбит источника или целевого спутника, которые они присоединены непосредственно или через карданные черви, начиная со времени запуска сценария. Если и Источник, и Цель присоединены к спутнику, StartOrbit и EndOrbit обеспечивают количество орбит спутника, к которому подключен Источник. Поскольку и Source, и Target присоединены к наземным станциям, StartOrbit и EndOrbit являются NaN.
linkIntervals(lnk)
ans=6×8 table
Source Target IntervalNumber StartTime EndTime Duration StartOrbit EndOrbit
_____________________________ ______________________________ ______________ ____________________ ____________________ ________ __________ ________
"MathWorks India Transmitter" "MathWorks Australia Receiver" 1 19-Aug-2020 20:55:00 19-Aug-2020 21:20:00 1500 NaN NaN
"MathWorks India Transmitter" "MathWorks Australia Receiver" 2 19-Aug-2020 23:38:00 20-Aug-2020 00:21:00 2580 NaN NaN
"MathWorks India Transmitter" "MathWorks Australia Receiver" 3 20-Aug-2020 09:34:00 20-Aug-2020 09:50:00 960 NaN NaN
"MathWorks India Transmitter" "MathWorks Australia Receiver" 4 20-Aug-2020 12:26:00 20-Aug-2020 12:58:00 1920 NaN NaN
"MathWorks India Transmitter" "MathWorks Australia Receiver" 5 20-Aug-2020 15:25:00 20-Aug-2020 16:05:00 2400 NaN NaN
"MathWorks India Transmitter" "MathWorks Australia Receiver" 6 20-Aug-2020 18:28:00 20-Aug-2020 19:13:00 2700 NaN NaN
Использование play
визуализация симуляции сценария от его начального времени до времени остановки. Зеленые линии исчезают всякий раз, когда ссылка не может быть закрыто.
play(sc);
Запас ссылку в приемник является различие между энергией на бит к шуму степени коэффициентом спектральной плотности (Eb/No) в приемник и его RequiredEbNo
. Для успешного закрытия ссылки, запас ссылки должен быть положительным на всех узлах приемника. Чем выше запас по ссылке, тем лучше качество ссылки. Чтобы вычислить маржу ссылки в конечном узле, то есть MathWorks Australia Приемника, используйте ebno
получить историю Eb/No в MathWorks Australia Receiver и вычесть ее RequiredEbNo
из этого количества, чтобы получить маржу ссылки. Кроме того, используйте plot
для построения графика вычисления запаса ссылки.
[e, time] = ebno(lnk); margin = e - mwAustraliaRx.RequiredEbNo; plot(time,margin,"LineWidth",2); xlabel("Time"); ylabel("Link Margin (dB)"); grid on;
Погрешности в графике подразумевают, что ссылка было разорвана до достижения конечного узла в ссылке, или линия зрения между конечным узлом и узлом до него, то есть MathWorks Sat 2, была разбита. В любое другое время поле ссылки положительно. Это подразумевает, что степень передатчика MathWorks Sat 2 и чувствительность приемника MathWorks Australia всегда достаточны. Это также подразумевает, что запас положителен во всех других переходах ссылки.
Увеличьте RequiredEbNo
из приемника в MathWorks Australia от 1 дБ до 10 дБ и пересчитать интервалы ссылки. Увеличение RequiredEbNo
существенно снижает чувствительность MathWorks Australia Receiver. Это отрицательно влияет на результирующее время закрытия ссылки и запас ссылки. Количество интервалов замкнутой ссылки падает с шести до пяти, а длительность интервалов замкнутой ссылки короче. Сравнение запаса ссылки с помощью перерасчета и построения графика запаса ссылки. При необходимом значении EbNo, равном 10 дБ, закрытие ссылки иногда ограничивается полем ссылки, когда между смежными узлами есть линия визирования.
mwAustraliaRx.RequiredEbNo = 10; % decibels
linkIntervals(lnk)
ans=5×8 table
Source Target IntervalNumber StartTime EndTime Duration StartOrbit EndOrbit
_____________________________ ______________________________ ______________ ____________________ ____________________ ________ __________ ________
"MathWorks India Transmitter" "MathWorks Australia Receiver" 1 19-Aug-2020 20:55:00 19-Aug-2020 21:18:00 1380 NaN NaN
"MathWorks India Transmitter" "MathWorks Australia Receiver" 2 19-Aug-2020 23:43:00 20-Aug-2020 00:15:00 1920 NaN NaN
"MathWorks India Transmitter" "MathWorks Australia Receiver" 3 20-Aug-2020 12:30:00 20-Aug-2020 12:58:00 1680 NaN NaN
"MathWorks India Transmitter" "MathWorks Australia Receiver" 4 20-Aug-2020 15:29:00 20-Aug-2020 16:05:00 2160 NaN NaN
"MathWorks India Transmitter" "MathWorks Australia Receiver" 5 20-Aug-2020 18:32:00 20-Aug-2020 19:13:00 2460 NaN NaN
Кроме того, выполните пересчет и постройте график нового запаса ссылки и сравните его с предыдущим графиком. Маржа ссылки в целом снизилась, что означает, что качество ссылки снизилось в результате снижения чувствительности приемника. В некоторых случаях запас по ссылке отрицателен, что означает, что бывают моменты, когда ссылка все же ломается в MathWorks Australia Receiver, даже если у него есть линия зрения на MathWorks Sat 2.
[e, newTime] = ebno(lnk); newMargin = e - mwAustraliaRx.RequiredEbNo; plot(newTime,newMargin,"r",time,margin,"b","LineWidth",2); xlabel("Time"); ylabel("Link Margin (dB)"); legend("New link margin","Old link margin","Location","north"); grid on;
Этот пример продемонстрировал, как настроить регенеративный тип ретранслятора с несколькими ссылок и как определить время, когда ссылка закрыта. Время закрытия ссылки зависит от запаса ссылки в каждом приемнике в ссылке. Запас ссылку является различие между энергией на бит к шуму степени коэффициентом спектральной плотности (Eb/No) в приемник и необходимым Eb/No. Eb/No в приемник является функцией:
Орбита и режим указания спутников, удерживающих передатчики и приемники
Положение наземных станций, удерживающих передатчики и приемники
Положение, ориентация и режим указания карданных элементов, удерживающих передатчики и приемники
Положение и ориентация передатчиков и приемников относительно их родительских элементов
Спецификации передатчиков - степень, частота, бит и потери системы
Спецификации приемников - коэффициент усиления/шума, необходимый Eb/No и потери системы
Спецификации антенн передатчика и приемника, такие как диаметр тарелки и эффективности апертуры для Гауссовой антенны
Измените вышеуказанные параметры и наблюдайте их влияние на ссылку, чтобы выполнить различные типы анализа what-if.
access
| conicalSensor
| groundStation
| receiver
| satellite
| satelliteScenario
| satelliteScenarioViewer
| transmitter