第三章模糊控制的理论基础第一节概述一、模糊控制的提出以往的各种传统控制方法均是建立在被控对象精确数学模型基础上的,然而,随着系统复杂程度的提高,将难以建立系统的精确数学模型。在工程实践中,人们发现,一个复杂的控制系统可由一个操作人员凭着丰富的实践经验得到满意的控制效果。这说明,如果通过模拟人脑的思维方法设计控制器,可实现复杂系统的控制,由此产生了模糊控制。二、模糊控制的特点模糊控制是建立在人工经验基础之上的。对于一个熟练的操作人员,他往往凭借丰富的实践经验,采取适当的对策来巧妙地控制一个复杂过程。若能将这些熟练操作员的实践经验加以总结和描述,并用语言表达出来,就会得到一种定性的、不精确的控制规则。如果用模糊数学将其定量化就转化为模糊控制算法,形成模糊控制理论。模糊控制理论具有一些明显的特点:(1)模糊控制不需要被控对象的数学模型。模糊控制是以人对被控对象的控制经验为依据而设计的控制器,故无需知道被控对象的数学模型。(2)模糊控制是一种反映人类智慧的智能控制方法。模糊控制采用人类思维中的模糊量,如“高”、“中”、“低”、“大”、“小”等,控制量由模糊推理导出。这些模糊量和模糊推理是人类智能活动的体现。(3)模糊控制易于被人们接受。模糊控制的核心是控制规则,模糊规则是用语言来表示的,如“今天气温高,则今天天气暖和”,易于被一般人所接受。(4)构造容易。模糊控制规则易于软件实现。(5)鲁棒性和适应性好。通过专家经验设计的模糊规则可以对复杂的对象进行有效的控制。第二节模糊集合一、模糊集合模糊集合是模糊控制的数学基础。1.特征函数和隶属函数在数学上经常用到集合的概念。例如:集合A由4个离散值x1,x2,x3,x4组成。A={x1,x2,x3,x4}例如:集合A由0到1之间的连续实数值组成。0.10.0,,xRxxA以上两个集合是完全不模糊的。对任意元素x,只有两种可能:属于A,不属于A。这种特性可以用特征函数来描述:)(xAAxAxxA01)(为了表示模糊概念,需要引入模糊集合和隶属函数的概念:其中A称为模糊集合,表示元素x属于模糊集合A的程度,取值范围为[0,1],称为x属于模糊集合A的隶属度。的程度属于AxxA]1,0[)()(xA)(xA2.模糊集合的表示对于论域U上的模糊集合A,通常采用的表示方法有四种,分别为Zadeh表示法,矢量表示法,序偶表示法和函数表示法。1.ZADEH表示法:(1)当U为离散有限域{u1,u2,…,un},U上的模糊集合A可表示为:A=μA(u1)/u1+μA(u2)/u2+…+μA(un)/un式中A(ui)/ui并不代表“分式”,而是表示元素ui对于集合A的隶属度μA(ui)和元素ui本身的对应关系,同样,“+”号也不表示“加法”运算,而是表示在论域U上,组成模糊集合A的全体元素ui(i=1,2,…,n)间排序与整体间的关系。(2)当U为连续有限域,按ZADEH给出的表示为A=∫μA(u)/u式中∫(积分符号)也并不表示求积分运算,而是表示连续论域U上的元素ui与隶属度μA(ui)一一对应的总体集合。【例一】设论域U={},a表示“漂亮时装”这一模糊概念,其外延是一个模糊集合A,设这五套时装对a的隶属度分别为μA()=0.7,μA()=0.9,μA()=0.6,μA()=0.4,μA()=0,则模糊子集A可由ZADEH表示法记为A=0.7/+0.9/+0.6/+0.4/+0/(可省)54321,,,,uuuuu1u1u2u3u4u5u2u3u4u5u【例二】以年龄作为论域,取U=[0,200].ZADEH给出了“年老O”和“年轻Y”两个模糊集的隶属函数式,分别为20050])550(1[5000)(12uuuuO20025])525(1[2501)(12uuuuY2.函数描述法2002512250]5251[1uuuuuY2005012500]5501[0uuuuuO用连续有限域的Zadeh表示法,两个模糊子集为3.序偶表示法若将论域U中元素与其对应的隶属函数值μA()组成序偶{,μA(),,μA(),…,,μA()}上例模糊子集A表示为:A={,0.7,,0.9,,0.6,,0.4,,0}隶属度为零的项不能省4.矢量表示法如果单纯将论域U中元素所对应的隶属函数值μA(),由按序写成的矢量形式来表示模糊子集A,则可为A=(μA(),μA(),…,μA())(隶属度为零的项不能省)iuiu1u1u2u2uiu1u2uiu3u4uiuiu1u2unu5u例3.2设论域U={张三,李四,王五},评语为“学习好”。设三个人学习成绩总评分是张三得95分,李四得90分,王五得85分,三人都学习好,但又有差异。若采用普通集合的观点,选取特征函数AAuCA学习差学习好01)(此时特征函数分别为(张三)=1,(李四)=1,(王五)=1。这样就反映不出三者的差异。假若采用模糊子集的概念,选取[0,1]区间上的隶属度来表示它们属于“学习好”模糊子集A的程度,就能反映出三人的差异。采用隶属函数,由三人的成绩可知三人“学习好”的隶属度为(张三)=0.95,(李四)=0.90,(王五)=0.85。用“学习好”这一模糊子集A可表示为:,0.85}{0.95,0.90A100/)(xxA其含义为张三、李四、王五属于“学习好”的程度分别是0.95,0.90,0.85。例3.3以年龄为论域,取。Zadeh给出了“年轻”的模糊集Y,其隶属函数为1002552512500.1)(12xxxxY100,0X通过Matlab仿真对上述隶属函数作图,隶属函数曲线如图所示。02040608010012000.10.20.30.40.50.60.70.80.91XYearsDegreeofmembership图3_1“年轻”的隶属函数曲线二、模糊集合的运算1模糊集合的基本运算由于模糊集是用隶属函数来表征的,因此两个子集之间的运算实际上就是逐点对隶属度作相应的运算。(1)空集模糊集合的空集为普通集,它的隶属度为0,即0)(uAA(2)全集模糊集合的全集为普通集,它的隶属度为1,即1)(uEAA(3)等集两个模糊集A和B,若对所有元素u,它们的隶属函数相等,则A和B也相等。即)()(uuBABA(4)补集若为A的补集,则)(1)(uuAAAA例如,设A为“成绩好”的模糊集,某学生属于“成绩好”的隶属度为:则属于“成绩差”的隶属度为:2.08.01)(0uA0u8.0)(0uA0u(5)子集若B为A的子集,则)()(uuABAB(6)并集若C为A和B的并集,则C=A∪B一般地,)()())(),(max()(uuuuuBABABABA(7)交集若C为A和B的交集,则C=A∩B一般地,)()())(),(min()(uuuuuBABABABA(8)模糊运算的基本性质模糊集合除具有上述基本运算性质外,还具有下表所示的运算性质。运算法则1.幂等律A∪A=A,A∩A=A2.交换律A∪B=B∪A,A∩B=B∩A3.结合律(A∪B)∪C=A∪(B∪C)(A∩B)∩C=A∩(B∩C)4.吸收律A∪(A∩B)=AA∩(A∪B)=A5.分配律A∪(B∩C)=(A∪B)∩(A∪C)A∩(B∪C)=(A∩B)∪(A∩C)6.复原律AA7.对偶律8.两极律A∪E=E,A∩E=AA∪Ф=A,A∩Ф=ФBABABABA例3.4设求A∪B,A∩B则43215.08.02.09.0uuuuA43216.04.01.03.0uuuuB43216.08.02.09.0uuuuBA43215.04.01.03.0uuuuBA例3.5试证普通集合中的互补律在模糊集合中不成立,即,证:设,则1)()(uuAA0)()(uuAA4.0)(uA6.04.01)(uA16.06.04.0)()(uuAA04.06.04.0)()(uuAA模糊集及其补集均无明确的边界2模糊算子模糊集合的逻辑运算实质上就是隶属函数的运算过程。采用隶属函数的取大(MAX)-取小(MIN)进行模糊集合的并、交逻辑运算是目前最常用的方法。但还有其它公式,这些公式统称为“模糊算子”。设有模糊集合A、B和C,常用的模糊算子如下:(1)交运算算子设C=A∩B,有三种模糊算子:①模糊交算子②代数积算子③有界积算子)(),()(xxMinxBAc)()()(xxxBAc1)()(,0)(xxMaxxBAc(2)并运算算子设C=A∪B,有三种模糊算子:①模糊并算子②概率或算子(代数和)③有界和算子)(),()(xxMaxxBAc)()()()()(xxxxxBABAc)()(,1)(xxMinxBAc(3)平衡算子当隶属函数取大、取小运算时,不可避免地要丢失部分信息,采用一种平衡算子,即“算子”可起到补偿作用。设C=AoB,则γ取值为[0,1]。当γ=0时,,相当于A∩B时的代数积算子。))(1())(1(1)()()(1xxxxxBABAc)()()(xxxBAc当γ=1时,,相当于A∪B时的概率或算子。平衡算子目前已经应用于德国Inform公司研制的著名模糊控制软件Fuzzy-Tech中。)()()()()(xxxxxBABAc第三节隶属函数一、几种典型的隶属函数在Matlab中已经开发出了11种隶属函数,即双S形隶属函数(dsigmf)、联合高斯型隶属函数(gauss2mf)、高斯型隶属函数(gaussmf)、广义钟形隶属函数(gbellmf)、II型隶属函数(pimf)、双S形乘积隶属函数(psigmf)、S状隶属函数(smf)、S形隶属函数(sigmf)、梯形隶属函数(trapmf)、三角形隶属函数(trimf)、Z形隶属函数(zmf)。在模糊控制中应用较多的隶属函数有以下6种隶属函数。(1)高斯型隶属函数高斯型隶属函数由两个参数和c确定:其中参数通常为正,参数c用于确定曲线的中心。Matlab表示为222)(),,(cxecxfc]),σ[gaussmf(x,(2)广义钟型隶属函数广义钟型隶属函数由三个参数a,b,c确定:其中参数a和b通常为正,参数c用于确定曲线的中心。Matlab表示为bacxcbaxf211),,,(c])b,[a,gbellmf(x,(3)S形隶属函数S形函数sigmf(x,[ac])由参数a和c决定:其中参数a的正负符号决定了S形隶属函数的开口朝左或朝右,用来表示“正大”或“负大”的概念。Matlab表示为sigmf(x,[a,c]).)(11),,(cxaecaxf(4)梯形隶属函数梯形曲线可由四个参数a,b,c,d确定:其中参数a和d确定梯形的“脚”,而参数b和c确定梯形的“肩膀”。Matlab表示为:dxdxccdxdcxbbxaabaxaxdcbaxf010),,,,(d])c,b,[a,trapmf(x,(5)三角形隶属函数三角形曲线的形状由三个参数a,b,c确定:其中参数a和c确定三角形的“脚”,而参数b确定三角形的“峰”。Matlab表示为cxcxbbcxcbxaabaxaxcbaxf00),,,(c])b,[a,trimf(x,(6)Z形隶属函数这是基于样条函数的曲线,因其呈现Z形状而得名。参数a和b确定了曲线的形状。Matl