MATLAB Connect Code Snippets

Introduction

The following code snippets demonstrate tasks that are commonly encountered when working with Connect using MATLAB.

How do I ...

Initialization

Area Target

Facility

Facility - Graphics

Line Target

Missile

Aircraft

Satellite

Sensor

Chains

Constellation

Communications

Coverage Definition

Figure Of Merit

Connect to Running instance of STK

[Connect]

uiApplication = actxGetRunningServer('STK13.application');

Get our IAgStkObjectRoot interface

[Connect]

root = uiApplication.Personality2;

Connect to the current scenario

[Connect]

scen = root.CurrentScenario;

Create an Area Target (on current scenario central body)

[Connect]

root.ExecuteCommand('New / */AreaTarget MyAreaTarget');

Define the area target boundary and position from a list of lat/long/alt

[Connect]

root.ExecuteCommand('SetBoundary */AreaTarget/MyAreaTarget Pattern LatLon 3 48.897 18.637 46.534 13.919 44.147 21.476');

List all points in an area target. Returns a white-space separated character vector

[Connect]

patternPoints = root.ExecuteCommand('GetBoundary */AreaTarget/MyAreaTarget');

Print out all the points.

[Connect]

%String is formatted as '48.897000 deg 18.637000
%deg', so need to report 1st and 3rd element, since MATLAB standard
%delimiter is the whitespace,
for j = 1:patternPoints.Count - 1
LLAData = strread(patternPoints.Item(j), '%s');
fprintf(['Lat: ' LLAData{1} ' deg Lon: ' LLAData{3} ' deg \n\n']);
end

Define an elliptical area target

[Connect]

root.ExecuteCommand('SetUnits / km'); %Default Connect Units are meters
root.ExecuteCommand('SetBoundary */AreaTarget/MyAreaTarget Ellipse 85.25 80.75 44');

Create a facility (on the current scenario central body)

[Connect]

root.ExecuteCommand('New / */Facility MyFacility');

Set the geodetic position of the facility

[Connect]

%Latitude, Longitude, Altitude
root.ExecuteCommand('SetPosition */Facility/MyFacility Geodetic 41.9849 21.4039 0');

Set altitude to height of terrain

[Connect]

root.ExecuteCommand('SetPosition */Facility/MyFacility Geodetic 41.9849 21.4039 UseTerrain');

Set altitude to distance above the ground

[Connect]

root.ExecuteCommand('SetHeightAboveGround */Facility/MyFacility 0.05'); %Default Connect Units are meters

Set Azimuth Elevation Mask

[Connect]

root.ExecuteCommand('SetAzElMask */Facility/MyFacility Terrain');

Display the AzEl Mask in 2D/3D

[Connect]

root.ExecuteCommand('Graphics */Facility/MyFacility AzElMask Type Range Show On NumSteps 10 MinRange 0 MaxRange 100 Color cyan');

Create New LineTarget

[Connect]

root.ExecuteCommand('New / */LineTarget MyLineTarget');

Define LineTarget with 2 points

[Connect]

root.ExecuteCommand('SetLine */LineTarget/MyLineTarget LatLong 2 34.72 -118.34 30.83 -82.67');

Create New Missile

[Connect]

root.ExecuteCommand('New / */Missile MyMissile');

Define Missile with ballistic propagator

[Connect]

root.ExecuteCommand('SetUnits / km'); %Default Connect Units are meters
root.ExecuteCommand('Missile */Missile/MyMissile Trajectory "UseAnalysisStartTime" 60.0 LnLatGeod 29 -81 0.0 ApogeeAlt 1200 ImLatGeod 27 -43 0.0');

Create New Aircraft

[Connect]

root.ExecuteCommand('New / */Aircraft MyAircraft');

Set Great Arc Propagator and Add Individual Waypoints to Aircraft

[Connect]

root.ExecuteCommand('SetUnits / km'); %Default Connect Units are meters
root.ExecuteCommand('AddWaypoint */Aircraft/MyAircraft DetTimeAccFromVel 37.5378 14.2207 5 0.1');
root.ExecuteCommand('AddWaypoint */Aircraft/MyAircraft DetTimeAccFromVel 47.2602 30.5517 5 0.1');
%Set Great Arc Propagator and Add Individual Waypoints to Aircraft (from
%list of points)

