Gimbal
Description
The Gimbal defines a gimbal object belonging to a satellite
      scenario.
Creation
You can create a Gimbal object using the gimbal object function of
      the Satellite, Platform, or GroundStation.
Properties
You can set this property only when calling the Gimbal
            function. After you call the gimbal function, this property is
            read-only.
Gimbal name, specified as a name-value argument consisting of
              'Name' and a string scalar, string vector, character vector, or a
            cell array of character vectors.
- If you are adding only one Gimbal, specify - Nameas a string scalar or a character vector.
- If you are adding multiple gimbals, specify - Nameas a string scalar, character vector, string vector, or a cell array of character vectors. All gimbals that you add as a string scalar or a character vector are assigned the same specified name. The number of elements in the string vector or cell array of character vectors must equal the number of gimbals that you are adding. Each gimbal is assigned the corresponding name from the vector or cell array.
In the default value, idx is the ID assigned by the satellite scenario.
Data Types: char | string
This property is set internally by the simulator and is read-only.
Gimbal ID assigned by the simulator, specified as a positive scalar.
Mounting location with respect to the parent object in meters, specified as a
            three-element vector or a matrix. The position vector is specified in the body frame of
            the input parent.
- If you are adding one gimbal, the - MountingLocationproperty is a three-element vector. The elements specify the x, y, and z components of the Cartesian coordinates in the body frame of gimbal.
- If you are adding multiple gimbals, the - MountingLocationproperty can be a three-element vector or a matrix. When specified as a vector, the same set of mounting locations are assigned to all specified gimbals. When specified as a matrix,- MountingLocationmust contain three rows and the same number of columns as the gimbals. The columns correspond to the mounting location of each specified gimbal and the rows correspond to the mounting location coordinates in the parent body frame.
When the AutoSimulate property of the satellite scenario is
              false, you can modify the MountingLocation
            property only when SimulationStatus is NotStarted. You can use the
              restart function to
            reset SimulationStatus to NotStarted, but doing
            so erases the simulation data.
Data Types: double
Mounting orientation with respect to parent object in degrees, specified as a three-element row vector of positive numbers. The elements of the vector correspond to yaw, pitch, and roll, in that order. Yaw, pitch, and roll are positive rotations about the z-axis, intermediate y-axis, and intermediate x-axis of the parent.
- If you are adding one gimbal, the - MountingAnglesproperty is a three-element vector.
- If you are adding multiple gimbals the - MountingAnglesproperty can be a three-element vector or a matrix. When specified as a vector, the same set of mounting angles are assigned to all specified gimbals. When specified as a matrix,- MountingAnglesmust contain three rows and the same number of columns as the gimbals. The columns correspond to the mounting angles of each specified gimbal and the rows correspond to the yaw, pitch, and roll angles in the parent body frame.
When the AutoSimulate property of the satellite scenario is
              false, you can modify the MountingAngles
            property only when SimulationStatus is NotStarted. You can use the
              restart function to
            reset SimulationStatus to NotStarted, but doing
            so erases the simulation data.
Example: [0; 30; 60]
Data Types: double
You can set this property only when calling
      the conicalSensor. After you
      call the conicalSensor function, this property is read-only.
Conical sensors attached to the Gimbal, specified as a row vector of conical sensors.
You can set this property only when calling coordinateAxes.
            After you call coordinateAxes,
            this property is read-only.
Coordinate axes triad graphic object, specified as CoordinateAxes
            object.
Object Functions
| aer | Calculate azimuth angle, elevation angle, and range of another satellite or ground station in NED frame | 
| conicalSensor | Add conical sensor to satellite scenario | 
| gimbalAngles | Steering angles of gimbal | 
| pointAt | Point satellite at target | 
| coordinateAxes(Satellite Communications Toolbox) | Visualize coordinate axes triad of satellite scenario assets | 
| show(Satellite Communications Toolbox) | Show object in satellite scenario viewer | 
Examples
Create a satellite scenario with a start time of 15-June-2021 8:55:00 AM UTC and a stop time of five days later. Set the simulation sample time to 60 seconds.
startTime = datetime(2021,6,21,8,55,0);
stopTime = startTime + days(5);
sampleTime = 60;                                      % seconds
sc = satelliteScenario(startTime,stopTime,sampleTime)sc = 
  satelliteScenario with properties:
         StartTime: 21-Jun-2021 08:55:00
          StopTime: 26-Jun-2021 08:55:00
        SampleTime: 60
      AutoSimulate: 1
        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
