STK ObjectsSend comments on this topic.
IAgSatellite Interface

Description

Satellite properties.

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 AttitudeTypeGet the 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 GetEOIRGet the EOIR properties of the satellite.
Public Property GraphicsGet the 2D Graphics properties of the satellite.
Public Property GroundEllipsesGet the Ground Ellipses properties of the satellite.
Public Property LightingMaxStepThis property is deprecated. Use LightingMaxStepTerrain or LightingMaxStepCbShape as appropriate. The maximum step size to use when computing lighting when UseTerrainInLightingComputations is true. Uses Time Dimension.
Public Property LightingMaxStepCbShapeGets or sets the maximum step size to use when computing lighting when UseTerrainInLightingComputations is false. Uses Time Dimension.
Public Property LightingMaxStepTerrainGets or sets the maximum step size to use when computing lighting when UseTerrainInLightingComputations is true. Uses Time Dimension.
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 PropagatorTypeGet the 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 UseTerrainInLightingComputationsOpt whether to compute lighting using terrain data.
Public Property VOGet the 3D Graphics properties of the satellite.

Interfaces

CoClasses that Implement IAgSatellite

Example

Create a satellite (on current scenario central body)
[C#]
// Create the Satellite
IAgSatellite satellite = root.CurrentScenario.Children.New(AgESTKObjectType.eSatellite, "MySatellite") as IAgSatellite;
Create a satellite from the satellite database
[C#]
// 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#]
// 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#]
// 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#]
// 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#]
// 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#]
// 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#]
// 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#]
// 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#]
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]
' 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]
' 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]
' 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]
' 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]
' 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]
' 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]
' 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]
' 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]
' 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]
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)
[Python - STK API]
# IAgStkObjectRoot root: STK Object Model Root
satellite = root.CurrentScenario.Children.New(AgESTKObjectType.eSatellite, 'MySatellite')

Set satellite attitude basic spinning
[Python - STK API]
# IAgSatellite satellite: Satellite object
basic = satellite.Attitude.Basic
basic.SetProfileType(AgEVeProfile.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 - STK API]
# IAgSatellite satellite: Satellite object
attitudePointing = satellite.Attitude.Pointing
attitudePointing.UseTargetPointing = True
attitudePointing.Targets.RemoveAll()
attitudePointing.Targets.Add('AreaTarget/MyAreaTarget')
attitudePointing.TargetTimes.UseAccessTimes = True

Set satellite attitude external
[Python - STK API]
# IAgSatellite satellite: Satellite object
satellite.Attitude.External.Load(r'C:\Program Files\AGI\STK 12\Data\Resources\stktraining\text\AttitudeTimeEulerAngles_Example.a')

Create a satellite (on the current scenario central body)
[MATLAB]
% IAgStkObjectRoot root: STK Object Model Root
satellite = root.CurrentScenario.Children.New('eSatellite', 'MySatellite');


        
Set satellite attitude basic spinning
[MATLAB]
% 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]
% 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]
% IAgSatellite satellite: Satellite object
satellite.Attitude.External.Load('C:\Program Files\AGI\STK 12\Data\Resources\stktraining\text\AttitudeTimeEulerAngles_Example.a');


        
Set up target slewing
[MATLAB]
% IAgSatellite satellite: Satellite object 
satellite.Attitude.Pointing.UseTargetPointing = true;
satellite.Attitude.Pointing.Targets.Add('Facility/FacSlew');

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


        
© 2024 Analytical Graphics, Inc. All Rights Reserved.