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.
Then the analyst may want to make any of the following changes to the scenario without having to reinitialize the filter:
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.
*.restartfile based on the new state content (see FilterLog, below).
*.roughfile, so that the smoother can recover the process noise statistics unique to that
*.roughfile without burdening the scenario with archiving that information. Each
*.roughfile contains a time segment over which the state space size is fixed.
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.
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
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:
*.roughfiles relevant to the span and input them to the smoother.
*.restartfiles, then the user should save the
*.restartfiles before editing the scenario.
The following table identifies the objects to edit to define a Flexible State Space event:
|Defining a Flexible State Space Event|
|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.|