1、NS,-3,-1,1);Z,-2,0,2);PS,-1,1,3);PM,0,2,3);PBsmf,1,3);ec %Parameter ec,2,outputkp,-0.3,0.3); %Parameter kp,-0.3,-0.1);,-0.3,-0.2,0);,-0.3,-0.1,0.1);,-0.2,0,0.2);,-0.1,0.1,0.3);,0,0.2,0.3);,0.1,0.3);ki,-0.06,0.06); %Parameter ki,-0.06,-0.02);,-0.06,-0.04,0);,-0.06,-0.02,0.02);,-0.04,0,0.04);,-0.02,0.
2、02,0.06);,0,0.04,0.06);,0.02,0.06);kd %Parameter kp,3,rulelist=1 1 7 1 5 1 1; 1 2 7 1 3 1 1; 1 3 6 2 1 1 1; 1 4 6 2 1 1 1; 1 5 5 3 1 1 1; 1 6 4 4 2 1 1; 1 7 4 4 5 1 1; 2 1 7 1 5 1 1; 2 2 7 1 3 1 1; 2 3 6 2 1 1 1; 2 4 5 3 2 1 1; 2 5 5 3 2 1 1; 2 6 4 4 3 1 1; 2 7 3 4 4 1 1; 3 1 6 1 4 1 1; 3 2 6 2 3 1
3、1; 3 3 6 3 2 1 1; 3 4 5 3 2 1 1; 3 5 4 4 3 1 1; 3 6 3 5 3 1 1; 3 7 3 5 4 1 1; 4 1 6 2 4 1 1; 4 2 6 2 3 1 1; 4 3 5 3 3 1 1; 4 4 4 4 3 1 1; 4 5 3 5 3 1 1; 4 6 2 6 3 1 1; 4 7 2 6 4 1 1; 5 1 5 2 4 1 1; 5 2 5 3 4 1 1; 5 3 4 4 4 1 1; 5 4 3 5 4 1 1; 5 5 3 5 4 1 1; 5 6 2 6 4 1 1; 5 7 2 7 4 1 1; 6 1 5 4 7 1
4、1; 6 2 4 4 5 1 1; 6 3 3 5 5 1 1; 6 4 2 5 5 1 1; 6 5 2 6 5 1 1; 6 6 2 7 5 1 1; 6 7 1 7 7 1 1; 7 1 4 4 7 1 1; 7 2 4 4 6 1 1; 7 3 2 5 6 1 1; 7 4 2 6 6 1 1; 7 5 2 6 5 1 1; 7 6 1 7 5 1 1; 7 7 1 7 7 1 1; a=addrule(a,rulelist);a=setfis(a,DefuzzMethodmomwritefis(a,a=readfis(%PID Controllerts=0.001;sys=tf(5.
5、235e005,1,87.35,1.047e004,0);dsys=c2d(sys,ts,tustinnum,den=tfdata(dsys,vu_1=0.0;u_2=0.0;u_3=0.0;y_1=0;y_2=0;y_3=0;x=0,0,0;error_1=0;e_1=0.0;ec_1=0.0;kp0=0.40;kd0=1.0;ki0=0.0;for k=1:1:500time(k)=k*ts;rin(k)=1;%Using fuzzy inference to tunning PIDk_pid=evalfis(e_1,ec_1,a);kp(k)=kp0+k_pid(1);ki(k)=ki0
6、+k_pid(2);kd(k)=kd0+k_pid(3);u(k)=kp(k)*x(1)+kd(k)*x(2)+ki(k)*x(3);if k=300 % Adding disturbance(1.0v at time 0.3s) u(k)=u(k)+1.0;endif u(k)=10 u(k)=10;if u(k)=-10 u(k)=-10;yout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(1)*u(k)+num(2)*u_1+num(3)*u_2+num(4)*u_3;error(k)=rin(k)-yout(k);%Return of PID p
7、arameters% u_3=u_2; u_2=u_1; u_1=u(k); y_3=y_2; y_2=y_1; y_1=yout(k); x(1)=error(k); % Calculating P x(2)=error(k)-error_1; % Calculating D x(3)=x(3)+error(k); % Calculating I e_1=x(1); ec_1=x(2); error_2=error_1; error_1=error(k);showrule(a)figure(1);plot(time,rin,b,time,yout,rxlabel(time(s)ylabel(rin,youtfigure(2);plot(time,error,errorfigure(3);plot(time,u,ufigure(4);plot(time,kp,figure(5);plot(time,ki,figure(6);plot(time,kd,figure(7);plotmf(a,1);figure(8);,2);figure(9);figure(10);figure(11);,3);plotfis(a);fuzzy fuzzpid.fis
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1