kalman

Kalman filter or estimator.

Syntax

[kest, L, P, M, Z] = kalman(SYS, QN, RN, NN)

[KEST, L, P, M, Z] = kalman(SYS, QN, RN, NN, SENSORS, KNOWN)

Inputs

SYS
Nominal plant space-state model.
QN
Covariance of white process noise.
RN
Covariance of white measurement noise.
NN
Cross-covariance matrix between the process noise and the measurement noise.
SENSORS
Indices of measured output signals.
KNOWN
Indices of known input signals.

Outputs

KEST
A state-space LTI form. Returns the definition of the Kalman filter with the gain matrix L applied.
L
A real matrix. Returns the gain matrix that minimizes the covariance of the state estimation error.
P
A real matrix. Returns the steady-state covariance of the estimation error.
M
A real matrix. Returns the steady-state innovation gain matrix. This gain matrix weights the difference between the observed and estimated outputs in the updated state estimates for discrete estimators.
Z
A real matrix. Returns the steady-state error covariance of the error between the actual states and the updated state estimates in the discrete estimation process.

Examples

Kalamn filter design:
A = [-1 0.1; 0 -2];
B = [0; 1];
G = [1 0; 0 1];
C = [1 0];
D = [0];
H = [0 0];
Q = [0.1 0; 0 0.1];
R = [1];
N = [0; 0];
sys1 = ss(A, [B G], C, [D H]);
[kest1, l1, p1, m1, z1] = kalman(sys1, Q, R, N)
kest1 = object [
Scaled: 0
TimeUnit: seconds
ts: 0
a: [Matrix] 2 x 2
-1.04889   0.10000
-0.00082  -2.00000
b: [Matrix] 2 x 2
0.00000  0.04889
1.00000  0.00082
c: [Matrix] 3 x 2
1  0
1  0
0  1
d: [Matrix] 3 x 2
0  0
0  0
0  0
e: [Matrix] 2 x 2
1  0
0  1
type: StateSpaceModel
]
l1 = [Matrix] 2 x 1
0.04889
0.00082
p1 = [Matrix] 2 x 2
0.04889  0.00082
0.00082  0.02500
m1 = [Matrix] 0 x 0
z1 = [Matrix] 0 x 0
Kalamn filter design from state-space matrices:
sys2 = ss (-2, 1, 1, 3);
[kest2, l2, p2, m2, z2] = kalman (sys2, 1, 1, 1)
kest2 = object [
Scaled: 0
TimeUnit: seconds
ts: 0
a: -2.25
b: 0.25
c: [Matrix] 2 x 1
1
1
d: [Matrix] 2 x 1
0
0
e: 1
type: StateSpaceModel
]
l2 = 0.25
p2 = 0
m2 = [Matrix] 0 x 0
z2 = [Matrix] 0 x 0