% kf % Sistema % x = F_x*x + F_u*u + v % y = H*x + w % inicio das variáveis X = 5; x = 0; u = 1; F_x = 1; F_u = 1; H = 1; P = 0; V = 50; W = 1; v1 = sqrt(V); w1 = sqrt(W); % Laço tempo = 0 : 1 : 100; E_Real = zeros(1,size(tempo,2)); E_Corrigido = zeros(1,size(tempo,2)); M_Real = zeros(1,size(tempo,2)); Cov = zeros(1,size(tempo,2)); i = 1; for t = tempo % Simulação v = v1 * randn; X = F_x*X + F_u*u + v; w = w1 * randn; y = H*X + w; % Predição x = F_x*x + F_u*u; P = F_x*P*F_x' + V; %Ganho de Kalman e = H*x; z = y - e; E = H*P*H'; Z = W + E; K = P*H'*Z^-1; % Atualização x = x + K*z; P = P - K*H * H*P; % Informação E_Real(:,i) = X; E_Corrigido(:,i) = x; M_Real(:,i) = y; Cov(:,i) = diag(P); i = i + 1; end plot(tempo,E_Real,tempo,E_Corrigido,tempo,M_Real); grid on; title('WALL-E'); xlabel('TEMPO'); ylabel('POSIÇÃO'); legend('E\_Real','E\_Corrigido','M\_Real'); print t800.png;