Satellite properties.
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
|
|