5.2.2.6 模糊控制器设计实例 1、单输入模糊控制器的设计
【例5.12】已知某汽温控制系统结构如图5.10所示,采用喷水减温进行控制。设计单输入模糊控制器,观察定值扰动和内部扰动的控制效果。
R =
图5.10 单回路模糊控制系统
按表5-2确定模糊变量E 、U 的隶属函数,按表5-3确定模糊控制规则,选择温度偏差e 、控制量u
的实际论域:[ 1.5,1.5]e u =∈-,则可得到该系统的单输入模糊控制的仿真程序如FC_SI_main.m 所示,仿真结果如图5.11所示。
设温度偏差e 、控制量u 的实际论域:[ 1.5,1.5]e u =∈-,选择e 、u 的等级量论域为
{3,2,1,0,1,2,3}E U ==---+++
量化因子2)
5.1(5.13
2=--?=
K 。
选择模糊词集为{NB,NS,ZO,PS,PB },根据人的控制经验,确定等级量E ,U 的隶属函数曲线如图5-8 所示。根据隶属函数曲线可以得到模糊变量E 、U 的赋值表如表5-3所示。
图5-8 E ,U 的隶属函数曲线
-3
-2
-1
1
2
3
依据人手动控制的一般经验,可以总结出一些控制规则,例如: 若误差E 为O ,说明温度接近希望值,喷水阀保持不动; 若误差E 为正,说明温度低于希望值,应该减少喷水; 若误差E 为负,说明温度高于希望值,应该增加喷水。 若采用数学符号描述,可总结如下模糊控制规则: 若E 负大,则U 正大; 若E 负小,则U 正小; 若E 为零,则U 为零; 若E 正小,则U 负小; 若E 正大,则U 负大。 写成模糊推理句:
if E=NB then U=PB if E=NS then U=PS if E=ZO then U=ZO if E=PS then U=NS if E=PB then U=NB
由上述的控制规则可得到模糊控制规则表,如表5-4所示。
表5-4 模糊控制规则表
模糊控制规则实际上是一组多重条件语句,它可以表示从误差论域E 到控制量论域U 的模糊关系R 。
按着上述控制规则,可以得到该温度偏差与喷水阀门开度之间的模糊关系R :
()()()()()
E U E U E U E U E U R E U
NB PB NS PS ZO ZO PS NS PB NB -
-
=?=?????
计算模糊关系矩阵R 的子程序如F_Relation_1.m 所示。 %模糊关系计算子程序F_Relation_1.c
function [R,mfe,mfu,ne,nu,Me]=F_Relation_1
%#############################输入模糊变量赋值表(表5-3)############################ ne=7;%等级量e 的个数 nu=7;%等级量u 的个数
Me=[0 0 0 0 0 0.5 1;0 0 0 0 1 0.5 0;0 0 0.5 1 0.5 0 0; 0 0.5 1 0 0 0 0;1 0.5 0 0 0 0 0]; Mu=Me;
%##定义模糊变量及其语言值 1=PB,2=PS,3=O,4=NS,5=NB ,并输入模糊控制规则表(表5-4)## mfc=5;%模糊变量E 的语言值个数,控制规则表列数
E=[5 4 3 2 1]; UC=[1 2 3 4 5];
%########################计算R=E ×U############################################### R=zeros(ne,nu); for i=1:mfc iu=UC(i); ie=E(i);
for k=1:ne for l=1:nu
if Me(ie,k) Reu(k,l)=Mu(iu,l); end end end for k=1:ne for l=1:nu if Reu(k,l)>R(k,l) R(k,l)=Reu(k,l); end end end end 运行结果如下: 由此,可以得到各种输入时,模糊控制器的输出: 单输入时: U E R - - = (5-5) 双输入时: R EC E U )(- - - ?= (5-6) 三输入时: R ECC EC E U )(- - - - ??= (5-7) 例如:单输入时,设2.1=e ,根据前面的等级量划分原则,其等级量1+=E ,由表5-2可以查出 ]05.010000[==- PS E 。根据式(5-5)可以得到: ??? ? ?? ? ??? ???? ??????? ?=000 5.00.100005.05.05.0005.05.00.15.00005.00.15.00 005.00.15.05.0005.05.05.000000.15.00 0000R [] ]0 5.0 5.0 0.1 5.0 5.0[ 5.0 0.1 5.0 5.0 5.0 5.0 5.0 0.1 5.0 5.0 0.1 5.0 5.0 0.1 5.0 5.0 5.0 5.0 5.0 0.1 5.0 5.0 1 = ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? = - U 其模糊决策子程序如F_Deduce_1.m所示。 %单输入时模糊决策子程序F_Deduce_1.m function FU=F_Deduce_1(fe,R,ne,nu) for i=1:nu for j=1:ne if fe(j) feu(j)=fe(j); else feu(j)=R(j,i); end end FU(i)=max(feu); end %单输入模糊控制仿真程序FC_SI_main.m,被控对象W(s)=-1.1/(35s+1)^4) clear all DT=1;ST=1500;LP=ST/DT; A1=exp(-DT/35);B1=1-A1; x(1:4)=0;ur=0; %###设置e、u的初始论域及其等级量论域,计算量化因子及比例因子########## em=1.5;EM=3;Ke=EM/em; UM=3;um=1.5;Ku=um/UM; %#########调用计算模糊关系矩阵R的子程序F_Relation_1.m############# [R,mfc,ne,nu,Me]=F_Relation_1; %############################################################# for k=1:LP %############计算FC的输出################################### e=1-x(4);%计算偏差量e e1=round(Ke*e);%把e转化成等级量 if e1>EM;e1=EM;end if e1<-EM;e1=-EM;end j=e1+EM+1; Fi=1; for i=2:mu if Me(i,j)>Me(i-1,j);Fi=i;end;%得到模糊语言值 end U=F_Deduce_1(Me(Fi,:),R,ne,nu);%调用模糊决策子程序 %加权平均法判决控制器的输出 Su=0;S=0; for i=-UM:UM Su=Su+i*U(i+UM+1);S=S+U(i+UM+1); end u=Ku*Su/S+ur; %***************仿真计算被控对象******************** 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(4); u1(k)=u; t(k)=k*DT; if t(k)>800;ur=0.5;end;%800秒后加入内扰 end plot(t,y1) hold on; plot(t,u1,'--') -1.2 -1-0.8-0.6-0.4-0.200.20.40.60.8 图5.11 单输入模糊控制器的控制效果 从上述的仿真结果可以看到,定值扰动时系统可以达到稳定,但是有很大的静差,不能满足工程上的要求,究其原因是,模糊控制器实质上是一个具有继电器型非线性特性的控制器(如图5.11中所示的u ),没有积分作用,对于有自平衡对象一定会产生静差,而且系统极容易产生震荡。从图5.11就可看出,虽然设计的模糊控制器对定值扰动是稳定的,但对于内扰并不能使其稳定。 非线性控制器的控制效果取决于各变量的论域及扰动量的大小【1】 ,因此,模糊控制器的大范围工 程应用还有许多问题需要研究。 2、双输入模糊控制器的设计 【例5.13】对于图5.10所示的系统,设计双输入模糊控制器,观察定值扰动和内部扰动的控制效果。 下面考虑两个输入的情况: 设温度偏差e 、偏差变化率ec 及控制量u 的实际论域:[ 1.5,1.5]e ec u ==∈-,选择它们的等级量论域分别为 {6,5,4,3,2,1,0,0,1,2,3,4,5,6}E =-------+++++++ {6,5,4,3,2,1,0,1,2,3,4,5,6}EC =------++++++ {7,6,5,4,3,2,1,0,1,2,3,4,5,6,7}U =-------+++++++ 量化因子4)5.1(5.162,=--?= ec e K ,3 14 )5.1(5.172=--?=u K 假设选取E 的模糊变量词集为 {,,,,,,,}NB NM NS NO PO PS PM PB 选取模糊变量E 的赋值表如表5-5所示。 表5-5的等级量与模糊量的关系 选取EC 、U 的模糊变量词集为 {,,,,,,}NB NM NS ZO PS PM PB 选取模糊变量EC 的赋值表如表5-2所示,模糊变量U 的赋值表如表5-6所示。 现将操作者在操作过程中遇到的各种出现的情况和相应的控制策略汇总为表5-7。 表5-7 双输入时的模糊控制规则表 下面说明建立模糊控制规则表的基本思想。首先考虑误差为负的情况,当误差(希望值减去温度值)为负大时(说明温度高于希望值),若误差变化率也为负,这时误差有增大的趋势,为尽快消除已有的负大误差并抑制误差变大,所以控制量的变化取正大(控制量增大,意味着喷水阀门开度增大,喷水量增加,使得温度下降,下同)。 当误差为负而误差变化率为正时,系统本身已有减少误差的趋势,所以,为尽快消除误差而又不超调,应取较小的控制量。 当误差为负中时,控制量的变化应使误差尽快消除,基于这种原则,控制量的变化选取同误差为负大时相同。 当误差为负小时,系统接近稳态,若误差变化微小时,选取控制量变化为正中,以抑制误差往负方向变化;若误差变化为正时,系统本身有消除负小的误差的趋势,选取控制量变化为正小。 上述选取控制量变化的原则:当误差大或较大时,选择控制量以尽快消除误差为主;当误差较小时,选择控制量要注意防止超调,以系统稳定性为主要出发点。 按着上述控制规则,可以得到温度偏差及偏差变化率与喷水阀门开度之间的模糊关系R : ()()()()()E EC U E EC U E EC U R E U EC U E EC U NB NB PB NM NB PB NS NB PM - - - - - - - =??=??=?????? 其中角标E ,EC ,U 分别表示误差、误差变化率和控制量。 设e 、ec 、u 的等级量分别为nfe 、nfec 、nfu ,则R 是一个nfec nfe ?行nfu 列的矩阵。计算模糊 关系矩阵R 的子程序如F_Relation_2.m 所示。 %模糊关系计算子程序F_Relation_2.c function [R,n,nE,nEC,nU,nfe,nfec,nfu,Me,Mec]=func() %##定义E 的模糊变量值1=PB,2=PM,3=PS,4=-O,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 0 0 0 0 0 0.2 0.7 1.0 0.7 0.2; 0 0 0 0 0 0 0 0.3 0.8 1.0 0.5 0.1 0 0; 0 0 0 0 0 0 0 1.0 0.6 0.1 0 0 0 0; 0 0 0 0 0.1 0.6 1.0 0 0 0 0 0 0 0; 0 0 0.1 0.5 1.0 0.8 0.3 0 0 0 0 0 0 0; 0.2 0.7 1.0 0.7 0.2 0 0 0 0 0 0 0 0 0; 1.0 0.8 0.4 0.1 0 0 0 0 0 0 0 0 0 0]; %###定义EC的模糊变量值1=PB,2=PM,3=PS,4=0,5=NS,6=NM,7=NB并输入表(5-2)##### nEC=7;% 模糊变量EC的语言值个数?控制表行数 EC=[7 6 5 4 3 2 1]; nfec=13;%EC的等级量个数 Mec=[0 0 0 0 0 0 0 0 0 0.1 0.4 0.8 1.0; 0 0 0 0 0 0 0 0 0.2 0.7 1.0 0.7 0.2; 0 0 0 0 0 0 0 0.9 1.0 0.7 0.2 0 0; 0 0 0 0 0 0.5 1.0 0.5 0 0 0 0 0; 0 0 0.2 0.7 1.0 0.9 0 0 0 0 0 0 0; 0.2 0.7 1.0 0.7 0.2 0 0 0 0 0 0 0 0; 1.0 0.8 0.4 0.1 0 0 0 0 0 0 0 0 0]; %###定义U的模糊变量值1=PB,2=PM,3=PS,4=0,5=NS,6=NM,7=NB并输入表(5-6)##### nU=7;% 模糊变量U的语言值个数 U=[7 6 5 4 3 2 1]; nfu=15;%U的等级量个数 Mu=[0 0 0 0 0 0 0 0 0 0 0 0.1 0.4 0.8 1.0; 0 0 0 0 0 0 0 0 0 0.2 0.7 1.0 0.7 0.2 0; 0 0 0 0 0 0 0 0.4 1.0 0.8 0.4 0.1 0 0 0; 0 0 0 0 0 0 0.5 1.0 0.5 0 0 0 0 0 0; 0 0 0 0.1 0.4 0.8 1.0 0.4 0 0 0 0 0 0 0; 0 0.2 0.7 1.0 0.7 0.2 0 0 0 0 0 0 0 0 0; 1.0 0.8 0.4 0.1 0 0 0 0 0 0 0 0 0 0 0]; %#######################输入模糊控制规则表(表5-7)######################### nfc=8;%模糊变量E的语言值个数,模糊控制表列数 mfc=7;%模糊变量EC的语言值个数,模糊控制表行数 UC=[1 1 2 2 2 3 4 4;1 1 2 2 2 3 4 4;1 1 2 3 3 4 5 6;1 2 3 4 4 5 6 7; 2 2 3 4 5 5 6 7;2 3 4 5 6 6 7 7;3 4 5 6 6 7 7 7]; %###########################计算R=(E×EC×U)####################################### R=zeros(nfe*nfec,nfu); for i=1:mfc for j=1:nfc %E×EC ie=E(j); iec=EC(i); for k=1:nfe for l=1:nfec if Me(ie,k) Reec(k,l)=Mec(iec,l); end end end %E ×EC ×U iu=UC(i,j); n=0; for k=1:nfe for l=1:nfec n=n+1; for t=1:nfu if Reec(k,l) Reecu(n,t)=Mu(iu,t); end end end end for k=1:n for l=1:nfu if Reecu(k,l)>R(k,l) R(k,l)=Reecu(k,l); end end end end end 双输入时,先根据e 、ec 计算出相应的等级量E 、EC ,再根据表(5-2)查出相应的- - EC E ,,然后 按式(5-6)计算出模糊控制器的输出。其模糊决策子程序如F_Deduce_2.m 所示。 %双输入时模糊决策子程序F_Deduce_2.m function FU=F_Deduce_2(fe,fec,R,n,nfe,nfec,nfu) %#######################计算E ×EC##################################### n=0; for i=1:nfe for j=1:nfec n=n+1; if fe(i) feec(n)=fe(i); else feec(n)=fec(j); end end end %#######################计算(E×EC)。R################################ for l=1:nfu for i=1:n if feec(i) fu(i)=feec(i); else fu(i)=R(i,l); end FU(l)=max(fu); end end 按着前面的设计过程,可以得到双输入模糊控制主程序,如FC_MI_main.m所示。%单输入单变量模糊控制仿真程序FC_SI_main.m,被控对象W(s)=-1.1/(35s+1)^4) clear all DT=1;ST=1500;LP=ST/DT; A1=exp(-DT/35);B1=1-A1; x(1: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 -1 0 1 2 3 4 5 6 7]; %#########调用计算模糊关系矩阵R的子程序F_Relation_2.m################# [R,n,nE,nEC,nU,nfe,nfec,nfu,Me,Mec]=F_Relation_2; %################################################################ for k=1:LP %############计算FC输出####################################### %#########变量e模糊化处理############################# e=1-x(4);% 计算输入e的确切量 e1=round(Ke*e);%把e转换成等级量 if e1>EM;e1=EM;end if e1<-EM;e1=-EM;end if e1<0;j=e1+EM+1;end if (e1==0)&(e<0);j=7;end if (e1==0)&(e>0);j=8;end if e1>0;j=e1+EM+2;end %得到e的模糊语言值 Fi=1;mfE=Me(1,j); for i=2:nE if Me(i,j)>mfE;Fi=i;mfE=Me(i,j);end end fe=Me(Fi,:); %##########变量ec模糊化处理############################ ec=(e-e0)/DT; e0=e;计算ec的确切量 ec1=round(Kec*ec);% 把ec转换成等级量 if ec1>ECM;ec1=ECM;end if ec1<-ECM;e1=-ECM;end j=ec1+ECM+1; Fi=1; %得到ec的模糊语言值 Fi=1;mfEC=Mec(1,j); for i=2:nEC if Mec(i,j)>mfEC;Fi=i;mfEC=Mec(i,j);end end fec=Mec(Fi,:); %################调用模糊决策子程序,求出控制量########## FU=F_Deduce_2(fe,fec,R,n,nfe,nfec,nfu); %最大隶属度法判决控制器的输出 nU=1;mFU=FU(1); for i=2:nfu if FU(i)>mFU;nU=i;mFU=FU(i);end end u=Ku*U(nU)+ur; %***************仿真计算被控对象******************** 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(4); u1(k)=u; t(k)=k*DT; if t(k)>800;ur=0.5;end;%800秒后加入内扰 end plot(t,y1) hold on; plot(t,u1,'--') -2 -1.5 -1 -0.5 0.5 1 图5.12 双输入模糊控制器的控制效果 双输入模糊控制器能使系统快速达到稳定,但是,仍然存在很大的静差,不满足工程需要。与单输入模糊控制器一样,仍不能使内扰时稳定。 从上述的模糊控制器的设计过程可以看出,当选择了e 、ec 、u 的基本论域、等级量(E 、EC 、U )论域、模糊量(E 、EC 、U )论域及控制规则后,模糊关系R 就已确定,因此,可以在进行实时控制前,把控制量U 全部算出,形成一个控制表,实时控制时,根据E 和EC ,从控制表中即可查找到相应的控制量U ,这样可以大大提高实时控制时的计算速度。 对于本例的模糊控制表的计算程序如FC_MI_CTable.m 所示,得到的模糊控制表如表5-8所示。 %双输入模糊控制器控制表计算程序FC_MI_CTable.m FCU_T=FC_MI_CTable; U=[-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7]; %#############调用计算模糊关系矩阵R 的子程序F_Relation_2.m############### [R,n,nE,nEC,nU,nfe,nfec,nfu,Me,Mec]=F_Relation_2; %###########################计算控制表############################### for i=1:nfe fE(i)=1;mfE=Me(1,i); for l=2:nE if Me(l,i)>mfE;fE(i)=l;mfE=Me(l,i);end end fe=Me(fE(i),:); for j=1:nfec fEC(j)=1;mfEC=Mec(1,j); for l=2:nEC if Mec(l,j)>mfEC;fEC(j)=l;mfEC=Mec(l,j);end end fec=Mec(fEC(j),:); FU=F_Deduce_2(fe,fec,R,n,nfe,nfec,nfu); %调用模糊决策子程序 %最大隶属度法判决控制器的输出 mU=1;mFU=FU(1); for l=2:nfu if FU(l)>mFU;mU=l;mFU=FU(l);end end FCU_T(j,i)=U(mU); end end 表5-8 模糊控制表 一、速度控制算法: 首先定义速度偏差-50 km/h ≤e (k )≤50km/h ,-20≤ec (i )= e (k )- e (k-1)≤20,阀值e swith =10km/h 设计思想:油门控制采用增量式PID 控制算法,刹车控制采用模糊控制算法,最后通过选择规则进行选择控制量输入。 选择规则: e (k )<0 ① e (k )>- e swith and throttlr_1≠0 选择油门控制 ② 否则:先将油门控制量置0,再选择刹车控制 0 一、速度控制算法: 欧阳歌谷(2021.02.01) 首先定义速度偏差-50 km/h≤e(k)≤50km/h,-20≤ec(i)=e(k)-e(k-1)≤20,阀值eswith=10km/h 设计思想:油门控制采用增量式PID控制算法,刹车控制采用模糊控制算法,最后通过选择规则进行选择控制量输入。 选择规则: e(k)<0 ①e(k)>-eswith and throttlr_1≠0 选择油门控制 ②否则:先将油门控制量置0,再选择刹车控制 0 E/EC和U取相同的隶属度函数即: 说明:边界选择钟形隶属度函数,中间选用三角形隶属度函数,图像略 实际EC和E输入值若超出论域范围,则取相应的端点值。 3.模糊控制规则 由隶属度函数可以得到语言值隶属度(通过图像直接可以看出)如下表: 表1:E/EC和U语言值隶属度向量表 设置模糊规则库如下表: 表2:模糊规则表 3.模糊推理 由模糊规则表3可以知道输入E与EC和输出U的模糊关系,这里我取两个例子做模糊推理如下: if (E is NB) and (EC is NM) then (U is PB) 那么他的模糊关系子矩阵为: 模糊控制规则表生成程序 %偏差E的赋值表 E=[1.0 0.8 0.7 0.4 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.2 0.7 1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.3 0.7 1.0 0.7 0.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.6 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.6 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.2 0.7 1.0 0.7 0.3 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.2 0.7 1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.4 0.7 0.8 1.0]; %偏差变换率EC的赋值表 Ec=[1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.7 1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.7 1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.7 1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.7 1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.7 1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.7 1.0]; %输出U的赋值表 u=[1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.7 1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.7 1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.7 1.0 0.7 0.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0.7 1.0 0.7 0.3 0.0 0.0 模糊控制算法的研究 0842812128夏中宇 模糊控制概述 “模糊”是人类感知万物,获取知识,思维推理,决策实施的重要特征。“模糊”比“清晰”所拥有的信息容量更大,内涵更丰富,更符合客观世界。 在日常生活中,人们的思维中有许多模糊的概念,如大、小、冷、热等,都没有明确的内涵和外延,只能用模糊集合来描述。人们常用的经验规则都是用模糊条件语句表达,例如,当我们拧开水阀往水桶里注水时,有这样的经验:桶里没水或水较少时,应开大水阀;桶里水较多时,应将水阀关小些;当水桶里水快满时,则应把阀门关得很小;而水桶里水满时应迅速关掉水阀。其中,“较少”、“较多”、“小一些”、“很小”等,这些表示水位和控制阀门动作的概念都具有模糊性。即有经验的操作人员的控制规则具有相当的模糊性。模糊控制就是利用计算机模拟人的思维方式,按照人的操作规则进行控制,实现人的控制经验。 模糊控制理论是由美国著名的学者加利福尼亚大学教授Zadeh·L·A于1965年首先提出,它以模糊数学为基础,用语言规则表示方法和先进的计算机技术,由模糊推理进行决策的一种高级控制策略。 1974年,英国伦敦大学教授Mamdani·E·H研制成功第一个模糊控制器,充分展示了模糊技术的应用前景。 模糊控制概况 模糊逻辑控制(Fuzzy Logic Control)简称模糊控制(Fuzzy Control),是以模糊集合论、模糊语言变量和模糊逻辑推理为基础的一种计算机数字控制技术。1965年,美国的L.A.Zadeh 创立了模糊集合论;1973年他给出了模糊逻辑控制的定义和相关的定理。1974年,英国的E.H.Mamdani首先用模糊控制语句组成模糊控制器,并把它应用于锅炉和蒸汽机的控制,在实验室获得成功。这一开拓性的工作标志着模糊控制论的诞生。 模糊控制实质上是一种非线性控制,从属于智能控制的范畴。模糊控制的一大特点是既具有系统化的理论,又有着大量实际应用背景。模糊控制的发展最初在西方遇到了较大的阻力;然而在东方尤其是在日本,却得到了迅速而广泛的推广应用。近20多年来,模糊控制不论从理论上还是技术上都有了长足的进步,成为自动控制领域中一个非常活跃而又硕果累累的分支。其典型应用的例子涉及生产和生活的许多方面,例如在家用电器设备中有模糊洗衣机、空调、微波炉、吸尘器、照相机和摄录机等;在工业控制领域中有水净化处理、发酵过程、化学反应釜、水泥窑炉等的模糊控制;在专用系统和其它方面有地铁靠站停车、汽车驾驶、电梯、自动扶梯、蒸汽引擎以及机器人的模糊控制等。 模糊控制的基本理论 所谓模糊控制,就是在控制方法上应用模糊集理论、模糊语言变量及模糊逻辑推理的知识来模拟人的模糊思维方法,用计算机实现与操作者相同的控制。该理论以模糊集合、模糊语言变量和模糊逻辑为基础,用比较简单的数学形式直接将人的判断、思维过程表达出来,从而逐渐得到了广泛应用。应用领域包括图像识别、自动机理论、语言研究、控制论以及信号处理等方面。在自动控制领域,以模糊集理论为基础发展起来的模糊控制为将人的控制经验及推理过程纳入自动控制提供了一条便捷途径。 1.知识库 模糊控制的应用 学院实验学院 专业电子信息工程 姓名 指导教师___________ 日期20门年9月20日 在自动控制中,包括经典理论和现代控制理论中有一个共同的特点,即控制器的综合设计都要建立在被控对象准确的数学模型(如微分方程等) 的基础上,但是在实际工业生产中,很多系统的影响因素很多,十分复杂。建立精确的数学模型特别困难,甚至是不可能的。这种情况下,模糊控制的诞生就显得意头重大,模糊控制不用建立数学模型,根据实际系统的输入输出的结果数据,参考现场操作人员的运行经验,就可对系统进行实时控制。模糊控制实际上是一种非线性控制,从属于智能控制的范畴。现代控制系统中的的控制能方便地解决工业领域常见的非线性、时变、在滞后、强耦合、变结构、结束条件苛刻等复杂问题。可编程控制器以其高可靠性、编程方便、耐恶劣环境、功能强大等特性很好地解决了工业控制领域普遍关心的可靠、安全、灵活、方便、经济等问题,这两者的结合,可在实际工程中广泛应用。 所谓模糊控制,其定义是是以模糊数学作为理论基础,以人的控制经验作为控制的知识模型,以模糊集合、模糊语言变量以及模糊逻辑推理作为控制算法的一种控制。模糊控制具有以下突出特点: ⑴模糊控制是一种基于规则的控制,它直接采用语言型控制规则,出发点 是现场操作人员的控制经验或相关专家的知识,在设计中不需要建立被控对象的精确的数学模型,因而使得控制机理和策略易于接受与理解,设计简单,便于应用 ⑵由工业过程的定性认识出发,比较容易建立语言控制规则,因而模糊控 制对那些数学模型难以获取,动态特性不易掌握或变化非常显著的对象非常适用。 ⑶基于模型的控制算法及系统设计方法,由于出发点和性能指标的不同, 容易导致较大差异;但一个系统语言控制规则却具有相对的独立性,利用这些控制规律间的模糊连接,容易找到折中的选择,使控制效果优于常规控制器。 ⑷模糊控制是基于启发性的知识及语言决策规则设计的,这有利于模拟人 工控制的过程和方法,增强控制系统的适应能力,使之具有一定的智能水平。 ⑸模糊控制系统的鲁棒性強,干扰和参数变化对控制效果的影响被大大减 弱,尤其适合于非线性、时变及纯滞后系统的控制。 由于有着诸多优点,模糊理论在控制领域得到了广泛应用。下面我们就以下示例介绍模糊控制在实际中的应用: 电机调速控制系统见图1,模糊控制器的输入变量为实际转速与转速给定值之间的差值e及其变化率仝,输出变量为电机的电压变化量u。图2为电机调试输出结果,其横坐标为时间轴,纵坐标为转速。当设定转速为2 OOOr / s时,电机能很快稳定运行于2 OOOr / s;当设定转速下降到1 OOOr / s时,转速又很快下降到1 OOOr / s稳定运 行。 5.2.2.6 模糊控制器设计实例 1、单输入模糊控制器的设计 【例5.12】已知某汽温控制系统结构如图5.10所示,采用喷水减温进行控制。设计单输入模糊控制器,观察定值扰动和内部扰动的控制效果。 R = 图5.10 单回路模糊控制系统 按表5-2确定模糊变量E 、U 的隶属函数,按表5-3确定模糊控制规则,选择温度偏差e 、控制量u 的实际论域:[ 1.5,1.5]e u =∈-,则可得到该系统的单输入模糊控制的仿真程序如FC_SI_main.m 所示,仿真结果如图5.11所示。 设温度偏差e 、控制量u 的实际论域:[ 1.5,1.5]e u =∈-,选择e 、u 的等级量论域为 {3,2,1,0,1,2,3}E U ==---+++ 量化因子2) 5.1(5.13 2=--?= K 。 选择模糊词集为{NB,NS,ZO,PS,PB },根据人的控制经验,确定等级量E ,U 的隶属函数曲线如图5-8 所示。根据隶属函数曲线可以得到模糊变量E 、U 的赋值表如表5-3所示。 图5-8 E ,U 的隶属函数曲线 -3 -2 -1 1 2 3 依据人手动控制的一般经验,可以总结出一些控制规则,例如: 若误差E 为O ,说明温度接近希望值,喷水阀保持不动; 若误差E 为正,说明温度低于希望值,应该减少喷水; 若误差E 为负,说明温度高于希望值,应该增加喷水。 若采用数学符号描述,可总结如下模糊控制规则: 若E 负大,则U 正大; 若E 负小,则U 正小; 若E 为零,则U 为零; 若E 正小,则U 负小; 若E 正大,则U 负大。 写成模糊推理句: if E=NB then U=PB if E=NS then U=PS if E=ZO then U=ZO if E=PS then U=NS if E=PB then U=NB 由上述的控制规则可得到模糊控制规则表,如表5-4所示。 表5-4 模糊控制规则表 模糊控制规则实际上是一组多重条件语句,它可以表示从误差论域E 到控制量论域U 的模糊关系R 。 按着上述控制规则,可以得到该温度偏差与喷水阀门开度之间的模糊关系R : ()()()()() E U E U E U E U E U R E U NB PB NS PS ZO ZO PS NS PB NB - - =?=?????U U U U 计算模糊关系矩阵R 的子程序如F_Relation_1.m 所示。 %模糊关系计算子程序F_Relation_1.c function [R,mfe,mfu,ne,nu,Me]=F_Relation_1 %#############################输入模糊变量赋值表(表5-3)############################ ne=7;%等级量e 的个数 nu=7;%等级量u 的个数 Me=[0 0 0 0 0 0.5 1;0 0 0 0 1 0.5 0;0 0 0.5 1 0.5 0 0; 0 0.5 1 0 0 0 0;1 0.5 0 0 0 0 0]; Mu=Me; %##定义模糊变量及其语言值 1=PB,2=PS,3=O,4=NS,5=NB ,并输入模糊控制规则表(表5-4)## mfc=5;%模糊变量E 的语言值个数,控制规则表列数 选取一个模糊控制的实例讲解,有文章,有仿真,有详细的推导过程。 一.实验题目:基于模糊控制系统的单级倒立摆 二.实验目的与要求: 倒立摆是联结在小车上的杆,通过小车的运动能保持竖立不倒的一种装置,它是一个典型的非线性、快速、多变量和自然不稳定系统,但是我们可以通过对它施加一定的控制使其稳定。对它的研究在理论上和方法上都有其重要意义。倒立摆的研究不仅要追求增加摆的级数,而且更重要的是如何发展现有的控制方法。同时, 它和火箭的姿态控制以及步行机器 人的稳定控制有很多相似之处,由此研究产生的理论和方法对一般工业过程也有广泛用途。 本文研究了倒立摆的控制机理,用Lagrange 方法推导了一级倒立摆的数学模型,这为研究多级和其它类型的倒立摆甚至更高层次的控制策略奠定了一个良好的基础。对系统进行了稳定性、可控性分析,得出倒立摆系统是一个开环不稳定但可控的系统的结论。 本文主要研究用极点配置、最优控制和模糊控制方法对倒立摆进行稳定控制。最优控制方法是基于状态反馈,但能实现输出指标最优的一种控制方法,方法和参数调节较简单,有着广泛的应用。模糊控制有不依赖于数学模型、适用于非线性系统等优点,所以本文尝试了用模糊控制对倒立摆进行控制,以将先进的控制方法用于实际中。 同时,对倒立摆系统的研究也将遵循从建模到仿真到实控,软硬件结合的系统的控制流程。在这过程中,借助数学工具Matlab7及仿真软件Simulink,作了大量的仿真研究工作,仿真结果表明系统能跟踪输入,并具有较好的抗干扰性。最后对实验室的倒立摆装置进行了软、硬件的调试,获得了较好的控制效果。 三.实验步骤: 1.一级倒立摆系统模型的建立 在忽略了空气阻力、各种摩擦之后(这也是为了保证Lagrange 方程的建立),可 将一级倒立摆系统抽象为由小车和匀质杆组成的系统,本系统设定如下: 小车质量M;摆杆质量m,长为l;小车在x 轴上移动;摆与竖直方向夹角为θ,规定正方向如图所示;加在小车x 轴上的力为F; 由于项目需要,需要模糊控制算法,之前此类知识为0,经过半个多月的研究,终于有的小进展。开始想从强大的互联网上搜点c代码来研究下,结果搜遍所有搜索引擎都搜不到,以下本人从修改的模糊控制代码,经过自己修改后可在,运行!输入e表示输出误差,ec表示误差变化率,经过测试具有很好的控制效果,对于非线性系统和数学模型难以建立的系统来说有更好的控制效果!现将其公开供大家学习研究! #include <> #include"" #define PMAX 100 #define PMIN -100 #define DMAX 100 #define DMIN -100 #define FMAX 100 /*语言值的满幅值*/ int PFF[4]={0,12,24,48}; /*输入量D语言值特征点*/ int DFF[4]={0,16,32,64}; /*输出量U语言值特征点*/ int UFF[7]={0,15,30,45,60,75,90}; /*采用了调整因子的规则表,大误差时偏重误差,小误差时偏重误差变化*/ /*a0=,a1=,a2=,a3= */ int rule[7][7]={ //误差变化率 -3,-2,-1, 0, 1, 2, 3 // 误差 {-6,-6,-6,-5,-5,-5,-4,}, // -3 {-5,-4,-4,-3,-2,-2,-1,}, // -2 {-4,-3,-2,-1, 0, 1, 2,}, // -1 {-4,-3,-1, 0, 1, 3, 4,}, // 0 {-2,-1, 0, 1, 2, 3, 4,}, // 1 { 1, 2, 2, 3, 4, 4, 5,}, // 2 { 4, 5, 5, 5, 6, 6, 6}}; // 3 /**********************************************************/ int Fuzzy(int P,int D) /*模糊运算引擎*/ { int U; /*偏差,偏差微分以及输出值的精确量*/ unsigned int PF[2],DF[2],UF[4]; /*偏差,偏差微分以及输出值的隶属度*/ int Pn,Dn,Un[4]; long temp1,temp2; /*隶属度的确定*/ /*根据PD的指定语言值获得有效隶属度*/ 模糊控制程序设计报告 自研112班 麻世博 2201100387 题目:已知被控对象为0.51()101 s G s e s ?=+。假设系统给定为阶跃值r =30,采样时间为0.5s ,系统的初始值r(0)=0。试分别设计: (1)常规的PID 控制器; (2)常规的模糊控制器; 分别对上述2种控制器进行Matlab 仿真,并比较控制效果 解答: 1 常规PID 控制器的设计与SIMULINK 仿真 如图1所示,使用SIMULINK 工具对已知系统的PID 控制系统进行仿真。 图1 PID 控制系统的SIMULIK 仿真 其中PID 控制器为离散型,采样时间T=0.5s ,参数P=14,I=3,D=0。阶跃信号幅值为30,被控对象传递函数为0.51()101 s G s e s ?=+。 该系统的阶跃响应如图2。 图2 PID控制系统的输出 该控制系统上升时间T r=1.5s,调节时间T s=8s,超调量σ%=70%,没有稳态误差。 该系统中PID控制器的输出曲线如图3。 图3 PID控制器的输出曲线 输出最大值为465,最小值为-208。 2 模糊控制器的设计 在本文中,我通过MATLAB提供的模糊逻辑工具箱(Fuzzy Logic Toolbox)编辑隶属函数、控制规则,设计了一个双输入单输出的模糊控制器,如下图所示。 图4 模糊控制器概览 2.1 隶属度函数的确立。 选择偏差E和偏差变化率EC作为控制器的输入,控制量U为输出。取E、EC和U的模糊子集为{NB, NM, NS, ZO, PS, PM, PL} ,它们的论域为{-3, -2, -1, 0, 1, 2, 3}。在 MATLAB的命令窗口输入命令Fuzzy,进入模糊逻辑编辑窗口。取输入量E、EC的隶属函数为高斯型(gaussmf),输出U的隶属函数为三角形(trimf),如下图所示。 图5 输入模糊变量E的隶属度函数 5.2.2.6模糊控制器设计实例 1、单输入模糊控制器的设计 【例5.12】已知某汽温控制系统结构如图 5.10所示,采用喷水减温进行控制。设计单输入模糊控 制器,观察定值扰动和内部扰动的控制效果。 图5.10单回路模糊控制系统 按表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} 2汇3 量化因子K 1 2。 1.5 -(-1.5) 选择模糊词集为{NB,NS,ZO,PS,PB},根据人的控制经验,确定等级量E,U的隶属函数曲线如图 5-8所示。根据隶属函数曲线可以得到模糊变量E、U的赋值表如表5-3所示。 图5-8 E, U的隶属函数曲线 依据人手动控制的一般经验,可以总结出一些控制规则,例如: 若误差E为0,说明温度接近希望值,喷水阀保持不动;若误差明温度低于希望值,应该减少喷水; 若误差明温度高于希望值,应该增加喷水。 若采用数学符号描述,可总结如下模糊控制规则: 若E负大,则U正大; 若E负小,贝U U正小; 若E为零,则U为零; 若E正小,则U负小; 若E正大,则U负大。 写成模糊推理句: if E=NB then U=PB if E=NS then U=PS if E=Z0 then U=Z0 if E=PS then U=NS if E=PB then U=NB 由上述的控制规则可得到模糊控制规则表,如表5-4所示。 模糊控制规则实际上是一组多重条件语句,它可以表示从误差论域旦到控制量论域U的模糊关系R。 按着上述控制规则,可以得到该温度偏差与喷水阀门开度之间的模糊关系R: R=E U =(NB E PB U)U(NS E PS U)U(Z0E Z0U)U(PS E NS U)U(PB E NB U) 计算模糊关系矩阵R的子程序如F_Relation_1.m 所示。 本科生毕业论文(设计) 调研报告 题目:基于模糊控制算法的 温度控制系统的设计学生姓名: 学号: 专业班级: 指导教师: 完成时间:年月日 基于模糊控制算法的温度控制系统的设计 一、主要目标任务: 综合运用所学知识,如《模拟电子技术》、《数字电子技术》、《自动控制原理》、《微机原理》、《单片机原理与应用》,设计一个基于模糊控制算法的温度控制系统。 1)对以前所学知识进行系统的复习,全面的综合并将其联贯。 2)学会了独立的分析和解决问题和进行相关社会调查的能力 3)学会了查阅文献的方法和培养查阅文献的良好习惯。 4)提高专业相关外文的阅读、翻译能力。提高专业英语水平。 5)提高编写程序的水平,优化软件结构。提高电脑绘图水平。 二、技术性能指标: 1)温度控制在0~100度(水温),误差为±0.5。C。 2)恒温控制。 3)LED实时显示系统温度。并通过键盘输入给定温度 三、简要工作原理 以AT89C51单片机为模糊控制器,结合温度传感变送器,A/D转换器、LED显示器、静态电子开关等,设计出一个基于模糊控制算法的温度控制系统。 在系统中,温度传感变送器获得温度的感应电压,转变成1~5V的标准电压信号,再由A/D转换器转换成数字信号进入单片机内部。单片机将给定电压的A/D转换结果与测量电压的结果相比较,得出偏差量。然后跟据模糊控制算法得出控制量。在执行器中由开关频率较高的静态电子开关完成,采用模拟的PWM控制方法,改变同一个周期中电子开关的闭合时间。 从而调节加热开关的导通时间,以达到控制效果的目的。 四、课题文献综述 1、《动力锅炉燃烧系统的模糊控制策略》 1)作者:刘向杰、柴天佑、刘红波 2)摘要:基于模糊控制策略给出了锅炉系统新的控制方法。工业锅炉的主要动态包括非线性、非最小相位特征、不稳定性、时滞和负荷干扰,采 用传统控制方法难以实施有效的控制。运用GPE(Gausian partition with evenly spaced midpoints)模糊控制系统对锅炉对象的主汽压进行研究和 实时控制,模糊控制器能够克服许多干扰因素,产生良好的控制效果, 最后给出了模糊控制同传统方法的比较结果。 3)模糊控制器的应用 本文的线性推理规则表示:IF error is Ej and rate is Rj THEN output is U(i+j)。Ei代表着一个误差模糊,Rj代表一个误差变化率模糊集,U(i+j)代表着一个输出量模糊集。 4)实施结果 上述控制策略用于现场实际对象,尽管现场运行存在很大的干扰,主 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 3 1. 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 二PB if E=NS then U 二PS if E=Z0 then U=Z0 if E=PS then U=NS if 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 所示。 3-4 已知某一加炉炉温控制系统,要求温度保持在600℃恒定。目前此系统采用人工控制方式,并有以下控制经验 (1) 若炉温低于600℃,则升压;低得越多升压越高。 (2) 若炉温高于600℃,则降压;高得越多降压越低。 (3) 若炉温等于600℃,则保持电压不变。 设模糊控制器为一维控制器,输入语言变量为误差,输出为控制电压。两个变量的量化等级为七级、取五个语言值。隶属度函数根据确定的原则任意确定。试按常规模糊逻辑控制器的设计方法设计出模糊逻辑控制表。 模糊控制器选用的系统的实际温度T 与温度给定值T d 的误差d e T T =-作为输入语言变量,把控制加热装置的供电电压u 选作输出语言变量。 模糊输出量隶属度函数 控制规则 规则1、如果误差e 是NB ,则控制U 为NB; 规则2、如果误差e 是NS ,则控制U 为NS; 规则3、如果误差e 是ZE ,则控制U 为ZE; 规则4、如果误差e 是PS ,则控制U 为PS; 规则5、如果误差e 是PB ,则控制U 为PB; 由上可得 (3)0.4 PS μ= 10.4U PS = (3)1PB μ= 21 U PB = 120.4 1 U U U PS PB =+=+ 控制输出:00.4500.435150 46.66670.40.41 v ?+?+?==++ 误差(2)1PS μ= 11U PS =(2)0.3PS μ= 20.3 U PB = 120.3 1 U U U PS PB =+=+ 精确化 控制输出:00.340140 400.31 v ?+?==+ (1)0.1ZE μ= 10.1 U ZE = (1)0.4PS μ= 20.4 U PS = 120.1 0.4 U U U ZE PS =+=+ 控制输出:00.4350.4500.1350.125 400.40.40.10.1 v ?+?+?+?==+++ (1)0.4N S μ-= 10.4 U N S = 20.1U ZE = 120.1 0.4 U U U ZE N S =+=+ 00.4100.4250.1250.135 200.40.40.10.1 v ?+?+?+?= =+++ (2)0.3NB μ-= 10.3 U N B = (2)1N S μ-= 21U N S = 120.3 1 U U U N B N S =+=+ 控制输出:00.320120 200.31 v ?+?==+ (3)1N S μ-= 11 U N B =(3)0.4NS μ-= 20.4 U N S = 120.4 1 U U U N B N S =+=+ :00.4250.410110 13.33330.40.41 v ?+?+?==++ 因此模糊逻辑控制表 一.实验题目:基于模糊控制系统的单级倒立摆 二.实验目的与要求: 倒立摆是联结在小车上的杆,通过小车的运动能保持竖立不倒的一种装置,它是一个典型的非线性、快速、多变量和自然不稳定系统,但是我们可以通过对它施加一定的控制使其稳定。对它的研究在理论上和方法上都有其重要意义。倒立摆的研究不仅要追求增加摆的级数,而且更重要的是如何发展现有的控制方法。同时, 它和火箭的姿态控制以及步行机器人的稳定控制有很多相似之处,由此研究产生的理论和方法对一般工业过程也有广泛用途。 本文研究了倒立摆的控制机理,用Lagrange 方法推导了一级倒立摆的数学模型,这为研究多级和其它类型的倒立摆甚至更高层次的控制策略奠定了一个良好的基础。对系统进行了稳定性、可控性分析,得出倒立摆系统是一个开环不稳定但可控的系统的结论。 本文主要研究用极点配置、最优控制和模糊控制方法对倒立摆进行稳定控制。最优控制方法是基于状态反馈,但能实现输出指标最优的一种控制方法,方法和参数调节较简单,有着广泛的应用。模糊控制有不依赖于数学模型、适用于非线性系统等优点,所以本文尝试了用模糊控制对倒立摆进行控制,以将先进的控制方法用于实际中。 同时,对倒立摆系统的研究也将遵循从建模到仿真到实控,软硬件结合的系统的控制流程。在这过程中,借助数学工具 Matlab7及仿真软件Simulink,作了大量的仿真研究工作,仿真结果表明系统能跟踪输入,并具有较好的抗干扰性。最后对实验室的倒立摆装置进行了软、硬件的调试,获得了较好的控制效果。 三.实验步骤: 1.一级倒立摆系统模型的建立 在忽略了空气阻力、各种摩擦之后(这也是为了保证Lagrange 方程的建立),可 将一级倒立摆系统抽象为由小车和匀质杆组成的系统,本系统设定如下: 小车质量 M;摆杆质量m,长为l;小车在x 轴上移动;摆与竖直方向夹角为θ,规定正方向如图所示;加在小车x 轴上的力为F; 拉格朗日算子 L 是系统动能Ec 和势能Ep 之差,拉格朗日方程由拉格朗日算子L 语言变量X ,Y ,Z 的隶属度函数. 设计带有纯延迟的一阶惯性环节(假设T=6,=0.02): G(s)=s e s 6102.0+ 的模糊控制器,观察仿真结果。 编程如下: %被控系统建模 num=1; den=[6,1]; [a1,b,c,d]=tf2ss(num,den);%传递函数转换到状态空间 x=[0]; %系统参数 T=0.01;h=T ; td=0.02 ; N=1000; nd=td/T;%系统纯延迟 R=ones(1,N);%参考输入 %定义输入和输出变量及隶属度函数 a=newfis('Simple'); a=addvar(a,'input','e',[-4 4]); a=addmf(a,'input',1,'NB','trimf',[-4,-4,-2]); a=addmf(a,'input',1,'NS','trimf',[-4,-2,0]); a=addmf(a,'input',1,'ZO','trimf',[-2,0,2]); a=addmf(a,'input',1,'PS','trimf',[0,2,4]); a=addmf(a,'input',1,'PB','trimf',[2,4,4]); a=addvar(a,'input','de',[-4 4]); a=addmf(a,'input',2,'NB','trimf',[-4,-4,-2]); a=addmf(a,'input',2,'NS','trimf',[-4,-2,0]); a=addmf(a,'input',2,'ZO','trimf',[-2,0,2]); a=addmf(a,'input',2,'PS','trimf',[0,2,4]); a=addmf(a,'input',2,'PB','trimf',[2,4,4]); a=addvar(a,'output','u',[-4 4]); a=addmf(a,'output',1,'NB','trimf',[-4,-4,-2]); a=addmf(a,'output',1,'NS','trimf',[-4,-2,0]); a=addmf(a,'output',1,'ZO','trimf',[-2,0,2]); a=addmf(a,'output',1,'PS','trimf',[0,2,4]); a=addmf(a,'output',1,'PB','trimf',[2,4,4]); %模糊规则矩阵 rr=[5 5 4 4 3 5 4 4 3 3 4 4 3 3 2 4 3 3 2 2 3 3 2 2 1]; r1=zeros(prod(size(rr)),3);k=1; for i=1:size(rr,1) for j=1:size(rr,2) r1(k, : )=[i, j, rr(i, j)]; k=k+1; end end [r , s]=size(r1); r2=ones(r,2); rulelist=[r1,r2]; a=addrule(a,rulelist); %采用模糊控制器的二阶系统仿真 e=0;de=0; ke=30;kd=5;ku=1; for k=1:N %输入变量变换至论域 e1=ke*e; de1=kd*de; if e1>=4 用模糊控制实现水箱水温的恒温控制。水箱由底部的电阻性电热元件加热,由电动搅拌器实现均温。设控制的目标温度为25oC ,以实测温度T 与目标温度R 之差,即误差e=T-R ,以及误差变化率ec 为输入,以固态继电器通电时间的变化量u (以一个控制周期内的占空比表示,控制电加热器的功率)为输出。设e 的基本论域为[-5,5] oC ,其语言变量E 的论域为[-5,5];ec 的基本论域为[-1,1] oC/s ,其语言变量EC 的论域为[-5,5];控制量u 的基本论域为[-5,5]单位,其语言变量U 的论域为[-5,5]。E 、EC 和U 都选5个语言值{NB ,NM ,NS ,Z ,PS ,PM ,PB},各语言值的隶属函数采用三角函数,其分布可用表1和表2表示,控制规则如表3所示。要求:1、画出模糊控制程序流程图;2、计算出模糊控制器的查询表,写出必要的计算步骤。 表 表 表3 模糊控制规则表( 解:步骤: 1)输入输出语言变量的选择。输入变量选为实测温度T 与目标温度R 之差,即误差e ,及误差变化率ec ;输出语言变量选固态继电器通电时间的变化量u ,故模糊控制系统为双输入—单输出的基本模糊控制器。 2)建立各语言变量的赋值表。设误差e 的基本论域为[-5,5]。C ,输入变量E 的论域为[-5,-4,-3,-2,-1,0,1,2,3,4,5],误差的量化因子为ke=5/5=1。语言变量E 选取5个语言值: ,,,,PB PS ZE NS NB 。表1为语言变量E 、EC 的赋值表,表2为语言变量U 的赋值表 3)建立模糊控制规则表,总结控制策略,得出一组由25条模糊条件语句构成的控制规 则,据此建立模糊控制规则表,如表3所示.表中行与列交叉处的每个元素及其所在列的第一行元素和所在行的第一列元素,对应于一个形式为”if E and EC then U”的模糊语句, 根据该模糊语句可得相应的模糊关系i R ,则总控制规则的总模糊关系为25 1 =i i R U R = 。 表3 模糊控制规则表(内容为控制量U) 4)建立查询表。根据推理合成原则,输出模糊集合2()T U E E R =?? ,利用判决结果可建立模糊控制器查询表。通过查表得出U,乘以比例因子K u ,(K u =u max /n=5/5=1),即查表得出的结果U 即为控制量的值u 。 5)流程图如下图所示 流程图 5.226模糊控制器设计实例 1、单输入模糊控制器的设计 【例5.12】已知某汽温控制系统结构如图 5.10所示,采用喷水减温进行控制。设计单输入模糊控 制器,观察定值扰动和内部扰动的控制效果。 图5.10单回路模糊控制系统 按表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 3 1.5 ( 1.5) 选择模糊词集为{NB,NS,ZO,PS,PB},根据人的控制经验,确定等级量E,U的隶属函数曲线如图 5-8所示。根据隶属函数曲线可以得到模糊变量E、U的赋值表如表5-3所示。 图5-8 E, U的隶属函数曲线 依据人手动控制的一般经验,可以总结出一些控制规则,例如: 若误差E为0,说明温度接近希望值,喷水阀保持不动;若误差明温度低于希望值,应该减少喷水; 若误差明温度高于希望值,应该增加喷水。 若采用数学符号描述,可总结如下模糊控制规则: 若E负大,则U正大; 若E负小,贝U U正小; 若E为零,则U为零; 若E正小,则U负小; 若E正大,则U负大。 写成模糊推理句: if E=NB then U=PB if E=NS then U=PS if E=Z0 then U=Z0 if E=PS then U=NS if E=PB then U=NB 由上述的控制规则可得到模糊控制规则表,如表5-4所示。 表模糊控制规则表 模糊控制规则实际上是一组多重条件语句,它可以表示从误差论域旦到控制量论域的模糊关系R。 按着上述控制规则,可以得到该温度偏差与喷水阀门开度之间的模糊关系R: R E U (NB E PB U)U(NS E PS U)U(Z0E Z0U)U(PS E NS U)U(PB E NB U ) 计算模糊关系矩阵R的子程序如F_Relation_1.m 所示。 用模糊控制实现水箱水温得恒温控制。水箱山底部得电阻性电热元件加热,山电动搅拌器实现均温。设控制得訂标温度为25七,以实测温度T与U标温度R之差,即误差e=T-R. 以及误差变化率ec为输入,以固态继电器通电时间得变化量u(以一个控制周期内得占空比表示,控制电加热器得功率)为输出。设e得基本论域为卜5,5] 其语言变量E得论域为卜5,5];ec得基本论域为卜1」]七/s,其语言变量EC得论域为卜5,5];控制量u得基本论域为卜5,5]单位,其语言变量U得论域为[-5,5] o E、EC与U都选5个语言值{NB,NM,NSZPS,PM、PB},各语言值得隶属函数采用三角函数,其分布可用表1与表2表示,控制规则如表3所示。要求:1、画出模糊控制程序流程图;2、计算出模糊控制器得查询表,写出必要得计算步骤。 表1语言变量E、EC得赋值表 表2语言变量U得赋值表 解涉骤: 输入输出语言变量得选择。输入变量选为实测温度T与H标温度R之差,即误差e,及误差变化率ec;输出语言变量选固态继电器通电时间得变化量u,故模糊控制系统为双输入—单输出得基本模糊控制器。 建立各语言变量得赋值表。设误差e得基本论域为卜5,5「c,输入变量E得论域为卜5,?4,?3,?2,?1,0,1,2,3,4,5],误差得量化因子为ke=5/5=l。语言变量E选取5个语言值:PEP&Z 皮表1为语言变量E、EC得赋值表,表2为语言变量U得赋值表 表1语言变量E、EC得赋值表 表2语言变量U得赋值表 3)建立模糊控制规则表,总结控制策略,得出一组山25条模糊条件语句构成得控制规则,据此建立模糊控制规则表,如表3所示、表中行与列交义处得每个元素及其所在列得第一行元素与所在行得第一列元素,对应于一个形式为"if E and EC then U”得模糊语句, 25 根据该模糊语句可得相应得模糊关系R,则总控制规则得总模糊关系为R=u& ° i-i 表3模糊控制规则表(内容为控制量U) 建立查询表。根据推理合成原则,输出模糊集合U=(ExAE)r^R,利用判决结果可建立模糊控制器查询表。通过查表得出U,乘以比例因子K u,(Ku=Umax/n=5/5=l),B|lg表得出得结果U即为控制量得值u。 5)流程图如下图所示 流程图模糊控制详细讲解实例
模糊控制详细讲解实例之欧阳歌谷创作
模糊控制规则表生成程序
模糊控制算法的研究
模糊控制的应用实例与分析
模糊控制程序实例学习资料
选取一个模糊控制的实例讲解
模糊控制算法c程序
模糊控制程序设计报告
模糊控制程序实例
基于模糊控制算法的温度控制系统的设计(DOC)
模糊控制程序实例
模糊控制设计例题
选取一个模糊控制的实例讲解
模糊控制程序一阶延时
模糊控制器的查询表的实例计算过程
模糊控制程序实例
模糊控制器的查询表的实例计算过程