AGI STK Objects 11 Send comments on this topic.
IAgSatellite Interface
Windows






Windows & Linux

Description

Satellite properties.

Object Model















Public Methods

Public Method IsAttitudeTypeSupportedGet a value indicating whether the specified type can be used.
Public Method IsPropagatorTypeSupportedGets a value indicating whether the specified type can be used.
Public Method SetAttitudeTypeSets the attitude type.
Public Method SetPropagatorTypeSets the propagator type.

Public Properties

Public Property AccessConstraintsGet the constraints imposed on the satellite.
Public Property AttitudeGet the Attitude properties of the satellite.
Public Property AttitudeSupportedTypesReturn an array of valid choices.
Public Property AttitudeTypeThe type of the satellite's attitude.
Public Property EclipseBodiesGet the customized list of Eclipse Bodies, which are central bodies used in lighting computations.
Public Property ExportToolsReturns the IAgSaExportTools interface.
Public Property GraphicsGet the 2D Graphics properties of the satellite.
Public Property GroundEllipsesGet the Ground Ellipses properties of the satellite.
Public Property MassPropertiesGet the Mass properties of the satellite.
Public Property PassBreakGet the Pass Break properties of the satellite.
Public Property PropagatorGet information for the propagator.
Public Property PropagatorSupportedTypesReturns an array of valid choices.
Public Property PropagatorTypeThe type of propagator used to define the satellite's orbit.
Public Property RadarClutterMapReturns the radar clutter map.
Public Property RadarCrossSectionReturns the radar cross sectoin.
Public Property ReferenceVehicleGet the reference vehicle of the satellite.
Public Property SpaceEnvironmentGet the SpaceEnvironment properties of the satellite.
Public Property VOGet the 3D Graphics properties of the satellite.

Example