Add a satellite to the scenario using Keplerian orbital elements.
semiMajorAxis = 7878137; % meters eccentricity = 0; inclination = 50; % degrees rightAscensionOfAscendingNode = 0; % degrees argumentOfPeriapsis = 0; % degrees trueAnomaly = 50; % degrees sat = satellite(sc,semiMajorAxis,eccentricity,inclination,rightAscensionOfAscendingNode, ... argumentOfPeriapsis,trueAnomaly)
sat = 
  Satellite with properties:
                  Name:  Satellite 1
                    ID:  1
        ConicalSensors:  [1x0 matlabshared.satellitescenario.ConicalSensor]
               Gimbals:  [1x0 matlabshared.satellitescenario.Gimbal]
          Transmitters:  [1x0 satcom.satellitescenario.Transmitter]
             Receivers:  [1x0 satcom.satellitescenario.Receiver]
              Accesses:  [1x0 matlabshared.satellitescenario.Access]
               Eclipse:  [1x0 Aero.satellitescenario.Eclipse]
           GroundTrack:  [1x1 matlabshared.satellitescenario.GroundTrack]
                 Orbit:  [1x1 matlabshared.satellitescenario.Orbit]
        CoordinateAxes:  [1x1 matlabshared.satellitescenario.CoordinateAxes]
       OrbitPropagator:  sgp4
           MarkerColor:  [0.059 1 1]
            MarkerSize:  6
             ShowLabel:  true
        LabelFontColor:  [1 1 1]
         LabelFontSize:  15
         Visual3DModel:  
    Visual3DModelScale:  1
Add a ground station, which represents the location to be photographed, to the scenario.
gs = groundStation(sc,Name="Location to Photograph", ... Latitude=42.3001,Longitude=-71.3504) % degrees
gs = 
  GroundStation with properties:
                 Name:  Location to Photograph
                   ID:  2
             Latitude:  42.3001 degrees
            Longitude:  -71.3504 degrees
             Altitude:  0 meters
    MinElevationAngle:  0 degrees
       ConicalSensors:  [1x0 matlabshared.satellitescenario.ConicalSensor]
              Gimbals:  [1x0 matlabshared.satellitescenario.Gimbal]
         Transmitters:  [1x0 satcom.satellitescenario.Transmitter]
            Receivers:  [1x0 satcom.satellitescenario.Receiver]
             Accesses:  [1x0 matlabshared.satellitescenario.Access]
              Eclipse:  [1x0 Aero.satellitescenario.Eclipse]
       CoordinateAxes:  [1x1 matlabshared.satellitescenario.CoordinateAxes]
          MarkerColor:  [1 0.4118 0.1608]
           MarkerSize:  6
            ShowLabel:  true
       LabelFontColor:  [1 1 1]
        LabelFontSize:  15
Add a gimbal to the satellite. You can steer this gimbal independently of the satellite.
g = gimbal(sat)
g = 
  Gimbal with properties:
                Name:  Gimbal 3
                  ID:  3
    MountingLocation:  [0; 0; 0] meters
      MountingAngles:  [0; 0; 0] degrees
      ConicalSensors:  [1x0 matlabshared.satellitescenario.ConicalSensor]
        Transmitters:  [1x0 satcom.satellitescenario.Transmitter]
           Receivers:  [1x0 satcom.satellitescenario.Receiver]
      CoordinateAxes:  [1x1 matlabshared.satellitescenario.CoordinateAxes]
Track the location to be photographed using the gimbal.
pointAt(g,gs);
Add a conical sensor to the gimbal. This sensor represents the camera. Set the field of view to 60 degrees.
camSensor = conicalSensor(g,MaxViewAngle=60)
camSensor = 
  ConicalSensor with properties:
                Name:  Conical sensor 4
                  ID:  4
    MountingLocation:  [0; 0; 0] meters
      MountingAngles:  [0; 0; 0] degrees
        MaxViewAngle:  60 degrees
            Accesses:  [1x0 matlabshared.satellitescenario.Access]
         FieldOfView:  [0x0 matlabshared.satellitescenario.FieldOfView]
      CoordinateAxes:  [1x1 matlabshared.satellitescenario.CoordinateAxes]
Add access analysis to the conical sensor between the camera and the location to be photographed.
ac = access(camSensor,gs)
ac = 
  Access with properties:
    Sequence:  [4 2]
    LineWidth:  3
    LineColor:  [0.3922 0.8314 0.0745]
Visualize the field of view of the camera by using the Satellite Scenario Viewer.
v = satelliteScenarioViewer(sc); fieldOfView(camSensor);

Determine the intervals during which the camera can see the geographical site.
t = accessIntervals(ac)
t=35×8 table
          Source                   Target             IntervalNumber         StartTime                EndTime           Duration    StartOrbit    EndOrbit
    __________________    ________________________    ______________    ____________________    ____________________    ________    __________    ________
    "Conical sensor 4"    "Location to Photograph"           1          21-Jun-2021 10:38:00    21-Jun-2021 10:55:00      1020           1            2   
    "Conical sensor 4"    "Location to Photograph"           2          21-Jun-2021 12:36:00    21-Jun-2021 12:58:00      1320           2            3   
    "Conical sensor 4"    "Location to Photograph"           3          21-Jun-2021 14:37:00    21-Jun-2021 15:01:00      1440           3            4   
    "Conical sensor 4"    "Location to Photograph"           4          21-Jun-2021 16:41:00    21-Jun-2021 17:04:00      1380           5            5   
    "Conical sensor 4"    "Location to Photograph"           5          21-Jun-2021 18:44:00    21-Jun-2021 19:07:00      1380           6            6   
    "Conical sensor 4"    "Location to Photograph"           6          21-Jun-2021 20:46:00    21-Jun-2021 21:08:00      1320           7            7   
    "Conical sensor 4"    "Location to Photograph"           7          21-Jun-2021 22:50:00    21-Jun-2021 23:04:00       840           8            8   
    "Conical sensor 4"    "Location to Photograph"           8          22-Jun-2021 09:51:00    22-Jun-2021 10:02:00       660          13           13   
    "Conical sensor 4"    "Location to Photograph"           9          22-Jun-2021 11:46:00    22-Jun-2021 12:07:00      1260          14           15   
    "Conical sensor 4"    "Location to Photograph"          10          22-Jun-2021 13:46:00    22-Jun-2021 14:10:00      1440          15           16   
    "Conical sensor 4"    "Location to Photograph"          11          22-Jun-2021 15:49:00    22-Jun-2021 16:13:00      1440          16           17   
    "Conical sensor 4"    "Location to Photograph"          12          22-Jun-2021 17:53:00    22-Jun-2021 18:16:00      1380          18           18   
    "Conical sensor 4"    "Location to Photograph"          13          22-Jun-2021 19:55:00    22-Jun-2021 20:18:00      1380          19           19   
    "Conical sensor 4"    "Location to Photograph"          14          22-Jun-2021 21:58:00    22-Jun-2021 22:16:00      1080          20           20   
    "Conical sensor 4"    "Location to Photograph"          15          23-Jun-2021 10:56:00    23-Jun-2021 11:16:00      1200          26           27   
    "Conical sensor 4"    "Location to Photograph"          16          23-Jun-2021 12:56:00    23-Jun-2021 13:19:00      1380          27           28   
      ⋮
Calculate the maximum revisit time in hours.
startTimes = t.StartTime;
endTimes = t.EndTime;
revisitTimes = hours(startTimes(2:end) - endTimes(1:end-1));
maxRevisitTime = max(revisitTimes)                             % hoursmaxRevisitTime = 12.666666666666666
Visualize the revisit times that the camera photographs of the location.
play(sc);

Version History
Introduced in R2021a
See Also
Objects
Functions
- show|- play|- hide|- satellite|- access|- groundStation|- conicalSensor|- platform
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.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)