⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chap8_3.m

📁 先进PID控制及其MATLAB仿真 一书源程序 北京航空航天大学 刘金琨
💻 M
字号:
%Grey model PID Control
clear all;close all;
global kp kd a b A B F AA

F=1.0;
para=[];
AA=0.50;

%Disturbance Prediction
BB=zeros(1,3);
ts=0.001;
N=4;
ab=abs(det(BB'*BB));
   TimeSet=[0:ts:ts*N];
   V=zeros(1,3);
	[t,y]=ode45('chap8_3f',TimeSet,[0 0],[],para,V);  %Grey Prediction
   
   w=2*pi*F;
   r=AA*(sin(w*t));
   dr=AA*w*cos(w*t);
   
   y0=y;
   y1=y0(2,:);
   BB=[y1(1,:),1];
   
	for k=2:1:N
      y1=[y1;y1(k-1,:)+y0(k+1,:)];
      BB=[BB;[y1(k,:) k]];
   end

y11=y(:,1);
y22=y(:,2);

   D=zeros(N+1,1);
   for k=2:1:N+1
      D(k)=1/b*((y22(k)-y22(k-1))/ts-a*y22(k)-b*kp*(r(k)-y11(k))-b*kd*(dr(k)-y22(k)));
	end
   
   D1=zeros(N,1);
   D1(1)=D(2);
     
   for k=2:1:N
      D1(k)=D1(k-1)+D(k+1);
   end
   ab=abs(det(BB'*BB))
     
V1=inv(BB'*BB)*BB'*D1;
V=V1'

%PID Control
N1=2000;
TimeSet1=[0:ts:ts*N1];
[t,y]=ode45('chap8_3f',TimeSet1,[0 0],[],para,V);

y1=y(:,1);
y2=y(:,2);
r=AA*(sin(w*t));
dr=AA*w*cos(w*t);
ddr=-AA*w^2*sin(w*t);

e=r-y1;
de=dr-y2;
for k=1:1:N1+1
	up(k)=kp*e(k)+kd*de(k);
	uc(k)=-V*[y1(k);y2(k);1];   %Grey Compensation
	u(k)=up(k)+uc(k);
end
figure(1);grid on;
plot(t,r,'r',t,y(:,1),'b');
xlabel('time(s)');ylabel('r,y');

figure(2);grid on;
plot(t,r-y(:,1));
xlabel('time(s)');ylabel('error');

figure(3);grid on;
plot(t,u);
xlabel('time(s)');ylabel('u');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -