Import Custom Scenario into Time-Varying Satellite Link Budget Analyzer
This example shows how to:
Model a customized scenario using the
satelliteScenario
object.Save the custom scenario, and import it into the Satellite Link Budget Analyzer app to perform time-varying link budget analysis.
Create and delete links in the imported scenario.
This example models a scenario with three satellites added from a two-line element (TLE) file and links defined in both uplink and downlink directions. You can save the scenario object to a MAT file, which you can import directly into the Satellite Link Budget Analyzer app to analyze the time-varying link budget.
Create Satellite Scenario
Create a satellite scenario with a start time of 02-June-2020 8:23:00 AM UTC and a stop time of five hours later. Set the simulation sample time to 60
seconds.
startTime = datetime(2020,6,02,8,23,0); stopTime = startTime + hours(5); sampleTime = 60; sc = satelliteScenario(startTime,stopTime,sampleTime);
Add Satellites to Scenario
Add satellites to the scenario from the threeSatelliteConstellation
TLE file.
sat = satellite(sc,"threeSatelliteConstellation.tle");
Add Gimbals to Satellites
Add a gimbal to each satellite. You can steer the gimbal independently of the satellite.
In this example, gimbals enable the receiver antenna of Satellite 1 to steer to Ground Station 1 and the transmitter antenna of Satellite 2 to steer to Ground Station 2.
gimbalrxSat1 = gimbal(sat(1)); gimbaltxSat2 = gimbal(sat(2));
Add Receivers and Transmitters to Gimbals
Add a receiver to the gimbal of Satellite 1.
gainToNoiseTemperatureRatio = 5; % dB/K systemLoss = 3; % dB rxSat1 = receiver(gimbalrxSat1,Name="Satellite 1 Receiver", ... GainToNoiseTemperatureRatio=gainToNoiseTemperatureRatio, ... SystemLoss=systemLoss);
Add a transmitter to the gimbal of Satellite 2.
frequency = 27e9; % Hz power = 20; % dBW bitRate = 20; % Mbps systemLoss = 3; % dB txSat2 = transmitter(gimbaltxSat2,Name="Satellite 2 Transmitter", ... Frequency=frequency,power=power,BitRate=bitRate, ... SystemLoss=systemLoss);
Define the antenna specifications of the satellites.
dishDiameter = 0.5; % m apertureEfficiency = 0.5; gaussianAntenna(rxSat1,DishDiameter=dishDiameter, ... ApertureEfficiency=apertureEfficiency); gaussianAntenna(txSat2,DishDiameter=dishDiameter, ... ApertureEfficiency=apertureEfficiency);
Add Ground Stations
Add Ground Station 1 and Ground Station 2.
gs1 = groundStation(sc,Name="Ground Station 1"); % Default location latitude = -35.40139; % degrees longitude = 148.98167; % degrees gs2 = groundStation(sc,latitude,longitude, ... Name="Ground Station 2");
Add Gimbal to Each Ground Station
Add gimbals to the ground stations. These gimbals enable the ground station antennas to steer toward the satellite.
gimbalgs1 = gimbal(gs1); gimbalgs2 = gimbal(gs2);
Add Transmitters and Receivers to Ground Station Gimbals
Add a transmitter to ground station gs1
.
frequency = 30e9; % Hz power = 40; % dBW bitRate = 20; % Mbps txGs1 = transmitter(gimbalgs1,Name="Ground Station 1 Transmitter", ... Frequency=frequency,Power=power,BitRate=bitRate);
Add a receiver to ground station gs2
.
requiredEbNo = 14; % dB rxGs2 = receiver(gimbalgs2,Name="Ground Station 2 Receiver", ... RequiredEbNo=requiredEbNo);
Define the antenna specifications of the ground stations.
dishDiameter = 5; % m
gaussianAntenna(txGs1,DishDiameter=dishDiameter);
gaussianAntenna(rxGs2,DishDiameter=dishDiameter);
Set Tracking Targets for Gimbals
For the best link quality, the antennas must continuously point at their respective targets. You can steer the gimbals independently of their parents (satellite or ground station), and configure them to track other satellites and ground stations. Use pointAt
to set the tracking target for the gimbals so that:
The transmitter antenna at Ground Station 1 points at Satellite 1
The receiver antenna aboard Satellite 1 points at Ground Station 1
The transmitter antenna aboard Satellite 2 points at Ground Station 2
The receiver antenna at Ground Station 2 points at Satellite 2
pointAt(gimbalgs1,sat(1)); pointAt(gimbalrxSat1,gs1); pointAt(gimbaltxSat2,gs2); pointAt(gimbalgs2,sat(2));
Add Link Analysis
Create an uplink between gs1
and Satellite 1.
uplink = link(txGs1,rxSat1);
Create a downlink between Satellite 2 and gs2
.
downlink = link(txSat2,rxGs2);
Save Satellite Scenario to MAT file
Use the save
function to save the variables to the file importScenarioExample.mat
, in the current folder.
save("importScenarioExample.mat","sc");
Import Scenario into Satellite Link Budget Analyzer App
Launch the app, and choose the time-varying link budget analyzer option. This opens the default configuration of the time-varying link budget analyzer app.
On the toolstrip, click Import Scenario and select importScenarioExample.mat
to directly import the custom scenario.
The figure shows the updated app configuration after you import the custom scenario.
Add/Remove Links
You can select the Add/Remove Link button on the toolstrip to manage the links between a transmitter and a receiver.
See Also
Apps
Objects
Functions
satellite
|gimbal
|receiver
|transmitter
|groundStation
|pointAt
|link