《智能控制技术》实验报告书学院:专业:学号:姓名:实验一:模糊控制与传统PID控制的性能比较一、实验目的通过本实验的学习,使学生了解传统PID控制、模糊控制等基本知识,掌握传统PID控制器设计、模糊控制器设计等知识,训练学生设计控制器的能力,培养他们利用MATLAB进行仿真的技能,为今后继续模糊控制理论研究以及控制仿真等学习奠定基础。二、实验内容本实验主要是设计一个典型环节的传统PID控制器以及模糊控制器,并对他们的控制性能进行比较。主要涉及自控原理、计算机仿真、智能控制、模糊控制等知识。通常的工业过程可以等效成二阶系统加上一些典型的非线性环节,如死区、饱和、纯延迟等。这里,我们假设系统为:H(s)=20e0.02s/(1.6s2+4.4s+1)控制执行机构具有0.07的死区和0.7的饱和区,取样时间间隔T=0.01。设计系统的模糊控制,并与传统的PID控制的性能进行比较。三、实验原理、方法和手段1.实验原理:1)对典型二阶环节,根据传统PID控制,设计PID控制器,选择合适的PID控制器参数kp、ki、kd;2)根据模糊控制规则,编写模糊控制器。2.实验方法和手段:1)在PID控制仿真中,经过仔细选择,我们取kp=5,ki=0.1,kd=0.001;2)在模糊控制仿真中,我们取ke=60,ki=0.01,kd=2.5,ku=0.8;3)模糊控制器的输出为:u=ku×fuzzy(ke×e,kd×e’)-ki×∫edt其中积分项用于消除控制系统的稳态误差。4)模糊控制规则如表1-1所示:在MATLAB程序中,Nd用于表示系统的纯延迟(Nd=td/T),umin用于表示控制的死区电平,umax用于表示饱和电平。当Nd=0时,表示系统不存在纯延迟。5)根据上述给定内容,编写PID控制器、模糊控制器的MATLAB仿真程序,并记录仿真结果,对结果进行分析。表1-1FC的模糊推理规则表uee’NBNSZRPSPBNBPBPBPSPSZRNSPBPSPSZRZRZRPSPSZRZRNSPSPSZRZRNSNSPBZRZRNSNSNB四、实验组织运行要求根据本实验的综合性、设计性特点以及要求学生自主设计MATLAB仿真程序的要求以及我们实验室的具体实验条件,本实验采用以学生自主训练为主的开放模式组织教学。五、实验条件1.装有MATLAB6.5的计算机;2.智能控制技术教材;3.模糊控制教材;4.智能控制技术实验指导书。六、实验步骤1.学生熟悉实验内容,并根据实验内容、实验要求,查阅、学习相关知识;2.设计典型二阶环节的PID控制器以及模糊控制器;3.编写MATLAB仿真程序4.上机调试程序,修改程序修改控制器的参数等;5.对实验程序仿真,并记录仿真结果;6.对实验结果进行分析,书写实验报告书。七、实验程序num=20;den=[1.6,4.4,1];[a1,b,c,d]=tf2ss(num,den);%将传递函数转化为状态模型x=[0;0];T=0.01;h=T;%T为采样时间umin=0.07;umax=0.7;td=0.02;Nd=td/T;%Nd延迟时间N=500;R=1.5*ones(1,N);%参考值e=0;de=0;ie=0;kp=5;ki=0.1;kd=0.001;%设定的比例,积分,微分常数fork=1:Nuu1(1,k)=-(kp*e+ki*ie+kd*de);%控制量生成ifk=Nd%纯延迟u=0;elseu=uu1(1,k-Nd);endifabs(u)=umin%死区和饱和环节u=0elseifabs(u)umaxu=sign(u)*umax;end%龙格-库塔算法求对象的输出k1=a1*x+b*u;k2=a1*(x+h*k1/2)+b*u;k3=a1*(x+h*k2/2)+b*u;k4=a1*(x+h*k3)+b*u;x=x+(k1+2*k2+2*k3+k4)*h/6;y=c*x+d*u;%计算误差.微分和积分e1=e;e=y(1,1)-R(1,k);de=(e-e1)/T;ie=e*T+ie;yy1(1,k)=y;end;kk=[1:N]*T;figure(1);plot(kk,yy1);a=newfis('simple');%建立模糊推理系统a=addvar(a,'input','e',[-66]);%增加第一个输入变量ea=addmf(a,'input',1,'NB','trapmf',[-6-6-5-3]);%添加隶属函数a=addmf(a,'input',1,'NS','trapmf',[-5-3-20]);a=addmf(a,'input',1,'ZR','trimf',[-202]);a=addmf(a,'input',1,'PS','trapmf',[0235]);a=addmf(a,'input',1,'PB','trapmf',[3566]);a=addvar(a,'input','de',[-66]);%增加第二个输入变量ea=addmf(a,'input',2,'NB','trapmf',[-6-6-5-3]);%添加隶属函数a=addmf(a,'input',2,'NS','trapmf',[-5-3-20]);a=addmf(a,'input',2,'ZR','trimf',[-202]);a=addmf(a,'input',2,'PS','trapmf',[0235]);a=addmf(a,'input',2,'PB','trapmf',[3566]);a=addvar(a,'output','u',[-33]);%添加输出变量ua=addmf(a,'output',1,'NB','trapmf',[-3-3-2-1]);%添加隶属函数a=addmf(a,'output',1,'NS','trimf',[-2-10]);a=addmf(a,'output',1,'ZR','trimf',[-101]);a=addmf(a,'output',1,'PS','trimf',[012]);a=addmf(a,'output',1,'PB','trapmf',[1233]);%建立模糊规则矩阵rr=[55443;54433;44332;43322;33221];r1=zeros(prod(size(rr)),3);%得到一个25X3的0阶矩阵k=1;fori=1:size(rr,1)forj=1:size(rr,2)r1(k,:)=[i,j,rr(i,j)];k=k+1;endend[r,s]=size(r1);r2=ones(r,2);rulelsit=[r1,r2];a=addrule(a,rulelsit);%rulelist为25X(2+1+2)矩阵,每一行代表一个规则,某一%行的前2列为输入,接着一列为输出,最后两列为控制所有均%为1e=0;de=0;ie=0;x=[0;0];ke=60;kd=2.5;ku=0.8;%定义edeu的量化因子fork=1:Ne1=ke*e;de1=kd*de;ife1=6e1=6;elseife1-6e1=-6;endifde1=6de1=6;elseifde1-6de1=-6;endin=[e1de1];uu(1,k)=ku*evalfis(in,a);ifk=Ndu=0;elseu=uu(1,k-Nd);endifabs(u)=uminu=0elseifabs(u)umaxu=sign(u)*umax;end%龙格-库塔算法求对象的输出k1=a1*x+b*u;k2=a1*(x+h*k1/2)+b*u;k3=a1*(x+h*k2/2)+b*u;k4=a1*(x+h*k3)+b*u;x=x+(k1+2*k2+2*k3+k4)*h/6;y=c*x+d*u;e1=e;e=y-R(1,k);de=(e-e1)/T;ie=ie+e*T;yy(1,k)=y;end%绘制结果曲线kk=[1:N]*T;figure(1);plot(kk,R,'k',kk,yy,'r',kk,yy1,'b');xlabel('时间(0.01秒)');ylabel('输出');gtext('模糊控制');gtext('PID控制');%end八、实验结果九、思考题1.模糊控制器的控制性能是否一定优于传统PID控制器?不一定,若要求反应速度那么可以选择模糊控制方式。若要求控制精度高则可以选择pid方式2.如果选用模糊控制工具箱,如何进行设计、仿真?答:在matlab的主窗口中输入fuzzy即可调出模糊工具箱界面,退出界面的时候会提示保存,保存格式为fis,如果我们将文件保存为njust.fis,那么下次使用这个文件的时候在主窗口中输入fuzzynjust即可。模糊控制器的建立过程如下:(1)设定误差E、误差变化率EC和控制量U的论域为,一般为[-66]。(2)设定E、EC、U的模糊集。一般可设为{NB、NM、NS、ZO、PS、PM、PB}。(3)设定隶属度函数。有高斯型隶属度函数、三角型隶属度函数等。(4)设定模糊控制规则。常用的模糊控制规则如图1所示,当然可以根据特定的控制对象和要求进行相应的调整。实验二:神经元自适应PID控制仿真研究一、实验目的通过本实验的学习,使学生了解传统PID控制、神经元自适应控制等基本知识,掌握传统PID控制器设计、掌握基于二次型性能指标学习算法的单神经元自适应PID控制等知识,训练学生设计控制器的能力,培养他们利用MATLAB进行仿真的技能,为今后继续神经网络控制理论的研究以及控制仿真等学习奠定基础。二、实验内容本实验主要是学习应用最优二次型性能指标学习算法进行控制器的设计仿真研究。主要涉及自控原理、计算机仿真、智能控制、神经网络控制等知识,综合性较强。设被控对象过程模型为:yout(k)=0.368yout(k-1)+0.264yout(k-2)+u(k-d)+0.632u(k-d-1)+ξ(k)应用最优二次型性能指标学习算法进行仿真研究,最后要求得出神经元自适应PID跟踪及中权值变化结果。三、实验原理、方法和手段1.实验原理:在最优控制理论中,采用二次型性能指标来计算控制律可以得到所期望的优化效果。在神经元学习算法中,也可借助最优控制中二次型性能指标的思想,在加权系数的调整中引入二次型性能指标,使输出误差和控制增量加权平方和为最小来调整加权系数,从而间接实现对输出误差和控制增量加权平方和为最小来调整加权系数,从而间接实现对输出误差和控制增量加权的约束控制。设性能指标为:))())()(((21)(22kuQkyoutkrinPkE式中,QP,分别为输出误差和控制增量的加权系数,)(kr和)(ky为k时刻参考输入和输出。神经元的输出为:31)()()1()(iiikxkwKkuku31|)(|/)()(iiiikwkwkw)3,2,1(i)())()(()()(()1()(31110I11iiikxkxkwQKkxkzPbKkwkw)())()(()()(()1()(31220P22iiikxkxkwQKkxkzPbKkwkw)())()(()()(()1()(31330D33iiikxkxkwQKkxkzPbKkwkw)()(1kekx)1()()(2kekekx)2()1(2)()()(23kekekekekx2.实验方法和手段:1)应用最优二次型性能指标学习算法进行仿真研究,ξ(k)为在100个采样时间的外加干扰,ξ(100)=0.10,输入为阶跃响应信号rin(k)=1.0;2)启动时采用开环控制,取u=0.1726,K=0.02,P=2,Q=1,d=6;3)比例、积分、微分三部分加权系数学习速率分别取ηI=4,ηP=120,ηD=159,ω1(0)=0.34,ω2(0)=0.32,ω3(0)=0.33;4)利用MATLAB编写仿真程序,得出神经元自适应PID跟踪及中权值变化结果。四、实验组织运行要求根据本实验的综合性