Main Content

Import Custom Scenario into Time-Varying Satellite Link Budget Analyzer

Since R2024b

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.

imported_scenario_configuration.png

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