Bonjour,
J'ai réaliser un filtre de kalman afin d'estimer les paramètres de mon modèles
X=[a2 b0 b1 b2] : les paramètres à estimer
Mon problème est que je ne sais pas comment initialiser X ainsi que les matrice d'erreur et quand j'éxecute mon exemple ci dessous chaque fois j'ai des valeurs extrêmement différentes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 function X = KF(F,Ym) persistent A Q R w Y persistent x P v persistent firstRun if isempty(firstRun) A = eye(4,4); Q = [0.1 0 0 0; 0 10^(-7) 0 0 ; 0 0 10^(-7) 0 ; 0 0 0 10^(-13)]; R = 0.01; x = [0 0 -0.015 0.0003]'; P = [100000 0 0 0; 0 100000 0 0; 0 0 100000 0 ; 0 0 0 100000]; w = [0 0 0 0]'* 0.0001; v = 0.0001; firstRun = 1; end xp = A*x + w; Y = F*x+v; Pp = A*P*A' + Q; K = Pp*F'*inv(F*Pp*F' + R); x = xp + K*(Ym - Y); P = Pp - K*F*Pp; X = x;
Partager