Process Control

The following options are available for controlling filter or simulator start and stop times and process noise updates:

Process Control
Option Description
StartMode Specify whether this is the Initial run, a scheduled Restart or an AutoRestart.
(Re)Start time options

Depending on the selection made for StartMode, one of the following will appear:

  • StartTime - If the StartMode is Initial, specify the filter or simulator start time (defaults to scenario start time) here.
  • SelectedRestartTime - If the StartMode is Restart, specify the restart time here.
  • AutoSelectedRestartTime - If the StartMode is AutoRestart, the automatically selected restart time will appear here (read-only).
StopMode Select one of the following:
  • LastMeasurement - stop the filter when the last measurement is received
  • StopTime - display a field in which you can specify the desired stop time (defaults to scenario stop time)
  • TimeSpan - set a time duration for the filter or simulator to run before stopping (defaults to the span defined by the scenario start and stop times)
TimeStep
(Simulator only)
Defines the minimum allowable time between measurements, as well as the grid on which ephemeris will be written if requested. The time step defines the measurement time grid in the absence of custom tracking intervals.
ProcessNoiseUpdateInterval
(Filter only)

Enter a time value in the selected time unit to specify how often process noise is to be updated between measurement passes (see note below). The filter will output data on a union of this uniform time grid and the measurement time grid. The time update grid ensures that process noise is added between measurement passes. This attribute defines the uniform grid used for ephemeris output, if that option is selected.

If the Scenario.Units.DateFormat attribute is set to UTCG, the time upgrade grid will be on an even UTC grid; if it is set to GPSG, it will be on an even GPS grid.

MeasurementProcessingMode
(Filter only)
Measurements may be processed in either the scalar mode or the simultaneous mode during filter operation. In the scalar mode, a separate measurement update operation is performed for each measurement processed at a given time. In the simultaneous mode, all measurements at a single time are processed together in a single measurement update operation. The simultaneous mode typically improves the run time performance of the filter, but has been seen to exhibit some instability during the filter initialization period if the initial uncertainties are large. You can switch from one mode to the other when running the filter in either initial mode or from a restart record. (See 2nd note below)
ModelMeasOnlyWithRefEphem
(Filter only)

If set to true (default is false), running the filter will (only) process the measurements, computing residuals and the corresponding measurement error variances using Satellite Reference Trajectories (*.e files) for orbit and orbit covariance values. No estimation will be performed. The measurements are modeled using the nominal measurement bias and modeling values. Measurement error variance values only consider orbit errors and measurement white noise.

For all satellites in the Filter.SatelliteList the Satellite.EstimateOrbit flag must be set to false and a Reference Trajectory file must be input. Selecting this option will cause the Filter StartMode to be set to Initial, the OptionalSolveForParms.MeasBiases to be set to false, the SmootherData.Generate flag to be set to false, and the STKEphemeris.DuringProcess.Generate flag be set to false. Therefore turning this option off (after selection) will require the user to reset these flags.

The measurements will be modeled by interpolating the reference trajectories and propagating the reference covariance as necessary to the time of interest. It is recommended that the user select a smoothed reference ephemeris instead of a filtered reference ephemeris to avoid interpolating across possible discontinuities caused by measurement updates. If the reference trajectory file does not contain velocity covariance then the covariance will be propagated assuming a velocity covariance of zero. If the reference trajectory file does not contain any covariance, then a zero orbit covariance is assumed.

Note: Using this feature allows a reference ephemeris with covariance to be used in residual calculation and residual covariance calculation. The attribute will cause the filter to stop saving restart files and turn of smoother rough file generation, among other actions. Each action yields a Message Viewer message, but the user is required to reset quantities after making a filter run.

Warning: Manual setting of this field can lead to errors in filter settings. It is recommended that the user employ ResidualsVersusReference.htm, which will automatically remember and restore settings that were changed by this attribute.