% locations of interest (lat/lon/alt)
waypoints = [37.5378 14.2207 5;
47.2602 30.5517 5];
%return the number of points
[r, c] = size(waypoints);

Add each point to the aircraft

[Connect]

for i = 1:r
root.ExecuteCommand(['AddWaypoint */Aircraft/MyAircraft DetTimeAccFromVel ' num2str(waypoints(i, 1)) ' ' num2str(waypoints(i, 2)) ' ' num2str(waypoints(i, 3)) ' 0.1']);
end

Set the Attitude of the Aircraft

[Connect]

root.ExecuteCommand('SetAttitude */Aircraft/MyAircraft Profile AircraftCoordTurn 0.5');

Create a satellite (on the current scenario central body)

[Connect]

root.ExecuteCommand('New / */Satellite MySatellite');

Set satellite propagator to J4 and assign cartesian position

[Connect]

root.ExecuteCommand('SetUnits / km');%Default Connect Units are meters
root.ExecuteCommand('SetState */Satellite/MySatellite Cartesian J4Perturbation "UseAnalysisStartTime" "UseAnalysisStopTime" 60 ICRF "UseAnalysisStartTime" 6678.14 0 0 0 6.78953 3.68641');

Set initial state of satellite and propagate

[Connect]

root.ExecuteCommand('SetUnits / km');%Default Connect Units are meters
root.ExecuteCommand('SetState */Satellite/MySatellite Classical TwoBody "UseAnalysisStartTime" "UseAnalysisStopTime" 60 ICRF "UseAnalysisStartTime" 6678.14 0 28 180 0 180');

Set satellite propagator to SGP4 and propagate

[Connect]

root.ExecuteCommand('SetState */Satellite/MySatellite SGP4 "UseAnalysisStartTime" "UseAnalysisStopTime" 60 25544 TLESource Automatic Source AGIServer UseTLE All SwitchMethod Epoch'); %25544 is the International Space Station

Set satellite propagator to HPOP and set force model properties

[Connect]

root.ExecuteCommand('SetUnits / km');%Default Connect Units are meters
root.ExecuteCommand('SetState */Satellite/MySatellite Cartesian HPOP "UseAnalysisStartTime" "UseAnalysisStopTime" 60 Fixed "UseAnalysisStartTime" 6406.92 -1787.59 -506.422 2.10185 6.48871 3.64041');
root.ExecuteCommand('HPOP */Satellite/MySatellite Force Gravity "<Install Dir>/STK 13/STKData/CentralBodies/Earth/WGS84.grv" 21 21');
root.ExecuteCommand('HPOP */Satellite/MySatellite Drag On 0.01 0.01 "Jacchia 1960"');
root.ExecuteCommand('HPOP */Satellite/MySatellite Force SRP Off');
root.ExecuteCommand('HPOP */Satellite/MySatellite Integrator IntegMethod RKF78 StepControl RelativeError 1.0e-13 MinStepSize 0.1 MaxStepSize 30 InterpMethod LaGrange 7');

Set satellite propagator to SPICE and propagate

[Connect]

root.ExecuteCommand('SetState */Satellite/MySatellite SPICE File "<Install Dir>/STK 13/STKData/Spice/planets.bsp" BodyID 4 TimePeriod UseScenarioInterval');

Export an ephemeris file to scenario folder

[Connect]

scenPath = root.ExecuteCommand('GetDirectory / Scenario').Item(0);
root.ExecuteCommand(['ExportDataFile */Satellite/MySatellite Ephemeris "' scenPath '\MySatellite.e" Type STK CoordSys J2000 CentralBody Earth InterpBoundaries Include']); %The square bracket will tell MATLAB to evaluate the expression, where scenPath is the variable name for a string

Set satellite attitude basic spinning

[Connect]

