5. ProcessNoiseCovariance#

class ProcessNoiseCovariance(continuous_time_covariance: CovarianceMatrix, state_definition=None, sequence_definition=None)#

Bases: object

Handles the process noise covariance for orbit determination filters.

Responsible for converting State Noise Compensation (SNC) continuous-time process noise covariance into discrete-time covariance matrices, computing gamma matrices for the Square Root Information Filter (SRIF), and transforming process noise from the RTN frame to the position and velocity vectors frame.

Essential for spacecraft orbit determination, offering functionality to transform and discretize the continuous-time covariance matrix (power spectral density). It accounts for unmodeled spacecraft dynamics and is primarily used in sequential filters to address saturation issues.

Notes

The continuous-time covariance matrix, Q, is typically picked by analyzing the spacecraft’s unmodeled dynamics.

Assumes that the continuos-time process noise covariance is constant, though future versions could incorporate time-varying noise.

The RTN frame is commonly used in orbital mechanics to represent uncertainty associated with velocity-directional effects, such as atmospheric drag. For the filtering process, it must be transformed into the user-specified target frame as required.

References

Tapley, B. D., Schutz, B. E., & Born, G. H. (2004). Statistical orbit determination. Elsevier.

Methods

Q_from_RTN(Q)

Converts a process noise covariance matrix from the RTN (Radial, Transverse, Normal) frame to the inertial position-velocity state frame.

compute_discrete_time_covariances(...)

Computes discrete-time process noise covariances for sequential filters.

compute_gamma_matrices(measurement_times)

Computes gamma matrices and discrete-time process covariances for the Square Root Information Filter (SRIF).

Q_from_RTN(Q: ndarray) ndarray#

Converts a process noise covariance matrix from the RTN (Radial, Transverse, Normal) frame to the inertial position-velocity state frame.

This transformation ensures that process noise is represented in a frame compatible with state estimation algorithms.

Parameters:

Q (numpy.ndarray) – The continuous-time process noise covariance matrix in the RTN frame.

Returns:

transformed – The transformed process noise covariance matrix in the position-velocity frame.

Return type:

numpy.ndarray

compute_discrete_time_covariances(measurement_times: list) None#

Computes discrete-time process noise covariances for sequential filters.

Transforms the continuous-time process noise covariance into discrete-time, ensuring compatibility with measurement times and reference frames.

Parameters:

measurement_times (list) – List of time epochs at which the process noise is evaluated.

Return type:

None

compute_gamma_matrices(measurement_times: list) None#

Computes gamma matrices and discrete-time process covariances for the Square Root Information Filter (SRIF).

Calculates the gamma matrices, which map process noise to the state space, and determines the corresponding discrete-time process covariances required for SRIF.

Parameters:

measurement_times (list) – List of time epochs at which the gamma matrices are evaluated.

Return type:

None