模糊控制实验演示教学_第1页
模糊控制实验演示教学_第2页
模糊控制实验演示教学_第3页
模糊控制实验演示教学_第4页
模糊控制实验演示教学_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上 中南大学模糊控制课程实验报告学生姓名: 彭雄威 指导教师: 袁 艳 学 院: 信息科学与工程学院 学 号: 专心-专注-专业 实验一:本系统设计基于MATLAB图形模糊推理系统,设计步骤如下:打开MATLAB,输入指令fuzzy,打开模糊逻辑工具箱的图形用户界面窗口,新建一个Mamdani模糊推理系统。(1) 增加一个输入变量,将输入变量命名为E、Ec,将输出变量命名U。这样就建立了一个两输入单输出的模糊推理系统。如图1.1所示。 图1.1增加一个输入变量(2) 设计模糊化模块:设计隶属度函数论域范围 图3.2设计水位误差E模块 3.3设计水位误差Ec模块 图3.4

2、设计水位输出U模块(4)模糊控制器的规则设计(5) 通过观察器观察规则情况在菜单view中的rules和surface选项分别对应得是规则观测器和曲面观测器。 图 3.7 规则观测器图 3.6 曲面观测器 (6) 保存编辑好的FIS文件实验二:利用MATLAB软件的M文件编辑器和实验一所生成的fuzzf.FIS文件,在M文件编辑器中输入:a=readfis('fuzzf');evalfis(-0.5,-0.07;-0.5,0;-0.5,0.07; 0, -0.07;0,0;0,0.07;0.5,-0.07;0.5,0;0.5,0.07,a)便可得fuzzf.FIS文件的模糊控制

3、查询表,其中的数据在水位误差E的论域为-1 1,误差变化Ec的论域为-0.1 0.1内可以任意取值。a=readfis(' fuzzf ')a = name: ' fuzzf ' type: 'mamdani' andMethod: 'min' orMethod: 'max' defuzzMethod: 'centroid' impMethod: 'min' aggMethod: 'max' input: 1x2 struct output: 1x1 struct r

4、ule: 1x5 structa=readfis(' fuzzf ');evalfis(-0.5,-0.07;-0.5,0;-0.5,0.07; 0, -0.07;0,0;0,0.07;0.5,-0.07;0.5,0;0.5,0.07,a)ans = -0.2000 -0.4444 -0.4667 0.1363 -0.0014 -0.2271 0.4000 0.44120.1333实验三利用MATLAB软件的M文件编辑器(也可选择C语言)完成模糊控制查询表的计算。注意:全部工作都由程序实现,不利用FIS文件,不使用Fuzzy工具箱,包括模糊关系矩阵的求取及模糊推理、模糊判决。表

5、1 偏差E的赋值表 eE-6-5-4-3-2-10123456NB10.80.70.40.40.10000000NM0.20.710.70.300000000NS00.10.30.710.70.2000000NO00000.10.61000000PO00000010.60.10000PS0000000.20.710.70.30.10PM000000000.20.710.70.3PB000000000.10.40.70.81表2 偏差变化率Ec的赋值表ecEc-6-5-4-3-2-10123456NB10.70.30000000000NM0.30.710.70.300000000NS000.30

6、.710.70.3000000O00000.30.710.70.30000PS0000000.30.710.70.300PM000000000.30.710.70.3PB00000000000.30.71表3 推理语言规则表EcENBNMNSOPSPMPBNBPBPBPBPBPMOONMPBPBPBPBPMOONSPMPMPMPMONSNSNOPMPMPSONSNMNMPOPMPMPSONSNMNMPSPSPSONMNMNMNMPMOONMNSNSNSNSPBOONMNSNSNSNS表4 控制量U的赋值表U-6-5-4-3-2-10123456NB10.70.30000000000NM0.30

7、.710.70.300000000NS000.30.710.70.3000000O00000.30.710.70.30000PS0000000.30.710.70.300PM000000000.30.710.70.3PB00000000000.30.71程序如下:clc;clear;E = 1,0.8,0.7,0.4,0.1,0,0,0,0,0,0,0,0; 0.2,0.7,1,0.7,0.3,0,0,0,0,0,0,0,0; 0,0.1,0.3,0.7,1,0.7,0.2,0,0,0,0,0,0; 0,0,0,0,0.1,0.6,1,0,0,0,0,0,0; 0,0,0,0,0,0,1,0.

