Title: Under The Hood: Maneuver Planning With Astrogator
1Under The HoodManeuver Planning With Astrogator
2Agenda
- Introduction to Astrogator
- The components of Astrogator
- Segments
- Stopping Conditions
- Engine Models
- Targeter Profiles
- Examples
- What are they?
- What do they do?
- How do they work?
3Whats Astrogator?
- Astrogator is STKs mission planning module
- Used for
- Trajectory design
- Maneuver planning
- Station keeping
- Launch window analysis
- Fuel use studies
- Derived from code used by NASA contractors
- Embedded into STK
4Astrogator in STK
- Astrogator is one of 11 satellite propagators
- Propagator generates ephemeris
- Astrogator satellite acts like other STK
satellites - Can run STK reports (including Access)
- Can animate in 3D and 2D windows
- Generates ephemeris by running Mission Control
Sequence (MCS) - Components used in MCS configured in Astrogator
Browser
5Astrogator
Astrogator
Mission Control Sequence Configuration
Ephemeris
Astrogator
Runs Mission Control Sequence
Other Mission Data
6The Mission Control Sequence
- A series of segments that define the problem
- A graphical programming language
- Two types of segments
- Segments that produce ephemeris
- Segments that change the run flow of the MCS
- Segments pass their final state as the initial
state to the next segment - Some segments create their own initial state
7The Mission Control Sequence
State
Segment 1
Ephemeris
State
Ephemeris
Segment 2
State
8Segments that produce ephemeris
- Initial State specifies initial conditions
- Launch simulates launching
- Propagate integrate numerically until some
event - Maneuver impulsive or finite
- Follow follows leader vehicle until some event
- Update updates spacecraft parameters
9Initial state segment
- Specify spacecraft state at some epoch
- Choose any coordinate system
- Enter in Cartesian, Keplerian, etc.
- Enter spacecraft properties mass, fuel, etc.
10Launch segment
- Specify launch and burnout location
- Specify time of flight
- Use any central body
- Connects launch and burnout points with an
ellipse - Creates its own initial state
11Propagate segment
- Numerically integrates using chosen propagator
- Propagator can be configured in Astrogator
browser - Propagation continues until stopping conditions
are met
12Stopping conditions
- Define events on which to stop a segment
- Stop when some calc object reaches a desired
value - A calc object is any calculated value, such as an
orbital element - Calc objects can be user-defined
13Stopping conditions
- Can also specify constraints
- Only stop if another calc object is , lt, gt, some
value - Determines if exact point stopping condition is
met, then checks if constraints are satisfied - Multiple constraints behave as logical And
- Segments can have multiple stopping conditions
- Stops when the first one is met
- Behaves as a logical Or
14Event detection
- Exact time of event found with Regula-Falsi
- f(t) found by integrating to time t
15Propagate segment pseudo-code
- while (keepGoing)
- take integration step
- if (stopping condition tripped over step)
- find exact point of stopping condition
- if (constraints met at that point)
- keepGoing false
- end if
- end if
- end while
16Maneuver segment
- Maneuver segment owns two distinct segments
- Finite maneuver
- Impulsive maneuver
- Combo box controls which one is run
- Finite maneuver created from impulsive maneuver
with Seed button
17Impulsive maneuver
- Adds delta-V to the current state
- Can specify magnitude and direction of delta-V
- Computes estimated burn duration and fuel usage,
based on chosen engine - Can configure engine model in Astrogator browser
18Impulsive maneuver
State
Impulsive Maneuver Add delta-V to state
State
19Finite maneuver
- Works like propagate segment, thrust added to
force model - Can specify the direction of the thrust vector
- Can be specified in plug-in
- Magnitude of thrust comes from engine model
- Can center the burn about current state
20Engine models
- Compute thrust, Isp, and/or mass flow rate (two
of three) - Four Kinds
- Constant Thrust and Isp
- Polynomial Engine T and Isp functions of
pressure, temperature - Ion Isp and mass flow functions of power
- Plugin you decide
- Thrust and mass flow rate sent back to force model
21Finite burn seeding
- Creates finite maneuver from impulsive
- Duration stopping condition set to estimated burn
duration of impulsive maneuver - Copies all settings from impulsive maneuver to
finite maneuver
22Follow segment
- Choose leader to follow
- Specify offset from the leader
- Follow leader between joining conditions and
separation conditions - Behave just like stopping conditions
- Creates its own initial state
23Follow segment pseudo-code
- while (keepGoing)
- get leaders next ephemeris point
- add offset
- if (not adding points yet)
- if (joining conditions are met)
- find exact point of joining condition
- start adding points
- end if
- end if
- if (adding points)
- add point to ephemeris
- if (separation conditions met over step)
- find exact point of separation conditions
- keepGoing false
- end if
- end if
- end while
24Update segment
- Used to update spacecraft properties
- Useful to simulate stage separation, docking, etc
- Set properties to a new value, or add or subtract
from their current value
25Update segment
State
Update Update state parameters
State
26Segments that change run flow
- Auto-Sequences called by propagate segments
- Target Sequence loops over segments, changing
values until goals are met - Backwards Sequence changes direction of
propagation - Return exits a sequence
- Stop stops computation
27Auto-sequences
- Instead of stopping a segment, stopping
conditions can trigger an auto-sequence - An auto-sequence is another sequence of segments
- Behaves like a subroutine
- After the auto-sequence is finished, control
returns to the calling segment - Auto-sequences can inherit stopping conditions
from the calling segment
28Auto-sequences example
Initial State
Propagate
Apoapsis
Periapsis
Duration 1 day
Burn In Plane Sequence
Burn Out Of Plane Sequence
Finite Maneuver In Plane
Finite Maneuver Out of Plane
Duration 100 sec
Duration 100 sec
29Target sequence
- Runs through a series of targeter profiles
- Behaves like a while loop
- Profile manipulates the segments in target
sequence - Two types of profiles
- Differential corrector
- Profiles that change segments properties
30Differential corrector
- Controls chosen from segments in target sequence
- Results are calc objects computed at the end of
segments in the sequence - Determine controls, x, to meet results, y
- Evaluated by running targeter sequence
31Differential corrector
- Correction to controls found from linearized
Taylor series - A found from finite differencing, perturbation
added to each control - Inverse found from singular value decomposition
32Differential corrector pseudo-code
- run sequence to get results
- while (not converged and count lt max iterations)
- for each control
- adjust control by perturbation
- run sequence to get results
- end for
- compute partial matrix
- compute inverse of partials
- compute new control values
- run sequence to get results
- increment count
- end while
33Profiles that alter segment properties
- Change maneuver type toggles finite / impulsive
- Seed finite maneuver creates finite from
impulsive maneuver - Change stopping conditions toggles stopping
conditions - Change return enables / disables return segment
34Target sequence pseudo-code
- execute each profile
- run sequence final time
- clean up after profiles
- After targeter finished running, segments left in
original state - Changes to controls / segment properties not
applied until Apply Corrections button is used
35Using the targeter effectively
- Multiple targeting profiles divide problem into
parts - Coarse and fine targeting
- U.S. Patent No. 6,937,968
- Target sequence can be changed between DC
profiles with segment property profiles - Differential corrector relies on good partials
- Set perturbation and max step appropriately
- Best to have equal number of controls and results
36Targeting examples
- Coarse and fine targeting of a maneuver
- Example of bad partials
37Backward sequence
- Segments in backward sequences propagated
backwards - Propagate finite maneuvers integrated with
negative time step - Impulsive maneuvers delta-Vs are subtracted
- Can pass initial or final state of sequence to
next segment
38Backwards prop example
- Meet in the middle targeting problem
39Putting the ephemeris together
- Segment ephemeris merged after MCS is run
- When overlaps occur later segment in MCS wins
- Only overlapped portion of earlier segments
ephemeris removed - Possible to have discontinuous ephemeris
- Sequences have option not to generate ephemeris
40Ephemeris merging
Segment 1
Segment 2
Final Ephemeris
5
10
15
0
time
Two points at the same time
41Ephemeris merging example
42Summary
- Astrogator is a tool in STK for mission planning
- Astrogator is not complicated it just does what
you tell it to do - Some math in Astrogator
- Event detection
- Differential corrector
- Engine model
- Orbit propagation
- Configuring Astrogator is the key
43Other related events
- Methods of Orbit Propagation Jim
WoodburnWednesday 1045 a.m.-1215 p.m. - Space SystemsJohn Carrico and Bob HallWednesday
1045 a.m.-1215 p.m. - Astrogator Users Group breakfastThursday 715
a.m. - STK Plug-ins using Compiled CodeVince
CoppolaThursday 1045 a.m.-1215 p.m.
44Questions