Main Content

platform

Add platforms to satellite scenario

Since R2024a

Description

platform(scenario,trajectory) adds Platform objects to satellite scenario using the trajectory from the geoTrajectory system object.

example

platform(scenario,positiontable) adds Platform objects to the satellite scenario from position data. The position data is in meters.

platform(scenario,positiontable,velocitytable) adds a Platform objects to the satellite scenario from position and velocity data. The position data is in meters and the velocity data is in meters per second.

platform(scenario,positiontimeseries) adds a Platform object to the satellite scenario from position (in meters) data specified in the positiontimeseries (timeseries object).

platform(scenario,positiontimeseries,velocitytimeseries) adds a Platform object to the satellite scenario from position (in meters) data specified in the positiontimeseries (timeseries object) and velocity (in meters/second) data specified in the velocitytimeseries (timeseries object).

platform(___,Name,Value) specifies options using one or more name-value arguments in addition to any input argument combination from previous syntaxes.

pltf = platform(___) adds a Platform object platform to the satellite scenario and returns a vector of handles to these platforms.

Note

When the AutoSimulate property of the satelliteScenario is false, SimulationStatus is NotStarted while calling platform. You can use the restart function to reset SimulationStatus to NotStarted. Note that calling restart will erase the simulation data.

Examples

collapse all

Create a scenario using satelliteScenario.

sc = satelliteScenario();
viewer = satelliteScenarioViewer(sc);

Consider an aircraft taking off from Delhi International Airport, flying over Bangalore, and then landing in Dubai. The total flying time is three hours. Create a trajectory using geoTrajectory.

trajectory = geoTrajectory([28.5567,77.1006,10600;13.1989,77.7068,30600;25.2566,55.3641,5600],[0,3600,3*3600],AutoPitch=true,AutoBank=true);

Add a platform to the satellite scenario based on the trajectory.

pltf = platform(sc,trajectory)
pltf = 
  Platform with properties:

                  Name:  Platform 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]
                  Path:  [1x1 matlabshared.satellitescenario.Path]
        CoordinateAxes:  [1x1 matlabshared.satellitescenario.CoordinateAxes]
           MarkerColor:  [0.7176 0.2745 1]
            MarkerSize:  6
             ShowLabel:  true
        LabelFontColor:  [1 1 1]
         LabelFontSize:  15
         Visual3DModel:  
    Visual3DModelScale:  1

hide(pltf.Path);
show(pltf.GroundTrack);

Play viewer.

play(sc);

platform_example_1.png

Input Arguments

collapse all

Satellite scenario, specified as a satelliteScenario object.

Geo trajectory objects, specified as a geoTrajectory object or a cell array of geotrajectories..

Data Types: char | string

Note

When using geotrajectory as input, you do not need position, velocity,or attitude inputs.

Position data in meters, specified as a timetable created using the timetable function or table function. The positiontable has exactly one monotonically increasing column of rowTimes (datetime or duration) and either:

  • One or more columns of variables, where each column contains data for an individual platform over time.

  • One column of 2-D data, where the length of one dimension must equal 3 and the remaining dimension defines the number of platform in the ephemeris.

  • One column of 3-D data, where the length of one dimension must equal 3, one dimension is a singleton, and the remaining dimension defines the number of platforms in the ephemeris.

If rowTimes values are of type duration, time values are measured relative to the current scenario StartTime property. The timetable VariableNames property are used by default if no names are provided as an input. Platform states are assumed to be in the Geographic coordinate frame (GCRF). States are held constant in GCRF for scenario timesteps outside of the time range of positiontable.

Data Types: table | timetable

Velocity data in meters/second, specified as a timetable created using the timetable function or the table function. The velocitytable has exactly one monotonically increasing column of rowTimes (datetime or duration), and either:

  • One or more columns of variables, where each column contains data for an individual platform over time.

  • One column of 2-D data, where the length of one dimension must equal 3 and the remaining dimension defines the number of platform in the ephemeris.

  • One column of 3-D data, where the length of one dimension must equal 3, one dimension is a singleton, and the remaining dimension defines the number of platform in the ephemeris.

If rowTimes values are of type duration, time values are measured relative to the current scenario StartTime property. The timetable VariableNames are used by default if no names are provided as an input. Platform states are assumed to be in the GCRF unless a CoordinateFrame name-value argument is provided. States are held constant in GCRF for scenario timesteps outside of the time range of velocitytable.