root.ExecuteCommand('SetAttitude */Satellite/MySatellite Profile Spinning Inertial Axis 0 1 0 Body Axis 0 0 1 6 0 "UseAnalysisStartTime"');

Set satellite attitude external

[Connect]

root.ExecuteCommand('SetAttitude */Satellite/MySatellite File Filename "<Install Dir>/STK 13/Data/Resources/stktraining/text/AttitudeTimeEulerAngles_Example.a"');

Set satellite attitude targeting

[Connect]

root.ExecuteCommand('SetAttitude */Satellite/MySatellite Target On');
root.ExecuteCommand('SetAttitude */Satellite/MySatellite Target Clear');
root.ExecuteCommand('SetAttitude */Satellite/MySatellite Target Add AreaTarget/MyAreaTarget Times UseAccess On');

Set up target slewing

[Connect]

root.ExecuteCommand('SetAttitude */Satellite/MySatellite Target On');
root.ExecuteCommand('SetAttitude */Satellite/MySatellite Target Clear');
root.ExecuteCommand('SetAttitude */Satellite/MySatellite Target Add AreaTarget/MyAreaTarget Times UseAccess On');
root.ExecuteCommand('SetAttitude */Satellite/MySatellite Target Slew Mode Constrained MaxSlewTime 20 SlewTimingBetweenTgts Optimal');
root.ExecuteCommand('SetAttitude */Satellite/MySatellite Target Slew Mode Constrained RateMagnitude 10 RateAxisX On RateAxisY On RateAxisZ On AccelMagnitude 10 AccelAxisX On AccelAxisY On AccelAxisZ On');
root.ExecuteCommand('SetAttitude */Satellite/MySatellite Target Slew Mode Constrained RateAxisX 5 RateAxisY 5 RateAxisZ 5 AccelAxisX 5 AccelAxisY 5 AccelAxisZ 5');

Set satellite model pointing

[Connect]

root.ExecuteCommand('VO */Satellite/MySatellite ModelPointing "Solar_PanelsNode" Target Sun');

Set satellite propagator to Astrogator and clear segments

[Connect]

root.ExecuteCommand('Astrogator */Satellite/MySatellite SetProp');

Determine what segments are in the MCS currently

[Connect]

ASTGSegments = root.ExecuteCommand('Astrogator_RM */Satellite/MySatellite GetValue MainSequence.SegmentList');

Delete all the segments.

[Connect]

for j = 0:ASTGSegments.Count - 2
Segment = strread(ASTGSegments.Item(j), '%s');
root.ExecuteCommand(['Astrogator */Satellite/MySatellite DeleteSegment ' Segment{1}]);
end

Insert an Initial State Segment into the MCS and configure

[Connect]

root.ExecuteCommand('Astrogator */Satellite/MySatellite InsertSegment - Initial_State'); root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Initial_State.ComponentName Inner_Orbit'); %change name of the segment
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Inner_Orbit.InitialState.Epoch 0 EpSec'); %set epoch
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Inner_Orbit.InitialState.Keplerian.ElementType Osculating');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Inner_Orbit.InitialState.Keplerian.PeriapsisRadSize 6700 km'); %default units are m
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Inner_Orbit.InitialState.Keplerian.w 0');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Inner_Orbit.InitialState.Keplerian.ecc 0');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Inner_Orbit.InitialState.Keplerian.inc 0');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Inner_Orbit.InitialState.Keplerian.RAAN 0');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Inner_Orbit.InitialState.Keplerian.TA 0');

Insert an Propagate Segment into the MCS and configure

[Connect]

root.ExecuteCommand('Astrogator */Satellite/MySatellite InsertSegment - Propagate');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Propagate.ComponentName Transfer_Ellipse'); %change name of the segment
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Transfer_Ellipse.Propagator "Earth Point Mass"');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Transfer_Ellipse.StoppingConditions Duration');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Transfer_Ellipse.StoppingConditions.Duration.TripValue 7200 Sec');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Transfer_Ellipse.SegmentColor 16711680'); %set segment color to blue

Insert a Propagate State Segment into the MCS and Add/Remove Stopping Conditions

[Connect]

