图2.1 工业操作的控制系统
一般来说,当人进行控制时,必须根据输入的偏差及偏差变化率综合地进行权衡和判决。操作者在对受控过程进行控制时,测量或观测到的偏差值和偏差的变化速率是一些清晰量,经过模糊化得到偏差、偏差变化率大、中、小的某个模糊量的概念。经过人的模糊决策后,得到决策的控制输出模糊量。当按照已定的模糊决策去执行具体的动作时,所执行的动作又必须以清晰的量表现出来。因此,图2.1的人-机过程可归结为:将偏差e、偏差变化率ec的清晰量经模糊化得到模糊量E和EC,将模糊近似推理分析得到模糊控制输出U,然后经模糊决策判断,得到清晰值的控制量u去执行控制动作。
2.3 模糊变量的隶属函数
模糊集使得某元素可以以一定程度属于某集合,某元素属于某集合的程度由“0”与“1”之间的一个数值——隶属度来刻画和描述。把一个具体的元素映射到一个合适的隶属度是由隶属函数来实现的。隶属度函数可以是任意形状的曲线,取什么形状取决于是否让我们使用起来感到简单、方便、快速、有效,惟一的约束条件是隶属度函数的值域为[0,1]。
MATLAB模糊工具箱提供了许多函数,如表2-1所示的模糊隶属度函数,用以生成特殊情况的隶属函数,包括常用的三角型、高斯型、π型、钟型等隶属函数。
表2-1 模糊隶属度函数
函数名 pimf gauss2mf gaussmf gbellmf smf 函数功能描述 建立π型隶属度函数 建立双边高斯型隶属度函数 建立高斯型隶属度函数 生成一般的钟型隶属度函数 建立S型隶属度函数 5
trapmf trimf zmf [3]生成梯形型隶属度函数 生成三角型隶属度函数 建立Z型隶属度函数
在模糊控制中应用较多的隶属函数有一下6种: (1)高斯型隶属函数
如图2.2所示,它的MATLAB表示为gaussmf(x,[,c])。
图2.2 高斯型隶属函数
(2)广义钟形隶属函数
如图2.3所示,它的MATLAB表示为gbellmf(x,[a,b,c])。
6
图2.3 广义钟形隶属函数
(3)S形隶属函数
如图2.4所示,它的MATLAB表示为sigmf(x,[a,c])。
图2.4 S形隶属函数
(4)梯形隶属函数
如图2.5所示,它的MATLAB表示为trapm(x,[a,b,c,d])。
7
图2.5 梯形隶属函数
(5)三角形隶属函数
如图2.6所示,它的MATLAB表示为trimf(x,[a,b,c])。
图2.6 三角形隶属函数
(6)Z形隶属函数
如图2.7所示,它的MATLAB表示为zmf(x,[a,b])。
8
图2.7 Z形隶属函数
2.4 模糊推理系统的数据结构管理函数介绍
模糊推理是采用模糊逻辑由给定的输入到输出的映射过程。模糊推理包括五个方面:
(1)输入变量模糊化,即把确定的输入转化为由隶属度描述的模糊集。 (2)在模糊规则的前件中应用模糊算子(与、或、非)。 (3)根据模糊蕴含运算由前提推断结论。
(4)合成每一个规则的的结论部分,得出总的结论。 (5)反模糊化,即把输出的模糊量转化为确定的输出。
输入变量是输入变量域内的某一个确定的数,输入变量经模糊化后,变换为由隶属度表示的0和1之间的某个数。模糊化常由隶属度函数或查表求得。输入变量模糊化后,我们就知道每个规则前件中的每个命题被满足的程度。如果给定规则的前件中不止一个命题,则需要模糊算子获得该规则前件被满足的程度。模糊算子的输入是两个或多个输入变量经模糊化后得到的隶属度值,其输出是整个前件的隶属度,模糊逻辑算子可取T算子和协T算子中的任意一个,常用的与算子有min(模糊交)和prod(代数积),常用的或算子有max(模糊并)和probor(概率或)。模糊合成也是一种模糊算子,该算子的输入是每一个规则输出的模糊集,输出是这些模糊集经合成后得到的一个综合输出模糊集。常用的模糊算子有max(模糊并)、probor(概率或)和sum(代数和)。 在MATLAB工具箱中,把模糊推理系统的各部分作为一个整体,提供了模糊推理系统数据结构管理函数,用以完成模糊规则的建立、解析与修改,模糊推理系统的建立、修改和存储管理以及模糊推理的计算及去模糊化等操作[4]。
(1)readfis
功能:从磁盘载入模糊推理系统。 (2)addrule
功能:向模糊推理系统添加模糊规则。
9