주요 콘텐츠

platform

R2026b

Add platforms to satellite scenario

Since R2024a

Description

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

example

platform(scenario,positiontable) adds Platform objects to the satellite scenario scenario from position data in planetographic coordinates. positiontable is a MATLAB® timetable or table with 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 equals 3 and the remaining dimension defines the number of platforms in the ephemeris.

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

If the provided rowTimes are of type duration, time values are measured relative to the current scenario StartTime property. The timetable VariableNames property provides the default platform names when no names are specified as input.

The platform function assumes platform states are specified in the planetographic coordinate frame of the celestial body defined by the CentralBody name‑value argument, with position given as latitude (degrees), longitude (degrees), and altitude (meters). The function holds platform states constant in the ICRF for scenario time steps outside the time range of positiontable.

Note

If you want to use NED, you can explicitly create a geoTrajectory object, which includes a Frame flag, and use that as a single input for the platform.

platform(scenario,positiontable,velocitytable) adds Platform objects to the satellite scenario scenario from position and velocity data. positiontable and velocitytable are of type MATLAB timetable or table with 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 equals 3 and the remaining dimension defines the number of platforms.

  • One column of 3‑D data, where the length of one dimension equals 3, one dimension is a singleton, and the remaining dimension defines the number of platforms.

If the provided rowTimes are of type duration, time values are measured relative to the current scenario StartTime property. The timetable VariableNames property provides the default platform names when no names are specified as input.

The platform function assumes platform states are specified in the planetographic reference frame of the celestial body defined by the CentralBody name‑value argument, where position is given as latitude (degrees), longitude (degrees), and altitude (meters), and velocity is the planet fixed‑frame velocity specified in meters per second in the local NED frame. The function holds platform states constant in the ICRF for scenario time steps outside the time range of positiontable and velocitytable.

Note

If you want to use NED, you can explicitly create a geoTrajectory object, which includes a Frame flag, and use that as a single input for the platform.

platform(scenario,positiontimeseries) adds a Platform object to the satellite scenario scenario from position data specified in planetographic coordinates, where positiontimeseries is a MATLAB timeseries object or tscollection object.

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

When StartDate is empty, time values are measured relative to the current scenario StartTime property. The timeseries Name property, when defined, provides the default platform name when no name is specified as input.

The platform function assumes platform states are specified in the planetographic reference frame of the celestial body defined by the CentralBody name‑value argument, where position is given as latitude (degrees), longitude (degrees), and altitude (meters). The function holds platform states constant in the ICRF for scenario time steps outside the time range of positiontimeseries.

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

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

When StartDate is empty, time values are measured relative to the current scenario StartTime property. The timeseries Name property, when defined, provides the default platform name when no name is specified as input.

The platform function assumes platform states are specified in the planetographic reference frame of the celestial body defined by the CentralBody name‑value argument, where position is given as latitude (degrees), longitude (degrees), and altitude (meters), and velocity is the planet fixed‑frame velocity specified in meters per second in the local NED frame. The function holds platform states constant in the ICRF for scenario time steps outside the time range of positiontimeseries and velocitytimeseries.

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. Calling restart erases 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.

Tabular platform position data specified as latitude, longitude, and altitude values over time, specified as a timetable created using the timetable function or table function. Each row of the table must contain position samples in this order [latitude, longitude, altitude], specified in degrees, degrees and meters, respectively. States are held constant in the fixed-frame. 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 platform names in the timetable VariableNames property are used by default if no names are provided as an input.

Data Types: table | timetable

Tabular platform velocity data specified in the local North-East-Down (NED) frame over time, 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 platform names in the timetable VariableNames property are used by default if no names are provided as an input. Platform states are interpreted in the planetographic frame of the celestial body defined by the CentralBody name-value argument. States are held constant in the fixed-frame for scenario time steps outside of the time range of velocitytable.

Data Types: table | timetable

Platform position specified as latitude, longitude, and altitude values over time in degrees, degrees and meters respectively, 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 the fixed-frame for scenario time steps outside of the time range of positiontimeseries.

Data Types: timeseries | tscollection

Platform velocity specified in the local North-East-Down (NED) frame over time in the local NED frame, 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 the fixed-frame for scenario time steps outside of the time range of velocitytimeseries.

Data Types: timeseries | tscollection

Name-Value Arguments

collapse all

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'.

Since R2026b

Celestial body relative to which platform states in positiontable, velocitytable, positiontimeseries, and velocitytimeseries are defined, specified as "Earth" or "Moon".

When CentralBody equals "Moon", the position is defined in the lunar planetographic frame (latitude, longitude, and altitude on the Moon surface).

Note

Modification of this property requires an Aerospace Toolbox license. The following lunar operations check out this license: specifying CentralBody="Moon" in satellite, groundStation, or platform; specifying ReferenceCelestialBody="Moon"; specifying ObstructingBodies="Moon"; setting PlanetaryEphemerisModel on a satelliteScenario; and specifying CentralBody="Moon" in centralBodyOptions.

Dependencies

  • When CentralBody equals "Moon", the geoTrajectory input is not supported and results in an error.

  • Platform path is not drawn for "Moon" central body until a future release.

Data Types: string

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.

  • If you want to use ENU instead, you can explicitly construct a geoTrajectory object and pass that to the platform function.

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

expand all