root.ExecuteCommand('Astrogator */Satellite/MySatellite InsertSegment - Propagate');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Propagate.ComponentName Propagate2'); %change name of the segment
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Propagate2.StoppingConditions Apoapsis'); %overwrites any stopping conditions already there, unless specified

Insert a Target Sequence Segment into the MCS and configure

[Connect]

root.ExecuteCommand('Astrogator */Satellite/MySatellite InsertSegment - Target_Sequence');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Target_Sequence.ComponentName Start_Transfer'); %change name of the segment
root.ExecuteCommand('Astrogator */Satellite/MySatellite InsertSegment MainSequence.SegmentList.Start_Transfer.SegmentList.- Maneuver');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Start_Transfer.SegmentList.Maneuver.ComponentName DV1');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Start_Transfer.SegmentList.DV1.MnvrType Impulsive');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Start_Transfer.SegmentList.DV1.AttitudeControl Thrust Vector');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Start_Transfer.SegmentList.DV1.ThrustAxes "Satellite VNC(Earth)"');
root.ExecuteCommand('Astrogator */Satellite/MySatellite AddMCSSegmentControl MainSequence.SegmentList.Start_Transfer.SegmentList.DV1 ImpulsiveMnvr.Cartesian.X');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Start_Transfer.SegmentList.DV1.Results "Radius Of Apoapsis"');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetMCSControlValue MainSequence.SegmentList.Start_Transfer.Profiles.Differential_Corrector DV1 ImpulsiveMnvr.Cartesian.X Active true');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetMCSControlValue MainSequence.SegmentList.Start_Transfer.Profiles.Differential_Corrector DV1 ImpulsiveMnvr.Cartesian.X MaxStep 0.3 m/sec');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetMCSConstraintValue MainSequence.SegmentList.Start_Transfer.Profiles.Differential_Corrector DV1 "Radius Of Apoapsis" Active true');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetMCSConstraintValue MainSequence.SegmentList.Start_Transfer.Profiles.Differential_Corrector DV1 "Radius Of Apoapsis" Desired 42238 km');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetMCSConstraintValue MainSequence.SegmentList.Start_Transfer.Profiles.Differential_Corrector DV1 "Radius Of Apoapsis" Tolerance 0.1 km');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Start_Transfer.Profiles.Differential_Corrector.MaxIterations 50');
root.ExecuteCommand('Astrogator */Satellite/MySatellite SetValue MainSequence.SegmentList.Start_Transfer.Action Run active profiles');
root.ExecuteCommand('Astrogator */Satellite/MySatellite RunMCS');

Run the Astrogator MCS

[Connect]

root.ExecuteCommand('Astrogator */Satellite/MySatellite RunMCS');

Attach a Sensor Object to a Vehicle

[Connect]

root.ExecuteCommand('New / */Satellite/MySatellite/Sensor MySensor');

Set Sensor Properties

[Connect]

root.ExecuteCommand('Define */Satellite/MySatellite/Sensor/MySensor Rectangular 20 25');
root.ExecuteCommand('Point */Satellite/MySatellite/Sensor/MySensor Fixed AzEl 90 60 Rotate');
root.ExecuteCommand('Location */Satellite/MySatellite/Sensor/MySensor Fixed Cartesian -.0004 -.0004 -.0004'); %default units is meters

Set a Targeted Sensor

[Connect]

root.ExecuteCommand('New / */Satellite/MySatellite/Sensor MySensor');

Sensor Body Mask

[Connect]

root.ExecuteCommand('SetAzElMask */Satellite/MySatellite/Sensor/MySensor MaskFile "<Install Dir>/STK 13/Data/Resources/stktraining/text/BodyMask_hga.bmsk"');

Sensor Persistence

[Connect]

root.ExecuteCommand('Graphics */Satellite/MySatellite/Sensor/MySensor Persist Time 7200 Forward On Fill On');
root.ExecuteCommand('Graphics */Satellite/MySatellite/Sensor/MySensor Fill On');
root.ExecuteCommand('Graphics */Satellite/MySatellite/Sensor/MySensor FillTranslucency 50');

