1、第 13 页 共 14 页模糊控制器的设计与MATLAB仿真模糊控制器的设计与MATLAB仿真 王桥 ( 安庆师范学院物理与电气工程学院 安徽 安庆 246011)指导教师:吴文进 摘要:随着现代科学技术的迅速发展,生产系统的规模越来越大,形成了复杂的大系统,导致了控制对象与控制器以及控制任务和目的的日益复杂化。系统的复杂性主要表现在,被控对象模型的不确定性、系统信息的模糊性、高度非线性、输入信息多样化、多层次和多目标的控制要求、计算复杂性和庞大的数据处理以及严格的性能指标。该设计分析了模糊控制理论原理,给出了常规模糊控制器的设计方法,并在MATLAB中进行仿真实验,实验结果验证了控制器的有效
2、性。关键词:模糊控制,PID控制,MATLAB仿真1引言智能控制是当前国内外人工智能,自动化,计算机技术领域中的热门话题,受到学术界、工程界和企业界的广泛关注。正在积极进行有关智能控制的理论方法和应用技术的研究与开发工作,取得了许多新进展和新成果。智能控制系统的发展,为智能自动化提供了理论基础,必将推动自动化向前发展。智能控制主要包括以下几个方面,基于知识系统的专家控制、基于模糊系统的智能控制、基于学习及适应性的智能控制、基于神经网络的智能控制系统。模糊控制指的是应用模糊集合理论统筹考虑控制的一种控制方式。模糊控制的基本思想是把人类专家对特定的被控对象或过程的控制策略总结成一系列以:“IF(条
3、件)THEN(作用)”形式表示的控制规则,通过模糊推理得到控制作用集,作用于被控对象或过程。控制作用集为一组条件语句,状态条件和控制作用均为一组被量化了的模糊语言集,如”正大”、”负大”、”高”等。它们共同构成控制过程的模糊算法,定义模糊子集与建立模糊控制规则、由基本论域转变为模糊集合论域、模糊关系矩阵运算、模糊推理合成与求出控制输出模糊子集、进行清晰化运算,得到精确控制量。本论文主要是对基于模糊系统的智能控制器中的常规模糊控制器和模糊自整定PID控制器进行设计。2 MATLAB语言简介MATLAB是math works公司推出的一套高性能的数值计算和可视化软件,它集数值分析、矩阵运算、信号处
4、理和图形显示于一体,构成了一个方便的、界面友好的用户环境。MATLAB含有丰富的工具箱,其中主要有信号处理、控制系统、神经网络、通信、图像处理、鲁棒控制,非线性系统控制设计、系统辨识、最优化、分析与综合、模糊系统等工具箱。这些工具箱给各个领域的研究和工程应用提供了有力的工具,借助这些工具,各个层次的研究人员可直观、方便地进行分析、计算及设计工作,从而大大地节省编程时间。MATLAB语言具有较高的运算精度,符合一般科学和工程运算的要求。MATLAB是以复数矩阵作为基本编程单元的一种高级程序设计语言,它提供了各种矩阵的运算与操作,并有较强的绘图功能,得到了广泛的应用,成为当今国际领域中应用最广、最
5、受人们喜爱的一种软件环境。本论文的软件部分是在MATLAB6.5下编写完成的。3模糊逻辑控制理论3.1 模糊集合定义:给定论域X,A=x是X中的模糊集合的含义是 (1) 这样的隶属度函数表示其特征的集合。若A(x)接近1,表示X属于A的程度高,A(x)接近于0,表示X属于A的程度低。表示方法:模糊集合有很多表示方法,最根本的是将它所包含的元素及相应的隶属度函数表示出来。因此它可用如下的形式来表示: (2) 也可表示成如下的形式 (3) 模糊集合的隶属度函数定义:在经典集合中,特征函数只能取0和1两个值,即特征函数与0,1相对应;而在模糊集合中,其特征函数的取值范围从两个元素的集合扩大到在0,1
6、区间连续取值。为了把两者区分开来,就把模糊集合的特征函数称作隶属度函数。图1表示了这两种函数的关系。 图1隶属度函数3.2 模糊关系和模糊语言变量(1)模糊关系的定义定义:n元模糊关系R是定义在直积X1Xn上的模糊集合,它可表示为 (4)模糊关系的合成设是X,Y,Z是论域,R是X到Y的一个模糊关系,S是Y到Z的一个模糊关系,则R到S的合成T也是一个模糊关系,记为T=RS,它具有隶属度 (5)其中,是并的符号,它表示对所有取最大值或上界值,*是二项积的符号。因此,上面的合成称为最大星合成。其中二项算子“*”可以定义为以下几种运算,其中x,y0,1 交积: (6) 代数积: (7) 有界积: (8
7、)强制积: (9) 若二项积采用求交运算,则称为最大最小合成。这是常用的一种合成方法。(2)模糊语言变量定义:带有模糊性的语言称为模糊语言。模糊语言变量用一个有五个元素的集合(X,T(X),U,G,M)表示,其中X是语言变量名;T(X)是语言变量名的集合,且每个值都是在U上定义的模糊数Xi;U为语言变量X的论域;G为产生X数值名的语言值规则,是用于产生语言变量值的;M为与每个语言变量含义相联系的算法规则,它们的关系下图所示。 图2隶属度函数(3)模糊蕴含关系的运算方法模糊蕴含最小运算: (10) 模糊蕴含积运算 (11)模糊蕴含算术运算 (12)模糊蕴含的最大最小运算 (13)模糊蕴含的布尔运
8、算 (14) 模糊蕴含的标准法运算 (15) 其中为1(当)或0(当) 模糊蕴含的标准法运算 (16)其中为1(当3.3模糊逻辑推理 (1)模糊条件推理在模糊逻辑控制中,经常用到模糊条件推理。其形式是:如果什么什么,那么怎么怎么,否则怎么怎么。用语言规则表示为:如果是A,那么是B,否则是C 。其逻辑表达式是: (17)(2)多输入模糊推理以上讨论的都是模糊推理关系的前件部为一个输入的情况,但在模糊控制系统中经常遇到的问题往往是多输入的,特别是两输入的情况,例如“如果压力偏高且还在继续升高,那么停止加热”这样的规则。其一般形式为如果A且B,那么C现在A且B结论:那么C这里假设A和A,B和B,C和
9、C分别是不同论域X,Y,Z上的模糊集合。“A且B,那么C”的隶属度度表达为 (18) (3)多输入多规则模糊推理以上介绍的是多输入的情况,下面讨论是多输入又是多推理规则的情况。以两输入多规则情况为例,若有n条规则,其一般形式为:如果A1且B1,那么C1;否则如果A2且B2,那么C2;否则如果A3且B3,那么C3否则如果An且Bn,那么Cn;现在A且B结论那么C。这里假设Ai和A,Bi和B,Ci和C分别是不同论域X,Y,Z上的模糊集合。“Ai且Bi,那么Ci”的隶属度表达式为 (19)若用定义蕴含关系ABAB,则上式变成 (20)推理结果为 (21) 其中(4)模糊推理的性质性质1: 若合成运算
10、符“”采用最大最小法或最大积法,连接词“also”采用并法,则“”和 “also”的运算次序可以交换,即 (22)性质2:若模糊蕴含关系采用和时,则有 (23)性质3:对于的推理结果可以用如下简洁的形式表示 当模糊蕴含运算采用时 当模糊蕴含运算采用时其中 3.4模糊化运算(1)单点模糊集合如果输入量数据x。是准确的,则通常将其模糊化为单点模糊集合。设模糊集合用A表示。 (24) 图3隶属度函数 (2)三角模糊集合 如果输入量数据存在随机噪声,这时模糊运算相当于随机变量为模糊量。对于这种情况可以取模糊量的隶属度函数为等腰三角形,如图4所示。三角形的顶点相应于该随机数的均值,底边的长度等2,表示随
11、机数据的标准差。由于本设计的输入量是准确的,因此采用单点模糊集合进行模糊化运算。 图4隶属度函数3.5清晰化方法清晰化方法又叫解模糊化方法。通过模糊推理得到的结果是一个模糊集合或隶属度函数,但在实际使用中,特别是在模糊逻辑控制中,必须要用一个确定的值才能进行控制。在推理得到的模糊集合中取一个相对最能代表这个模糊集合的单值的过程叫作清晰化。常用的清晰化方法主要有以下几种方法。其中系数加权平均法用的较多。(1)重心法所谓重心法就是取隶属度函数曲线与横坐标轴围成面积作为代表点。理论上说应该计算输出范围内一系列连续点的重心,但实际上是通过计算输出范围内整个点的重心,这是一种折衷方案。即 (22)(2)
12、最大隶属度法这种方法最简单,只要在推理结论的模糊集合中取最大的那个元素作为输出量即可。不过要求这种情况下其隶属度函数曲线一定是凸模糊集合。如果该曲线是梯形平顶的,那么具有最大隶属度的元素可能不止一个,这时就要所有取最大隶属度的元素求平均值。(3)系数加权平均法系数加权平均法的输出由下式决定: (23)这里的系数ki的选择要根据实际情况而定,不同的系数决定系统有不同的响应特性。当选时,即取隶属度函数时,这就是重心法。在模糊控制中,可以通过选择和调整该系数来改善系统的响应特性。这种方法比较灵活。(4)隶属度限幅元素平均法用所确定的隶属度值对隶属度函数曲线进行分割,再对切割后等于该隶属度的所有元素进
13、行平均,用这个平均值作为输出执行量,这种方法称为隶属度限幅cut元素平均法。4常规模糊控制器的设计4.1常规模糊控制器的结构和组成(1)常规模糊控制器的基本结构常规模糊控制器的基本结构如图5所示。常规模糊控制器的组成:模糊化,首先对输入量进行处理以变成模糊控制器要求的输入量,将上述已经处理的输入量进行标度变换到个自的论域范围,将已经变换到论域范围的输入量进行模糊处理,使原先精确的输入量变成模糊量,并用相应的模糊集合表示;知识库,由数据库和规则库两部分组成。数据库主要包括各语言变量的隶属度函数,尺度变换因子,以及模糊空间的分级数等。规则库包括了用语言变量表示的一系列控制规则。它们反映了控制专家的
14、经验和知识;模糊推理,模糊推理是模糊控制器的核心,它是具有模拟人的基于模糊概念的推理能力。该推理过程是基于模糊逻辑中的蕴含关系及推理规则来进行的;清晰化,将模糊的控制量经清晰化变成表示在论域范围的清晰量,将表示在论域范围的清晰量经尺度变换成实际的控制量。(2)数据库输入量变换对于实际的输入量,将其变换到要求的论域范围。例如,若实际的输入量为,其变化范围为,若要求的论域为,采用线性变换,则有 ,其中为比例因子。 (24)输入和输出空间的模糊分割本设计的输入量为系统误差和误差的变化,输出量为控制量,它们的模糊集合及其论域定义如下,取和是为了提高精度。模糊集合为 ;的模糊集合为 ;的模糊集合为 ;的
15、论域为 ;的论域为 ;的论域为 。4.2 模糊集合的隶属度函数及模糊控制规则表(1)隶属度函数误差e、误差的变化ec及控制量u的隶属度函数如表1、表2、表3所示。由专家知识和经验得到的模糊控制规则表如表4所示。 表1e的隶属度函数模糊集合 e的论域-3 -2 -1 -0 +0 1 2 3 PB PS PZ NZ NS NB 0 0 0 00 1 0 0 0 0 0.5 0.5 0 0 0 0.5 1 0.5 0 0 0 1 0.5 0 0 0.5 1 0 0 0 0 1 0.5 0 0 0 0.5 0.5 0 0 0 0 1 0 0 0 0 0 表2ec的隶属度函数 模糊集合-3-2-1012
16、3 PBPSZNSNB000010000.50.5000.51000.510.50010.5000.50.500010000 表3u的隶属度函数模糊 集 合 u的论域-4 -3-2-101234PBPSZNSNB000010000.50.700010.2000.50.500010000.50.5000.210000.70.500010000 表4模糊控制规则表u eceNB NSZPS PBNBPBPBPBPSZNSPBPSPSZNSNZPBPSZZNBPZPBZZNSNBPSPSZNSNSNBPBZNSNSNBNB(2)模糊控制规则表的清晰化计算下面根据不同的输入量,求出输出量的值。假设an
17、d用求交法;合成用最大最小法;模糊蕴含用求交法;清晰化采用系数加权平均法(重心法);模糊化采用单点模糊集合。当,时,由表1和表2可以看出,e只与模糊状态NB有关,对应的隶属度,因为其它模糊状态对应的隶属度为零,对计算过程不影响;只与模糊状态NB有关,对应的隶属度,因为其它模糊状态对应的隶属度也为零。由模糊控制规则表可知,当为且为时,为。运用模糊推理的性质3可方便地计算出输出量u对应的隶属度函数。 (25)所以,当,时,对应的, (26)同理,用同样的方法可计算出当和为其他值时,对应的值。当和为其他值时,对应的值如表5所示。 表5模糊控制器的响应表ec的 论 域 e的论域-3-2-1-0+012
18、330-1-1.854-1.854-3.42-3.42-2.833-3.42210-1.252-1.252-1.252-1.868-1.873-2.83312.6871.2520.831-0.674-0.674-0.868-1.873-3.4202.8141.2521.1691.1690-0.806-1.252-2.814-13.422.2481.1691.1691-0.482-0.618-2.687-22.8332.2482.2481.2521.2521.2520-1-33.422.8333.423.423.422.687104.3软件实现用MATLAB语言(MATLAB 6.5)对模糊控制
19、器进行编程。(1)程序的编写步骤:建立新的模糊推理系统。格式为: a=newfis(fisName,fisType,andMethod,orMethod,impMethod,aggMethod,defuzzMethod)。如a=newfis(Tip)添加输入、输出变量。格式为:a=addvar(a,varType,varNamevarBounds)如 a=addvar(a,input,service0 10)给变量指定模糊变量,并设计隶属度函数。常用的隶属度函数用:钟形隶属度函数(gbellmf),S形隶属度函数(smf),梯形隶属度函数(trapmf),三角形隶属度函数(trimf),Z形隶
20、属度函数(zmf). 添加隶属度函数的格式为:a=addmf(a,varType,varIndexmfName,mfType,mfParams).如 a=addmf(a,input,1,Good,smf,1 8)编写模糊推理规则模糊推理规则表的编写方法为:模糊推理规则表为矩阵形式。当模糊系统有m个输入和n个输出时,规则列表有m+n+2列,前m列表示系统的输入,每列的数值表示输入变量隶属度函数的编号;接着的n的列表示系统的输出,每列的数值表示输出变量的隶属度函数的编号;第m+n+1列的内容为该条规则的权值(0或1);第m+n+2列的值决定模糊操作的类型:1(当模糊操作符为and时)或2(当模糊操
21、作符为or时)。如 ruleList=1 1 1 1 1;1 2 2 1 1,a=addrule(a,ruleList) (2)模糊控制器的实现程序为:a=newfis(hfuz);a=addvar(a,input,e,-3,3);a=addmf(a,input,1,NB,zmf,-3,-1);a=addmf(a,input,1,NS,trimf,-3,-1,-0);a=addmf(a,input,1,NZ,trimf,-2,0,0);a=addmf(a,input,1,PZ,trimf,0,0,2);a=addmf(a,input,1,PS,trimf,0,1,3);a=addmf(a,in
22、put,1,PB,smf,1 3);a=addvar(a,input,ec,-3,3);a=addmf(a,input,2,NB,zmf,-3,-1);a=addmf(a,input,2,NS,trimf,-3,-1,1);a=addmf(a,input,2,Z,trimf,-2,0,2);a=addmf(a,input,2,PS,trimf,-1,1,3);a=addmf(a,input,2,PB,smf,1,3);a=addvar(a,output,u,-4,4);a=addmf(a,output,1,NB,zmf,-4,-1);a=addmf(a,output,1,NS,trimf,-4
23、,-2,1);a=addmf(a,output,1,Z,trimf,-2,0,2);a=addmf(a,output,1,PS,trimf,0,2,4);a=addmf(a,output,1,PB,smf,1,4);rulelist=1 1 5 1 1;1 2 5 1 1;1 3 5 1 1;1 4 4 1 1;1 5 3 1 1;2 1 5 1 1;2 2 4 1 1;2 3 4 1 1;2 4 3 1 1;2 5 2 1 1;3 1 5 1 1;3 2 4 1 1;3 3 3 1 1;3 4 3 1 1;3 5 1 1 1;4 1 5 1 1;4 2 3 1 1;4 3 3 1 1;4 4
24、 2 1 1;4 5 1 1 1;5 1 4 1 1;5 2 3 1 1;5 3 2 1 1;5 4 2 1 1;5 5 1 1 1;6 1 3 1 1;6 2 2 1 1;6 3 2 1 1;6 4 1 1 1 ;6 5 1 1 1;a=addrule(a,rulelist);showrule(a);a=setfis(a,DefuzzMethod,centroid);writefis(a,hfuz);a=readfis(hfuz);figure(1)gensurf(a)Ulist=zeros(7,8);for i=1:7 for j=1:8 e=-4+j; if e0 e=e; else e
25、=e-1; end ec=-(i-4); Ulist(i,j)=evalfis(e,ec,a); endendUlist=Ulist程序运行后可得到30条规则、控制规则表及模糊推理系统图图6: ans =1. If (E is NB) and (Ec is NB) then (U is PB) (1) 2. If (E is NB) and (Ec is NS) then (U is PB) (1) 3. If (E is NB) and (Ec is Z) then (U is PB) (1) 4. If (E is NB) and (Ec is PS) then (U is PS) (1)
26、 5. If (E is NB) and (Ec is PB) then (U is Z) (1) 6. If (E is NS) and (Ec is NB) then (U is PB) (1) 7. If (E is NS) and (Ec is NS) then (U is PS) (1) 8. If (E is NS) and (Ec is Z) then (U is PS) (1) 9. If (E is NS) and (Ec is PS) then (U is Z) (1) 10. If (E is NS) and (Ec is PB) then (U is NS) (1)11
27、. If (E is NZ) and (Ec is NB) then (U is PB) (1)12. If (E is NZ) and (Ec is NS) then (U is PS) (1)13. If (E is NZ) and (Ec is Z) then (U is Z) (1) 14. If (E is NZ) and (Ec is PS) then (U is Z) (1) 15. If (E is NZ) and (Ec is PB) then (U is NB) (1)16. If (E is PZ) and (Ec is NB) then (U is PB) (1)17.
28、 If (E is PZ) and (Ec is NS) then (U is Z) (1) 18. If (E is PZ) and (Ec is Z) then (U is Z) (1) 19. If (E is PZ) and (Ec is PS) then (U is NS) (1)20. If (E is PZ) and (Ec is PB) then (U is NB) (1)21. If (E is PS) and (Ec is NB) then (U is PS) (1)22. If (E is PS) and (Ec is NS) then (U is Z) (1) 23.
29、If (E is PS) and (Ec is Z) then (U is NS) (1) 24. If (E is PS) and (Ec is PS) then (U is NS) (1)25. If (E is PS) and (Ec is PB) then (U is NB) (1)26. If (E is PB) and (Ec is NB) then (U is Z) (1) 27. If (E is PB) and (Ec is NS) then (U is NS) (1)28. If (E is PB) and (Ec is Z) then (U is NS) (1) 29.
30、If (E is PB) and (Ec is PS) then (U is NB) (1)30. If (E is PB) and (Ec is PB) then (U is NB) (1) Ulist = 0.0000 -1.0000 -1.8641 -1.8641 -3.1481 -3.1481 -2.9892 -3.14811.0000 -0.0000 -1.2629 -1.2629 -1.2629 -1.8730 -1.8730 -2.98922.2016 1.2629 0.8331 0.8331 -1.0074 -1.1669 -1.8730 -2.18262.5314 1.262
31、9 1.1669 1.1669 -0.0000 -1.1669 -1.2629 -1.86413.1481 2.2586 1.1669 1.1669 1.0000 -0.8331 -1.0000 -1.66642.9892 2.2586 2.2586 2.2586 1.2629 1.2629 -0.0000 -1.00003.1481 2.9892 3.1481 3.1481 3.1481 2.2016 1.0000 0.0000图6模糊推理系统4.4控制效果下面通过模糊控制器与常规PID控制器的比较来说明模糊控制器的控制效果。设被控对象为 ,假设系统具有0.07的死区和0.7的饱和区,采样时
32、间间隔T=0.01。用Nd表示系统的延迟(Nd=td/T),用umin表示死区电平,用umax表示饱和电平。模糊控制规则表如图表6。表6模糊控制规则表 e u ec NB NS Z PS PB NB PB PB PS PS Z NS PB PS PS Z Z Z PS PS Z Z NS PS PS Z Z NS NS PB Z Z NS NS NB仿真结果如图7和图8所示。图7Nd=2时的仿真结果图8Nd=4时的仿真结果由图7和图8的曲线图可知,当延迟较小(Nd2)时,采用模糊控制,系统的超调量比采用常规PID控制小,上升时间比采用常规PID控制稍长,调节时间比采用常规PID控制短得多;当延
33、迟较大(Nd4)时,采用模糊控制,系统的超调量同样比采用常规PID控制小,上升时间同样比采用常规PID控制稍长,但调节时间比采用常规PID控制短了许多。还可以得出当Nd取更大的值时,模糊控制系统曲线变化不大,但常规PID控制系统曲线趋向于不稳定。因此,当系统比较复杂时采用模糊控制器比采用常规PID控制器的效果要好。另外,在高阶或系统模型难以确定的系统中,采用模糊控制要比采用常规PID控制的效果好。5结论论文通过通过对模糊控制理论的论述,设计了一个常规模糊控制器,并通过具体实例进行了仿真验证,仿真结果证实了模糊控制器的有效性和优越性。参考文献1 刘金琨,先进PID控制及其MATLAB仿真,电子工
34、业出版社,2003。2 薛定宇,反馈控制系统设计与分析MATLAB语言应用,清华大学出版社,2000。3 孙增圻,智能控制理论与技术,清华大学出版社,1997。4 窦振中,模糊逻辑控制技术及其应用,北京航空航天大学出版社,1995。5 李人厚,智能控制理论与方法,西安电子科技大学出版社,1999。6 王耀南,智能控制系统模糊逻辑专家系统神经网络控制,湖南大学出版社,1996。7 楼顺天,基于MATLAB的系统分析与设计模糊系统,西安电子科技大学出版社,2001。 Fuzzy Controller Design of MATLAB SimulationWang Qiao(School of Ph
35、ysics and Electrical Engineering of Anqing Normal College, Anqing , 246011)Abstract: With the rapid development of modern science and technology, the scale of production systems is growing, forming a complex system, leading to a control object with the growing complexity of the controller, and contr
36、ol tasks and objectives. Complexity of the system mainly in: plant model uncertainty, the ambiguity of the system information, highly nonlinear input diversified, multi-level and multi-objective control requirements, computational complexity and huge data processing and stringent performance indicators. The design and analysis of fuzzy control theory principle, given the conventional fuzzy controller design method in MATLAB simulation and experimental results verify the effectiveness of the controller.Keywords: fuzzy control, PID control, MATLAB simulation 13