Device for computing a bound B up to a given confidence level 1−α, of the error in an estimation vector KSV of a state vector of a physical system as provided by a Kalman filter, the Kalman filter receiving from the physical system multiple raw measurements RMm of different types, m denoting each measurement type, the Kalman filter also providing:
- the number nOBS,m of raw measurements of type m;
- a design matrix Hm for measurements of type m;
- a weight matrix Wm used for measurements of type m;
- the vector of residuals ym of the measurements of type m, computed after the Kalman measurements update;
- a covariance matrix P of the error made in the estimation KSV of the state vector;
- a transition matrix F defining the evolution of the state vector;
- and
- wherein the device further comprises:
- an OBS_QUALITY module, receiving measurements indicators from the physical system and the outputs from the Kalman filter, and delivering a quality indicator for each measurement type m, the quality indicator being defined by a scalar nm and a scalar rm that represent a t-distribution modelling a measurement error size, and a scalar ρm that measures the temporal correlations;
- a LOCAL module, receiving the parameters nm and rm delivered by the OBS_QUALITY module and the outputs from the Kalman filter, and delivering a set of error parameters TL,m for each measurement type m comprising a scalar NL,m and a symmetric matrix RL,m of same size as the vector KSV, which parameters represent a t-distribution associated to the projection into the state vector estimate KSV of the errors of the measurements of type m in the current epoch, the said module using the relations NL,m=nm and RL,m=(rm2KmWm−1KmT), where Km=PHmTWm,
- a MERGE module, receiving two sets of error parameters T1, T2 and a cross-correlation matrix D of same size as the vector KSV, and delivering a merged set of error parameters T which represents the error distribution of the sum of the variables modelled by T1 and T2 assuming a cross-correlation given by D;
- an UPDATE module, receiving the correlation parameter ρm, the set of error parameters TL,m computed by the LOCAL module and the outputs from the Kalman filter, and updating the value of an internal state by defining:
- a set of error parameters TG,m for each measurement type m, comprising a scalar NG,m and a symmetric matrix RG,m of same size as the vector KSV, which parameters represent a t-distribution associated to the errors in the state vector estimate KSV due to errors in the measurements of type m;
- a correlation state Am for each measurement type m given by a matrix containing a row for each measurement and a column for each parameter of the state vector estimation KSV, which matrix represents the expected degree of correlation between measurements and estimated parameters;
- this UPDATE module being configured for:
- propagating the value of TG,m by keeping NG,m unchanged and replacing the matrix RG,m by (URG,mUT), where U=(1−ΣmKmHm)·F;
- producing a cross-correlation matrix Dm from the correlation state Am as Dm=rmKmWm−1/2AmUT;
- producing a new value of TG,m by using the MERGE module to merge TL,m and the current value of TG,m with cross-correlation parameters Dm;
- producing a new value of Am as the sum of rmρmWm−1/2KmT and ρmAmUT;
- a SINGLE_BOUND module, receiving a set of error parameters T and a confidence level 1−α, and delivering an error bound B for a fixed subset of parameters of KSV, which error bound is determined in that the probability of the norm of the error of the selected subset of parameters being below B is at least a when computed with the t-distribution associated to the parameters T;
- and,
- a TOTAL BOUND module, receiving the set of error parameters TG,m and a confidence level 1−α, configured for computing the error bound B for a fixed subset of parameters of KSV by:
- i) computing an error bound Bm for each measurement type m by applying the SINGLE_BOUND module on TG,m and adding all the error bounds Bm;
- or,
- ii) merging the different TG,m into a single set of parameters T by using the MERGE module and computing a bound B by applying SINGLE_BOUND on T.