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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| %%%%%%%%%%%%%%%%methhode de gradient%%%%%%%%%
close all;
clear all;
clc
%%%%identification%%%%
load com.mat
load sva.mat
u=coma;
e=seq;
B=[0 0.2 0.02];
A=[1 -0.8 -0.04];
C=[1 0.5];
d=0;som1=0;som2=0;xsi=[];
F=1000*eye(5)
teta=[0 0 0 0 0]';
d=0;m=0;retrec=[]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%saisie de y
for k=1:6
y(k)=0;
end
for k=6:100
y(k)=-A(2)*y(k-1)-A(3)*y(k-2)+B(2)*u(k-4)+B(3)*u(k-5)+e(k)+C(2)*e(k-1);
end
for k=101:200
y(k)=-A(2)*y(k-1)-A(3)*y(k-2)+B(2)*u(k-5)+B(3)*u(k-6)+e(k)+C(2)*e(k-1);
end
for k=201:300
y(k)=-A(2)*y(k-1)-A(3)*y(k-2)+B(2)*u(k-6)+B(3)*u(k-7)+e(k)+C(2)*e(k-1);
end
plot(y);hold on
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ret=0;
% ye(1)=0;
% ye(2)=0;
% ye(3)=0;
TET=[];
retent=[];
for k=1:5
ye(k)=0
end
for k=ret+3:300
phi=[-y(k-1) -y(k-2) u(k-1-ret) u(k-2-ret) e(k-1)]';
teta=teta+((F*phi)/(1+(phi'*F*phi)))*(y(k)-phi'*teta);
F=F-((F*phi*phi'*F)/(1+(phi'*F*phi)));
ye(k)=teta(1)*y(k-1)+teta(2)*y(k-2)+teta(3)*u(k-1-ret)+teta(4)*u(k-2-ret)+e(k)+teta(5)*e(k-1);
TET=[TET teta]
xsip=y(k)-ye(k);
xsi=[xsi xsip];
som1=som1+xsip*(ye(k)-ye(k-1));
som2=som2+(0.1+ye(k)-ye(k-1));
m=(1-0.5)/(som2*som2);
d=d-m*som1;
retrec=[retrec d];
ret=floor(d);
retent=[retent ret];
end
plot(ye,'-r')
retrec
figure(2)
plot(retrec);hold on ;
plot(retent) |
Partager