Flexible State Space
For further information on how Flexible State Space options work, see the accompanying PDF document.
Assume that all the following are true:
- A multisatellite simultaneous filter and smoother have been running.
- A set of restart records exists for the filter.
- The analyst wishes to modify the filter.
Then the analyst may want to make any of the following changes to the scenario without having to reinitialize the filter:
- Add a new satellite (a new launch for the constellation)
- Delete a satellite (satellite deorbited or otherwise retired)
- 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 postmaneuver state vector.)
- Add a ground station (new terminal available)
- Delete a ground station (retired)
- Change the solution vector (now solve for SRP/Drag/Bias or turn off the solution of SRP/Drag/Bias)
- Change the state statistics (the half-life or sigma on SRP/Drag/Bias/Transponder/etc.)
- Add a measurement type to the filter with new statistics
- Delete a measurement type altogether
- Add new finite maneuver events
- Remove obsolete finite maneuver events
- 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. You simply drop states from or add 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. Flexible State Space events can only occur at a restart time.
In general, the analyst requests these actions by:
- Editing the scenario object properties in the white panels
- Restarting the filter at a selected restart time
You can exercise two or more flexible state space actions at any one time; however, you cannot add and drop the same object at the same restart time.
ODTK actions
- The filter determines the new state content from the object properties.
- The filter
creates a new
*.restart
file based on the new state content (see FilterLog, below). - The filter creates a log file entry to record the Flexible State Space event.
- 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. - 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.
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. For objects removed from state space, do not remove them from the scenario until they are older than the earliest smoother time.
FilterLog file
ODTK provides a FilterLog
file. ODTK writes one entry to this file each time you run the filter
containing "Current
Time, ScenarioName.FilterName StartMode Start Time # of states".
If you add, drop, or reinitialize states, then the filter writes other lines
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 you rename a scenario, then ODTK generates a new FilterLog file,
with entries copied from the FilterLog of the old scenario.
Running in initial mode does not automatically clear the file. You can clear the file manually or through the Filter.Output.ClearMsgLog attribute.
You should be aware of the file manipulation process, because it influences the data that you might want to archive. For example:
- If a smoother operation spans several flexible state space events, you must save all of the
*.rough
files relevant to the span and input them to the smoother. - If you maintain
an archive to support historical reconstruction and that archive includes
*.restart
files, then you should save the*.restart
files 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 | |
---|---|
Task | This is a user action. |
Add satellite | Adds a satellite to ODTK.Scenario1.Filter1.SatelliteList. |
Drop satellite | Deletes a satellite from ODTK.Scenario1.Filter1.SatelliteList. |
Replace satellite state | Runs the utility SatelliteReplacementTool.htm. |
Add a ground station | Adds a facility to ODTK.Scenario1.Filter1.TrackerList. |
Delete a ground station | Deletes a facility from ODTK.Scenario1.Filter1.TrackerList. |
Change solution vector | Changes the 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 appear in the Restart.StochasticModelUpdates.GaussMarkovList. Parameters modeled using the scalar Random Walk model appear in the Restart.StochasticModelUpdates.RandomWalkList. Parameters modeled using the scalar Vasicek model appear in the Restart.StochasticModelUpdates.VasicekList. Select the appropriate list and then change statistics for the state of interest. |
Add measurement type | Adds a type to ODTK.Scenario1.Filter1.MeasTypes (assuming it is defined elsewhere in the scenario). |
Delete measurement type | Deletes a type from ODTK.Scenario1.Filter1.MeasTypes. |
Add finite maneuver | Adds a maneuver to ODTK.Scenario1.Satellite1.ForceModel.FiniteManeuvers. |
Delete finite maneuver | Deletes a maneuver from ODTK.Scenario1.Satellite1.ForceModel.FiniteManeuvers. |
Change constant bias & bias sigma | This is similar to the "Change state statistics" task. Enable the StochasticModelUpdates flag, select the appropriate list, and then change constant bias, sigma, or both for the state of interest. |