u_1=u; y_2=y_1; y_1=y(k); x(1)=e;
x(2)=(e-e_1)/ts; x(3)=x(3)+e*ts;
%*******************************óí?????? kp=0.42;Ti=30;Td=0.0018;%*** vd(k)=1
% kp=0.42;Ti=30;Td=0.0018;%*** vd(k)=1
% kp=0.0015;Ti=0.01;Td=0.002;%***vd(k)=1*time(k)+10 % kp=0.0015;Ti=0.001;Td=0.002;%*** vd(k)=1*time(k)^2+time(k)+2; ki=kp*ts/Ti; kd=kp*Td/ts;
dthrottle=kp*x(1)+kd*x(2)+ki*x(3); throttle=u_1+dthrottle; if(throttle>2000) throttle=2000; end
if(throttle<-2000) throttle=-2000; end
%****************************é23μ???? %/*********?1??ê?è?±?á?*****% E=lisan(-50,50,3,e); EC=lisan(-20,20,3,ec);
%/*********????êμ?ê?ó2??¢?ó2?±??ˉ?êμ?á¥ê??è?òá?*****% E_R(1)=lbell(E,1,4,-3); E_R(2)=trig(E,-3,-2,0); E_R(3)=trig(E,-3,-1,1); E_R(4)=trig(E,-2,0,2); E_R(5)=trig(E,-1,1,3); E_R(6)=trig(E,0,2,3); E_R(7)=rbell(E,1,4,3); EC_R(1)=lbell(EC,1,4,-3); EC_R(2)=trig(EC,-3,-2,0); EC_R(3)=trig(EC,-3,-1,1); EC_R(4)=trig(EC,-2,0,2); EC_R(5)=trig(EC,-1,1,3); EC_R(6)=trig(EC,0,2,3); EC_R(7)=rbell(EC,1,4,3);
%/*********?????£oyá?ê?3?*****% U_R1=dikaer(E_R,7,EC_R,7);
U_R1=reshape(U_R1,1,49); U_R2=jdikaer(U_R1,49,R,7); U_R=max(U_R2);
u_L=mean(U_R);%Dèòa????
%/*********??????è·á?ê?3?*****% brake=-flisan(-2000,2000,3,u_L); e_2=e_1; e_1=e;
%/************************????1??ò if (e<0)
if ((e>-Eswith)||(throttle_1~=0)) if(throttle<=throttle_1) throttle_1=throttle;
% throttle_1=throttle_1-throttle; u=throttle; Q(k)=u; W(k)=0; else
throttle=0;
throttle_1=throttle; u=throttle; Q(k)=u; W(k)=0; end else
if(throttle_1==0) brake_1=brake; u=brake; W(k)=u; Q(k)=0; else
throttle=0;
throttle_1=throttle; u=throttle; Q(k)=u; W(k)=0; end end else
if(e~=0)
if(brake_1==0)
throttle_1=throttle; u=throttle; Q(k)=u;
W(k)=0; else
brake=0;
brake_1=brake; u=brake; end else
u=0; W(k)=0; Q(k)=0; end end
%********************?-í?ê?3?á??¨ò? M(k)=u; N(k)=e;
%******************************3ù?í?·?ú if (time(k)<=0.5) u=0; else
u=M(k-0.5/ts); end end % ?-í?
figure(1);
plot(time,vd,'r',time,y,'k','linewidth',2); xlabel('time(s)'); ylabel('vd,y');
legend('?úí?','êμ?ê');
figure(2);
plot(time,Q,'r',time,W,'k','linewidth',2); xlabel('time(s)'); ylabel('u');
figure(2);
plot(time,Q,'r','linewidth',2); xlabel('time(s)'); ylabel('u'); figure(3);
plot(time,W,'r','linewidth',2); xlabel('time(s)'); ylabel('u');
figure(4);
plot(time,N,'b'); xlabel('time£¨s£?'); ylabel('e');