NumOrbitsAllowedForEpochAlignment Specify the maximum number of revolutions that a satellite orbit may be propagated to align the satellite initial state with the start time of the process. This setting is also used to determine the allowable difference in epochs between a space-based GPS receiver clock state epoch and the initial condition epoch of its host satellite.
GlobalAtmosphericDensityEstimation
(Simulator only)
Controls for simulating deviations in selected atmospheric density model parameters.
EnableVLS If true and the filter has one or more child VLS objects with their ProcessControl.Generate flag set to true, then those VLS will be executed in conjunction with the Filter execution.
MeasUpdateOrbitStateRepresentation (Filter only)

Select the coordinates to be used when updating the non-linear orbit trajectory during the measurement update operation. Choices are Cartesian coordinates and equinoctial elements. The state update is always computed in Cartesian coordinates but can be linearly transformed to an update in equinoctial elements. For closed orbits where the motion is dominated by the two-body dynamics the equinoctial option typically leads to improved filter accuracy and an increased convergence region. Cartesian coordinates can be used for all classes of orbits including open orbits.

Note: This option is currently incompatible with variable lag smoothing.

DynamicStateSpace
(Filter Only)

The filter can be configured to add/drop particular types of states as they are needed. This feature can be used to improve the processing speed of the filter, improve the processing speed of fixed interval and variable lag smoothing and reduce output file size which results in faster reporting and graphing operations. For each type of state, select between Manual (all possible states are included in state space) and Automatic (states are added when needed at the initial epoch and restart points and dropped when not needed). The following table describes the Automatic mode behavior.

Dynamic State Space Options
Type Description
MeasBiases Measurement bias states are added to the state when observations from the associated tracker exist in the filter processing interval. Measurement bias states are dropped when their correlations to the rest of the estimation state falls below the CorrelationThreshold at the restart time and there are no measurements from the associated tracker in the filter processing interval.
CorrelationThreshold The value below which correlations in the state error covariance matrix are considered to be negligible.
InstantManeuverEstimation
(Filter only)

Corrections to modeled instant maneuvers can be estimated during the filter process. These estimates are facilitated through the use of fixed epoch smoothers where two smoothed states are estimated at the time of the instant maneuver. The first smoothed state does not contain the velocity change associated with the maneuver and the second smoothed state, at the same epoch, does contain the velocity change. The maneuver estimate is derived by differencing of the two smoothed states. Maneuver estimates which have not completed based on the completion criteria listed below may still be reported at the end of the filter run, but will continue in a subsequent filter run which is initialized from a restart record. A maneuver estimate is considered to be complete when any of the associated completion criteria are met. The following options are available for the estimation of the instant maneuvers during the filter process.

Instant Maneuver Options
Type Description
Estimate Produce estimates to modeled instant maneuvers during the time span of the filter run.
Formulation Two formulations of fixed epoch smoothers are available to support the estimation process. The Frazer form of the fixed epoch smoother maps observation residuals from the current filter epoch back to the fixed epoch associated with the smoothed estimate. This form is very computationally efficient since it does not require any matrix inversion operations. The Carlton-Rauch form of the fixed epoch smoother maps filter state corrections from the current filter epoch back to the fixed epoch associated with the smoothed estimate. This form does require matrix inversions but may be more numerically stable than the Frazer form.
UseMaximumLag Use a maximum lag completion criterion for the fixed epoch smoother estimates. The lag is defined as the time between the epoch of the fixed epoch smoother and the current filter epoch. It is recommended to always use the maximum lag completion criterion to avoid the possibility of the fixed epoch smoother estimate never reaching completion.
MaximumLag Fixed epoch smoother estimates are considered to be complete when this amount of time has elapsed between the epoch of the fixed epoch smoother and the current filter epoch when the fixed epoch smoother estimate and UseMaximumLag is set to true.
UseCovarianceReduction Use a covariance reduction completion criterion for the fixed epoch smoother estimates. The covariance reduction of the fixed epoch smoother estimate is measured as largest relative change in a diagonal element of the smoothed state error covariance matrix.
MinimumCovarianceReduction Fixed epoch smoother estimates are considered to be complete when the covariance reduction associated with N consecutive accepted measurements are all below this threshold. Covariance reduction is measured as largest relative change in a diagonal element of the smoothed state error covariance matrix. A covariance reduction of 0.001 would therefore mean that the largest relative change in a diagonal element would be 0.1%. The value of N is set via the attribute NumMeasForCovarianceReduction.
NumMeasForCovarianceReduction The number of consecutive accepted measurements for which the MinimumCovarianceReduction threshold must be satisfied in order for a fixed epoch smoother estimate to be considered complete.
HigherOrderCorrections
(Filter only)