8、6,0.1,0,0,0,0; 0,0,0,0,0,0,0.2,0.7,1,0.7,0.3,0.1,0; 0,0,0,0,0,0,0,0,0.2,0.7,1,0.7,0.3; 0,0,0,0,0,0,0,0,0.1,0.4,0.7,0.8,1%8*13EC =1,0.7,0.3,0,0,0,0,0,0,0,0,0,0; 0.3,0.7,1,0.7,0.3,0,0,0,0,0,0,0,0; 0,0,0.3,0.7,1,0.7,0.3,0,0,0,0,0,0; 0,0,0,0,0.3,0.7,1,0.7,0.3,0,0,0,0; 0,0,0,0,0,0,0.3,0.7,1,0.7,0.3,0,0;

9、0,0,0,0,0,0,0,0,0.3,0.7,1,0.7,0.3; 0,0,0,0,0,0,0,0,0,0,0.3,0.7,1%7*13U=1,0.7,0.3,0,0,0,0,0,0,0,0,0,0; 0.3,0.7,1,0.7,0.3,0,0,0,0,0,0,0,0; 0,0,0.3,0.7,1,0.7,0.3,0,0,0,0,0,0; 0,0,0,0,0.3,0.7,1,0.7,0.3,0,0,0,0; 0,0,0,0,0,0,0.3,0.7,1,0.7,0.3,0,0; 0,0,0,0,0,0,0,0,0.3,0.7,1,0.7,0.3; 0,0,0,0,0,0,0,0,0,0,0.3

10、,0.7,1%7*13rulelist= 1,1,1,1,2,4,4; 1,1,1,1,2,4,4; 2,2,2,2,4,5,5; 2,2,3,4,5,6,6; 2,2,3,4,5,6,6; 3,3,4,6,6,6,6; 4,4,6,7,7,7,7; 4,4,6,7,7,7,7%8*7for iii=1:13 %偏差E的模糊值控制 for jjj=1:13 %偏差率EC的模糊值控制 for ii=1:8 %偏差E的模糊规则控制 for jj=1:7 %偏差变化率EC的模糊规则控制A_rulelist = rulelist(ii,jj); %查模糊规则表 %*计算C1A'* A = E(

11、ii,:); %取A' C_A = U(A_rulelist,:); %取Ci for i=1:13 %求R1Afor j=1:13if(A(i) > C_A(1,j)Ra(i,j) = C_A(1,j);elseRa(i,j) = A(i);endendend AA = zeros(1,13); %取AA=A' 如AA=1,0,0,0,0,0,0,0,0,0,0,0,0; %AA(1,iii) = E(ii,iii); AA(1,iii) = 1; for i=1:13 %先取小for j=1:13 if(AA(j) > Ra(j,i)A_qux(j,i) = R

12、a(j,i);elseA_qux(j,i) = AA(j);endendend for i=1:13 %再取大,求和CiAmax = A_qux(1,i);for j=1:13if(max <A_qux(j,i)max = A_qux(j,i);endendCiA(i) = max;end %*CiA计算完毕* %*计算CiB'* B = EC(jj,:); %取B' ? C_B = U(A_rulelist,:); %取Ci ? for i=1:13 %求R1Bfor j=1:13if(B(1,i) > C_B(1,j)Rb(i,j) = C_B(1,j);els

13、eRb(i,j) = B(1,i);endendend BB = zeros(1,13); %取BB=B' 如BB=1,0,0,0,0,0,0,0,0,0,0,0,0; %BB(1,jjj) = EC(jj,jjj); BB(1,jjj) = 1; for i=1:13 %先取小for j=1:13 if(BB(j) >Rb(j,i)B_qux(j,i) = Rb(j,i);elseB_qux(j,i) = BB(j);endendend for i=1:13 %再取大,求和CiAmax = B_qux(1,i);for j=1:13if(max <B_qux(j,i)ma

14、x = B_qux(j,i);endendCiB(i) = max;end %*计算CiB'完毕* %*计算C1'=CiA'交CiB'*for i=1:13if CiA(i) >CiB(i)Ci(i) = CiB(i);elseCi(i) = CiA(i);endend %*计算C1'完毕* C(ii-1)*7+jj,:) = Ci; % 将Ci存到数组C中,C是56*13的数组endend %根据式Ui=C'=C1'并C2'并并3'for i=1:13max = C(1,i);for j=1:56if(max < C(j,i)max = C(j,i);endendUi(i) = max;end %用重心法进行解模糊运算,并映射为实际的控制量sum_fenz = 0;sum_fenm = 0;for i=1:13sum_fenz = sum_fenz + (i-7)*Ui(i);sum_fenm = sum_fenm + Ui(i);endcore = sum_fenz/sum_fenm;U_control(iii

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论