satelliteScenario
Description
The satelliteScenario object represents a 3-D arena consisting of
satellites, ground stations, and the interactions between them. Use this object to model
satellite constellations, model ground station networks, perform access analyses between the
satellites and the ground stations, and visualize the results.
Creation
Syntax
Description
creates a default
satellite scenario object.sc = satelliteScenario
sets the sc = satelliteScenario(startTime,stopTime,sampleTime)StartTime, StopTime,
and SampleTime properties to the values of startTime,
stopTime, and sampleTime, respectively.
sets the sc = satelliteScenario(___,'AutoSimulate',false)AutoSimulate property to a specified value.
Properties
Start time of the satellite scenario simulation in UTC, specified as a datetime scalar.
The default StartTime is the current UTC time if no satellites
are present in the scenario. Otherwise, it is the earliest value among
the current UTC time.
the epoch defined in the TLE files.
the reference time deduced from the GPS week number defined in SEM files.
the earliest time deduced from RINEX navigation data for GPS and Galileo.
the initial time in the timetable and timeseries.
If the StartTime, StopTime, or
SampleTime properties are explicitly specified, the
StartTime property no longer updates with further additions of
satellites.
When the AutoSimulate property is false, you can modify the
StartTime property only when the SimulationStatus is NotStarted. You can use the
restart function to
reset SimulationStatus to NotStarted, but doing
so erases the simulation data.
Data Types: datetime
Stop time of the satellite scenario simulation in UTC, specified as a datetime scalar. The default StopTime is
StartTime + longest orbital period among the satellites in the
scenario. If no satellites are added to the scenario, the default
StopTime is the same as the default
StartTime. If the StartTime,
StopTime, or SampleTime properties are
explicitly specified, the StopTime property no longer updates with
further additions of satellites.
When the AutoSimulate property is false, you can modify the
StopTime property only when the SimulationStatus is NotStarted. You can use the
restart function to
reset SimulationStatus to NotStarted, but doing
so erases the simulation data.
Data Types: datetime
Sample time of the satellite scenario simulation, specified as a real-valued scalar.
The default sample time is set such that there are 100 samples between
StartTime and StopTime. If the default
StartTime and StopTime are the same, which
is the case when no satellites are added to the scenario, the default
SampleTime is 60 seconds. If the StartTime,
StopTime, or SampleTime properties are
explicitly specified, the SampleTime property no longer updates
with further additions of satellites.
When the AutoSimulate property is false, you can modify the
SampleTime property only when the SimulationStatus is NotStarted. You can use the
restart function to
reset SimulationStatus to NotStarted, but doing
so erases the simulation data.
Data Types: double
This property is read-only.
Current simulation time of the satellite scenario simulation in UTC, specified as a
datetime scalar. Call the restart function to
reset the time to StartTime.
Dependencies
To enable this property, set AutoSimulate to false.
Data Types: datetime
This property is read-only.
Simulation status of the satellite scenario, specified as one of the following:
'NotStarted'— No call to theadvancefunction has been made'InProgress'— Simulation is running'Completed'— Simulation is finished
The simulation starts when the first call to the advance function is
made. The simulation continues until one of the following occurs:
The simulation reaches the
StopTime.A new asset is added to the satellite scenario.
Certain properties of the asset (satellites, ground stations, gimbals, conical sensors, and so on) have been modified, such as
MountingLocationorMountingAngles. Refer to the properties to determine if modifying them can stop the simulation.
Call the restart function to
restart the simulation, erase the simulation data, and set
SimulationStatus to NotStarted.
Dependencies
To enable this property, set AutoSimulate to false.
Option to simulate the satellite scenario automatically, specified as one of these numeric or logical values.
1(true) — Simulate the satellite scenario automatically on any call to an analysis function, such asstatesoraccessIntervals.0(false)— Simulate the satellite scenario only by calling theadvancefunction.
Changing the AutoSimulate value erases the previous
simulation data.
Data Types: double
Ground stations in the scenario, returned as a row vector of GroundStation objects.
To create a GroundStation object
and add it to the satellite scenario, use the groundStation object
function. After adding ground stations to the scenario, this property is
read-only.
Option to automatically show graphics, specified as a logical 1
(true) or 0 (false). This
property determines if entities added to the scenario are automatically shown in an open
satelliteScenarioViewer
window.
Central body options used by the satellite scenario, specified as a scalar Aero.satellitescenario.CentralBodyOptions (Aerospace Toolbox) object. This property is
Read-only.
Object Functions
groundStation | Add ground station to satellite scenario |
satellite | Add satellites to satellite scenario |
satelliteScenarioViewer | Create viewer for satellite scenario |
platform | Add platforms to satellite scenario |
advance | Move simulation forward by one sample time |
restart | Restart simulation from beginning |
play | Play satellite scenario simulation results on viewer |
centralBodyOptions (Aerospace Toolbox) | Modify central body options used in satellite scenario |
Examples
Specify the start time in the current time zone as yesterday. The simulation lasts for half a day.
startTime = datetime("yesterday","TimeZone","local"); stopTime = startTime + days(0.5);
Specify the sample time as 60 seconds. Create a satellite scenario object, specifying the start time, stop time, and sample time.
sampleTime = 60; sc = satelliteScenario(startTime,stopTime,sampleTime)
sc =
satelliteScenario with properties:
StartTime: 08-Aug-2025 04:00:00
StopTime: 08-Aug-2025 16:00:00
SampleTime: 60
AutoSimulate: 1
CentralBodyOptions: [1×1 Aero.satellitescenario.CentralBodyOptions]
Satellites: [1×0 matlabshared.satellitescenario.Satellite]
GroundStations: [1×0 matlabshared.satellitescenario.GroundStation]
Platforms: [1×0 matlabshared.satellitescenario.Platform]
Viewers: [0×0 matlabshared.satellitescenario.Viewer]
AutoShow: 1
Create a satellite scenario with a start time of 02-June-2020 8:23:00 AM UTC, and the stop time set to one day later. Set the simulation sample time to 60 seconds.
startTime = datetime(2020,6,02,8,23,0); stopTime = startTime + days(1); sampleTime = 60; sc = satelliteScenario(startTime,stopTime,sampleTime);
Add two satellites to the scenario using their Keplerian elements.
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 =
1x2 Satellite array with properties:
Name
ID
ConicalSensors
Gimbals
Transmitters
Receivers
Accesses
GroundTrack
Orbit
OrbitPropagator
MarkerColor
MarkerSize
ShowLabel
LabelFontColor
LabelFontSize
View the satellites in orbit and the ground tracks over one hour.
show(sat) groundTrack(sat,LeadTime=3600)
ans=1×2 object
1×2 GroundTrack array with properties:
LeadTime
TrailTime
LineWidth
LeadLineColor
TrailLineColor
VisibilityMode
Play the scenario and set the animation speed of the simulation to 40.
play(sc,PlaybackSpeedMultiplier=40)

