模糊控制程序实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 所示。
■0 0 0 0
0 0.5 1.0
〕
0 0
0 0
0.5 0.5 0.5
0 0 0.5 0.5 1.0 0.5 0 0
0 0.5 1.0 0.5 0 0 0
0.5 1.0 0.5 0.5 0 0 0.5 0.5 0.5
0 0 0 0 】
1.0
0.5
一
由此,可以得到各种输入时,模糊控制器的输出: 单输入时:
例如:单输入时,设e=1.2,根据前面的等级量划分原则,其等级量
E =PS =[O 0 0 0 1 0.5 0]。根据式(5-5)可以得到:
■
0 0 0
0 0.5 1.0]
0 0 0 0
0.5 0.5 0.5
0.5 0.5 1.0 0.5
双输入时: U =(E EC) R (5-6) 三输入时:
U =(E EC ECC) R
(5-7)
(5-5 )
E 二V ,由表5-2可以查出
U = 0 0 0 0 1 0.5 0 卜0 0 0.5 1.0 0.5 0 0
0 0.5 1.0 0.5 0.5 0 0
0.5 0.5 0.5 0 0 0 0
1.0 0.5 0 0 0 0 0
一二[0.5 0.5 1.0 0.5 0.5 0 0]
其模糊决策子程序如F_Deduce_1.m所示。
%单输入时模糊决策子程序F_Deduce_1.m
fun ction FU=F_Deduce_1(fe,R, ne,nu)
for i=1: nu
for j=1: ne
if fe(j) else feu(j)=R(j,i); end end FU(i)=max(feu); end if Me(i,j)>Me(i-1,j);Fi=i;e nd;% 得到模糊语言值 end U=F_Deduce_1(Me(Fi,:),R ,n e, nu);% 调用模糊决策子程序 %加权平均法判决控制器的输岀 Su=O;S=O; 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 ⑷; u1(k)=u; t(k)=k*DT; if t(k)>800;ur=0.5;e nd;%800 秒后加入内扰 end Plot(t,y1) hold on; plot(t,u1,'--') 图5.11单输入模糊控制器的控制效果 从上述的仿真结果可以看到,定值扰动时系统可以达到稳定,但是有很大的静差,不能满足 工程上的要求,究其原因是,模糊控制器实质上是一个具有继电器型非线性特性的控制器(如图 5.11中所示的u ),没有积分作用,对于有自平衡对象一定会产生静差,而且系统极容易产生震荡。 从图5.11就可看出,虽然设计的模糊控制器对定值扰动是稳定的,但对于内扰并不能使其稳定。 仿真计算被控对象 ********************