当前位置:文档之家› 模糊控制程序实例

模糊控制程序实例

5. 226模糊控制器设计实例1、单输入模糊控制器的设计【例5.12]己知某汽温控制系统结构如图 5. 10所示,采用喷水减温进行控制。

设计单输入模糊控图5. io单回路模糊控制系统按表5-2确定模糊变量E U的隶属函数,按表5-3确定模糊控制规则,选择温度偏差e、控制量u 的实际论域:e u [ 1. 5, 1. 5],则可得到该系统的单输入模糊控制的仿真程序如FC_SI_main. m所示,仿真结果如图5. 11所示。

设温度偏差e、控制量u的实际论域:e u [ 1.5, 1.5],选择e、u的等级量论域为E U { 3, 2, 1,0, 1, 2, 3}量化因子K 2 31. 5 ( 1. 5)选择模糊词集为{NB,NS,Z0,PS,PB},根据人的控制经验,确定等级量E, U的隶属函数曲线如图5-8所示。

根据隶属函数曲线可以得到模糊变量E、U的赋值表如表5-3所示。

图5-8 E, U的隶属函数曲线r 0.51 (t 500)制器,依据人手动控制的一般经验,可以总结出一些控制规则,例如:若误差E 为0,说明温度接近希望值,喷水阀保持不动;若 误差 若误差 明温度低于希望值,应该减少喷水;明温度高于希望值,应该增加喷水。

若采用数学符号描述,可总结如下模糊控制规则:若E 负大,若E 负小,若E 为零,若E 正小,若E 正大, 则U 正大; 贝U U 正小; 则U 为零; 则U 负小;则U 负大。

写成模糊推理句: if E=NB then U 二PBif E=NS then U 二PSif E=Z0 then U=Z0if E=PS then U=NSif E=PB then U 二NB由上述的控制规则可得到模糊控制规则表,如表 5-4所示。

表5-4模糊控制规则表模糊控制规则实际上是一组多重条件语句,它可以表示从误差论域 旦到控制量论域U 的模糊关系按着上述控制规则,可以得到该温度偏差与喷水阀门开度之间的模糊关系 R :(NB E PB U ) U (NS E PS U ) U (Z0E ZO U ) U (PS E NS U ) U (PB E NB C )计算模糊关系矩阵R 的子程序如F_Relation_l. m 所示。

Reu(k, l)=Me(ie, k);Reu(k, l)=Mu(iu, 1);endendfor k=l: neR(k, l)=Reu(k, 1);运行结果如下:000000. 5 1.00000. 50. 50. 5000. 50. 5 1.00. 50R 000. 5 1.00. 50000. 5 1.00. 50. 5000. 50. 50. 500001.00. 500000图5. 11单输入模糊控制器的控制效果从上述的仿真结果可以看到,定值扰动时系统可以达到稳定,但是有很大的静差,不能满足工程上的要求,究其原因是, 模糊控制器实质上是一个具有继电器型非线性特性的控制器(如图5. 11中所示的u ),没有积分作用,对于有自平衡对象一 定会产生静差,而且系统极容易产生震荡。