Create a satellite (on current scenario central body)
[C#]Copy Code
// Create the Satellite 
IAgSatellite satellite = root.CurrentScenario.Children.New(AgESTKObjectType.eSatellite, "MySatellite"as IAgSatellite; 
 

Create a satellite from the satellite database
[C#]Copy Code
// Get STK database location using Connect 
IAgExecCmdResult result = root.ExecuteCommand("GetDirectory / Database Satellite"); 
string satDataDir = result[0]; 
string filelocation = "\"" + Path.Combine(satDataDir, @"stkAllTLE.sd") + "\""
string commonname = "\"hst\""
 
// Import object from database using Connect 
string command = String.Format("ImportFromDB * Satellite {0} Constellation ImportedFromSatDB Propagate On CommonName {1}", filelocation, commonname); 
root.ExecuteCommand(command); 
 

Set the satellite to use the J2 propagator
[C#]Copy Code
// Set propagator to J2 Perturbation 
satellite.SetPropagatorType(AgEVePropagatorType.ePropagatorJ2Perturbation); 
 
// Get the J2 Perturbation propagator 
IAgVePropagatorJ2Perturbation propagator = satellite.Propagator as IAgVePropagatorJ2Perturbation; 
 

Set the satellite to use the GPS propagator
[C#]Copy Code
// Set propagator to GPS 
satellite.SetPropagatorType(AgEVePropagatorType.ePropagatorGPS); 
 
// Get the GPS propagator 
IAgVePropagatorGPS propagator = satellite.Propagator as IAgVePropagatorGPS; 
 

Set the satellite to use the STK External propagator
[C#]Copy Code
// Set propagator to STK External 
satellite.SetPropagatorType(AgEVePropagatorType.ePropagatorStkExternal); 
 
// Get the STK External propagator 
IAgVePropagatorStkExternal propagator = satellite.Propagator as IAgVePropagatorStkExternal; 
 

Set the satellite to use the SGP4 propagator
[C#]Copy Code
// Set propagator to SGP4 
satellite.SetPropagatorType(AgEVePropagatorType.ePropagatorSGP4); 
 
// Get the SGP4 propagator 
IAgVePropagatorSGP4 propagator = satellite.Propagator as IAgVePropagatorSGP4; 
 

Set the satellite to use the SPICE propagator
[C#]Copy Code
// Set propagator to SPICE 
satellite.SetPropagatorType(AgEVePropagatorType.ePropagatorSPICE); 
 
// Get the SPICE propagator 
IAgVePropagatorSPICE propagator = satellite.Propagator as IAgVePropagatorSPICE; 
 
 

Set the satellite to use the LOP propagator
[C#]Copy Code
// Set satellite propagator to LOP 
satellite.SetPropagatorType(AgEVePropagatorType.ePropagatorLOP); 
 
// Get the LOP propagator 
IAgVePropagatorLOP propagator = satellite.Propagator as IAgVePropagatorLOP; 
 

Set the satellite to use the HPOP propagator
[C#]Copy Code
// Set satellite propagator to HPOP 
satellite.SetPropagatorType(AgEVePropagatorType.ePropagatorHPOP); 
 
// Get the HPOP propagator 
IAgVePropagatorHPOP propagator = satellite.Propagator as IAgVePropagatorHPOP; 
 

Configure Target Slew for a satellite
[C#]Copy Code
IAgVeOrbitAttitudeStandard orbitAttStandard = satellite.Attitude as IAgVeOrbitAttitudeStandard; 
orbitAttStandard.Pointing.UseTargetPointing = true
orbitAttStandard.Pointing.Targets.Add("Facility/FacSlew"); 
orbitAttStandard.Pointing.TargetSlew.SetSlewModeType(AgEVeSlewMode.eVeSlewModeConstrained2ndOrderSpline); 
 
IAgVeAttSlewConstrained constrainedSlew = orbitAttStandard.Pointing.TargetSlew.SlewMode as IAgVeAttSlewConstrained; 
constrainedSlew.MaximumSlewTime = 20.0//sec 
constrainedSlew.SlewTimingBetweenTargets = AgEVeSlewTimingBetweenTargets.eVeSlewTimingBetweenTargetsOptimal; 
 
IAgVeAttMaximumSlewRate maxRate = constrainedSlew.MaximumSlewRate; 
maxRate.Magnitude = 10.0//deg/sec^2 
maxRate.PerAxisXEnabled = true
maxRate.PerAxisX = 5.0//deg/sec^2 
maxRate.PerAxisYEnabled = true
maxRate.PerAxisY = 5.0//deg/sec^2 
maxRate.PerAxisZEnabled = true
maxRate.PerAxisZ = 5.0//deg/sec^2 
 
IAgVeAttMaximumSlewAcceleration maxAcceleration = constrainedSlew.MaximumSlewAcceleration; 
maxAcceleration.Magnitude = 10.0//deg/sec^2 
maxAcceleration.PerAxisXAccelEnabled = true
maxAcceleration.PerAxisXAccel = 5.0//deg/sec^2 
maxAcceleration.PerAxisYAccelEnabled = true
maxAcceleration.PerAxisYAccel = 5.0//deg/sec^2 
maxAcceleration.PerAxisZAccelEnabled = true
maxAcceleration.PerAxisZAccel = 5.0//deg/sec^2 
 

Create a satellite (on current scenario central body)
[Visual Basic .NET]Copy Code
' Create the Satellite
Dim satellite As IAgSatellite = TryCast(root.CurrentScenario.Children.[New](AgESTKObjectType.eSatellite, "MySatellite"), IAgSatellite)

Create a satellite from the satellite database
[Visual Basic .NET]Copy Code
' Get STK database location using Connect
Dim result As IAgExecCmdResult = root.ExecuteCommand("GetDirectory / Database Satellite")
Dim satDataDir As String = result(0)
Dim filelocation As String = """" + Path.Combine(satDataDir, "stkAllTLE.sd") + """"
Dim commonname As String = """hst"""

' Import object from database using Connect
Dim command As String = [String].Format("ImportFromDB * Satellite {0} Constellation ImportedFromSatDB Propagate On CommonName {1}", filelocation, commonname)
root.ExecuteCommand(command)

Set the satellite to use the J2 propagator
[Visual Basic .NET]Copy Code
' Set propagator to J2 Perturbation
satellite.SetPropagatorType(AgEVePropagatorType.ePropagatorJ2Perturbation)

' Get the J2 Perturbation propagator
Dim propagator As IAgVePropagatorJ2Perturbation = TryCast(satellite.Propagator, IAgVePropagatorJ2Perturbation)

Set the satellite to use the GPS propagator
[Visual Basic .NET]Copy Code
' Set propagator to GPS
satellite.SetPropagatorType(AgEVePropagatorType.ePropagatorGPS)

' Get the GPS propagator
Dim propagator As IAgVePropagatorGPS = TryCast(satellite.Propagator, IAgVePropagatorGPS)

Set the satellite to use the STK External propagator
[Visual Basic .NET]Copy Code
' Set propagator to STK External
satellite.SetPropagatorType(AgEVePropagatorType.ePropagatorStkExternal)

' Get the STK External propagator
Dim propagator As IAgVePropagatorStkExternal = TryCast(satellite.Propagator, IAgVePropagatorStkExternal)

Set the satellite to use the SGP4 propagator
[Visual Basic .NET]Copy Code
' Set propagator to SGP4
satellite.SetPropagatorType(AgEVePropagatorType.ePropagatorSGP4)

' Get the SGP4 propagator
Dim propagator As IAgVePropagatorSGP4 = TryCast(satellite.Propagator, IAgVePropagatorSGP4)

Set the satellite to use the SPICE propagator
[Visual Basic .NET]Copy Code
' Set propagator to SPICE
satellite.SetPropagatorType(AgEVePropagatorType.ePropagatorSPICE)

' Get the SPICE propagator
Dim propagator As IAgVePropagatorSPICE = TryCast(satellite.Propagator, IAgVePropagatorSPICE)


Set the satellite to use the LOP propagator
[Visual Basic .NET]Copy Code
' Set satellite propagator to LOP
satellite.SetPropagatorType(AgEVePropagatorType.ePropagatorLOP)

' Get the LOP propagator
Dim propagator As IAgVePropagatorLOP = TryCast(satellite.Propagator, IAgVePropagatorLOP)

Set the satellite to use the HPOP propagator
[Visual Basic .NET]Copy Code
' Set satellite propagator to HPOP
satellite.SetPropagatorType(AgEVePropagatorType.ePropagatorHPOP)

' Get the HPOP propagator
Dim propagator As IAgVePropagatorHPOP = TryCast(satellite.Propagator, IAgVePropagatorHPOP)

Configure Target Slew for a satellite
[Visual Basic .NET]Copy Code
Dim orbitAttStandard As IAgVeOrbitAttitudeStandard = TryCast(satellite.Attitude, IAgVeOrbitAttitudeStandard)
orbitAttStandard.Pointing.UseTargetPointing = True
orbitAttStandard.Pointing.Targets.Add("Facility/FacSlew")
orbitAttStandard.Pointing.TargetSlew.SetSlewModeType(AgEVeSlewMode.eVeSlewModeConstrained2ndOrderSpline)

Dim constrainedSlew As IAgVeAttSlewConstrained = TryCast(orbitAttStandard.Pointing.TargetSlew.SlewMode, IAgVeAttSlewConstrained)
constrainedSlew.MaximumSlewTime = 20
'sec
constrainedSlew.SlewTimingBetweenTargets = AgEVeSlewTimingBetweenTargets.eVeSlewTimingBetweenTargetsOptimal

Dim maxRate As IAgVeAttMaximumSlewRate = constrainedSlew.MaximumSlewRate
maxRate.Magnitude = 10
'deg/sec^2
maxRate.PerAxisXEnabled = True
maxRate.PerAxisX = 5
'deg/sec^2
maxRate.PerAxisYEnabled = True
maxRate.PerAxisY = 5
'deg/sec^2
maxRate.PerAxisZEnabled = True
maxRate.PerAxisZ = 5
'deg/sec^2
Dim maxAcceleration As IAgVeAttMaximumSlewAcceleration = constrainedSlew.MaximumSlewAcceleration
maxAcceleration.Magnitude = 10
'deg/sec^2
maxAcceleration.PerAxisXAccelEnabled = True
maxAcceleration.PerAxisXAccel = 5
'deg/sec^2
maxAcceleration.PerAxisYAccelEnabled = True
maxAcceleration.PerAxisYAccel = 5
'deg/sec^2
maxAcceleration.PerAxisZAccelEnabled = True
maxAcceleration.PerAxisZAccel = 5
'deg/sec^2

Create a satellite (on the current scenario central body)
[MATLAB]Copy Code
% IAgStkObjectRoot root: STK Object Model Root 
satellite = root.CurrentScenario.Children.New('eSatellite', 'MySatellite'); 
 
 
Set satellite attitude basic spinning
[MATLAB]Copy Code
% IAgSatellite satellite: Satellite object 
basic = satellite.Attitude.Basic; 
basic.SetProfileType('eProfileSpinning') 
basic.Profile.Body.AssignXYZ(0,0,1) 
basic.Profile.Inertial.AssignXYZ(0,1,0); 
basic.Profile.Rate = 6;  % rev/sec 
 
 
Set satellite attitude targeting
[MATLAB]Copy Code
% IAgSatellite satellite: Satellite object 
attitudePointing = satellite.Attitude.Pointing; 
attitudePointing.UseTargetPointing = 1; 
attitudePointing.Targets.RemoveAll; 
attitudePointing.Targets.Add('AreaTarget/MyAreaTarget'); 
attitudePointing.TargetTimes.UseAccessTimes; 
 
 
Set satellite attitude external
[MATLAB]Copy Code
% IAgSatellite satellite: Satellite object 
satellite.Attitude.External.Load('C:\Program Files\AGI\STK 11\Help\stktraining\text\AttitudeTimeEulerAngles_Example.a'); 
 
 
Set up target slewing
[MATLAB]Copy Code
% IAgSatellite satellite: Satellite object 
attitudeSlewing = satellite.Attitude.Pointing.TargetSlew; 
attitudeSlewing.SetSlewModeType('eVeSlewModeConstrained2ndOrderSpline'); 
 
constrainedSlew = attitudeSlewing.SlewMode; 
constrainedSlew.MaximumSlewTime = 20; % sec 
constrainedSlew.SlewTimingBetweenTargets = 'eVeSlewTimingBetweenTargetsOptimal'; 
 
maxRate = constrainedSlew.MaximumSlewRate; 
maxRate.Magnitude = 10; % deg/sec 
maxRate.PerAxisXEnabled = 1; 
maxRate.PerAxisX = 5; % deg/sec 
maxRate.PerAxisYEnabled = 1; 
maxRate.PerAxisY = 5; % deg/sec 
maxRate.PerAxisZEnabled = 1; 
maxRate.PerAxisZ = 5; % deg/sec 
 
maxAcceleration = constrainedSlew.MaximumSlewAcceleration; 
maxAcceleration.Magnitude = 10; % deg/sec^2 
maxAcceleration.PerAxisXAccelEnabled = 1; 
maxAcceleration.PerAxisXAccel = 5; % deg/sec^2 
maxAcceleration.PerAxisYAccelEnabled = 1; 
maxAcceleration.PerAxisYAccel = 5; % deg/sec^2 
maxAcceleration.PerAxisZAccelEnabled = 1; 
maxAcceleration.PerAxisZAccel = 5; % deg/sec^2 
 
 
Create a satellite (on the current scenario central body)
[Python]Copy Code
# IAgStkObjectRoot root: STK Object Model Root 
satellite = root.CurrentScenario.Children.New(18, 'MySatellite') # eSatellite 
 
 
Set satellite attitude basic spinning
[Python]Copy Code
# IAgSatellite satellite: Satellite object 
basic = satellite.Attitude.Basic 
basic.SetProfileType(16) # eProfileSpinning 
basic.Profile.Body.AssignXYZ(0,0,1) 
basic.Profile.Inertial.AssignXYZ(0,1,0) 
basic.Profile.Rate = 6  # rev/sec 
 
 
Set satellite attitude targeting
[Python]Copy Code
# IAgSatellite satellite: Satellite object 
attitudePointing = satellite.Attitude.Pointing 
attitudePointing.UseTargetPointing = 1 
attitudePointing.Targets.RemoveAll() 
attitudePointing.Targets.Add('AreaTarget/MyAreaTarget') 
attitudePointing.TargetTimes.UseAccessTimes = True 
 
 
Set satellite attitude external
[Python]Copy Code
# IAgSatellite satellite: Satellite object 
satellite.Attitude.External.Load(r'C:\Program Files\AGI\STK 11\Help\stktraining\text\AttitudeTimeEulerAngles_Example.a') 
 
 

CoClasses that Implement IAgSatellite

© 2018 Analytical Graphics, Inc. All Rights Reserved.