Филтър на Калман
Блокова диаграма за филтъра на Калман:
https://i.sstatic.net/BIitP.png
Факти за филтъра на Калман:
• It can come as a surprise to realise that, indeed, the state error covariance matrix (P) in a linear kalman filter does not depend on the the data (z). One way to lessen the surprise is to note what the covariance is saying: it is how uncertain you should be in the estimated state, given that the models you are using (effectively A,Q and H,R) are accurate. It is not saying: this is the uncertainty. By judicious tweaking of Q and R you could change P arbitrarily. In particular you should not interpret P as a 'quality' figure, but rather look at the observation residuals. You could, for example, make P smaller by reducing R. However then the residuals would be larger compared with their computed sds.
When the observations come in at a constant rate, and always the same set of observations, P will tend to a steady state that could, in principal, be computed ahead of time.
However there is no difficulty in applying the kalman filter when you have varying times between observations and varying sets of observations at each time, for example if you have various sensor systems with different sampling periods. In this case you will see more variation in P, though again in principal this could be computed ahead of time.
Further the kalman filter can be extended (in various ways, eg the extended kalman filter and the unscented kalman filter) to handle non linear dynamics and non linear observations. In this case because the transition matrix (A) and the observation model matrix (H) have a state dependency, so too will P.
Източник: [1]
• The Kalman filter (KF) is an estimation algorithm that is linear; if the system is not, it must be linearized. A KF works in state space, that is, each quantity estimated is a state. For example, three states are needed for each of position, velocity, and attitude (for 3D navigation). When measurements are added to the filter, these measurements are compared with the measurements predicted by the current state estimates, projected to the current epoch, and used to correct the state estimates weighted according to the relative uncertainty of the measurements and the predicted state estimates. The filter is recursive, and in that, it does not store the old measurements; rather the state estimates aggregate this information in combination with the state error covariance matrix (the ‘P’-matrix), which represents the estimation accuracy of the filter’s state estimates.
• In order for the filter to behave correctly, the best possible initial estimates of the states should be used, and the state error covariance matrix should be correctly initialized with the ‘initial uncertainty’ of each state. The filter also needs to know how much the states are expected to change through time, and how accurate the measurements are. Choosing the correct level for all these settings is known as tuning, and often requires an element of trial-and-error.
• The Kalman filter is based on the following assumptions [19]:
(1) the state estimation errors have a Gaussian (normal) distribution;
(2) the noise terms are ‘white’-noise (not correlated with time); and,
(3) most importantly, the system propagation and measurements are linear combinations of states.
However, real systems, such as INS and GNSS, do not obey these rules. Linearizing approximations typically may include the ‘small angle approximation’ and the assumption that the products of state estimate errors are negligible. The white noise assumption inherent in Kalman filtering can be partially circumvented by telling the filter that the noise variance is greater than it really is (overbounding) in order to model noise that is time correlated over a few successive epochs [1]. If these assumptions are not met or circumvented and/or the tuning is wrong, the Kalman filter will not behave as expected, e.g., estimates will not converge; there may even be numerical failure. In short, the Kalman filter will ‘break’ if the errors are ‘too large.’
Източник: [2]