Title: Astrogator Automation: Inside
1Astrogator AutomationInside Out
2Agenda
- Background
- Automation Inside Astrogator
- Automation Outside Astrogator
- Full Analysis Example
- Conclusions
- Questions
3What is Astrogator?
- Missions analysis and operations often include
orbit maneuvers - Fuel use
- Maneuver strategies
- Station-keeping
- Need to calculate initial conditions to achieve
desired orbits - Maneuver planning
- Reconstruction
- Calibration
4Inside Automation
5Targeting
- Mission design
- Operational orbit selection
- Launch and transfer
- Operational support
- Orbit maintenance
- Performance assessment
- Determine control parameters that meet specific
constraints
6Formulation
- Linearization of a Taylor series expansion about
a known state - Singular Value Decomposition of sensitivity
matrix to calculate inverse - Have to solve for scaled parameters in cases of
an ill-conditioned matrix - Iterate on equations to converge to solution
7Derivative Computation
- Finite differencing
- Forward
- Backward
- Central
- Signed
8Solution Types
- Over determined (more constraints than control
parameters) least squares - Under determined (more control parameters than
constraints) minimum norm - Exactly determined (same number of controls and
constraints) unique solution
There is no notion of optimality
9Iteration And Convergence
- Require mechanism to end our search
- Give up (maximum iterations)
- Equality constraints are met (to within
tolerance) - Control parameter solution is stationary (to
within tolerance)
10A Simple Sample Problem
- Initial orbit
- Circular
- Equatorial
- 90 minute period
- Determine the velocity increment required to
achieve a semimajor axis of 50,000 km - Initial guess
- DV 2000 m/sec
11Step Control
- Setup
- Forward differencing 0.1 km/sec
- Step control 0.2 km/sec
- Results
- 12 Iterations
- 24 function evaluations
12Central Differencing
- Setup
- Central differencing 0.1 km/sec
- Step control 0.2 km/sec
- Results
- 8 Iterations
- 24 function evaluations
13Line Search
- Setup
- Forward differencing 0.1 km/sec
- Step control None
- Results
- 3 Iterations
- 33 function evaluations
14Change Of Variables
- Setup
- Forward differencing 0.1 km/sec
- Step control None
- Results
- 4 Iterations
- 8 function evaluations
15Multi-Sequence Automation
- A means of configuring control parameters in
different combinations over same trajectory - Allows both independent analysis and sequential
analysis
16Multi-sequence Automation
- Required for certain maneuvers
- Multiple levels of control over same path
- Allows collection of maneuvers into common block
- Do multiple sequential burns within same sequence
- Trial and error target selection
- Experiment but retain various control/constraint
permutations
17Configurable Parameters
- Control Parameters
- Active
- Perturbation controls
- Scaling mechanism
- Equality Constraints
- Active
- Tolerance
- Scaling
18Configurable Parameters
- Convergence Criteria
- Max Number of Iterations
- Stop at equality or equality and static
control updates - Step Control
- Line search mechanism
- Homotopy
- Derivative method
- Run logging
19Multi-Sequence Automation
- Lunar Example
- Determine profile to get to target lunar orbit
- Sequence of controls
- Target on DRa, DDec to synchronize controlling
launch time and mid-course burn time - Target on B-plane to gets close to final orbit
controlling mid-course burn magnitude in addition
to above - Target on Lunar Altitude Inclination for final
orbit controlling same as above
20Auxiliary Sequence Automation
- Repeatable events
- Subroutine-like capability
- Queued off specific orbital event
- Apoapsis
- Epoch
- Custom stopping condition
- Activated at given stopping condition
21Constraint parameters
- Applied to stopping condition
- Equivalent to AND logic
- If Duration Constraints
- Do STOP
- Else if Apoapsis Constraints
- Do Coast-Burn-Coast-Burn
- Else if MaxPropTime !MinPropTime
- Do STOP
- Else
- Next Step
- End If
22Example-NGST Halos
- Given Initial orbit insertion parameters
- Determine Nominal ten halo orbit maneuver
sequences into future
23Manual Way
- For each orbit, add a new target sequence
- Useful if each halo a requires different sequence
- Negatives
- Redundant segments
- Introduction of errors
- Changes difficult
24Auxiliary Sequence Way
- Maneuver Sequence Encapsulated in Auxiliary
Sequence - Positives
- Remove redundancy
- Central point for changes
- Negatives
- Difficult to tailor individual maneuvers
25Plug-in Basics
- Extensible Architecture in STK
- Astrogator Plug-in points
- Propagator
- Custom engine models
- Calc objects
- Inline functions
- Languages
- Matlab
- Matlab DLLs
- Perl
- VBS
26Propagator Plugins
- Acceleration computation
- Two-body motion plus perturbations
- Indirect Plugin Influence
- Thrust
- Drag
- Solar
- Plugin
27Propagator Update Values
- Between integration steps adjust satellite
properties - Drag Area
- SRP Area
- Dry Mass
- Fuel Mass
- CD
- CR
28Propagator Force Model Eval Plugin
- Similar to Propagator update plugins
- Evaluated at each propagation sampling
stepseveral times more than update plugin - Has more returns
- Atmospheric Density
- Solar Intensity
- Acceleration (in CBI, CBF, CbiVNC, CbiLVLH)
29Engine Modeling
- At each propagation evalution
- Thrust
- Isp
- Mass flow rate
30Calculation Objects
- Provides full flexibility in types of
calculations available in Astrogator - Calc Objects used in
- Stopping Conditions
- Stopping Constraints
- Plug-in inputs
- STK Reports/Graphs
- Direct plugin inline versions
31Inline Example
- In-house DT function
- Requires geodetic position and current time
- Needed for
- Stopping condition
- Solar panel efficiency for ion engine operation
32AerobrakingAeroAstros SPORT
- Problem
- High Cost of Small Launch Vehicles Limits Market
- Solution Small Payload Orbit Transfer Vehicle
(SPORT) - Launch as Auxiliary Payload on Large Launch
Vehicle - Cheapest and Most Frequent Excess Capacity on GTO
Launches - Aerobrake Down to More Desirable LEO Destination
- Aerobraking Enables 90 Propellant Reduction
- Other Aerobraking Applications
- Enter Orbit Around Other Planets (Venus, Mars)
- Aero-Assisted Swing-by
- Return from Libration Point or Helio for
Maintenance
33AeroAstro Atmosphere Modeling
- STK/Astrogator usage
- Constrained Stopping Conditions
- Multiply-Nested Control Sequences with Internal
Targeters - Matlab Plug-In-Script for Propagator
- Drag Coefficient Varies Depending on Aerodynamic
Flow Regime Free Molecular ? Transition ?
Continuum - Plug-In-Script Computes Flow Regime Based on STK
Atmospheric Model ? Continuously Adjusts Drag
Coefficient Based on NASA LaRC DSMC Results - Also Extract Atmospheric Properties for
Aeroheating Analysis
34Internal Automation Summary
- Targeter provides direct automation for root
finding solutions - Multi-Profile analysis provides flexibility in
problem solving - Auxiliary sequence provides subroutine-like
automation - Plug-ins open up internal system to user
customizable functions and system integration
35Outside Automation
36Connect
- Basics
- Commands
- Pushing data in
- Getting data out
- Invoking action
37Connect Basics
- Text message commands
- Text return data
- ltCommandgt ltObjectgt ltDatagt
- Connections
- TCP/IP
- MS COM Layer
38Pushing Astrogator data into STK
- ASTROGATOR ltSatellite Object Pathgt ltactiongt
ltAstrogator Object Pathgt ltValuegt ltUnitsgt - Examples
- Set Propagate segment stopping conditions
- Set reference coordinate system
- Set type and direction
39Getting Astrogator data out of STK
- ASTROGATOR_RM ltSatellite Object Pathgt ltactiongt
ltAstrogator Object Pathgt - Examples
- Pull Inclination at end of propagation segment
- Pull final burn direction and magnitude at end of
targeting - Pull custom computation at end of finite maneuver
40Attributes
- Description
- Methodology
- Examples
41What are Attributes ?
- A generic means of accessing data throughout STK
products (STK, Astrogator, STK/OD,NTK) - Means of accessing data symbolically.
- Symbolically means associating a piece of data
with a name. - So,you could say things like
- gimme Scenario1.hubble.Swath.Type
- And youd actually get it !
42(No Transcript)
43Attribute Example 1
- MainSEQUENCE.SegmentList.TargetHOI.Profiles
44Attribute Example 2
- MainSEQUENCE.SegmentList.TargetSk1.SegmentList.To1
stCross.Propagator
45Pushing Data
- General usage for setting parameters throughout
MCS Sequences - Build List of values
- SegmentList at various levels
- MainSEQUENCE
- Target_Sequence
- Stopping conditions
- Apoapsis
- Duration
- Constraints
- Altitude
- Change direct values
- Stopping condition Trip Values
- Duration 200 sec
- Constraint tolerances
- Altitude gt 50 km
46Targeter Control
- AddMCSSegmentControl
- SetMCSControlValue
- RemoveMCSSegmentControl
- ClearMCSSegmentControls
47Setting up targeting
- Use SetValue to define segment results
- Segment results become targeting constraints
- Set desired values, tolerances et cetera with
SetValue - Activate necessary targeting parameters for
constraint with SetMCSConstraintValue
48Extracting DataGetValue
- Generic command for extracting data throughout
the MCS Sequences - Pull list of values
- Segments in SegmentList
- Stopping conditions
- Pull groups of values
- Initial state in Cartesian coordinates
- Final thrust vector
- Pull individual values
- Final state inclination
- Targeter control status
49Extracting DataSegment Results
- GetMCSSegmentResults return results at end of
segment - ASTROGATOR_RM /Satellite/Satellite1
GetMCSSegmentResults MainSEQUENCE.SegmentList.Targ
et_Sequence.SegmentList.Impulsive_Maneuver - GetValue gives option of pulling results at
beginning and end of segment - ASTROGATOR_RM /Satellite/Satellite1 GETVALUE
MainSEQUENCE.SegmentList.Target_Sequence.SegmentLi
st.Impulsive_Maneuver.InitialResultValues - ASTROGATOR_RM /Satellite/Satellite1 GETVALUE
MainSEQUENCE.SegmentList.Target_Sequence.SegmentLi
st.Impulsive_Maneuver.FinalResultValues
50STK Settings
- Setup satellite for Astrogator propagator
- SetPropagator ltObjectPathgt ltPathgt
- Propagating
- Propagate ltObjectPathgt Time1 Time2
- Time is ignored but required for Connect syntax
reasons
51Integration
- Jaqar Swing-by Calculator
- MaNE
- Phoenix Integration Systems
- Custom Apps
52Outside Automation Summary
- Attributes provides flexible mechanism for
accessing low level data symbolically - Connect used as driver interface for
reading/writing Astrogator Attributes - Allows full configuration of satellite parameters
53Full-up Example
54Problem Statement
- Given New Horizons mission profile
- Determine burn configuration with full force
modeling - Determine optimum burn configuration
- Determine burn profile sensitivity
55Solution-Initial Design
- Jaqar Swing-by Calculator (SBC) designs initial
New Horizon orbit - SBC exports solution as Astrogator satellite
- Astrogator satellite loaded and targeted for
final solution
56Maneuver Modeling
- Convert all burns from impulsive to finite
- Burn centering
- Initial values from impulsive maneuver case
- Conversion step by step
- Set defaults
57Burn Optimization
- Determine minimum fuel usage requirement
- Matlab parametric optimization
- Vary time of each burn
- Re-target Astrogator sequence
- Pull final fuel mass to determine fuel used
58Determine Stability
- Script similar to burn optimization but using
Monte Carlo analysis - Vary each parameter and attempt to retarget in
future maneuvers - Initial state parameters
- Engine out during burns
- Bad pointing during burn
- Engine efficiency issues
59Conclusions
- Automation in Astrogator provides convenient
mechanism for solving common engineering problems - Automation allows for full range of analyses of
orbit design in all regimes - Automation allows for integration with existing
tools or vendor specific functions
60Questions?
61Homotopy Continuation
- Setup
- Forward differencing 0.1 km/sec
- Step control 0.2 km/sec
- Results
- 17 Iterations (98)
- 34 function evaluations
62Connect Basics
- General command structure
- ltCommandgt ltObjectPathgt ltCommand Datagt
- Command is a one word key
- New
- GetReport
- ObjectPath is string naming an object
- /Satellite/Satellite1
- Command Data is any information necessary to
execute command - Object type and name for New
- Report style name and interval for GetReport
63SetValue Examples
- Setting stopping condition value
- ASTROGATOR /Satellite/Satellite1 SETVALUE
MainSEQUENCE.SegmentList.Propagate.StoppingConditi
ons.Duration.TripValue 4 hours - Setting Initial state sma
- ASTROGATOR /Satellite/Satellite1 SETVALUE
MainSEQUENCE.SegmentList.Initial_State.InitialStat
e.Keplerian.sma 8000 km
64Pushing DataSetMCSControlValue
- ASTROGATOR ltSatellite Object Pathgt
SetMCSControlValue ltAstrogator Object Pathgt
ltOwning Segmentgt ltControl Namegt Active ltValuegt - Example
- ASTROGATOR /Satellite/Satellite1
SetMCSControlValue MainSEQUENCE.SegmentList.Target
_Sequence.Profiles.profile1 Impulsive_Maneuver
Cartesian.X Active True - Targeter Control commands
- AddMCSSegmentControl
- RemoveMCSSegmentControl
- ClearMCSSegmentControls
65Pushing DataAddMCSSegmentControl
- ASTROGATOR ltSatellite Object Pathgt
AddMCSSegmentControl ltAstrogator Object Pathgt
ltCalculation Objectgt - Example
- ASTROGATOR /Satellite/Satellite1
AddMCSSegmentControl MainSEQUENCE.SegmentList.Targ
et_Sequence.SegmentList.Impulsive_Maneuver
Cartesian.Y Active True
66GetValue Examples
- Get SegmentList
- ASTROGATOR_RM /Satellite/Satellite1 GetValue
MainSEQUENCE.SegmentList - Get Initial state in Keplerian Elements
- ASTROGATOR_RM /Satellite/Satellite1 GETVALUE
MainSEQUENCE.SegmentList.Initial_State.InitialStat
e.Keplerian - Get X-component of initial position in Cartesian
- ASTROGATOR_RM /Satellite/Satellite1 GETVALUE
MainSEQUENCE.SegmentList.Initial_State.InitialStat
e.Cartesian.X
67Extracting DataGetMCSConstraintValue
- Pull results from targeting procedure
- ASTROGATOR_RM ltSatellite Object Pathgt
GetMCSConstraintValue ltAstrogator Profile Pathgt
ltOwning Segmentgt ltControl Namegt ltAttributegt - ASTROGATOR_RM /Satellite/Satellite1
GetMCSConstraintValue MainSEQUENCE.SegmentList.Tar
get_Sequence.Profiles.Differential_Corrector
Impulsive_Maneuver Semimajor_Axis Achieved