Create a chain (on the current scenario central body)

[Connect]

root.ExecuteCommand('New / */Chain MyChain');

Define and compute a chain (basic)

[Connect]

root.ExecuteCommand('Chains */Chain/MyChain Add Facility/MyFacility');
root.ExecuteCommand('Chains */Chain/MyChain Add Satellite/MySatellite');
root.ExecuteCommand('Chains */Chain/MyChain Compute');

root.ExecuteCommand('Chains */Chain/MyChain Remove Facility/MyFacility');
root.ExecuteCommand('Chains */Chain/MyChain Remove Satellite/MySatellite');

Define and compute a chain (advance)

[Connect]

root.ExecuteCommand('Chains */Chain/MyChain ClearAccesses');
root.ExecuteCommand('Chains */Chain/MyChain Add Facility/MyFacility');
root.ExecuteCommand('Chains */Chain/MyChain Add Satellite/MySatellite');
root.ExecuteCommand('Chains */Chain/MyChain AutoRecompute Off');
root.ExecuteCommand('Chains */Chain/MyChain AdvComputeOptions UseLightTimeDelay Off');
root.ExecuteCommand('Chains */Chain/MyChain AdvComputeOptions TimeConvergence 0.001');
root.ExecuteCommand('Chains */Chain/MyChain SetComputeTime UseScenario');
root.ExecuteCommand('Chains */Chain/MyChain Compute');

Define a constellation

[Connect]

root.ExecuteCommand('New / */Constellation MyConstellation');
root.ExecuteCommand('Chains */Constellation/MyConstellation Add Satellite/MySatellite');
root.ExecuteCommand('Chains */Constellation/MyConstellation Add Facility/MyFacility');

Create a New Antenna Object

[Connect]

root.ExecuteCommand('New / */Satellite/MySatellite/Antenna MyAntenna');

Modify Antenna Model Type

[Connect]

root.ExecuteCommand('Antenna */Satellite/MySatellite/Antenna/MyAntenna SetValue Model Dipole');
root.ExecuteCommand('Antenna */Satellite/MySatellite/Antenna/MyAntenna SetValue Model.DesignFrequency 15000000000.0'); %Default unit is Hertz
root.ExecuteCommand('Antenna */Satellite/MySatellite/Antenna/MyAntenna SetValue Model.Length 1.5'); %Default unit is meters
root.ExecuteCommand('Antenna */Satellite/MySatellite/Antenna/MyAntenna SetValue Model.LengthToWavelengthRatio 45');
root.ExecuteCommand('Antenna */Satellite/MySatellite/Antenna/MyAntenna SetValue Model.Efficiency 0.85');

Modify Antenna Orientation and Position

[Connect]

root.ExecuteCommand('Antenna */Satellite/MySatellite/Antenna/MyAntenna SetValue Orientation Azimuth Elevation');
root.ExecuteCommand('Antenna */Satellite/MySatellite/Antenna/MyAntenna SetValue Orientation.AzimuthAngle 0'); %Default unit is radians
root.ExecuteCommand('Antenna */Satellite/MySatellite/Antenna/MyAntenna SetValue Orientation.ElevationAngle -1.57079632'); %Default unit is radians
root.ExecuteCommand('Antenna */Satellite/MySatellite/Antenna/MyAntenna SetValue Orientation.AboutBoresight Rotate');
root.ExecuteCommand('Antenna */Satellite/MySatellite/Antenna/MyAntenna SetValue Orientation.XPositionOffset 0'); %Default unit is meters
root.ExecuteCommand('Antenna */Satellite/MySatellite/Antenna/MyAntenna SetValue Orientation.YPositionOffset 1');%Default unit is meters
root.ExecuteCommand('Antenna */Satellite/MySatellite/Antenna/MyAntenna SetValue Orientation.ZPositionOffset 0.25');%Default unit is meters

Modify Antenna Refraction

[Connect]

