Main Content

conicalSensor

Add conical sensor to satellite scenario

Description

conicalSensor()adds aConicalSensor对象中的每个父向量using default parameters.can besatellite,groundStation, orgimbal.

example

conicalSensor(,Name=Value)adds conical sensors to the parents inusing additional parameters specified by optional name-value arguments. For example,'MaxViewAngle'=90specifies a field of view angle of 90 degrees.

sensor= conicalSensor(___)returns added conical sensors as a row vectorsensor. Specify any input argument combination from previous syntaxes.

Examples

collapse all

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

startTime = datetime(2021,6,21,8,55,0); stopTime = startTime + days(5); sampleTime = 60;% secondssc =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] Viewers: [0×0 matlabshared.satellitescenario.Viewer] AutoShow: 1

Add a satellite to the scenario using Keplerian orbital elements.

semiMajorAxis = 7878137;% meterseccentricity = 0; inclination = 50;% degreesrightAscensionOfAscendingNode = 0;% degreesargumentOfPeriapsis = 0;% degreestrueAnomaly = 50;% degreessat = 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] GroundTrack: [1x1 matlabshared.satellitescenario.GroundTrack] Orbit: [1x1 matlabshared.satellitescenario.Orbit] OrbitPropagator: sgp4 MarkerColor: [0.059 1 1] MarkerSize: 6 ShowLabel: true LabelFontColor: [1 1 1] LabelFontSize: 15

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.3 degrees Longitude: -71.35 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] 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 =万向节的属性:名称:常平架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]

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]

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源目标IntervalNumber开始时间EndTime大调的ation 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:50:00 22-Jun-2021 16:13:00 1380 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)% hours
maxRevisitTime = 12.6667

Visualize the revisit times that the camera photographs of the location.

玩(sc);

Input Arguments

collapse all

Element of scenario in which to add the conical sensor, specified as a scalar or vector of satellites, ground stations, or gimbals. The number of conical sensors to add is determined by the size of the inputs.

  • Ifis a scalar, all conical sensors are added to the parent.

  • Ifis a vector of parents and the number of conical sensors specified is one, that conical sensor is added to each parent.

  • Ifis a vector of parents and the number of conical sensors specified is more than one, the number of conical sensors must equal the number of parents inand each parent gets one conical sensor.

Name-Value Arguments

Specify optional pairs of arguments asName1=Value1,...,NameN=ValueN, whereNameis the argument name andValueis the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and encloseNamein quotes.

Example:'MountingAngle'=[20;35;10]sets the yaw, pitch, and roll angles of the conical sensor to 20, 35, and 10 degrees, respectively.

Note

The size of the name-value arguments defines the number of conical sensors that you can specify. To understand how to specify multiple conical sensors, refer to these properties.

You can set this property only when calling theconicalSensorfunction. After you call theconicalSensorfunction, this property is read-only.

Conical sensor 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 conical sensor, specifyNameas a string scalar or a character vector.

  • If you are adding multiple conical sensors, specifyNameas a string scalar, character vector, string vector, or a cell array of character vectors. All conical sensors 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 conical sensors that you are adding. Each conical sensor is assigned the corresponding name from the vector or cell array.

In the default value,idxis the ID assigned by the satellite scenario.

Data Types:char|string

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.

  • If you are adding one conical sensor,MountingLocationis a three-element vector. The elements specify thex,y, andzcomponents of the Cartesian coordinates in the body frame of conical sensor.

  • If you are adding multiple conical sensors,MountingLocationcan be a three-element vector or a matrix. When specified as a vector, the same set of mounting locations are assigned to all specified conical sensors. When specified as a matrix,MountingLocationmust contain three rows and the same number of columns as the conical sensors. The columns correspond to the mounting location of each specified conical sensor and the rows correspond to the mounting location coordinates in the parent body frame.

When theAutoSimulateproperty of the satellite scenario isfalse, you can modify theMountingLocationproperty only whenSimulationStatusisNotStarted. You can use therestartfunction to resetSimulationStatustoNotStarted, 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 thez-axis, intermediatey-axis, and intermediatex-axis of the parent.

  • If you are adding one conical sensor,MountingAnglesis a three-element vector.

  • If you are adding multiple conical sensors,MountingAnglescan be a three-element vector or a matrix. When specified as a vector, the same set of mounting angles are assigned to all specified conical sensors. When specified as a matrix,MountingAnglesmust contain three rows and the same number of columns as the conical sensors. The columns correspond to the mounting angles of each specified conical sensor and the rows correspond to the yaw, pitch, and roll angles in the parent body frame.

When theAutoSimulateproperty of the satellite scenario isfalse, you can modify theMountingAnglesproperty only whenSimulationStatusisNotStarted. You can use therestartfunction to resetSimulationStatustoNotStarted, but doing so erases the simulation data.

Example:[0; 30; 60]

Data Types:double

Field of view angle in degrees, specified as a scalar in the range [0, 180] or a vector.

  • If you add one conical sensor,MaxViewAnglemust be a scalar.

  • If you add multiple conical sensors,MaxViewAnglecan be a scalar or a vector. WhenMaxViewAngleis a scalar, the same field of view angle is assigned to all conical sensors that you are adding. WhenMaxViewAngleis a vector, the length ofMaxViewAnglemust equal the number of conical sensors in the parent. Each element ofMaxViewAngleis assigned to the specified corresponding conical sensor.

When theAutoSimulateproperty of the satellite scenario isfalse, you can modifyMaxViewAnglewhile theSimulationStatusisNotStartedorInProgress.

Data Types:double

Output Arguments

collapse all

Conical sensors attached to, returned as a row vector.

When theAutoSimulateproperty of the satellite scenario isfalse, you can callconicalSensorfunction only whenSimulationStatusisNotStarted. You can use therestartfunction to resetSimulationStatustoNotStarted, but doing so erases the simulation data.

Version History

Introduced in R2021a

Baidu
map