%clear all;
echo off;
global k1; k1=4;
global k2; k2=4; %l2=e-5 converge
global kp;kp=0.1;
global kd;kd=0;
global C;C=0.001;
global R;R=20;
global L;L=0.01;
global Vin;Vin=24;
global Vr;Vr=6;
global m;m=100;
global K;K=1;
%pause %press to start
tt=0.5;
tspan=(0:0.1:tt);
y0=[0.2;0.3];
%options = odeset('RelTol',1e-6,'AbsTol',[1e-9 1e-9]);
%[t1,y1] = ode45('finite_2a',tspan,y0,options);
[t1,y1] = ode45('mscpida',tspan,y0);
figure(1);
plot(t1,y1(:,1),'k',t1,y1(:,2),'k');
%xlabel('secs');ylabel('tracking errors');
aa1=length(y1)-1;
%aa=[y1(1:aa1/tt:aa1,1) y1(1:aa1/tt:aa1,2)]
figure(2);hold off;
%u=-y1(:,1)*k1-y1(:,2)*k2;
%u=kp*(Vr-y1(:,1))+kd*((1/C)*y1(:,2)-1/(C*R)*y1(:,1));
u=(L/(C*R*Vin)-L/(m*Vin))*y1(:,2)+(L/(m*R*Vin)+1/Vin-L/(R*R*C*Vin))*y1(:,1)-K*sign(y(:,1)-Vr+m*((1/C)*y1(:,2)-1/(C*R)*y1(:,1)));
plot(t1,u);
%plot(t1,u,'k');
%xlabel('secs');ylabel('u');
echo off
- 1
- 2
前往页