Data Types: table | timetable

Position data in meters, specified as a timeseries object or a tscollection object.

  • If the Data property of the timeseries or tscollection object has two dimensions, one dimension must equal 3, and the other dimension must align with the orientation of the time vector.

  • If the Data property of the timeseries or tscollection has three dimensions, one dimension must equal 3, either the first or the last dimension must align with the orientation of the time vector, and the remaining dimension defines the number of platforms in the ephemeris.

    When timeseries.TimeInfo.StartDate is empty, time values are measured relative to the current scenario StartTime property. The timeseries Name property (if defined) is used by default if no names are provided as inputs. States are held constant in GCRF for scenario timesteps outside of the time range of positiontimeseries.

Data Types: timeseries | tscollection

Velocity data in meters/second, specified as a timeseries object or a tscollection object.

  • If the Data property of the timeseries or tscollection object has two dimensions, one dimension must equal 3, and the other dimension must align with the orientation of the time vector.

  • If the Data property of the timeseries or tscollection has three dimensions, one dimension must equal 3, either the first or the last dimension must align with the orientation of the time vector, and the remaining dimension defines the number of platforms in the ephemeris.

    When timeseries.TimeInfo.StartDate is empty, time values are measured relative to the current scenario StartTime property. The timeseries Name property (if defined) is used by default if no names are provided as inputs. States are held constant in GCRF for scenario timesteps outside of the time range of velocitytimeseries.

Data Types: timeseries | tscollection

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Example: Name = 'MySatellite' sets the satellite name to 'MySatellite'.

Satellite scenario viewer to visualize platforms, specified as a scalar, vector, or array of satelliteScenarioViewer objects. If the AutoSimulate property of the scenario is false, adding a platform to the scenario disables any previously available timeline and playback widgets.

Time offset from start of scenario when using geoTrajectory as an input, specified as a MATLAB® datetime object.

Attitude data, specified as a MATLAB timeseries object or a MATLAB timetable object or a MATLAB table object.

If the attitude specified is a MATLAB timetable then:

  • If pltf contains a single platform, the table must contain one data column of scalar-first quaternions [1-by-4] or ZYX Euler angles [1-by-3].

  • If pltf is an array of platform, each data row must contain either:

    • Multiple columns, where each column contains data for an individual platform over time.

    • One column of 2-D data, where the length of one dimension must equal 3 or 4, depending on whether Euler angles or quaternions are used, and the remaining dimension must have length equal to the number of platforms in pltf.

    • One column of 3-D data, where the length of one dimension must equal 3 or 4, depending on whether Euler angles or quaternions are used, one dimension is a singleton, and the remaining dimension must have length equal to the number of platforms in pltf.

If the attitude specified is a MATLAB timeseries containing scalar quaternions or ZYX Euler angles then:

  • If the Data property of timeseries has two dimensions, the length of one dimension must equal 3 or 4, depending on whether Euler angles or quaternions are used, and the other dimension must align with the orientation of the time vector.

  • If pltf is an array of platforms, the Data property of timeseries must have three dimensions where the length of one dimension must equal 3 or 4, depending on whether Euler angles or quaternions are used, either the first or the last dimension must align with the orientation of the time vector, and the remaining dimension must align with the number of platforms in pltf.

For more information on quaternions, see quaternion.

Data Types: timeseries | table

Name of the visual 3-D model file that you want to render in the viewer, specified as a string with .GLTF, .GLB, or .STL extension. For GLB and GLTF models, gITF uses a right-hand coordinate system. gITF defines +Y as up, and +Z as forward, and -X as right. A gITF asset faces +Z. For more information, see https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#coordinate-system-and-units. The mesh of the GLB is in meters.

Note

You can set this property NarrowBodyAirliner.glb to add a 3-D model of an aircraft to satellite scenario viewer.

3-D Model of an aircraft

Data Types: string

Linear scaling of the visual 3-D model rendered in the viewer, specified as a nonnegative integer. The scaling assumes that the GLB model is in meters.

Data Types: double

Output Arguments

collapse all

Platform in the scenario, returned as a Platform object belonging to the satellite scenario specified by scenario.

You can modify the Platform object by changing its property values.

Version History

Introduced in R2024a