Special algorithms to account for higher order effects are available to augment the ODTK optimal sequential filter. These algorithms consist of the Gauss 2nd order filter and two underweighting schemes: residual variance scaling and a covariance reduction limit. All higher order augmentations are specific to the ODTK Filter. These options for the mitigation of higher order effects should not be required in most normal circumstances.

Second Order Gaussian Filter

The capability to add in the additional terms associated with the Gaussian second order filter is accessible through the HigherOrderCorrections scope of the Filter attributes. Set the MitigationMethod to SecondOrderGaussian to expose the attributes. The Gaussian second order filter provides augmentation of measurement processing in terms of an adjusted residual and additional measurement deweighting and an augmentation of the time update in terms of an acceleration bias. Controls exist to allow for the inclusion of any or all of these augmentations. The selected second order effects can be included all the time or only when needed based on an automatic detection scheme.

The inclusion of second order terms in measurement processing requires the computation of second order partial derivatives (Hessians) of the measurement models. These computations are provided analytically for the most commonly used measurement models in ODTK. Measurement Hessians are computed numerically for those measurement models which do not support second order derivatives analytically. The need to compute measurement Hessians results in slightly slower execution times. The second order effect on the time update is accounted for through the computation of an acceleration bias on all orbit sub-states. The complete acceleration bias representation would require the computation of Hessians for all acceleration models involved in the trajectory propagation. The approach taken in ODTK is to only compute the Hessian of the two-body acceleration since all other accelerations are typically at least 3 orders of magnitude smaller than the two body acceleration.

Note: In all cases examined to the time of this writing, the inclusion of second order augmentation in the measurement update, specifically the measurement de-weighting, has proven to be much more important than the inclusion of second order effects in the time update.

Underweighting

The capability to augment the linear residual error variance with additional underweighting is accessible through the HigherOrderCorrections scope of the Filter attributes. Set the MitigationMethod to Underweighting to expose the attributes. There are two underweighting schemes implemented: residual variance scaling and a covariance reduction limit. The concept behind underweighting is to decrease the corrections made during measurement processing when the effects of non-linearity are significant. The main effect of underweighting is to slow the contraction of the covariance which can help prevent the filter from "over correcting" and subsequently rejecting valid tracking data.


Filter.ProcessControl.HigherOrderCorrections
Type Description
Mitigation Method Technique to be used to account for higher order effects encountered during estimation with the Filter. SecondOrderGaussian enables the computation of second order augmentation terms to time and/or measurement updates. Underweighting allows for the selection of a method by which observations are further de-weighted to account for non-linearity effects. Selecting None dictates that the Filter run in normal linear mode.
IterateMeasUpdate One method of addressing non-linearity effects in the measurement update process is to allow for multiple iterations in the measurement state update. This is a local iteration which is performed on a measurement by measurement basis. This option is not supported when the Filter is running in the Simultaneous measurement processing mode.
ResidualToWNIterationThreshold When IterateMeasUpdate is enabled, a threshold value of the ratio of the current residual over the current measurement white noise sigma may be specified as an exit condition for the iterative process. The iteration process will be considered to be converged when the computed ratio falls below the specified value. For example, a value of 1.0 would indicate that the iteration process should terminate when the resulting residual is smaller than the one sigma measurement noise.
MaxMeasUpdateIterations When IterateMeasUpdate is enabled, a maximum number of iterations may be specified.

