
2.3 隶属函数
2.3.1 隶属函数的特点
普通集合用特征函数来表示,模糊集合用隶属函数来描述。隶属函数很好地描述了事物的模糊性。隶属函数有以下两个特点。
(1)隶属函数的值域为[0,1],它将普通集合只能取0,1两个值,推广到[0,1]闭区间上连续取值。隶属函数的值μA(x)越接近于1,表示元素x属于模糊集合A的程度越大。反之,μA(x)越接近于0,表示元素x属于模糊集合A的程度越小。
(2)隶属函数完全刻画了模糊集合,隶属函数是模糊数学的基本概念,不同的隶属函数所描述的模糊集合也不同。
2.3.2 几种典型的隶属函数及其MATLAB表示
典型的隶属函数有11种,即双S形隶属函数、联合高斯型隶属函数、高斯型隶属函数、广义钟形隶属函数、∏形隶属函数、双S形乘积隶属函数、S状隶属函数、S形隶属函数、梯形隶属函数、三角形隶属函数、Z形隶属函数。
在模糊控制中应用较多的隶属函数有以下6种。
(1)高斯型隶属函数。
高斯型隶属函数由两个参数σ和c确定

其中,参数b通常为正,参数c用于确定曲线的中心。MATLAB表示为gaussmf(x,[σ,c])。
(2)广义钟型隶属函数。
广义钟型隶属函数由3个参数a、b和c确定

其中,参数b通常为正,参数c用于确定曲线的中心。MATLAB表示为gbellmf(x,[a,b,c])。
(3)S形隶属函数。
S形函数sigmf(x,[a c])由参数a和c决定

其中,参数a的正负符号决定了S形隶属函数的开口朝左或朝右,用来表示“正大”或“负大”的概念。MATLAB表示为sigmf(x,[a,c])。
(4)梯形隶属函数。
梯形曲线由4个参数a、b、c和d确定

其中,参数a和d确定梯形的“脚”,参数b和c确定梯形的“肩膀”。MATLAB表示为trapmf(x,[a,b,c,d])。
(5)三角形隶属函数。
三角形曲线的形状由3个参数a、b和c确定

其中,参数a和c确定三角形的“脚”,参数b确定三角形的“峰”。MATLAB表示为trimf(x,[a,b,c])。
(6)Z形隶属函数。
这是基于样条函数的曲线,因其呈现Z形状而得名。参数a和b确定了曲线的形状。MATLAB表示为zmf(x,[a,b])。
例2.5 针对上述描述的6种隶属函数进行仿真。x∈[0,10],M为隶属函数的类型,其中M=1为高斯型隶属函数,M=2为广义钟形隶属函数,M=3为S形隶属函数,M=4为梯形隶属函数,M=5为三角形隶属函数,M=6为Z形隶属函数。
仿真程序见chap2_2.m,仿真结果如图2.2~图2.8所示。

图2.2 高斯型隶属函数(M=1)

图2.3 广义钟形隶属函数(M=2)

图2.4 S形隶属函数(M=3)

图2.5 梯形隶属函数(M=4)

图2.6 三角形隶属函数(M=5)

图2.7 Z形隶属函数(M=6)

图2.8 三角形隶属函数
仿真程序:chap2_2.m

2.3.3 模糊系统的设计
根据参数的变化范围,通过设定模糊集和隶属函数来进行参数的模糊化。针对变量x,变化范围为[-3,3],设定3个模糊集(负、零、正),采用三角形隶属函数进行模糊化,可建立一个模糊系统,该模糊系统设计程序见chap2_3.m,仿真结果如图2.8所示。
同理,针对变量x,变化范围为[-3,3],设定七个模糊集(负大,负中,负小,零,正小,正中,正大),采用三角形隶属函数进行模糊化,可建立一个模糊系统,该模糊系统设计程序见chap2_3.m,仿真结果如图2.9所示。

图2.9 由三角形隶属函数构成的模糊系统
仿真程序:chap2_3.m
%Define N+1 triangle membership function clear all; close all; N=6; x=-3:0.01:3; for i=1:N+1 f(i)=-3+6/N*(i-1); end u=trimf(x,[f(1),f(1),f(2)]); figure(1); plot(x,u); for j=2:N u=trimf(x,[f(j-1),f(j),f(j+1)]); hold on; plot(x,u); end u=trimf(x,[f(N),f(N+1),f(N+1)]); hold on; plot(x,u); xlabel('x)'; ylabel('Degree of membership');
2.3.4 隶属函数的确定方法
隶属函数是模糊控制的应用基础。目前还没有成熟的方法来确定隶属函数,主要还停留在经验和实验的基础上。通常的方法是初步确定粗略的隶属函数,然后通过学习和实践来不断地调整和完善。遵照这一原则的隶属函数选择方法有以下几种。
(1)模糊统计法。
根据所提出的模糊概念进行调查统计,提出与之对应的模糊集A,通过统计实验,确定不同元素隶属于A的程度,即

(2)主观经验法。
当论域为离散论域时,可根据主观认识,结合个人经验,经过分析和推理,直接给出隶属度,这种确定隶属函数的方法已经被广泛应用。
(3)神经网络法。
利用神经网络的学习功能,由神经网络自动生成隶属函数,并通过网络的学习自动调整隶属函数的值。