root.ExecuteCommand('Refraction */Satellite/MySatellite/Antenna/MyAntenna UseInAccess True');
root.ExecuteCommand('Refraction */Satellite/MySatellite/Antenna/MyAntenna Model "ITU-R P.834-4" RefractionCeiling 5000 AtmosphereAltitude 10000 KneeBendFactor 0.2');%Default unit is meters

Modify Antenna Graphics

[Connect]

root.ExecuteCommand('Graphics */Satellite/MySatellite/Antenna/MyAntenna Contours Gain On Off');
root.ExecuteCommand('Graphics */Satellite/MySatellite/Antenna/MyAntenna Levels StartStop -30 30 5');
root.ExecuteCommand('VO */Satellite/MySatellite/Antenna/MyAntenna Contours On');
root.ExecuteCommand('VO */Satellite/MySatellite/Antenna/MyAntenna Volumes On');
root.ExecuteCommand('VO */Satellite/MySatellite/Antenna/MyAntenna Volumes "Antenna Beam" GainScale 5');%Default unit is meters
root.ExecuteCommand('VO */Satellite/MySatellite/Antenna/MyAntenna Volumes "Antenna Beam" GainOffset 15');%Default unit is dB

Create a New Receiver Object

[Connect]

root.ExecuteCommand('New / */Satellite/MySatellite/Receiver MyReceiver');

Modify Receiver Model Type

[Connect]

root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model Complex_Receiver_Model');
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.FrequencyAutoTracking False');
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.Frequency 11810000000.0');%Default unit is Hertz

Modify Orientation of the Receiver Antenna

[Connect]

root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.AntennaControl.Orientation Azimuth Elevation');
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.AntennaControl.Orientation.AzimuthAngle 0.785398');%Default unit is radians
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.AntennaControl.Orientation.ElevationAngle 1.48353'); %Default unit is radians
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.AntennaControl.Orientation.AboutBoresight Rotate');
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.AntennaControl.Orientation.XPositionOffset 0.5');%Default unit is meters
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.AntennaControl.Orientation.YPositionOffset 0.75'); %Default unit is meters
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.AntennaControl.Orientation.ZPositionOffset 1'); %Default unit is meters

Modify Receiver Demodulator Properties

[Connect]

root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.AutoSelectDemodulator false');
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.Demodulator 16PSK');

Modify Receiver Embedded Antenna

[Connect]

root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.AntennaControl.AntennaReferenceType Embed');
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.AntennaControl.Antenna Hemispherical');
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.AntennaControl.Antenna.Efficiency 0.85');

Modify Receiver Filter Properties

[Connect]

root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.UseFilter True');
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.Filter Bessel');
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.Filter.LowerBandwidthLimit -20000000.0');%Default unit is Hertz
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.Filter.UpperBandwidthLimit 20000000.0');%Default unit is Hertz
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.Filter.CutoffFrequency 10000000.0');%Default unit is Hertz

Modify Receiver Polarization Properties

[Connect]

root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.AntennaControl.UsePolarization True');
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.AntennaControl.Polarization Linear');
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.AntennaControl.Polarization.ReferenceAxis Z Axis');
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.AntennaControl.Polarization.CrossPolLeakage 0.00000100');%Default unit is units

Modify Receiver System Noise Temperature

[Connect]

root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.ComputeSystemNoiseTemp Constant');
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.ConstantSystemNoiseTemp 280');

Receiver Additional Gain

[Connect]

root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver AddItem Model.PreReceiveGainsLosses.GainLossList');
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.PreReceiveGainsLosses.GainLossList[0].Identifier UserLoss');
root.ExecuteCommand('Receiver */Satellite/MySatellite/Receiver/MyReceiver SetValue Model.PreReceiveGainsLosses.GainLossList[0].Gain -2 dB');

Create a New Transmitter Object

[Connect]

root.ExecuteCommand('New / */Satellite/MySatellite/Transmitter MyTransmitter');

Modify Transmitter Model Type

[Connect]

root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model Complex_Transmitter_Model');
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.Frequency 14500000000.0');%Default unit is Hertz
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.Power 316.228'); %Default unit is Watt
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.DataRate 15000000.0'); %Default unit is b/sec

Modify the Linked Antenna

[Connect]