从图5. 11就可看出,虽然设计的模糊控制器对定值扰动是稳定的,但对于内扰 并不能使其if Me(i,j)>Me(i-1j);Fi=i;e nd;%endU=F_Deduce_1(Me(Fi,:),R, ne, nu);% %加权平均法判决控制器的输 岀 Su=O;S=O;for i=-UM:UMSu=Su+i*U(i+UM+1 );S=S+U(i+UM+1);end u=Ku*Su/S+ur; (Q/ **************r仿真计算被控对象 x(1)=A1*x(1)-1.1*B1*u;得到模糊语言值 调用模糊决策子程序********************x(2)=A1*x(2)+B1*x(1);x(3)=A1*x(3)+B1*x(2);x(4)=A1 *x(4)+B1 *x(3);y1 (k)=x ⑷;u1(k)=u; if t(k)>800;ur=0.5;e nd;%800秒后加入内扰endPlot(t,y1)hold on;plot(t,u1,—)稳定。

非线性控制器的控制效果取决于各变量的论域及扰动量的大小 程应用还有许多问题需要研究。

2、双输入模糊控制器的设计【例5. 13】对于图5. 10所示的系统,设计双输入模糊控制器,观察定值扰动和内部扰动的控制 效果。

下面考虑两个输入的情况:设温度偏差e 、偏差变化率ec 及控制量u 的实际论域:e ec u [ 1.5, 1.5],选择它们的等级量论域分别为 E { 6, 5, 4, 3, 2, 1, 0, 0, 1, 2, 3, 4, 5, 6}EC { 6, 5, 4, 3, 2, 1,0, 1, 2, 3, 4, 5, 6}U { 7, 6, 5, 4, 3, 2, 1,0, 1, 2, 3, 4, 5, 6, 7}量化因子Ke ec 2 6 4, K u 21. 5 ( 1. 5)1. ( 1.5) 3 假设选取E 的模糊变量词集为 { NB,NM , NS, NO, P0, PS, PM , PB}选取EC 、U 的模糊变量词集为{NB, NM , NS, Z0, PS, PM , PB}选取模糊变量EC 的赋值表如表5-2所示,模糊变量U 的赋值表如表5-6所示。

表5-6等级量U 与模糊量U 的关系【〃,因此,模糊控制器的大范围工现将操作者在操作过程中遇到的各种出现的情况和相应的控制策略汇总为表5表5-7双输入时的模糊控制规则表下而说明建立模糊控制规则表的基木思想。

首先考虑误差为负的情况,当误差(希望值减去温度值)为负大时(说明温度高于希望值),若误差变化率也为负,这时误差有增大的趋势,为尽快消除己有的负大误差并抑制误差变大,所以控制量的变化取正大(控制量增大,意味着喷水阀门开度增大,喷水量增加,使得温度下降,下同)。

当误差为负而误差变化率为正时,系统木身己有减少误差的趋势,所以,为尽快消除误差而又不超调,应取较小的控制量。

当误差为负中时,控制量的变化应使误差尽快消除,基于这种原则,控制量的变化选取同误差为负大时相同。

当误差为负小时,系统接近稳态,若误差变化微小时,选取控制量变化为正中,以抑制误差往负方向变化;若误差变化为正时,系统本身有消除负小的误差的趋势,选取控制量变化为正小。

上述选取控制量变化的原则:当误差大或较大时,选择控制量以尽快消除误差为主;当误差较小时,选择控制量要注意防止超调,以系统稳定性为主要出发点。

按着上述控制规则,可以得到温度偏差及偏差变化率与喷水阀门开度之间的模糊关系R :R (E U)o(EC U ) E EC U(NB=陂PB U) U (NM H NB EC PB. ) U( NS E NB EC PM* ) UL L其中角标E, EC U分别表示误差、误差变化率和控制量。

设e、ec、u的等级量分别为nfe、nfec> nfu,贝U R是一个nfe nfec nfu列的矩阵。

计算模糊关系矩阵R的子程序如F_Relation_2. m所示。

%莫糊关系计算子程序F_Relation_2. cfun ctio n [R, n, nE, n EC, nU, nfe, nfec, n fu, Me, Mec]二fu nc ()%#3定义E的模糊变量值仁PB, 2二PM, 3=PS, 4=-0, 5二+0, 6二NS, 7二NM, 8二NB并输入表(5-5 ) #### nE=8;%模糊变量E的语言值个数?控制表列数E二[8 7 6 5 4 3 2 1];nfe=14;%E的等级量个数Me二[0 0 0 0 0 0 0 0 0 0 0. 1 0.4 0.8 1.0;0 0 0 0 00 0 0 00. 2 0.7 1. 0 0. 7 0.2;for 1=1: nfecif Me (ie, k) <Mec (iec, 1) Reec (k, l)=Me(ie, k) ; elseReec (k, 1)二Mec(iec, 1) ; endendend%E A ECX Uiu二UC(i, j);n=0;for k二1: nfefor 1=1: nfecn二n+1;for t二1: nfuif Reec(k, l)<Mu(iu, t)Reecu( n, t)二Reec(k, 1); elseReecu ( n, t)二Mu(iu, t); end endendendfor k二1: nfor 1=1: nfuif Reecu (k, 1) >R(k, 1) R(k, l)=Reecu(k, 1) ; endendendendend双输入时,先根据e、ec计算出相应的等级量E、EC,再根据表(5-2)查出相应的E, EC ,然后按式(5-6)计算出模糊控制器的输出。

其模糊决策子程序如F_Deduce_2. m所示。

%双输入时模糊决策子程序F_Deduce_2. mfunction FU二F_Deduce_2 (fe, fee, R, n, n fe, nfec, nfu)计算EX EC##################################### n二0;for i=l: nfefor j二1: nfecn二n+1;if fe(i)<fec(j)feec( n)二fe(i);elsefeec( n)二fec(j);endendend计算(E x EC) o R################################for 1=1: nfufor i二1: nif feec (i) <R(i, 1)fu(i)二feec (i);elsefu(i)=R(i, 1);endFU(l)=max(fu);endend按着前而的设计过程,可以得到双输入模糊控制主程序,如FC_MI_main. m所示。

%单输入单变量模糊控制仿真程序FC_SI_main.nl ,被控对象W(s)=-1. l/(35s+l)A4)clear allDT=l;ST=1500;LP=ST/DT;Al=exp(-DT/35);B1=1~A1;x(l:4)=0;ur=0;e0=0;%##井设置e、ec、u的初始论域及其等级量论域,计算量化因子及比例因子##########em=2;EM=6;Ke=EM/em;ecm=2;ECM=6;Kec=ECM/ecm;UM=7;um=2;Ku=um/UM;U=[-7 -6-5-4-3-2-101234567];%#########调用计算模糊关系矩阵R的子程序F_Relation_2.[R, n, nE, n EC, nU, nfe, nfec, nfu, Me, Mec]=F_Relation_2; %################################################################ for k=l:LP %############ 计算FC 输岀 #######################################%######### 变量e模糊化处理mnnnnnunnnnnnnnnnnnnmunmnne=l-x(4) ;% 计算输入e的确切量e仁rou nd(Ke*e) ;% 把e转换成等级量if el>EM;el=EM;e ndif el<~EM;el=~EM;e ndif el<0;j=el+EM+l;e ndif (el==0)&(e〈0);j=7;e nd/O/ **********************************r仿真计算被控对象u=Ku*U( nU )+ur;x(l)=Al*x(l)T. l*Bl*u; x(2)=Al*x(2)+Bl*x(l) ; x(3)=Al*x(3)+Bl*x(2); x(4)=Al*x(4)+Bl*x(3); yl (k)=x (4); ul (k) =u; t(k) =k*DT;图5. 12双输入模糊控制器的控制效果双输入模糊控制器能使系统快速达到稳定,但是,仍然存在很大的静差,不满足工程需要。

相关主题