Stochastic Models
Choices for the stochastic model include:
- GaussMarkov: The state will be modeled as a scalar exponential Gauss Markov sequence.
- RandomWalk: The state will be modeled using a Wiener (Brownian motion) sequence.
- Vasicek: The state will be modeled using a Vasicek stochastic sequence. This is a two-parameter model that solves for both a short-term and a long-term bias.
ODTK processing computes the stochastic modeling based on algorithms given in the ODTK Orbit Determination: Theorems & Equations document.
GaussMarkov
The state estimated is an error to an input nominal (constant) value. The ODTK software will model the state using a scalar exponential process. In the absence of measurements, the state estimate will decay toward 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 zero (0) |
| Sigma | Root variance of the initial error in the Constant; 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; controls how fast the state error estimate will decay in the absence of measurements; the shorter the half-life, the faster the decay |
RandomWalk
The state estimated is an error to an input nominal (constant) value. ODTK software will model the state 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 zero (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 t1 to t2. The amount of process noise added will be a2Δt, where a = the diffusion coefficient and Δt = |t2 - t1|. Properly, the units on a are (bias units/time1/2). For example, for a range bias, the units might be meters/sec1/2. In the ODTK software 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 meters will result in a process noise addition of 36 meter2 across one hour (3600 sec). |
Vasicek
ODTK software will model the state 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 | This is the constant (or long-term mean) value associated with the state parameter. |
| LongTerm.InitialEstimate | This is an initial estimate to the error in the long term value. Nominally this will be 0. |
| LongTerm.Sigma | This is the 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, use this input property to prevent the long-term mean error root variance from going below some threshold. ODTK software will add process noise to keep the error root variance at or above this threshold. For measurement biases, this value is always input and displayed as a one-way value. |
| LongTerm.PNStep | Use this in conjunction with LongTerm.ErrorThreshold. When the long-term mean error root variance falls below the threshold, ODTK software adds process noise to set the error root variance to LongTerm.ErrorThreshold + LongTerm.PNStep. For measurement biases, this value is always entered and displayed as a one-way value. |
| ShortTerm.InitialEstimate | This is an initial estimate to the actual error in the Constant. Nominally this will be 0. |
| ShortTerm.Sigma | This is the root variance of the short-term error, where the variance is about the long-term mean. |
| ShortTerm.HalfLife | This is the half-life of the short-term state error estimate. It controls how fast the state error estimate will decay toward the long-term mean in the absence of measurements; the shorter the half-life, the faster the decay. |
N-Plate Stochastic parameters
The following table describes the parameters applied to each plate group for N-Plate stochastic modeling:
| Parameter | Description |
|---|---|
| Name | Enter the name assigned to the plate group you want to specify. |
| Nominal Value | Enter the value of the nominal scale factor correction for the plate group. |
| EstimateParameter | Select the check box if you want the software to include this plate group in processing. |
| HalfLife | Specify the half-life of the stochastic modeling for this plate group. |
| Sigma | Enter the short-term uncertainty in the estimated scale factor correction. |
| LongTermSigma | Enter the long-term uncertainty in the estimated scale factor correction. |
Scripting examples
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"