root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model Complex_Transmitter_Model');
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.AntennaControl.AntennaReferenceType Link');
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.AntennaControl.LinkedAntenna Antenna/MyAntenna');

Modify Transmitter Embedded Antenna

[Connect]

root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.AntennaControl.AntennaReferenceType Embed');
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.AntennaControl.Antenna Isotropic');
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.AntennaControl.Antenna.Efficiency 0.85');

Modify Transmitter Filter

[Connect]

root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.UseFilter True');
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.Filter Butterworth');
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.Filter.LowerBandwidthLimit -20000000.0');
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.Filter.UpperBandwidthLimit 20000000.0');
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.Filter.CutoffFrequency 10000000.0');

Modify Transmitter Modulator Properties

[Connect]

root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.Modulator BPSK');
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.Modulator.AutoScaleBandwidth True');

Modify Transmitter Orientation and Position

[Connect]

root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.AntennaControl.Orientation Azimuth Elevation');
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.AntennaControl.Orientation.AzimuthAngle 0');%Default unit is radians
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.AntennaControl.Orientation.ElevationAngle -1.57079632');%Default unit is radians
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.AntennaControl.Orientation.AboutBoresight Rotate');
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.AntennaControl.Orientation.XPositionOffset 0.0');%Default unit is meters
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.AntennaControl.Orientation.YPositionOffset 1');%Default unit is meters
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.AntennaControl.Orientation.ZPositionOffset 0.25');%Default unit is meters

Modify Transmitter Polarization Properties

[Connect]

root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.AntennaControl.UsePolarization True');
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.AntennaControl.Polarization Linear');
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.AntennaControl.Polarization.ReferenceAxis Y Axis');
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.AntennaControl.Polarization.TiltAngle 0 rad');

Transmitter Additional Gain

[Connect]

root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter AddItem Model.PostTransmitGainsLosses.GainLossList');
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.PostTransmitGainsLosses.GainLossList[0].Identifier Example Loss');
root.ExecuteCommand('Transmitter */Satellite/MySatellite/Transmitter/MyTransmitter SetValue Model.PostTransmitGainsLosses.GainLossList[0].Gain -5 dB');

Create a New CoverageDefinition (on the current scenario central body)

[Connect]

root.ExecuteCommand('New / */CoverageDefinition MyCoverageDefinition');
root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Grid AreaOfInterest Custom AreaTarget AreaTarget/MyAreaTarget');
root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Grid PointGranularity LatLon 5');
root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Asset Satellite/MySatellite Assign');
root.ExecuteCommand('Graphics */CoverageDefinition/MyCoverageDefinition Static Points Off');

Add Grid Constraint to Coverage

[Connect]

root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Grid GridConstraint Facility UsePointAltitudeType Facility/MyFacility UseActualObject');

Compute Coverage

[Connect]

root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Access Compute');

Set Advanced Settings for Coverage

[Connect]

root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Access DataRetention All AutoRecompute Off');
root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Access DataRetention All');
root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Access SaveMode Save');

Set the Coverage Interval to an object's availability Analysis interval

[Connect]

root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition Interval ""Satellite/MySatellite EphemerisTimeSpan.Start Time Instant" ""Satellite/MySatellite EphemerisTimeSpan.Stop Time Instant"');

Create a new Figure of Merit of type Access Duration

[Connect]

root.ExecuteCommand('New / */CoverageDefinition/MyCoverageDefinition/FigureOfMerit AccessDuration');
root.ExecuteCommand('Cov */CoverageDefinition/MyCoverageDefinition/FigureOfMerit/AccessDuration FOMDefine Definition AccessDuration Compute Maximum');

Configure the Contours of the FOM and define a color ramp

[Connect]

root.ExecuteCommand('Graphics */CoverageDefinition/MyCoverageDefinition/FigureOfMerit/AccessDuration FOMContours Static Show On');
root.ExecuteCommand('Graphics */CoverageDefinition/MyCoverageDefinition/FigureOfMerit/AccessDuration FOMContours Static StartStop 590 660 10 ColorRamp red blue Type Fill');