Go to the documentation of this file.
41 #ifndef WHITE_NOISE_JERK_KALMAN_FILTER
42 #define WHITE_NOISE_JERK_KALMAN_FILTER
102 NL += std::string(
"X");
103 NL += std::string(
"V");
104 NL += std::string(
"A");
107 NL += std::string(
"J");
111 NL += std::string(
"S");
115 NL += std::string(
"C");
119 NL += std::string(
"P");
165 std::string(
"Must define apState and apNoise, and they ") +
166 std::string(
"must be of length Nstate = ") +
168 std::string(
" before calling initializeFilter"));
174 for (
int i = 0; i <
Nstate; i++)
181 LOG(
INFO) <<
"#K[MTS]U N time X V A "
182 <<
"sigX sigV sigA data SOLresid (M)PFresid";
197 LOG(
INFO) <<
"Filter is singular in defineT";
222 for (
int i = 0; i <
Nstate; i++)
225 for (
int j = i + 1; j <
Nstate; j++)
228 elem *= -DT / double(j + 1);
249 LOG(
INFO) <<
"Filter is singular in defineM";
285 std::ostringstream oss;
289 LOG(
ERROR) <<
"Kalman stage not defined in output().";
292 LOG(
DEBUG) <<
"Enter KalmanFilter::output(" << N <<
")";
390 oss << std::fixed << N <<
" " << std::setprecision(3) <<
time;
394 oss <<
" " << std::fixed << std::setprecision(
prec)
398 oss << std::scientific << std::setprecision(
prec);
400 oss <<
" " << std::setw(
width)
406 oss << std::scientific << std::setprecision(
prec) <<
" "
414 oss << std::scientific << std::setprecision(
prec) <<
" "
428 #endif // WHITE_NOISE_JERK_KALMAN_FILTER
gnsstk::Matrix< double > Rw
SRIF matrix used internally.
BaseClass & ident(RefMatrixBase< T, BaseClass > &m)
gnsstk::Vector< double > PFResid
post-fit residuals - valid after MU
std::vector< double > * ptrs
gnsstk::Vector< double > State
filter state
std::string asString(IonexStoreStrategy e)
Convert a IonexStoreStrategy to a whitespace-free string name.
gnsstk::Matrix< double > Partials
matrix defined by defineM() and used in MU
std::vector< double > msig
gnsstk::Matrix< double > G
SRIF matrix used internally - noise.
double time
seconds since start
std::vector< double > * ptra
double nominalDT
change in time for one TU seconds
std::vector< double > psig
FilterStage stage
current stage of the filter - see enum
std::vector< double > * ptrx
gnsstk::Vector< double > Data
vector defined by defineM() and used in MU
void defineTimestep(double T, double DT, const gnsstk::Vector< double > &State, const gnsstk::Matrix< double > &Cov, bool useFlag)
enum gnsstk::KalmanFilter::KalmanMUReturnValuesEnum KalmanReturn
gnsstk::Matrix< double > MCov
measurement covariance (defineM() for MU)
std::vector< double > ttag
int defineInitial(double &T0, gnsstk::Vector< double > &State, gnsstk::Matrix< double > &Cov)
std::vector< double > * ptrv
gnsstk::Matrix< double > Cov
filter covariance
gnsstk::Matrix< double > PhiInv
SRIF matrix used internally - inv state trans.
#define LOG(level)
define the macro that is used to write to the log stream
std::string KFtag
optional tag to put in output (2nd field)
size_t size() const
STL size.
gnsstk::Vector< double > apState
void Reset(const gnsstk::Namelist &NL)
virtual void output(int N)
#define GNSSTK_THROW(exc)
int Nstate
number of state elements
KalmanReturn defineMeasurements(double &T, const gnsstk::Vector< double > &X, const gnsstk::Matrix< double > &Cov, bool useFlag)
gnsstk::Vector< double > apNoise
int Nnoise
Nnoise is there only for the user.
std::vector< double > data
gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:42