Create a satellite scenario object and set the AutoSimulate property to false to enable manual simulation of the satellite scenario.
sc = satelliteScenario('AutoSimulate',false);Add a GPS satellite constellation to the scenario.
sat = satellite(sc,"gpsAlmanac.txt");Simulate the scenario using the advance function.
while advance(sc) end
Obtain the satellite position histories.
p = states(sat);
AutoSimulate is false, so restart the scenario before adding a ground station.
restart(sc);
Add a ground station to the scenario.
gs = groundStation(sc);
Add access analysis between each satellite and ground station.
ac = access(sat,gs);
Simulate the scenario and determine the access intervals.
while advance(sc) end intvls1 = accessIntervals(ac)
intvls1=35×8 table
Source Target IntervalNumber StartTime EndTime Duration StartOrbit EndOrbit
________ ___________________ ______________ ____________________ ____________________ ________ __________ ________
"PRN:1" "Ground station 32" 1 11-Jan-2020 23:20:25 12-Jan-2020 05:15:47 21322 NaN NaN
"PRN:2" "Ground station 32" 1 12-Jan-2020 04:03:16 12-Jan-2020 07:48:06 13490 NaN NaN
"PRN:3" "Ground station 32" 1 11-Jan-2020 19:50:06 11-Jan-2020 21:38:53 6527.3 NaN NaN
"PRN:3" "Ground station 32" 2 12-Jan-2020 01:52:43 12-Jan-2020 06:42:49 17406 NaN NaN
"PRN:4" "Ground station 32" 1 11-Jan-2020 19:50:06 12-Jan-2020 00:11:11 15665 NaN NaN
"PRN:4" "Ground station 32" 2 12-Jan-2020 04:54:02 12-Jan-2020 07:48:06 10444 NaN NaN
"PRN:5" "Ground station 32" 1 12-Jan-2020 05:52:03 12-Jan-2020 07:48:06 6962.4 NaN NaN
"PRN:6" "Ground station 32" 1 12-Jan-2020 02:43:29 12-Jan-2020 07:48:06 18276 NaN NaN
"PRN:7" "Ground station 32" 1 11-Jan-2020 21:09:52 12-Jan-2020 03:27:00 22628 NaN NaN
"PRN:8" "Ground station 32" 1 11-Jan-2020 20:33:36 12-Jan-2020 03:19:45 24369 NaN NaN
"PRN:9" "Ground station 32" 1 11-Jan-2020 19:50:06 12-Jan-2020 00:47:27 17841 NaN NaN
"PRN:9" "Ground station 32" 2 12-Jan-2020 05:08:32 12-Jan-2020 07:48:06 9573.3 NaN NaN
"PRN:10" "Ground station 32" 1 12-Jan-2020 00:32:56 12-Jan-2020 01:59:58 5221.8 NaN NaN
"PRN:11" "Ground station 32" 1 11-Jan-2020 22:15:09 12-Jan-2020 04:39:32 23063 NaN NaN
"PRN:12" "Ground station 32" 1 12-Jan-2020 04:32:16 12-Jan-2020 07:48:06 11749 NaN NaN
"PRN:13" "Ground station 32" 1 12-Jan-2020 00:03:56 12-Jan-2020 02:50:44 10008 NaN NaN
⋮
Visualize the simulation results.
v = satelliteScenarioViewer(sc,'ShowDetails',false);
play(sc);
Verify that the access intervals are the same when you set the AutoSimulate property to true.
sc.AutoSimulate = true; intvls2 = accessIntervals(ac)
intvls2=35×8 table
Source Target IntervalNumber StartTime EndTime Duration StartOrbit EndOrbit
________ ___________________ ______________ ____________________ ____________________ ________ __________ ________
"PRN:1" "Ground station 32" 1 11-Jan-2020 23:20:25 12-Jan-2020 05:15:47 21322 NaN NaN
"PRN:2" "Ground station 32" 1 12-Jan-2020 04:03:16 12-Jan-2020 07:48:06 13490 NaN NaN
"PRN:3" "Ground station 32" 1 11-Jan-2020 19:50:06 11-Jan-2020 21:38:53 6527.3 NaN NaN
"PRN:3" "Ground station 32" 2 12-Jan-2020 01:52:43 12-Jan-2020 06:42:49 17406 NaN NaN
"PRN:4" "Ground station 32" 1 11-Jan-2020 19:50:06 12-Jan-2020 00:11:11 15665 NaN NaN
"PRN:4" "Ground station 32" 2 12-Jan-2020 04:54:02 12-Jan-2020 07:48:06 10444 NaN NaN
"PRN:5" "Ground station 32" 1 12-Jan-2020 05:52:03 12-Jan-2020 07:48:06 6962.4 NaN NaN
"PRN:6" "Ground station 32" 1 12-Jan-2020 02:43:29 12-Jan-2020 07:48:06 18276 NaN NaN
"PRN:7" "Ground station 32" 1 11-Jan-2020 21:09:52 12-Jan-2020 03:27:00 22628 NaN NaN
"PRN:8" "Ground station 32" 1 11-Jan-2020 20:33:36 12-Jan-2020 03:19:45 24369 NaN NaN
"PRN:9" "Ground station 32" 1 11-Jan-2020 19:50:06 12-Jan-2020 00:47:27 17841 NaN NaN
"PRN:9" "Ground station 32" 2 12-Jan-2020 05:08:32 12-Jan-2020 07:48:06 9573.3 NaN NaN
"PRN:10" "Ground station 32" 1 12-Jan-2020 00:32:56 12-Jan-2020 01:59:58 5221.8 NaN NaN
"PRN:11" "Ground station 32" 1 11-Jan-2020 22:15:09 12-Jan-2020 04:39:32 23063 NaN NaN
"PRN:12" "Ground station 32" 1 12-Jan-2020 04:32:16 12-Jan-2020 07:48:06 11749 NaN NaN
"PRN:13" "Ground station 32" 1 12-Jan-2020 00:03:56 12-Jan-2020 02:50:44 10008 NaN NaN
⋮
Visualize the scenario.
play(sc);

Tips
When saving the satellite scenario, either save the entire workspace containing the scenario object or save the scenario object itself.
Version History
Introduced in R2021aR2024b: Satellite scenario: Align SGP4/SDP4 with Revisiting Spacetrack Report #3
See Also
Objects
Functions
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)