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
| clear all % just a clear start
p1=10;
p2=28;
p3=8/3;
Tf=10;
Ts=1;
smplTime=0:Ts:Tf;
J=Tf/Ts;
input=zeros(1,J);
output=zeros(3,J);
xinit=[10;10;10];
z=zeros(3,J);
gamma=1;
c0=-0.1;
c3=50;
output(:,1)=xinit;
global U;
u=0;
U=u;
for k=1:J
z(:,k)=output(:,k);
input(1,k)=u;
x=Lorenz_function(xinit,input(1,k),smplTime(k),Ts);
output(:,k)=x;
xprime=x;
alpha1=-c0*z(1,k);
z(2,k)=output(2,k)-alpha1;
p1dachprim=-gamma*(c0*output(1,k)-c0*alpha1-z(1,k))*z(2,k);
p2dachprim=gamma*output(1,k)*z(2,k);
p3dachprim=-gamma*output(3,k)*z(3,k);
p1dach=-gamma*(c0*output(1,k)-c0*alpha1-z(1,k))*z(2,k)+p1;
p2dach=gamma*output(1,k)*z(2,k)+p2;
p3dach=-gamma*output(3,k)*z(3,k)+p3;
alpha2=p1dach+p2dach-c0*p1dach+(1-c0*p1dach)*c0;
z(3,k)=output(3,k)-alpha2;
u =-c3*z(3,k)+output(1,k)*z(2,k)-output(1,k)*output(2,k)+p3dach*output(3,k)+(1-c0-c0^2)*p1dachprim+p2dachprim;
end
% subplot(3,1,1);
plot(smplTime,output(1,:))
% subplot(3,1,2);
% plot(smplTime,output(2,:))
% subplot(3,1,3);
% plot(smplTime,output(3,:)) |
Partager