ODTK makes available three types of stochastic sequences to model the measurement state parameters associated with facility measurement biases, satellite measurement biases, transponder biases, and retroreflector delays.

Choices for the stochastic model include:

- GaussMarkov = State will be modeled as a scalar exponential Gauss Markov sequence
- RandomWalk = State will be modeled using a Wiener (Brownian motion) sequence
- Vasicek = State will be modeled using a Vasicek stochastic sequence. This is a two-parameter model that solves for both a short-term and long-term bias.

The stochastic modeling is computed based on algorithms given in the ODTK Orbit Determination: Theorems & Equations document.

The state estimated is an error to an input nominal (constant) value. The state will be modeled using a scalar exponential process. In the absence of measurements, the state estimate will decay towards zero over time while the covariance on the estimate will tend to an upper bound defined by an input sigma.

GaussMarkov Properties | |
---|---|

Property | Description |

Constant | The constant (or nominal) value associated with the state parameter. |

InitialError | An initial estimate to the actual error in the "Constant". Nominally this will be 0. |

Sigma | Root- variance of the initial error in the "Constant". Also can be thought of as the root-variance of the error in the nominal value in the absence of measurements. |

HalfLife | The "half life" of the Gauss Markov state error estimate. This controls how fast the state error estimate will decay in the absence of measurements; the shorter the halflife the faster the decay. |

The state estimated is an error to an input nominal (constant) value. The state will be modeled using a Wiener (Brownian Motion) process. In the absence of measurements, the state estimate will not change but the covariance on the estimate will continue to grow.

RandomWalk Properties | |
---|---|

Property | Description |

Constant | The constant (or nominal) value associated with the state parameter. |

InitialError | An initial estimate to the actual error in the "Constant". Nominally this will be 0. |

InitialSigma | Root- variance of the initial error in the "Constant". |

DiffusionCoefficient | Determines the amount of process noise to be added to the state
covariance in going from time t_{1} to t_{2}. The
amount of process noise added will be
a^{2}Δt, where a = the
diffusion coefficient and Δt = |t_{2} - t_{1}|.
Properly, the units on a are (bias
units/time^{1/2}). For example for a range bias the units
might be meters/sec^{1/2}. In the ODTK implementation only
the bias units are displayed; the time units are implicitly taken
to be seconds. So, again using a range bias as an example, a
DiffusionCoefficient input of 0.1 meter will result in a process
noise addition of 36 meter^{2} across 1 hour (3600
sec). |

The state will be modeled using a Vasicek stochastic sequence. This is a two-parameter model that solves for both a short-term error and a long-term mean error to an input nominal (constant) value.

Vasicek Properties | |
---|---|

Property | Description |

LongTerm.Constant | The constant (or long-term mean) value associated with the state parameter. |

LongTerm.InitialEstimate | An initial estimate to the error in the long term value. Nominally this will be 0. |

LongTerm.Sigma | Root- variance of the initial error in the "Constant". |

LongTerm.ErrorThreshold | The modeling of long-term mean error does not include the addition of any process noise to this parameter. Therefore over time the covariance of this parameter will approach zero. To avoid numerical issues associated with a zero covariance this input property is included to prevent the long-term mean error root-variance from going below some threshold. Process noise will be added to keep the error root-variance at or above this threshold. Note that for measurement biases this value is always input and displayed as a one-way value. |

LongTerm.PNStep | Used in conjunction with "LongTerm.ErrorThreshold". When the long-term mean error root-variance falls below the threshold, process noise will be added to set the error root-variance to LongTerm.ErrorThreshold + LongTerm.PNStep. Note that for measurement biases this value is always input and displayed as a one-way value. |

ShortTerm.InitialEstimate | An initial estimate to the actual error in the "Constant". Nominally this will be 0. |

ShortTerm.Sigma | Root- variance of the short-term error where the variance is about the long term mean. |

ShortTerm.HalfLife | The "half life" of the short-term state error estimate. This controls how fast the state error estimate will decay towards the long term mean in the absence of measurements; the shorter the halflife the faster the decay. |

The following are VBScript examples of setting the stochastic model inputs for measurement biases and transponder biases.

''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Set Facility Range Bias to use GaussMarkov Model ''''''''''''''''''''''''''''''''''''''''''''''''''''' set measStats = facility.MeasurementStatistics set msIter = measStats.FindByName("Range") If msIter.IsSafeToDeReference() then set ms = msIter.Dereference() set model = ms.Type.BiasModel model.Type = "GaussMarkov" model.Constant.Set 20,"m" model.InitialEstimate.Set 0,"m" model.Sigma.Set 10,"m" model.HalfLife.Set 60,"min" end if ''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Set Facility Doppler Bias to use Vasicek Model ''''''''''''''''''''''''''''''''''''''''''''''''''''' set measStats = facility.MeasurementStatistics set msIter = measStats.FindByName("Doppler") If msIter.IsSafeToDeReference() then set ms = msIter.Dereference() set model = ms.Type.BiasModel model.Type = "Vasicek" model.LongTerm.Constant.Set 10,"cm/sec" model.LongTerm.Sigma.Set 4,"cm/sec" model.LongTerm.ErrorThreshold.Set 1.0e-6,"cm/sec" model.LongTerm.PNStep.Set 2.0e-6,"cm/sec" model.ShortTerm.InitialEstimate.Set 0,"cm/sec" model.ShortTerm.Sigma.Set 1,"cm/sec" model.ShortTerm.HalfLife.Set 5,"min" end if ''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Set Transponder Bias to use Random Walk Model ''''''''''''''''''''''''''''''''''''''''''''''''''''' transponder.BiasData.Type = "Time Units" set model = transponder.BiasModel model.Type = "RandomWalk" model.Constant.Set 1000,"nsec" model.InitialEstimate.Set 0,"nsec" model.InitialSigma.Set 1,"nsec" model.DiffusionCoefficient.Set 0.02,"nsec"

ODTK 6.5