logo资料库

Matlab模糊逻辑.doc

第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
资料共27页,剩余部分请下载后查看
第6章 模糊逻辑
6.1 隶属函数
6.1.1 高斯隶属函数
6.1.2 两边型高斯隶属函数
6.1.3 建立一般钟型隶属函数
6.1.4 两个sigmoid型隶属函数之差组成的隶属函数
6.1.5 通用隶属函数计算
6.1.6 建立П型隶属函数
6.1.7 通过两个sigmoid型隶属函数的乘积构造隶属函数
6.1.8 建立Sigmoid型隶属函数
6.1.9 建立S型隶属函数
6.1.10 建立梯形隶属函数
6.1.11 建立三角形隶属函数
6.1.12 建立Z型隶属函数
6.1.13 两个隶属函数之间转换参数
6.1.14 基本FIS编辑器
6.1.15 隶属函数编辑器
6.2 模糊推理结构FIS
6.2.1 不使用数据聚类方法从数据生成FIS结构
6.2.2 使用减法聚类方法从数椐生成FIS结构
6.2.3 生成一个FIS输出曲面
6.2.4 将mamdan型FIS转换为Sugeno FIS
6.2.5 完成模糊推理计算
6.2.6 模糊c均值聚类
6.2.7 模糊均值和减法聚类
6.2.8 绘制一个FIS
6.2.9 绘制给定变量的所有隶属的曲线
6.2.10 从磁盘装入一个FIS
6.2.11 从FIS中删除某一隶属函数
6.2.12 从FIS中删除变量
6.2.13 设置模糊系统属性
6.2.14 以分行形式显示FIS结构的所有属性
6.2.15 完成模糊运算
6.2.16 解析模糊规则
6.2.17 规则编辑器和语法编辑器
6.2.18 规则观察器和模糊推理框图
6.2.19 保存FIS到磁盘上
6.2.20 显示FIS的规则
6.2.21 显示FIS结构的所有属性
第 6 章 模糊逻辑 第 6 章 模糊逻辑 6.1 隶属函数 ;x(f )c,   e  2 )cx(  2 2  ,其中 c, 为参数,x 为自变 6.1.1 高斯隶属函数 函数 gaussmf 格式 y=gaussmf(x,[sig c]) 说明 高斯隶属函数的数学表达式为: 量,sig 为数学表达式中的参数  。 例 6-1 >>x=0:0.1:10; >>y=gaussmf(x,[2 5]); >>plot(x,y) >>xlabel('gaussmf, P=[2 5]') 结果为图 6-1。 1 0.8 0.6 0.4 0.2 0 0 2 4 6 gaussmf, P=[2 5] 8 10 图 6-1 6.1.2 两边型高斯隶属函数 函数 gauss2mf 格式 y = gauss2mf(x,[sig1 c1 sig2 c2]) 说明 sig1、c1、sig2、c2 为命令 1 中数学表达式中的两对参数 例 6-2 >>x = (0:0.1:10)'; >>y1 = gauss2mf(x, [2 4 1 8]); >>y2 = gauss2mf(x, [2 5 1 7]); >>y3 = gauss2mf(x, [2 6 1 6]); >>y4 = gauss2mf(x, [2 7 1 5]); >>y5 = gauss2mf(x, [2 8 1 4]); 201
MATLAB6.0 数学手册 >>plot(x, [y1 y2 y3 y4 y5]); >>set(gcf, 'name', 'gauss2mf', 'numbertitle', 'off'); 结果为图 6-2。 6.1.3 建立一般钟型隶属函数 函数 gbellmf 格式 y = gbellmf(x,params) 说明 一般钟型隶属函数依靠函数表达式 )c,b,a;x(f  x|1  1  a c b2| 这里 x 指定变量定义域范围,参数 b 通常为正,参数 c 位于曲线中心,第二个参数变量 params 是一个各项分别为 a,b 和 c 的向量。 例 6-3 >>x=0:0.1:10; >>y=gbellmf(x,[2 4 6]); >>plot(x,y) >>xlabel('gbellmf, P=[2 4 6]') 结果为图 6-3。 1 0.8 0.6 0.4 0.2 0 0 1 0.8 0.6 0.4 0.2 2 4 6 8 10 0 0 2 4 6 gbellmf, P=[2 4 6] 8 10 图 6-2 图 6-3 6.1.4 两个 sigmoid 型隶属函数之差组成的隶属函数 函数 dsigmf 格式 y = dsigmf(x,[a1 c1 a2 c2]) 说明 这里 sigmoid 型隶属函数由下式给出 )c,a;x(f  1 )cx(ae1   x 是变量,a,c 是参数。dsigmf 使用四个参数 a1,c1,a2,c2,并且是两个 sigmoid 型函 ]caca[ 2 11 2 列出。 数之差: )c,a;x(f 1 1 1  )c,a;x(f 2 2 2 ,参数按顺序 例 6-4 >>x=0:0.1:10; >>y=dsigmf(x,[5 2 5 7]); >>plot(x,y) 结果为图 6-4 202
第 6 章 模糊逻辑 1 0.8 0.6 0.4 0.2 0 0 2 4 6 8 10 图 6-4 6.1.5 通用隶属函数计算 函数 evalmf 格式 y = evalmf(x, mfParams, mfType) 说明 evalmf 可以计算任意隶属函数,这里 x 是变量定义域,mfType 是工具箱提供的 一种隶属函数,mfParams 是此隶属函数的相应参数,如果你想创建自定义的隶属函数,evalmf 仍可以工作,因为它可以计算它不知道名字的任意隶属函数。 例 6-5 >>x=0:0.1:10; >>mfparams = [2 4 6]; >>mftype = 'gbellmf'; >>y=evalmf(x,mfparams,mftype); >>plot(x,y) >>xlabel('gbellmf, P=[2 4 6]') 结果为图 6-5。 1 0.8 0.6 0.4 0.2 0 0 2 4 6 gbellmf, P=[2 4 6] 8 10 图 6-5 6.1.6 建立П型隶属函数 函数 primf 格式 y = pimf(x,[a b c d]) 说明 向量 x 指定函数自变量的定义域,该函数在向量 x 的指定点处进行计算,参数 [a,b,c,d]决定了函数的形状,a 和 d 分别对应曲线下部的左右两个拐点,b 和 c 分别对应曲线 上部的左右两个拐点。 例 6-6 203
MATLAB6.0 数学手册 >>x=0:0.1:10; >>y=pimf(x,[1 4 5 10]); >>plot(x,y) >>xlabel('pimf, P=[1 4 5 10]') 结果为图 6-6。 6.1.7 通过两个 sigmoid 型隶属函数的乘积构造隶属函数 函数 psigmf 格式 y = psigmf(x,[a1 c1 a2 c2]) 说明 这里 sigmoid 型隶属函数由下式给出 )c,a;x(f  1 )cx(ae1   x 是变量,a,c 是参数。psigmf 使用四个参数 a1,c1,a2,c2,并且是两个 sigmoid 型函 ]caca[ 2 11 2 列出。 )c,a;x(f 数之积: 1 1 例 6-7 1  )c,a;x(f 2 2 2 ,参数按顺序 >>x=0:0.1:10; >>y=psigmf(x,[2 3 -5 8]); >>plot(x,y) >>xlabel('psigmf, P=[2 3 -5 8]') 结果为图 6-7。 1 0.8 0.6 0.4 0.2 1 0.8 0.6 0.4 0.2 0 0 2 4 6 pimf, P=[1 4 5 10] 图 6-6 8 10 0 0 2 6.1.8 建立 Sigmoid 型隶属函数 4 6 psigmf, P=[2 3 -5 8] 8 10 图 6-7 ,定义域由向量 x 给出,形状由参数 a 和 c 确定。 函数 sigmf 格式 y = sigmf(x,[a c]) 1 )cx(ae1   )c,a;x(f 说明  例 6-8 >>x=0:0.1:10; >>y=sigmf(x,[2 4]); >>plot(x,y) >>xlabel('sigmf, P=[2 4]') 结果为图 6-8。 204
第 6 章 模糊逻辑 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 1 2 3 5 4 6 sigmf, P=[2 4] 7 8 9 10 图 6-8 例 6-9 >>x = (0:0.2:10)’; >>y1 = sigmf(x,[-1 5]); >>y2 = sigmf(x,[-3 5]); >>y3 = sigmf(x,[4 5]); >>y4 = sigmf(x,[8 5]); >>subplot(2,1,1),plot(x,[y1 y2 y3 y4]); >>y1 = sigmf(x,[5 2]); >>y2 = sigmf(x,[5 4]); >>y3 = sigmf(x,[5 6]); >>y4 = sigmf(x,[5 8]); >>subplot(2,1,2),plot(x,[y1 y2 y3 y4]); 结果为图 6-9。 1 0.5 0 0 1 0.5 0 0 2 2 6 6 4 4 图 6-9 8 8 10 10 6.1.9 建立 S 型隶属函数 函数 smf 格式 y = smf(x,[a b]) 例 6-10 >>x=0:0.1:10; >>y=smf(x,[1 8]); >>plot(x,y) 结果为图 6-10。 % x 为变量,a 为 b 参数,用于定位曲线的斜坡部分。 205
1 0.8 0.6 0.4 0.2 0 0 MATLAB6.0 数学手册 2 4 smf, P=[1 8] 6 8 10 图 6-10 例 6-11 >>x = 0:0.1:10; >>subplot(3,1,1);plot(x,smf(x,[2 8])); >>subplot(3,1,2);plot(x,smf(x,[4 6])); >>subplot(3,1,3);plot(x,smf(x,[6 4])); 结果为图 6-11。 1 0.5 0 0 1 0.5 0 0 1 0.5 0 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 图 6-11 6.1.10 建立梯形隶属函数 函数 trapmf 格式 y = trapmf(x,[a b c d]) 说明 这里梯形隶属函数表达式: )d,c,b,a;x(f  ,0 a x  ,ab  ,1 x d  ,c d  0         a b c a x    x d  x x x  b c d         或 f(x;a,b,c,d) = max(min( ax  ab  xd,1,  cd  )0), ,定义域由向量 x 确定,曲线形状由参数 a,b,c,d 确定,参数 a 和 d 对应梯形下部的左右两个拐点,参数 b 和 c 对应梯形上部的左右两 206
第 6 章 模糊逻辑 个拐点。 例 6-12 >>x=0:0.1:10; >>y=trapmf(x,[1 5 7 8]); >>plot(x,y) >>xlabel('trapmf, P=[1 5 7 8]') 结果为图 6-12。 例 6-13 >>x = (0:0.1:10)’; >>y1 = trapmf(x,[2 3 7 9]); >>y2 = trapmf(x,[3 4 6 8]); >>y3 = trapmf(x,[4 5 5 7]); >>y4 = trapmf(x,[5 6 4 6]); >>plot(x,[y1 y2 y3 y4]); 结果为图 6-13。 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 1 2 3 1 0.8 0.6 0.4 0.2 0 0 7 8 9 10 2 4 6 8 10 4 6 trapmf, P=[1 5 7 8] 5 图 6-12 图 6-13 6.1.11 建立三角形隶属函数 函数 trimf 格式 y = trimf(x,params) y = trimf(x,[a b c]) a ,0 a x  ,ab  x c  b,b c  0         a x   x  x c x  b c         说明 三角形隶属函数表达式: ),c,b,a;x(f  或者 f(x;a,b,c,) = max(min( ax  ab  xc,  bc  )0), 定义域由向量 x 确定,曲线形状由参数 a,b,c 确定,参数 a 和 c 对应三角形下部的左右 ,生成的隶属函数总有一个统一 两个顶点,参数 b 对应三角形上部的顶点,这里要求 a 的高度,若想有一个高度小于统一高度的三角形隶属函数,则使用 trapmf 函数。 b  c 例 6-14 207
MATLAB6.0 数学手册 >>x=0:0.1:10; >>y=trimf(x,[3 6 8]); >>plot(x,y) >>xlabel('trimf, P=[3 6 8]') 结果为图 6-14。 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 1 2 3 5 4 6 trimf, P=[3 6 8] 7 8 9 10 图 6-14 例 6-15 >>x = (0:0.2:10)’; >>y1 = trimf(x,[3 4 5]); >>y2 = trimf(x,[2 4 7 ]); >>y3 = trimf(x,[1 4 9]); >>subplot(2,1,1),plot(x,[y1 y2 y3 ]); >>y1 = trimf(x,[2 3 5]); >>y2 = trimf(x,[3 4 7]); >>y3 = trimf(x,[4 5 9]); >>subplot(2,1,2),plot(x,[y1 y2 y3 ]); 结果为图 6-15。 1 0.8 0.6 0.4 0.2 0 1 0.8 0.6 0.4 0.2 0 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 图 6-15 6.1.12 建立 Z 型隶属函数 函数 zmf 格式 y = zmf(x,[a b]) % x 为自变量,a 和 b 为参数,确定曲线的形状。 例 6-16 >>x=0:0.1:10; >>y=zmf(x,[3 7]); >>plot(x,y) 208
分享到:
收藏