Main Content

Model, Visualize, and Analyze Satellite Scenario

This example shows how to model satellites in orbit, analyze access between the satellites and the ground stations, and visualize the fields of view and ground tracks of the satellites.

Create Satellite Scenario

Create a satellite scenario with the 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");

Show the satellites in orbit and plot their ground tracks over 20 minutes.

show(sat)
groundTrack(sat,"LeadTime",1200);

Return Orbital Elements and Position of Satellites

Display the orbital elements of each satellite in the scenario.

ele1 = orbitalElements(sat(1))
ele1 = struct with fields:
                       MeanMotion: 0.0525
                     Eccentricity: 1.0000e-03
                      Inclination: 55
    RightAscensionOfAscendingNode: 175.0000
              ArgumentOfPeriapsis: 100
                      MeanAnomaly: 174.9900
                           Period: 6.8557e+03
                            Epoch: 02-Jun-2020 18:43:16
                            BStar: 1.0000e-04

ele2 = orbitalElements(sat(2))
ele2 = struct with fields:
                       MeanMotion: 0.0487
                     Eccentricity: 1.0000e-03
                      Inclination: 55
    RightAscensionOfAscendingNode: 350.0000
              ArgumentOfPeriapsis: 90
                      MeanAnomaly: 310.0877
                           Period: 7.3898e+03
                            Epoch: 02-Jun-2020 18:33:26
                            BStar: 1.0000e-04

ele3 = orbitalElements(sat(3))
ele3 = struct with fields:
                       MeanMotion: 0.0496
                     Eccentricity: 1.0000e-03
                      Inclination: 55
    RightAscensionOfAscendingNode: 270
              ArgumentOfPeriapsis: 95
                      MeanAnomaly: 119.9007
                           Period: 7.2550e+03
                            Epoch: 02-Jun-2020 18:37:40
                            BStar: 1.0000e-04

Return the latitude, longitude, and altitude of the first satellite at time 02-June-2020 12:30:00 PM UTC.

time = datetime(2020,6,02,12,30,0);
pos = states(sat(1),time,"CoordinateFrame","geographic")
pos = 3×1
106 ×

    0.0000
   -0.0001
    1.4212

Add Ground Stations

Specify the latitudes and longitudes of the Madrid and Canberra Deep Space Communications Complexes as ground stations of interest.

name = ["Madrid Deep Space Communications Complex", ...
      "Canberra Deep Space Communications Complex"];
lat = [40.43139, -35.40139];
lon = [-4.24806, 148.98167];
gs = groundStation(sc,"Name",name,"Latitude",lat, ...
    "Longitude", lon);

Return Azimuth Angle, Elevation Angle, and Range at Specified Time

Return the azimuth angle, elevation angle and range of the first satellite with respect to the Madrid Deep Space Communications Complex at time 02-June-2020 12:30:00 PM UTC.

time = datetime(2020,6,02,12,30,0);
[az,elev,r] = aer(gs(1),sat(1),time)
az = 264.2457
elev = -34.0669
r = 9.3088e+06

Play the satellite scenario with the satellites and ground stations.

play(sc)

Output of animation reflecting satellites and ground stations.

See Also

Objects

Functions

Related Topics