第3章 模糊逻辑控制
3.1 模糊控制的基本原理
3.1.1 模糊控制原理
模糊控制是以模糊集理论、模糊语言变量和模糊逻辑推理为基础的一种智能控制方法,它从行为上模仿人的模糊推理和决策过程。该方法首先将操作人员或专家经验编成模糊规则,然后将来自传感器的实时信号模糊化,将模糊化后的信号作为模糊规则的输入,完成模糊推理,将推理后得到的输出量加到执行器上。
模糊控制的基本原理框图如图3.1所示。它的核心部分为模糊控制器,如图中点画线框中部分所示,模糊控制器的控制规律由计算机的程序实现。实现一步模糊控制算法的过程描述如下:微型计算机经中断采样获取被控制量的精确值,然后将此量与给定值比较得到误差信号E,一般选误差信号E作为模糊控制器的一个输入量。把误差信号E的精确量进行模糊化,变成模糊量。误差E的模糊量可用相应的模糊语言表示,得到误差E的模糊语言集合的一个子集(是一个模糊矢量),再由和模糊控制规则(模糊算子)根据推理的合成规则进行模糊决策,得到模糊控制量
图3.1 模糊控制原理框图
由图3.1可知,模糊控制系统与通常的计算机数字控制系统的主要差别是采用了模糊控制器。模糊控制器是模糊控制系统的核心,一个模糊控制系统的性能优劣,主要取决于模糊控制器的结构、所采用的模糊规则、合成推理算法以及模糊决策的方法等因素。
模糊控制器(Fuzzy Controller,FC)也称为模糊逻辑控制器(Fuzzy Logic Controller,FLC),由于所采用的模糊控制规则是由模糊理论中模糊条件语句来描述的,因此模糊控制器是一种语言型控制器,故也称为模糊语言控制器(Fuzzy Language Controller,FLC)。
3.1.2 模糊控制器的组成
模糊控制器的组成框图如图3.2所示。
图3.2 模糊控制器的组成框图
1.模糊化接口(Fuzzy Interface)
模糊控制器的输入必须通过模糊化才能用于控制输出的求解,因此它实际上是模糊控制器的输入接口。它的主要作用是将真实的确定量输入转换为一个模糊矢量。对于一个模糊输入变量e,其模糊子集通常可以做如下方式划分:
(1)={负大,负小,零,正小,正大}={NB,NS,ZO,PS,PB}。
(2)={负大,负中,负小,零,正小,正中,正大}={NB,NM,NS,ZO,PS,PM,PB}。
(3)={大,负中,负小,零负,零正,正小,正中,正大}={NB,NM,NS,NZ,PZ,PS,PM,PB}。
用三角型隶属度函数表示如图3.3所示。
图3.3 模糊子集和模糊化等级
2.知识库(Knowledge Base,KB)
知识库由数据库和规则库两部分构成。
(1)数据库(Data Base,DB)。数据库所存放的是所有输入、输出变量的全部模糊子集的隶属度矢量值(即经过论域等级离散化以后对应值的集合),若论域为连续域则为隶属度函数。在规则推理的模糊关系方程求解过程中,向推理机提供数据。
(2)规则库(Rule Base,RB)。模糊控制器的规则是基于专家知识或手动操作人员长期积累的经验,它是按人的直觉推理的一种语言表示形式。模糊规则通常由一系列的关系词连接而成,如if-then、else、also、end、or等,关系词必须经过“翻译”才能将模糊规则数值化。最常用的关系词为if-then、also,对于多变量模糊控制系统,还有and等。例如,某模糊控制系统输入变量为e(误差)和ec(误差变化),它们对应的语言变量为E和EC,可给出一组模糊规则:
R1:IF E is NB and EC is NB then U is PB
R2:IF E is NB and EC is NS then U is PM
通常把if…部分称为“前提部”,而then…部分称为“结论部”,其基本结构可归纳为IfA and B then C,其中A为论域U上的一个模糊子集,B是论域V上的一个模糊子集。根据人工控制经验,可离线组织其控制决策表R,R是笛卡儿乘积集U×V上的一个模糊子集,则某一时刻其控制量由下式给出
式中:×——模糊直积运算;
º——模糊合成运算。
规则库是用来存放全部模糊控制规则的,在推理时为“推理机”提供控制规则。由上述可知,规则条数和模糊变量的模糊子集划分有关,划分越细,规则条数越多,但并不代表规则库的准确度越高,规则库的“准确性”还与专家知识的准确度有关。
3.推理与解模糊接口(Inference and Defuzzy-interface)
推理是模糊控制器中,根据输入模糊量,由模糊控制规则完成模糊推理来求解模糊关系方程,并获得模糊控制量的功能部分。在模糊控制中,考虑到推理时间,通常采用运算较简单的推理方法。最基本的有Zadeh近似推理,它包含有正向推理和逆向推理两类。正向推理常被用于模糊控制中,而逆向推理一般用于知识工程学领域的专家系统中。
推理结果的获得,表示模糊控制的规则推理功能已经完成。但是,至此所获得的结果仍是一个模糊矢量,不能直接用来作为控制量,还必须做一次转换,求得清晰的控制量输出,即为解模糊。通常把输出端具有转换功能作用的部分称为解模糊接口。
综上所述,模糊控制器实际上就是依靠计算机(或单片机)来构成的,它的绝大部分功能都是由计算机程序来完成。随着专用模糊芯片的研究和开发,也可以由硬件逐步取代各组成单元的软件功能。
3.1.3 模糊控制系统的工作原理
以水位的模糊控制为例,如图3.4所示,设有一个水箱,通过调节阀可向内注水和向外抽水。设计一个模糊控制器,通过调节阀门将水位稳定在固定点附近。按照日常的操作经验,可以得到如下基本的控制规则:
图3.4 水箱液位控制
• 若水位高于O点,则向外排水,差值越大,排水越快。
• 若水位低于O点,则向内注水,差值越大,注水越快。
根据上述经验,可按下列步骤设计一维模糊控制器。
1.确定观测量和控制量
定义理想液位O点的水位为h0,实际测得的水位高度为h,选择液位差
e=Δh=h0-h
将当前水位对于O点的偏差e作为观测量。
2.输入量和输出量的模糊化
将偏差e分为5级,分别为负大(NB)、负小(NS)、零(O)、正小(PS)和正大(PB),并根据偏差e的变化范围分为7个等级,分别为-3、-2、-1、0、+1、+2和+3,从而得到水位变化模糊表,如表3.1所示。
表3.1 水位变化e划分表
控制量u为调节阀门开度的变化,将其分为5级:负大(NB)、负小(NS)、零(O)、正小(PS)和正大(PB)。并根据u的变化范围分为9个等级:-4、-3、-2、-1、0、+1、+2、+3和+4,从而得到控制量模糊划分表,如表3.2所示。
表3.2 控制量u变化划分表
3.模糊规则的描述
根据日常的经验,设计以下模糊规则
Rule1:若e负大,则u正大
Rule2:若e负小,则u正小
Rule3:若e为0,则u为0
Rule4:若e正小,则u负小
Rule5:若e正大,则u负大
上述规则采用IF A THEN B的形式来描述
Rule1:if e=NB thenu=NB
Rule2:if e=NS thenu=NS
Rule3:if e=0 thenu=0
Rule4:if e=PS thenu=PS
Rule5:if e=PB thenu=PB
根据上述经验规则,可得模糊控制表,如表3.3所示。
表3.3 模糊控制规则表
4.求模糊关系
模糊控制规则是一个多条语句,它可以表示为U×V上的模糊子集,即模糊关系R
R=(NBe×NBu)∪(NSe×NSu)∪(Oe×Ou)∪(PSe×PSu)∪(PBe×PBu)
其中规则内的模糊集运算取交集,规则间的模糊集运算取并集。
由以上5个模糊矩阵求并集(即隶属函数最大值),得
5.模糊决策
模糊控制器的输出为误差向量和模糊关系的合成,即
u=eºR
当误差e为NB时,e=[1.0 0.5 0 0 0 0 0],控制器输出为
6.控制量的反模糊化
由模糊决策可知,当误差为负大时,实际液位远高于理想液位,e=NB,控制器的输出为一模糊向量,可表示为
如果按照“隶属度最大原则”进行反模糊化,选择控制量为u=-4,即阀门的开度应关小一些,减少进水量。
按上述步骤,设计水箱液位模糊控制的MATLAB仿真程序见chap3_1.m。取flag=1,可得到模糊系统的规则库并可实现模糊控制的动态仿真。模糊控制响应表如表3.4所示。取偏差e=-3,得u=-3.1481。
表3.4 模糊控制响应表
仿真程序:chap3_1.m
3.1.4 模糊控制器结构
在确定性控制系统中,根据输入变量和输出变量的个数,可分为单变量控制系统和多变量控制系统。在模糊控制系统中也可类似地划分为单变量模糊控制和多变量模糊控制。
1.单变量模糊控制器
在单变量模糊控制器(Single Variable Fuzzy Controller,SVFC)中,将其输入变量的个数定义为模糊控制的维数,如图3.5所示。
图3.5 单变量模糊控制器
(1)一维模糊控制器。
如图3.5(a)所示,一维模糊控制器的输入变量往往选择为受控量和输入给定的偏差量E。由于仅仅采用偏差值,很难反映过程的动态特性品质,因此,所能获得的系统动态性能是不能令人满意的。这种一维模糊控制器往往被用于一阶被控对象。
(2)二维模糊控制器。
如图3.5(b)所示,二维模糊控制器的两个输入变量基本上都选用受控变量和输入给定的偏差E和偏差变化EC,由于它们能够较严格地反映受控过程中输出变量的动态特性,因此,在控制效果上要比一维控制器好得多,也是目前采用较广泛的一类模糊控制器。
(3)三维模糊控制器。
如图3.5(c)所示,三维模糊控制器的3个输入变量分别为系统偏差量E、偏差变化量EC和偏差变化的变化率ECC。由于这些模糊控制器结构较复杂,推理运算时间长,因此除非对动态特性的要求特别高的场合,一般较少选用三维模糊控制器。
上述三类模糊控制器的输出变量,均选择了受控变量的变化值。从理论上讲,模糊控制系统所选用的模糊控制器维数越高,系统的控制精度也就越高。但是维数选择太高,模糊控制规律就过于复杂,基于模糊合成推理的控制算法的计算机实现,也就更困难,这也许是人们在设计模糊控制系统时,多数采用二维控制器的原因。在需要时,为了获得较好的上升段特性和改善控制器的动态品质,也可以对模糊控制器的输出量做分段选择,即在偏差E为“大”时,以控制量的绝对值为输出,而当偏差E为“小”或“中等”时,则仍以控制量的增量为输出。
2.多变量模糊控制器
一个多变量模糊控制器(Multiple Variable Fuzzy Controller)系统所采用的模糊控制器,往往具有多变量结构,称为多变量模糊控制器,如图3.6所示。
图3.6 多变量模糊控制器
要直接设计一个多变量模糊控制器是相当困难的,可利用模糊控制器本身的解耦特点,通过模糊关系方程求解,在控制器结构上实现解耦,即将一个多输入-多输出(MIMO)的模糊控制器,分解成若干个多输入-单输出(MISO)的模糊控制器,这样可采用单变量模糊控制器方法设计。