HigherOrderCorrections.SecondOrderGaussian
Type Description
UpdateTypes The second order Gaussian filter provides augmentation terms which apply to both the time and measurement updates. The application of those augmentations may include both MeasurementAndTime updates, only Measurement updates or only Time updates.
MeasUpdateType The second order Gaussian filter augmentation of the measurement update consists of two parts. An augmentation of the residual computation and an augmentation to the de-weighting of the measurement residual.
Mode The second order augmentation terms identified by UpdateTypes and MeasUpdateType can be applied at all times during the estimation process or only when required based on detection metrics.
MeasUpdateNonlinearDetectionThreshold When the second order Gaussian Mode is set to include augmentation of the measurement update via AutoDetect, a threshold value of the ratio of expected second order de-weighting contribution over the measurement white noise varaince is required. The augmentation will be applied when the computed ratio is larger than the input value. For example, a value of 0.5 would indicate that augmentation should be applied when the expected second order contribution to the residual error variance is greater than one half the measurement white noise variance.
TimeUpdateNonlinearDetectionThreshold When the second order Gaussian Mode is set to include augmentation of the time update via AutoDetect, a threshold value of the ratio of expected second order acceleration bias over the current two body acceleration. The augmentation will be applied when the computed ratio is larger than the input value.
DeweightingScaleFactor When the second order Gaussian Mode is set to include augmentation of the measurement update and the MeasUpdateType is set to include the second order contribution to the residual deweighting, the computed second order augmentation to the deweighting is multiplied by the provided scale factor.
RcvrClockPartialsTransition Only applies to GNSS measurements when the receiver tags the observation with the raw receiver clock time. If true, the partials will be transitioned across the clock phase error interval. The user needs to weigh the benefit to computational time cost.

HigherOrderCorrections.Underweighting
Type Description
Method Two underweighting options are available: ResidualVarianceCorrectionLimit and ResidualVarianceScaling. ResidualVarianceCorrectionLimit underweighting increases the residual error variance to limit the contraction of the state error covariance in the measurement direction so that the ratio of the pre-fit residual error variance over the post-fit residual error variance is no larger than a user specified value. ResidualVarianceScaling underweighting multiplies the computed residual error variance by a user supplied scale factor.
Mode If the Method is set to ResidualVarianceScaling, the scaling of the residual error variance can be applied at all times during the estimation process or only when required based on a detection metric.
ResidualVarianceScaling The nominal computed residual error variance is scaled by this user supplied factor. A value of 1.0 corresponds to nominal (not underweighted) operation.
MeasUpdateNonlinearDetectionThreshold When the Method is set to ResidualVarianceScaling and the Mode is set to AutoDetect, a threshold value of the ratio of expected second order de-weighting contribution over the measurement white noise is required. The underweighting will be applied when the computed ratio is larger than the input value. For example, a value of 0.5 would indicate that augmentation should be applied when the expected second order contribution to the residual error variance is greater than one half the measurement white noise variance. Note that this threshold is computed in the same way as in the second order Gaussian filter.
ResidualVarianceCorrectionLimit The maximum allowed ratio of the pre-fit residual error variance over the estimated post-fit residual error variance. Underweighting is applied to increase the pre-fit residual error variance to limit the contraction of the state error covariance in the measurement direction so that the ratio of the pre-fit residual error variance over the estimated post-fit residual error variance is no larger than this value. For example, a value of 1000 would indicate that underweighting would be applied when necessary to prevent the contraction of covariance in the measurement direction by more than a factor of 1000.

NOTE: If you set the process noise update interval too large, problems may arise in subsequent calculations.

NOTE: The ODTK filter processes all measurements up to and including a restart record. Upon restart, ODTK does not process measurements at the restart time. In Scalar mode only measurements at exactly the restart time are not processed; in Simultaneous mode measurements at the restart time + epsilon are not processed where epsilon is 0.01 sec.

ODTK 6.5