您好,欢迎访问三七文档
一、已知某一炉温控制系统,要求温度保持在600℃恒定。针对该控制系统有以下控制经验:①若炉温低于600℃,则升压;低得越多升压越高。②若炉温高于600℃,则降压;高得越多降压越低。③若炉温等于600℃,则保持电压不变。设计模糊控制器为一维控制器,输入语言变量为误差,输出为控制电压。输入、输出变量的量化等级为7级,取5个模糊集。试设计隶属度函数误差变化划分表、控制电压变化划分表和模糊控制规则表。要求有程序及注释,仿真结果和分析。(1)确定模糊控制器的输入输出变量将600℃作为给定值t0,测量炉温为t(k),则:输入变量:e(k)=t(k)-t0输出变量:触发电压u的变化量,该u直接控制供电电压的高低。(2)输入输出变量的模糊语言描述输入输出变量的语言值:{负大(NB),负小(NS),零(ZE),正小(PS),正大(PB)}设:e的论域为X,u的论域为Y,均量化为七个等级:X={-3,-2,-1,0,1,2,3},Y={-3,-2,-1,0,1,2,3}语言变量E和U的隶属函数赋值表(论域离散):隶属度输入量e的变化等级-3-2-10123模糊集PB000000.51PS000010.50ZE000.510500NS00.510000NB10.500000隶属度输出量u的变化等级-3-2-10123模糊集PB000000.51PS000010.50ZE000.510500NS00.510000NB10.500000(3)模糊控制规则①ifE=NBthenU=PB②ifE=NSthenU=PS③ifE=ZEthenU=ZE④ifE=PSthenU=NS⑤ifE=PBthenU=NB(4)求模糊控制表IFNBeNSeZOePSePBeTHENPBuPSuZOuNSuNBu(5)控制量转化为精确量:采用加权平均法:(6)计算模糊关系R=(NBe×PBu)+(NSe×PSu)+(ZEe×ZEu)+(PSe×NSu)+(PBe×NBu)ZEe×ZEu=(0,0,0.5,1,0.5,0,0)×(0,0,0.5,1,0.5,0,0)分别计算出矩阵NBe×PBu,NSe×PSu,ZEe×ZEu,PSe×NSu,PBe×NBu求并集得:查询表:e-3-2-10123u3210-1-2-3实际控制时,将测量到的误差量化后,从查询表中得到控制量再乘以比例因子Kn,即作为控制的实际输出。(7)模糊决策模糊控制器的输出为误差向量和模糊关系的合成,即u=eR。当误差e为NB时,e=[1,0.5,0,0,0,0,0],控制器的输出u:000000.5100000.50.50.5000.50.510.5010.500000000.510.50000.510.50.5000.50.50.5000010.50000000000.50.51ueR(8)控制量的反模糊化控制器输出为一维模糊向量,即:00000.50.513210123u如果按照“隶属度最大原则”进行反模糊化,则选择控制量为u=3,增大压力使温度升高。这与e=NB时的实际操作经验是一致的。程序设计及仿真%FuzzyControlforwatertankclearall;closeall;a=newfis('fuzz_temp');a=addvar(a,'input','e',[-3,3]);%Parameterea=addmf(a,'input',1,'NB','zmf',[-3,-1]);a=addmf(a,'input',1,'NS','trimf',[-3,-1,1]);a=addmf(a,'input',1,'Z','trimf',[-2,0,2]);a=addmf(a,'input',1,'PS','trimf',[-1,1,3]);a=addmf(a,'input',1,'PB','smf',[1,3]);a=addvar(a,'output','u',[-3,3]);%Parameterua=addmf(a,'output',1,'NB','zmf',[1,3]);a=addmf(a,'output',1,'NS','trimf',[-1,1,3]);a=addmf(a,'output',1,'Z','trimf',[-2,0,2]);a=addmf(a,'output',1,'PS','trimf',[-3,-1,1]);a=addmf(a,'output',1,'PB','smf',[-3,-1]);rulelist=[1111;%Editrulebase2211;3311;4411;5511];a=addrule(a,rulelist);a1=setfis(a,'DefuzzMethod','mom');%Defuzzywritefis(a1,'temp');%Savetofuzzyfiletemp.fisa2=readfis('temp');figure(1);plotfis(a2);figure(2);plotmf(a,'input',1);figure(3);plotmf(a,'output',1);flag=1;ifflag==1showrule(a)%Showfuzzyrulebaseruleview('temp');%DynamicSimulationenddisp('-------------------------------------------------------');disp('fuzzycontrollertable:e=[-3,+3],u=[-3,+3]');disp('-------------------------------------------------------');fori=1:1:7e(i)=i-4;Ulist(i)=evalfis(e(i),a2);endUlist=round(Ulist)e=-3;%Erroru=evalfis([e],a2)%Usingfuzzyinference仿真结果:Systemtemp:1inputs,1outputs,5rulese(5)u(5)temp(mamdani)5rules图1系统控制图-3-2-1012300.20.40.60.81eDegreeofmembershipNBNSZPSPB图2输入隶属度函数-3-2-1012300.20.40.60.81uDegreeofmembershipNBNSZPSPB图3输出隶属度函数图4规则表图5动态图二、参照RBF网络的自校正控制方法,设计基于RBF网络的模型参考自校正控制器,并进行MATLAB仿真。被控对象为)1(15))1(sin(8.0)(kukyky采样周期为0.001Ts,参考模型为()0.6(1)()mmykykrk,其中()0.5sin(2)rkkT。要求:编写仿真程序,画出控制曲线和误差曲线,并进行分析。神经网络自校正控制有两种结构类型:直接型、间接型。直接型自校正控制也称直接逆动态控制,属于前馈控制;间接自校正控制是一种由辨识器对对象参数在线估计,用调节器实现参数的自动整定相结合的自适应控制技术,通常用于结构已知而参数未知但恒定(或者参数缓慢时变)的随机系统。神经网络间接自校正控制结构如图6所示,它由两个回路组成:(1)自校正控制器与被控对象构成的反馈回路。(2)控制器参数调整回路(由神经网络辨识器构成)。图6神经网络间接自校正控制框图考虑被控对象:1ykgykykuk其中u,y分别为对象的输入和输出,j[·]为非零函数。若给定参考输入r,则控制器算法应为:1()rkguk神经网络辩识器自校正控制器被控对象ryu未知函数g[·]和j[·]可通过在线训练RBF网络进行辨识(估计),辨识结果分别记为Ng[·]和Nj[·]则控制算法变为:1()rkNgukN设计2个RBF网络分别辨识未知函数g[·]和j[·]。网络结构如图7所示,其中W和V为权值向量,网络输入均为y(k)。两个网络的结构完全相同。图7神经网络辨识器设网络的径向基向量为H=[h1,…,hm]T,hj为高斯基函数:22-exp(-)2jjjykChb其中j=1,…,m。m为网络隐层神经元个数,bj为神经元j的基宽度参数,bj0,Cj为第j个节点的中心矢量:设网络权向量为:T1T1,,,,mm则两个RBF网络的输出分别为:1111jjmmjjmmNgkhwhwhwNkhvhvhv辨识后,采用RBF网络对系统的预测输出为:1;1;1mykNgykWkNykVkuk设神经网络调整的性能指标为:212mEkykyk采用梯度下降法调整网络的权值:*1jwwmjjjvvmjjEkwkykykhkwkEkvkykykhkukvk其中hw和hv为学习速率。神经网络权值的调整过程为:WW1WW1W2VV1VV1V2kkkkkkkkkk其中a为动量因子。神经网络自校正控制系统的结构如图8所示。图8神经网络自校正控制系统结构图可以看出,两个RBF网络实际上是模拟了由输出量y到两个非线性函数的映射关系被控对象为:)1(15))1(sin(8.0)(kukyky则有0.8sin115gykykyk仿真程序如下:%Self-CorrectcontrolbasedRBFIdentificationclearall;closeall;xite1=0.15;xite2=0.50;alfa=0.05;w=0.5*ones(6,1);v=0.5*ones(6,1);cij=0.50*ones(1,6);bj=5*ones(6,1);h=zeros(6,1);w_1=w;w_2=w_1;v_1=v;v_2=v_1;u_1=0;y_1=0;ts=0.02;fork=1:1:5000time(k)=k*ts;r(k)=1.0*sin(0.1*pi*k*ts);%¿ØÖƶÔÏóg(k)=0.8*sin(y_1);f(k)=15;y(k)=g(k)+f(k)*u_1;forj=1:1:6h(j)=exp(-norm(y(k)-cij(:,j))^2/(2*bj(j)*bj(j)));endNg(k)=w'*h;Nf(k)=v'*h;ym(k)=Ng(k)+Nf(k)*u_1;e(k)=y(k)-ym(k);d_w=0*w;forj=1:1:6d_w(j)=xite1*e(k)*h(j);endw=w_1+d_w+alfa*(w_1-w_2);d_v=0*v;forj=1:1:6d_v(j)=xite2*e(k)*h(j)*u_1;endv=v_1+d_v+alfa*(v_1-v_2);u(k)=(r(k)-Ng(k))/Nf(k);u_1=u(k);y_1=y(k);w_2=w_1;w_1=w;v_2=v_1;v_1=v;endfigure(1);plot(time,r,'r',time,y,'b');xlabel('Time(second)');ylabel('Positiontracking');figure(2);plot(time,g,'r',time,Ng,'b');xlabel('Time(second)');ylabel('gandNg');figure(3);plot(time,f,'r',time,Nf,'b');xlabel('Time(second)');ylabel('fandNf');仿真结果如下:010203040506070809
本文标题:智能控制作业
链接地址:https://www.777doc.com/doc-7345280 .html