第 3章 智 能 控 制 现实世界中的被控对象往往是高度非线性的、时变的,同时还具有不确定性,这些特点使得建立其精确的数学模型非常困难。而经典控制理论和现代控制理论都是建立在精确的数学模型的基础上,在缺少精确数学模型的情形下就很难应用。这就需要应用到智能控制。 3.1智能控制理论的基本内容 20世纪70年代初,傅京孙、Gloriso等从控制论角度总结了人工智能技术与自适应、自组织、自学习控制的关系,先后提出智能控制是人工智能技术(AI)与自动控制理论(AC)的交叉; 1977年,Saridis把运筹学(OR)加入其中,是人工智能与自动控制和运筹学的交叉; 1987年,蔡自兴又将信息论(IT)加入其中。因此,目前广泛认为智能控制是控制论、信息论、人工智能与运筹学这四门学科的交叉融合。 文献[8]给出了智能控制的定义。 定义31一种控制方式或一个控制系统,如果它具有学习功能、适应功能和组织功能,能够有效地克服被控对象和环境所具有的难以精确建模的高度复杂性和不确定性,并且能够达到所期望的控制目标,那么称这种控制方式为智能控制,称这种控制系统为智能控制系统。 国内外控制界学者普遍认为,智能控制主要包括三种基本形式: 专家控制、模糊控制和神经网络控制。此外,分层递阶智能控制、学习控制和仿人智能控制也被国内多数学者认为属于智能控制的其他三种形式。 3.2专 家 控 制 3.2.1专家系统 最早的专家系统是美国斯坦福大学的菲根鲍姆教授(E.A.Feigenbaum)在1965年设计的,他把专家系统定义为: “一种智能的计算机程序,它运用知识和推理来解决只有专家才能解决的复杂问题。” 专家系统通常由五个部分组成: 知识库、推理机、数据库、解释部分和知识获取,其结构如图31所示。 图31专家系统的结构 1. 知识库 知识库用适当的方式存储从专家那里获取的领域知识、经验,也包括必要的书本知识和常识,是领域知识的存储器。 2. 数据库 数据库是在专家系统中划出的一部分存储单元,用于存放当前处理对象的用户提供的数据和推理得到的中间结果。 3. 推理机 推理机用于控制和协调整个专家系统的工作,它根据当前的输入数据,再利用知识库的知识,按一定推理策略去处理解决当前的问题。推理策略有正向推理、反向推理和正反向混合推理三种方式。 正向推理是从原始数据和已知条件推断出结论,属于数据驱动方式; 反向推理则是先提出结论和假设,然后寻找支持这个结论和假设的条件或证据,如果成功则结论成立,推理完成,属于目标驱动方式; 正反向混合推理首先运用正向推理帮助系统提出假设,然后运用反向推理寻找支持该假设的证据。 4. 解释 解释也是一组计算机程序,为用户解释推理结果,以便于用户了解推理过程,并回答用户提出的问题,为用户学习和维护系统提供方便。 5. 知识获取 知识获取是通过一组设计的程序,为修改知识库中原有的知识和扩充新知识提供手段,包括删除原有知识,将从专家那里获取的新知识加入到知识库。 3.2.2专家控制 专家控制是将专家系统的理论和技术同控制理论与技术相结合,在未知环境下,仿效专家的智能,实现对系统的控制。专家控制是专家系统在控制领域的应用。从专家系统的组成来看,只要具备知识库和推理机,就具备了基本的专家系统的功能。若还能提供人机接口和知识获取的方式,则就是完整的专家系统。因此,专家控制可以分为交互专家控制和非交互专家控制两种主要形式。 按照系统控制机理,专家控制系统又分为直接专家控制系统和间接专家控制系统。在直接专家控制系统中,专家控制器向系统直接提供控制信号,对被控对象产生作用,如图32所示。 图32直接专家控制 在间接专家控制系统中,专家控制器间接对被控对象产生作用,又称监控式专家控制或参数自适应控制,如图33所示。比较典型的间接专家控制器是专家整定PID控制,它利用专家知识对PID参数进行整定。专家系统对PID控制参数的整定过程包括对系统控制性能的判别,过程响应曲线的特征识别,控制参数调整量的确定以及PID参数的修改。其结构如图34所示。 图33间接专家控制 图34专家整定PID控制器结构 3.3模 糊 控 制 传统的控制方式需要建立被控对象的数学模型,然后根据这一模型精确地计算出所需的控制量来进行控制。当被控对象的数学模型难以建立时,这种传统控制理论的应用就受到了极大的限制。模糊控制是在模糊概念的基础上,利用模糊量实现对系统的合理控制,是从仿人类智能活动的角度去实施控制的。 3.3.1模糊逻辑基础 1. 基本概念 定义32论域U中的模糊子集A,是以隶属函数μA为表征的集合,即由映射 μA:U→0,1 确定论域U中的一个模糊子集A。μA(u)称为U对A的隶属度,它表示论域U中的元素u属于其模糊子集A的程度。它在[0,1]闭区间内可连续取值,隶属度也可简记为A(u)。 隶属函数曲线有多种形式,常用的隶属函数的形状见图35。 图35常用隶属函数的标准形式 确定隶属函数的方法有多种,包括模糊统计法、例证法、专家经验法、二元对比排序法等。 定义33在给定论域U上,对于不同的映射(隶属函数)可以确定不同的模糊子集。所有这些子集组成的模糊集合的全体,称为U的模糊幂集,记为F(U),即 F(U)=A|μA:U→0,1 几点说明: (1) 论域U中的元素是明确的,U本身是普通集合,只是U的子集是模糊集合,故称A为U的模糊子集,简称模糊集。 (2) μA(u)的值越接近1,表示u从属于A的程度越大; 反之,μA(u)越接近0,表示u从属于A的程度越小。 (3) 模糊集合完全由它的隶属函数刻画。 2. 模糊集合及其运算 在电控系统中通常采集的是离散信号,故此处只考虑论域U=u1,u2,…,un为离散有限集的情况。此时,模糊集合主要有三种表示方法: (1) Zadeh表示法 A=A(u1)u1+A(u2)u2+…+A(un)un(31) (2) 序偶法 A=u1,Au1,u2,A(u2),…,un,Aun(32) (3) 向量法 A=Au1,Au2,…,Aun(33) 注意: 式(31)中Au1与u1的分数线不表示除法,而表示论域中的元素与隶属度之间的对应关系; “+”号也不表示求和,而表示U上元素组成集合的总体。 【例31】在由整数1,2,3,4,5组成的论域U=1,2,3,4,5内,定义模糊集合A,B,C分别表示小、中、大三个模糊概念。 这个问题实际上是在1,2,3,4,5范围内,刻画小、中、大三个模糊概念。显然,在论域U内,5完全属于大,而1完全属于小,而3属于中等,于是分别定义 Adef小=11+0.52+03+04+05 Bdef中=01+0.52+13+0.54+05 Cdef大=01+02+03+0.54+05 它们的隶属函数如图36所示。 也可以采用序偶表示法: A=1,1,2,0.5。 或者采用向量表示法: A=1,0.5,0,0,0。 图36例31的模糊集合隶属 函数曲线 定义34设A和B为论域U上的两个模糊集合,则有如下定义: (1) 包含(): 如果对任意x∈U,均有μA(x)≤μB(x),则称B包含A,记作AB。 (2) 相等: 如果对任意x∈U,都有μA(x)=μB(x),则称A与B相等,记作A=B。 (3) 补集: 模糊集合A的补集定义为μA(x)=1-μA(x)。 (4) 模糊全集与模糊空集: 如果对全部x∈U,均有μA(x)=1,则A=U,称A为模糊全集; 如果对全部x∈U都有μA(x)=0,则A=。 (5) 并集(or运算): A和B两个模糊集的并集C=A∪B的隶属函数定义为μC(x)=maxμA(x),μB(x),或写成μC(x)=μA(x)μB(x)。 (6) 交集(and运算): A和B两个模糊集的交集C=A∪B的隶属函数定义为μC(x)=minμA(x),μB(x),或写成μC(x)=μA(x)μB(x)。 由于模糊集合不具有“非此即彼”或“非真即假”的特性,因此模糊集合的运算性质除了不满足互补律外,其余的运算性质和经典集合的运算性质完全相同。 3.3.2模糊控制器设计 1. 模糊控制器的组成及结构形式 模糊控制器(Fuzzy Controller,FC),也称为模糊逻辑控制器(Fuzzy Logic Controller,FLC)。由于它所采用的模糊控制规则是由模糊逻辑理论中的模糊条件语句描述的,因此,模糊控制器是一种语言型控制器,故有时也称为模糊语言控制器。 模糊控制器的组成一般包括输入量模糊化接口、数据库、规则库、推理机和输出解模糊接口5个部分。图37为模糊控制器的组成框图。 图37模糊控制器的组成框图 图38单变量模糊控制器的三种结构形式 (a) 一维FC; (b) 二维FC; (c) 三维FC 按照控制系统输入变量的数目,模糊控制器分为单变量模糊控制器和多变量模糊控制器。输入量的个数称为模糊控制器的维数。单变量模糊控制器有一个独立的外部输入变量和一个输出变量,因此是一维模糊控制器。一维模糊控制器的输入一般为被控量的测量值与设定值之间的偏差e。二维模糊控制器的输入应用最广泛的是偏差e和偏差的变化率。三维模糊控制器的输入可以是偏差e,e·和e¨,或者e,e·和∫edt。三维控制器能得到更好的控制性能,但是比较复杂,运算量大,尤其是完备的控制规则数据库难以建立,因此工程应用较少。这三种形式的单变量模糊控制如图38所示。 多变量模糊控制器有多个独立的输入变量和一个或多个输出变量。多变量模糊控制器的变量越多,对应的模糊规则推理语句维数会呈指数增长,因此一般要进行降维处理,分解为多个简单的模糊控制器的组合。 2. 精确量的模糊化 模糊控制系统工作的第一步就是将精确的输入量转化为模糊语言变量,这个过程称为精确量的模糊化。在模糊控制系统中,模糊控制器的输入变量(偏差e和偏差的变化率e·)以及输出变量(控制量)都是精确量,为了进行模糊推理,它们都需要从物理论域通过量化转化到整数论域,再在整数论域给出若干语言变量值,从而实现整个论域元素的模糊化。 在模糊理论中,把模糊控制器的输入变量以及输出变量的实际变化范围称为这些变量的基本论域。 设偏差e的基本论域为-xe,xe,论域内的量是精确量,并设偏差所取的量化论域为 X=-n,-n+1,…,0,…,n-1,n(34) 式中,n为正整数,是将0~xe范围内连续变化的偏差离散化后分成的档数。由于通常情况下xe≠n,因此,定义偏差的量化因子为 ke=nxe(35) 选定量化因子以后,系统的任何偏差值总可以由式(35)量化为论域式(34)中的某一个元素。 若系统的实际偏差在a,b之间变化,则可以使用离散化公式[式(36)]将x′∈a,b量化到x∈X。 X=2nb-ax′-a+b2(36) 式中,[ ]表示取整。 精确量模糊化以后就需要将其转化为语言变量。最常用的语言变量是负大、负中、负小、零、正小、正中、正大,即NB、NM、NS、Z、PS、PM、PB这7个语言变量。有时还将零分成“正零”(PZ)和“负零”(NZ)两个值。 语言变量论域上的模糊子集就由隶属函数来描述。 3. 模糊控制规则设计 模糊控制规则,又称模糊控制算法,实质上是将操作者在手动控制时间中积累的经验加以总结而得到的一条条模糊条件语句的几何。利用模糊集合理论和语言变量概念,把用语言归纳的手动控制策略上升为具体的数值运算,根据推理运算结果给出执行机构的控制量,这就是模糊控制规则设计的思路。 例如单输入/单输出模糊控制器输入为偏差e,对应的输出为控制量u,那么模糊控制规则可以使用条件语句进行表达: if e is A then u is B 其中,A、B为模糊子集{NB,NM,…}。 4. 输出信息的模糊判决 模糊推理得到的是一个模糊集合,是反映控制变量不同取值的一种组合,但执行机构只能接受一个精确的控制量,因此就需要从输出的模糊子集中判决出一个精确量。也就是设计一个由模糊集合到普遍集合的映射,将模糊量转换为清晰量,这个映射称为判决,也称为解模糊或逆模糊化。 判决常用的方法有最大隶属度法、取中位数法、加权平均法。 3.3.3发动机怠速的模糊控制实例 汽车发动机的怠速转速要求平稳。怠速时,发动机通过怠速旁通气道进气,或者直接通过节气门进行控制。怠速旁通气道中使用步进电机控制怠速旁通气道的流通截面,进而控制怠速进气量,达到控制怠速转速的目的。节气门直动式则通过控制节气门控制电机控制节气门的开度来实现。这种形式的节气门在平衡位置通常有9°的开度来实现怠速进气。不管何种控制方式,基本原理都是控制电机的转动从而实现怠速进气量的控制。下面以怠速旁通气道的步进电机的模糊控制器的设计为例,介绍模糊控制器的设计过程。 发动机怠速的模糊控制器的原理如图39所示。发动机转速传感器将发动机转速信号反馈给比较器,与设定的怠速转速相比较,形成偏差e和偏差的变化率e·,然后通过二维的模糊控制器输出控制信号给怠速控制电机,进而控制发动机的怠速转速。 图39发动机怠速的模糊控制器原理 发动机怠速转速的波动一般不会很大,假设其转速偏差e的波动范围为[-300,+300],单位为r/min。偏差的变化率e·的变化范围为[-100,+100],单位为(r/min)/s。设怠速控制的步进电机的工作步数的范围为[0,128]。 设偏差e的语言变量的模糊论域为e=-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,偏差变化率de的语言变量的模糊论域为e·={-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6},输出u的语言变量的模糊论域为u={-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}。 把模糊语言变量转速偏差e和步进电机工作步数u取为7个模糊子集: [负大,负中,负小,零,正小,正中,正大],即[NB,NM,NS,Z,PS,PM,PB]。把模糊语言变量值转速偏差变化率de取为8个模糊子集: [负大,负中,负小,负零,正零,正小,正中,正大],即[NB,NM,NS,NZ,PZ,PS,PM,PB]。 在MATLAB命令行中输入命令fuzzy,打开模糊逻辑控制器的编辑器,如图310所示。 图310模糊逻辑控制器的编辑器 在Edit菜单中选择Add Variable,单击Input,增加一个输入信号。将两个输入信号的名称分别修改为e和de,如图311所示。双击输入信号e的黄色图标,打开输入信号编辑窗口。在窗口中将输入信号e的range修改为-66,如图312所示。然后单击Edit菜单,选择Add Mfs...,打开如图313所示的窗口,添加4个输入信号e的模糊子集。隶属函数类型保持三角形不变。单击OK按钮关闭窗口。 图311添加输入信号de 在输入信号隶属函数编辑窗口中修改7个三角形隶属函数。隶属函数的修改依赖于人的经验。本书最终确定的偏差e的隶属函数如图314所示。输出模糊变量u的隶属函数与偏差e相同。同样,设计偏差变化率de的隶属函数如图315所示。 图312输入信号的编辑窗口 图313添加4个隶属函数 图314输入信号e的隶属函数 图315输入信号de的隶属函数