模糊控制器设计Word格式文档下载.docx
《模糊控制器设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《模糊控制器设计Word格式文档下载.docx(25页珍藏版)》请在冰豆网上搜索。
模糊控制系统与通常的计算机控制系统的主要区别是采用了模糊控制器。
模糊控制器是模糊控制系统的核心。
一个模糊系统性能的优劣,主要取决于模糊控制器的结构、所采用的模糊规则、合成推理算法以及模糊决策的方法等因素。
3 模糊控制器的组成及各部分工作原理
模糊控制器主要包括输入量模糊化接口、知识库、推理机、输出清晰化接口四个部分,如图2所示。
图2
(1)模糊化接口
模糊控制器的输入变量(通常为偏差和偏差的变化率)的实际变化范围叫做这些变量的基本论域,显然基本论域内的量为精确量,当计算机实现模糊控制算法进行模糊控制时,每次采样得到的被控制量需经计算机计算,以便得到模糊控制器的输入变量。
为了进行模糊化处理,必须将输入变量从基本论域转换到相应的模糊集论域。
设输入变量的基本论域为[-x,x],输入变量的模糊集论域为{-n,-n+1,…,0,…,n-1,n},即可以给出精确量模糊化的量化因子
k=n/x
把输入变量乘以量化因子,就能实现输入变量从基本论域到模糊集论域的转换。
通常,习惯上把输入变量的模糊集论域设定为{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6},把在这区间的连续量模糊化为7档:
“正大”(PB)——多数取+6附近;
“正中”(PM)——多数取+4附近;
“正小”(PS)——多数取+2附近;
“零”(0)——多数取0附近;
“负小”(NS)——多数取-2附近;
“负中”(NM)——多数取-4附近;
“负大”(NB)——多数取-6附近。
这7档对应着7个模糊子集,如表1所示。
表中的数表示[-6,+6]之间13个元素在对应模糊集中的隶属度。
当然,这只是一个示意性表,目的在于说明从精确量向模糊量的转换过程,实际的模糊集要根据具体问题来规定。
表1模糊变量不同等级的隶属度值
隶属度
等级
模糊变量
-6
-5
-4
-3
-2
-1
1
2
3
4
5
6
PB
0.2
0.4
0.7
0.8
PM
PS
0.3
0.5
Z0
0.1
0.6
NS
NM
NB
(2)知识库
①数据库:
存放所有输入输出变量的全部模糊子集的隶属度矢量值,若论域为连续域,则为隶属度函数。
对于以上例子,须将表6-7中内容存放于数据库,在规则推理的模糊关系方程求解过程中,向推理机提供数据。
②规则库:
用来存放全部模糊控制规则,在推理时为“推理机”提供控制规则。
模糊控制器的规则是基于专家知识或手动操作熟练人员长期积累的经验,它是按人的直觉推理的一种语言表示形式。
模糊规则通常由一系列的关系词连接而成,如if—then,else,also,end,or等,关系词必须经过“翻译”才能将模糊规则数值化。
例如,某温度模糊控制器,系统输入变量为温度的偏差e和温度偏差的变化率ec,输出量为温度控制信号u,它们对应的语言变量分别为E,EC和U,可给出如下模糊规则:
R1:
IFEis正大andECis正大thenUis负大
☝第一条模糊规则含义是若温度偏高,且温度上升较快,则调节温度控制信号使温度迅速下降。
R2:
IFEis负大andECis负大thenUis正大
✌第二条模糊规则含义是若温度偏低,且温度下降较快,则调节温度控制信号使温度迅速上升。
(3)推理机
推理机在模糊控制器中的功能是:
根据输入的模糊量和知识库(数据库、规则库)完成模糊推理,并求解模糊关系方程,从而获得模糊控制量。
例如,若已知偏差E和偏差的变化率EC的模糊集,则控制量的模糊集U可由模糊推理的合成算法获得,即
式中,×
—模糊直积运算;
·
—模糊合成运算;
R—模糊关系。
(4)清晰化接口
通过推理机进行模糊决策所得到的输出是模糊量,而被控对象只能接受一个控制量,因此要进行控制必须经过清晰化接口将模糊量转换为精确量。
将模糊量转换为精确量通常采用以下三种方法:
①最大隶属度判决法:
若对应的模糊决策的模糊集中,元素u*∈U,且满足
则取u*(精确量)作为输出控制量。
u*就是该模糊子集中隶属度最大的那个元素。
如果这样的隶属度最大点u*不唯一,就取它们的平均值
作为执行量。
例如,若
=0.3/2+0.7/3+1/4+0.6/5+0.2/6,在
中,元素4的隶属度最大,则按最大隶属度原则,应取执行量u*=4;
若
=0.3/2+1/3+1/4+0.5/5+0.2/6,在
中,隶属度最大有两个,它们分别为元素3和4,则取u*=(3+4)/2=3.5。
最大隶属度判决法的优点是简单易行,算法实时性好,突出了隶属度最大元素的控制作用;
缺点是它概括的信息量少,对隶属度较小元素的控制作用没有考虑。
②加权平均判决法:
该方法的输出量u*的值由下式来决定
,则
③取中位数法:
在最大隶属度判决法中,只考虑了最大隶属数,而忽略了其它信息的影响。
中位数判决法是将隶属函数曲线与横坐标所围成的面积平均分成两部分,以分界点所对应的论域元素作为判决输出。
图6-19为模糊控制量隶属函数曲线,根据中位数判决,得输出量u*=1。
中位数判决法虽然比较充分地利用了模糊子集提供的信息量,但在计算时比较烦琐,而且缺乏对隶属度较大元素提供的主导信息的充分重视,因此这种方法在实际应用中受到一定限制。
模糊控制算法可概括为下述4个步骤:
☝采样系统的被控量,得到输入变量;
☝将输入变量的精确值变为模糊量;
☝根据输入变量(模糊量)及模糊控制规则,按模糊推理合成规则计算控制量(模糊量);
☝由上述得到的控制量(模糊量)计算精确的控制量。
2 模糊控制器设计
1 模糊控制器的结构设计
确定模糊控制器的结构是设计模糊控制器的第一步,所谓“结构”是指确定哪些变量作为模糊控制器的输入变量和输出变量模糊控制器的结构分为单输入单输出。
结构和多输入多输出结构两类。
由于单输入单输出结构用的较多,这里只对该结构给予介绍。
在单输入单输出结构的模糊控制器中,将其输入变量的个数定义为模糊控制器的维数,如图6-20所示。
一维模糊控制器如图6-20(a)所示。
输入变量往往选择为被控量和输入给定量的偏差e。
由于仅仅采偏差值,很难反映受控过程的动态特性品质,因此,所能获得的系统动态性能是不能令人满意的。
二维模糊控制器如图6-20(b)所示。
两个输入变量基本上都选用被控变量与输入给定量的偏差e和偏差变化率ec,由于它们能够较好地反映受控过程中输出变量的动态特性,因此,在控制效果上要比一维模糊控制器好得多,也是目前采用较广泛的一类模糊控制器。
三维模糊控制器如图6-20(c)所示。
三个输入变量分别为系统偏差量e、偏差变化率ec和偏差变化率的变化率ecc。
由于这类模糊控制器结构较复杂,推理运算时间长,因此除非对动态特性要求特别高的场合,一般较少选用。
从理论上讲,模糊控制系统所选用的模糊控制器维数越高,系统的控制精度也就越高。
但是维数选择太高,模糊控制规律就过于复杂,基于模糊合成推理的控制算法的计算机实现也就更困难,这也许是人们在设计模糊控制系统时,多数采用二维控制器的原因。
6.4.2.2 模糊规则的选择和模糊推理
(1)模糊规则的选择
①模糊语言变量的确定:
一般来说,一个语言变量的语言值越多,对事物的描述就越准确,可能得到的控制效果就越好。
当然,过细的划分反而使控制规则变得复杂,因此应视具体情况而定。
如误差等的语言变量的语言值一般取为{负大,负中,负小,零,正小,正中,正大}。
②语言值隶属函数的确定:
语言值的隶属函数又称为语言值的语义规则。
它有时以连续函数的形式出现,有时以离散的量化等级形式出现。
连续的隶属函数描述比较准确,而离散的量化等级简洁直观。
③模糊控制规则的建立:
模糊控制规则的建立常采用经验归纳法和推理合成法。
所谓经验归纳法,就是根据已有的控制经验和直觉推理,经整理、加工和提炼后构成模糊规则的方法。
推理合成法是根据已有的输入输出数据,通过模糊推理合成,求取模糊控制量。
(2)模糊推理
模糊推理一般形式为
一维形式:
IFXisAthenYisB
二维形式:
IFXisAandYisBthenZisC
6.4.2.3 清晰化
目的是根据模糊推理的结果,求得最能反映控制量的真实分布。
目前常用的方法有三种,即取最大隶属度法、加权平均判决法和取中位数法。
6.4.2.4 模糊控制器的论域、量化因
子、比例因子的确定
输入、输出变量的实际变化范围称为这些变量的基本论域,以二维模糊控制器为例,设定误差的基本论域为[-xe,xe],误差变化率的基本论域为[-xc,c],控制量的基本论域为[-yu,yu]。
设误差变量所取的模糊子集的论域为
{-n,-n+1,…,0,…,n-1,n}
误差变化率所取的模糊子集的论域为
{-m,-m+1,…,0,…,m-1,m}
控制量所取的模糊子集的论域为
{-l,-l+1,…,0,…,l-1,l}
若用Ke,Kc分别表示误差、误差变化率的量化因子,用Ku表示控制量的比例因子,则有
Ke=n/xe(6-47)
Kc=m/xc(6-48)
Ku=yu/l(6-49)
比较量化因子和比例因子不难看出,两者均是考虑两个论域变化而引出的。
对输入变量而言,量化因子实现输入变量的基本论域到模糊集论域的变换;
对输出控制量而言,比例因子实现控制量的模糊集论域到基本论域的变换。
设计一个模糊控制器除了要有一个好的模糊控制规则外,合理地选择模糊控制器输入变量的量化因子和输出控制量的比例因子也是非常重要的。
实验结果表明,量化因子和比例因子的不同大小设定,对模糊控制器的控制性能影响很大。
合理地确定量化因子和比例因子要考虑所采用的计算机的字长,还要考虑计算机输入输出接口中D/A和A/D转换的精度及范围。
量化因子Ke和Kc的大小对控制系统的动态性能影响很大。
Ke选得较大时,系统的超调也较大,过渡过程就越长。
Ke越小,则系统变化越慢。
Kc选择较大时,系统超调量减小,但系统的响应速度变慢。
Kc选择较小时,系统的响应速度变快,但超调增大。
Kc对超调的遏制作用十分明显。
此外,输出比例因子Ku的大小也影响着模糊控制系统的特性。
Ku选择过小会使系统动态响应过程变长,而Ku选择过大会导致系统振荡。
输出比例因子Ku作为模糊控制器的增益,它的大小影响着控制器的输出。
应该指出,量化因子和比例因子的选择并不是唯一的,可能有几组不同的值,都能获得较好的响应特性。
对于比较复杂的被控过程,有时采用一组固定的量化因子和比例因子难以收到预期的控制效果,可以在控制过程中采用改变量化因子和比例因子的方法来调整个控制过程中不同阶段上的控制特性,以便对复杂过程控制收到良好的控制效果。
这种形式的控制器称为自调整比例因子模糊控制器。
关于基本论域的选择,由于事先对被控对象缺乏了解,所以误差及误差变化率的基本论域只能做初步选择,待系统调整时再进一步确定。
6.4.2.5 编写模糊控制器的算法程序
(1)计算机离线计算查询表程序
程序属于模糊矩阵运算。
查询表的建立方法是:
根据采样得到的误差xi、误差变化率yi,可计算出相应的控制量变化uij,对所有X={x1,x2,…,xn},Y={y1,y2,…,ym}中元素的所有组合全部计算出相应的控制量变化值,可写成矩阵如下:
(uij)n×
m一般将这个矩阵制成表,称为查询表,也称为控制表。
将其存于计算机内存中,供计算机在线控制时使用。
(2)计算机在线实时控制程序
该程序在模糊控制过程中完成在线计算输入变量(误差、误差变化率),并将它们模糊化处理,查找查询表后再作输出处理。
具体步骤如下:
①设置输入、输出变量及控制量的基本论域,预置量化因子、比例因子和采样周期。
②判断采样时间到否,若时间己到,则转向第3步,否则等待。
③启动A/D转换,进行数据采集。
④计算误差和误差的变化率并判断它们是否已超过上(下)限值,若已超过,则将其设定为上(下)限值。
⑤按给定的量化因子将误差和误差变化率模糊化,并由此查询存放在计算机内存中的控制表。
⑥得到控制量的精确值后,乘上给定的比例因子,若已超过上(下)限值,则设置为上(下)限值。
⑦启动D/A转换,得到模糊控制器实际输出模
拟量,用来控制被控对象。
设计一个模糊控制器,满足如下条件:
输入:
0-18范围内分为七个论域,NBNMNSZEPSPMPB;
隶属度函数满足高斯分布;
输出:
-15到15范围内分为七个论域,NBNMNSZEPSPMPB,隶属度函数为常数1。
模糊推理过程,output=输入隶属度函数值*输出论域的中心值。
一.模糊输入量化过程,程序如下:
x1=(0:
0.1:
18)'
;
y0=gaussmf(x1,[10]);
y1=gaussmf(x1,[13]);
y2=gaussmf(x1,[16]);
y3=gaussmf(x1,[19]);
y4=gaussmf(x1,[112]);
y5=gaussmf(x1,[115]);
y6=gaussmf(x1,[118]);
plot(x1,[y0y1y2y3y4y5y6]);
模糊输入量化过程
二.模糊控制器设计,程序如下:
%fuzzylogiccontroolerdesign
%input[NBNMNSZEPSPMPB];
%output[NBNMNSZEPSPMPB];
%rule-----
%%ifinputisNB,thenoutputisPB;
%%ifinputisNM,thenoutputisPM;
%%ifinputisNS,thenoutputisPS;
%%ifinputisZE,thenoutputisZE;
%%ifinputisPS,thenoutputisNS;
%%ifinputisPM,thenoutputisNM;
%%ifinputisPB,thenoutputisNB;
%-----------------------------
%----authoredby:
zubby----
%----2009-5-17----
x=14;
%defineinputtypeinfuzzyzone
y0=gaussmf(x,[10]);
y1=gaussmf(x,[13]);
y2=gaussmf(x,[16]);
y3=gaussmf(x,[19]);
y4=gaussmf(x,[112]);
y5=gaussmf(x,[115]);
y6=gaussmf(x,[118]);
a=[y0y1y2y3y4y5y6];
b=max(a);
%caculateinputinfuzzyzone,getinput_typeandinput_authorityvalue
ifx<
=18&
x>
=0
ifb==a
(1)
type='
NB'
authorityvalue=y0;
elseifb==a
(2)
NM'
authorityvalue=y1;
elseifb==a(3)
NS'
authorityvalue=y2;
elseifb==a(4)
ZE'
authorityvalue=y3;
elseifb==a(5)
PS'
authorityvalue=y4;
elseifb==a(6)
PM'
authorityvalue=y5;
elseb==a(7)
PB'
authorityvalue=y6;
end
else
ifx>
18
authorityvalue=1;
elseifx<
end
type
authorityvalue
%caculateoutputby
iftype=='
out=authorityvalue*15;
%ifinputisNB,thenoutputisPB;
elseiftype=='
out=authorityvalue*10;
%ifinputisNM,thenoutputisPM;
out=authorityvalue*5;
%ifinputisNS,thenoutputisPS;
out=authorityvalue*0.001;
%ifinputisZE,thenoutputisZE;
out=-authorityvalue*5;
%ifinputisPS,thenoutputisNS;
out=-authorityvalue*10;
%ifinputisPM,thenoutputisNM;
elsetype=='
out=-authorityvalue*15;
%ifinputisPB,thenoutputisNB;
out
作业:
1.设计一个模糊控制器,满足如下条件:
-100-100范围内分为七个论域,NBNMNSZEPSPMPB;
0到100范围内分为七个论域,NBNMNSZEPSPMPB,隶属度函数为常数1。
控制规则:
程序为:
x1=(-100:
100)'
y0=gaussmf(x1,[10-100]);
y1=gaussmf(x1,[10-66]);
y2=gaussmf(x1,[10-33]);
y3=gaussmf(x1,[100]);
y4=gaussmf(x1,[1033]);
y5=gaussmf(x1,[1066]);
y6=gaussmf(x1,[10100]);
plot(x1,[y0y