Flexible State Space

ODTK provides a set of capabilities designed to help the analyst make changes to an operational scenario at a Restart time, without having to reinitialize the filter. These actions change the dimension and content of the Filter state space, and so are called Flexible State Space options. Several use cases define the Flexible State Space options that are supported.

Further information on how Flexible State Space options work is given in an accompanying PDF document.

Assume that:

Then the analyst may want to make any of the following changes to the scenario without having to reinitialize the filter:

  1. Add a new satellite - i.e. a new launch for the constellation
  2. Delete a satellite - i.e. satellite is deorbited or otherwise retired
  3. Replace a satellite position and velocity. (Maneuver data for the satellite that is maneuvered is not available, but the satellite operator can provide a new post-maneuver state vector.)
  4. Add a ground station - i.e. new terminal available
  5. Delete a ground station - i.e. it is retired
  6. Change the solution vector - i.e. now solve for SRP/Drag/Bias or turn off the solution of SRP/Drag/Bias
  7. Change the state statistics - i.e. the half-life or sigma on SRP/Drag/Bias/Transponder/etc.
  8. Add a measurement type to the filter with new statistics
  9. Delete a measurement type altogether
  10. Add new finite maneuver events
  11. Remove obsolete finite maneuver events
  12. Change the constant bias and corresponding bias sigma for facilities or transponders

All of these capabilities are fairly easy to provide in a Filter application; one simply drops states from or adds states to state space, and if a state value is changed, the cross-correlations to other states are zeroed. The challenge is to maintain the integrity of the associated processes, such as Restart File, Smoother, and Reports and Graphs in the presence of a Filter state space that changes in size and content; otherwise the covariance will suddenly have zero cross correlations. As of the current version of ODTK, Flexible State Space events can only occur at a restart time.

In general the analyst requests these actions by:

Multiple flexible state space actions can be exercised at any one time; however, the same object cannot be added and dropped at the same restart time.

ODTK Actions

  1. The filter determines the new state content from the object properties.
  2. The filter create a new *.restart file based on the new state content (see FilterLog, below).
  3. The filter creates a log file entry to record the Flexible State Space event.
  4. The filter saves object properties into the *.rough file, so that the smoother can recover the process noise statistics unique to that *.rough file without burdening the scenario with archiving that information. Each *.rough file contains a time segment over which the state space size is fixed.
  5. The smoother reads one or more rough files of variable lengths and end times and accounts for all changes in state space in producing a smoothed ephemeris.

Note: The *.rough file does not archive model information for objects (e.g. force models for satellites); thus the smoother relies on the scenario to define these model choices. Objects that are removed from state space should not be removed from the scenario until they are older than the earliest smoother time.

FilterLog File

Beginning with version 4, ODTK provides a FilterLog file. One entry is written to this file each time the filter is run containing "Current Time,  ScenarioName.FilterName  StartMode  Start Time  # of states". If states are added, dropped or reinitialized then other lines are written for those states. The name of the log file is of the form FilterLog_(filtername)_(scenarioname).txt, and the directory into which it is written is the same as that for the Restart file. If a scenario is renamed then a new  FilterLog file is generated, with entries copied from the FilterLog of the old scenario.

Note: Running in initial mode does not automatically clear the file. The file can be cleared manually or through the Filter.Output.ClearMsgLog attribute.

The user should be aware of the file manipulation process, because it influences the data that the user might want to archive. For example:

The following table identifies the objects to edit to define a Flexible State Space event:

Defining a Flexible State Space Event
Task User Action
Add satellite Add satellite to ODTK.Scenario1.Filter1.SatelliteList
Drop satellite Delete satellite from ODTK.Scenario1.Filter1.SatelliteList
Replace satellite state Run utility SatelliteReplacementTool.htm
Add a ground station Add facility to ODTK.Scenario1.Filter1.TrackerList
Delete a ground station Delete facility from ODTK.Scenario1.Filter1.TrackerList
Change solution vector Change Estimate flag for corresponding quantity
Change state statistics

First enable the Filter.Restart.StochasticModelUpdates flag to expose the lists of state parameters modeled using a stochastic sequence. These state parameters are grouped by their associated stochastic sequence model. Parameters modeled using the scalar Gauss-Markov model are displayed in the Restart.StochasticModelUpdates.GaussMarkovList. Parameters modeled using the scalar Random Walk model are displayed in the Restart.StochasticModelUpdates.RandomWalkList. Parameters modeled using the scalar Vasicek model are displayed in the Restart.StochasticModelUpdates.VasicekList.

Select the appropriate list and then change statistics for state of interest.

Add measurement type Add type to ODTK.Scenario1.Filter1.MeasTypes (assuming it is defined elsewhere in the scenario)
Delete measurement type Delete from ODTK.Scenario1.Filter1.MeasTypes
Add finite maneuver Add to ODTK.Scenario1.Satellite1.ForceModel.FiniteManeuvers
Delete finite maneuver Delete from ODTK.Scenario1.Satellite1.ForceModel.FiniteManeuvers
Change constant bias & bias sigma Similar to the "Change state statistics" task. Enable the StochasticModelUpdates flag, select the appropriate list and then change constant bias and/or sigma for state of interest.

ODTK 6.5