Revision 1351, 0.5 kB
(checked in by zimamiro, 13 years ago)
|
|
Line | |
---|
1 | function H=kalman_filter(H0,system) |
---|
2 | H=zeros(size(H0)); |
---|
3 | A=[system.a 0 system.b*sin(H(1,4)) system.b*H(1,3)*cos(H(1,4)) |
---|
4 | 0 system.a -system.b*cos(H(1,4)) system.b*H(1,3)*sin(H(1,4)) |
---|
5 | -system.e*sin(H(1,4)) system.e*cos(H(1,4)) system.d -system.e*(H(1,2)*sin(H(1,4)) +H(1,1)*cos(H(1,4))) |
---|
6 | 0 0 system.deltat 1]; |
---|
7 | |
---|
8 | P=A*H(2:5,:)*A'+system.Q; |
---|
9 | R=system.C*P*system.C'+system.R; |
---|
10 | K=P*system.C'*inv(R); |
---|
11 | H(1,:)=(H0(1,:)'-K*(system.x1([1 2])-get_next(system,H0(1,:)',u)))'; |
---|
12 | H(2:5,:)=P-P*system.C'*inv(R)*system.C*P; |
---|
13 | end |
---|