clc;
clear all;
close all;
% declaration des donnees
a=0.78;b=0.44;N=300;Umes(1)=0;
P=10^6*eye(2);theta_e=[0;0];Umes_e(1)=Umes(1);
% generation du signal d'excitation
Uc=idinput(N,'prbs',[0 0.1],[-1 1]);
figure(1);
plot(Uc);
grid;
xlabel('etiration');
% generation du signal de sortie
for k = 2:length(Uc)
Umes(k)=a*Umes(k-1)+b*Uc(k-1);
end
hold on
plot(Umes);
title('trajectoires E/S');
%Estimation avec les moindres carrées récursifs
[theta_e,theta_ef,e,trP,Umes_e]=mcr(Uc,Umes,theta_e,P,Umes_e);
%Visualisation
ar=a*ones(1,length(Uc));br=b*ones(1,length(Uc));
theta_ef(:,1)=theta_e;trP(1)=trace(P);
figure(2);plot(theta_ef(1,:),'b');
hold on
plot(ar,'b');
hold on
plot(theta_ef(2,:),'r');
hold on
plot(br,'r');grid; xlabel('Itérations'); legend('a_e','b_e');
title('Evolution des parametres estimés');
figure(3); plot(e); grid; xlabel('Itérations'); title('Erreur de préduction');
figure(4); plot(trP); grid; xlabel('Itérations'); title ('Trace de la matrice
du gain de correction')
figure(5); plot(Umes,'b');
hold on
plot(Umes_e,'r'); grid; xlabel('Itérations'); legend('Umes','Umes estimé');
title ('Comparaison sortie reelle et son estimée');