1、 模糊控制算法 PID 算法比较分析电气学院 控制理论与控制工程专业 孔万增 学号:10310073一:题目对于已知系统的传递函数为: ,假设系统给定为阶跃值eSSG5.01)(R=10,系统的初始值 R(0)=0,试分析设计1常规的 PID 控制器2常规的模糊控制器3比较两种控制器的控制效果4当通过改变模糊控制器的比例因子时,分析系统响应有什么变化?二:模糊控制器设计控制器采用二维的模糊控制器,其输入信号偏差为 e 和偏差的变化为的 de,在这个例子中我采用的是增量控制方法,所以模糊控制器的其输出量为U。后面经过一个积分环节,就得到了一个控制信号 U。E、dE、U 的模糊论域划分为 13 个
2、档次,论域取为-10,10之间。各个论域 E, EC 和U 的语言变量为NB, NS,0,PS,PB。一:模糊控制器设计以及结果%clear;y=0; %程序变量的初始化h=0.1;r=10;sum=0;x1_0=0; a=ones(1,2);b=ones(1,3000);c=ones(1,3000);m=newfis(FuzzyPid); %设计模糊控制器m=addvar(m,input,error,-100,100);m=addmf(m,input,1,error0,gaussmf,21.24 50);m=addmf(m,input,1,error0,gaussmf,21.2 99.5);
3、m=addvar(m,input,de,-100,100);m=addmf(m,input,2,de0,gaussmf,42.47 100);m=addmf(m,input,2,de=0,gaussmf,42.47 0);m=addmf(m,input,2,de0,gaussmf,2.124 5);m=addmf(m,output,1,du0,gaussmf,2.124 10);rulelist= %产生模糊控制规则1 0 5 1 13 0 3 1 15 0 1 1 12 3 5 1 14 1 1 1 1;m=addrule(m,rulelist);homework=m; for i=1:1:
4、3000, x1=y-r;if x110, % 对误差信号进行限幅处理,必须做,模糊控制器的输入有论域x2=10;elseif x110,% 对误差信号进行限幅处理,在 pid 中也可以不限副处理x2=10; elseif x1-10,x2=-10;else x2=x1;endx2_de=(x1-x1_0)/h;%求出误差变化率 err=x2;int_err=int_err+err;de=x2_de;x3=-(kp*err+ki*int_err+kd*de); %求出控制信号,前面加负是因为误差是 y-r 而不是 r-yb(i)=x3;%把每次的控制信号放入一个数组中,以便延时处理x4=y;i
5、f (i-0.5/h)=0,%对时间零以前置零处理c(i)=0;elsec(i)=b(i-0.5/h);end f1= (c(i)-x4)/10;%用龙格库塔法求解对象微分方程f2=(c(i)+h/2)-(x4+h*f1/2)/10;f3=(c(i)+h/2)-(x4+h*f2/2)/10;f4=(c(i)+h)-(x4+h*f3)/10;x4_dot=x4+h*(f1+2*f2+2*f3+f4)/6;y=x4_dot;x(i)=x4;x1_0=x1;endplot(x,r) %画出响应曲线对照以上两幅图,在此例中,模糊控制器经过 1500 次后还在调整,而 PID经过大约 200 次就结束调整,且震荡教少,PID 缺点就是超调量较大。孔万增 2004-4-13