模糊控制在MATLAB中的实现.ppt

上传人:小飞机 文档编号:5285985 上传时间:2023-06-22 格式:PPT 页数:40 大小:648.50KB
返回 下载 相关 举报
模糊控制在MATLAB中的实现.ppt_第1页
第1页 / 共40页
模糊控制在MATLAB中的实现.ppt_第2页
第2页 / 共40页
模糊控制在MATLAB中的实现.ppt_第3页
第3页 / 共40页
模糊控制在MATLAB中的实现.ppt_第4页
第4页 / 共40页
模糊控制在MATLAB中的实现.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《模糊控制在MATLAB中的实现.ppt》由会员分享,可在线阅读,更多相关《模糊控制在MATLAB中的实现.ppt(40页珍藏版)》请在三一办公上搜索。

1、模糊控制在MATLAB中的实现,1、采用MATLAB语言根据具体的控制算法编程,2、利用MATLAB提供的模糊逻辑工具箱函数,3、利用模糊逻辑工具箱的图形界面与Simulink动态仿真环境,仿真方法:,简单,直观,复杂但灵活,MATLAB工具箱提供的图形化工具:,模糊系统,例:小费问题,小费与服务及食物质量有关。,输入:服务及食物质量,2个输入。,输出:小费,1个输出。,语言值:,食物:差、好;010,服务:差、好、很好;010,小费:少、中等、高;030,模糊规则:1、如果服务差或食物差,则小费少;,2、如果服务中等,则小费中等;,3、如果服务好或食物非常可口,则小费高。,在matlab工作

2、窗口输入:fuzzy+回车或fuzzy+文件名(.fis)进入图形界面编辑,增加输入变量,输入mfedit或选择编辑隶属度函数菜单,输入服务的隶属度函数,输入mfedit或选择编辑隶属度函数菜单,输入食物的隶属度函数,输入mfedit,或选择编辑隶属度函数菜单,输出小费的隶属度函数,将修改保存到工作空间,输入ruleedit,或选择编辑模糊规则菜单,模糊规则:1、如果服务差,食物差,则小费少;,2、如果服务好,则小费中等;,3、如果服务好和食物非常可口,则小费高。,浏览模糊规则,模糊推理输入输出曲面视图,完成模糊推理系统的构建。,模糊推理系统的存储:,1、选择FileExport菜单将创建的模

3、糊推理系统存成*.fis文件。2、选择FileSave to Workspace as.保存到matlab工作空间,输入变量名(英文命名)。,例:自适应模糊PID控制器,设计一模糊控制器步骤 1.确定e,de和u的论域 2.e,de和u语言变量的选取 3.规则的制定 4.推理方法的确定,假定被控对象的传递函数为:,利用Simulink动态仿真,1.根据系统实际情况,选择e,de和U(Kp,Ki,Kd)的论域 e range:-1 1 de range:-0.1 0.1 u range:0 22.e,de和u语言变量的选取 e 8个:NB,NM,NS,NZ,PZ,PS,PM,PB de 7个:N

4、B,NM,NS,Z,PS,PM,PB U 7个:NB,NM,NS,Z,PS,PM,PB,利用MATLAB的Toolbox工具,偏差的隶属度函数,输入的隶属度函数,偏差变化的隶属度函数,输出的隶属度函数,Kp,Ki,Kd,根据以上规律得Kp、Ki、Kd的模糊规则表,根据设计经验,得出改变PID参数Kp,Ki,Kd的规律,当偏差较大时,Kp=较大(使系统响应加快),Kd=零或较小 Ki=0(避免过大的超调),当偏差中等时,Kp=较小(使系统响应具有较小的超调),Kd=适当(对系统影响较大)Ki=适当,当偏差较小时,Kp=较大(使系统具有良好的稳态性能),Kd=适当(避免在平衡点附近振荡)Ki=较大

5、(使系统具有良好的稳态性能),,3.模糊规则确定,p65,4.推理方法的制定,推理方法:采用 mamdani方法去模糊方法:加权平均法选择隶属函数的形式:三角型,MATLAB,利用模糊逻辑工具箱的图形界面与Simulink动态仿真环境,模糊规则:,模糊规则:,0.1,1,-0.1,-1,0,2,用surfview菜单命令看模糊控制器的输出量,整定出的Kp,Ki,Kd代入PID算法的离散差分公式,1、双击fuzzy contrller,给模糊控制器命名OK2、在matlab窗口中输入命令:命名=readfis(变量名.fis),将*fis文件导入Simulink模型中的步骤:,Scope 2,S

6、cope 1,Scope 3,利用MATLAB提供的模糊逻辑工具箱函数,创建一个新的模糊推理系统(模糊控制器),输入输出的量化等级都为7级e、ec、u=-3,-2,-1,0,1,2,3各取7个语言值,可取:模糊子集:负大、负中、负小、零、正小、正中、正大e、ec的论域=-3,3u的论域=-4.5,4.5隶属度函数任意确定。,%模糊控制器设计a=newfis(fuzzf);%创建新的模糊推理系统f1=1;a=addvar(a,input,e,-3*f1,3*f1);%添加 e 的模糊语言变量a=addmf(a,input,1,NB,zmf,-3*f1,-1*f1);%添加 e 的模糊语言变量的隶

7、属度函数(z型)a=addmf(a,input,1,NM,trimf,-3*f1,-2*f1,0);%隶属度函数为三角形a=addmf(a,input,1,NS,trimf,-3*f1,-1*f1,1*f1);a=addmf(a,input,1,Z,trimf,-2*f1,0,2*f1);a=addmf(a,input,1,PS,trimf,-1*f1,1*f1,3*f1);a=addmf(a,input,1,PM,trimf,0,2*f1,3*f1);a=addmf(a,input,1,PB,smf,1*f1,3*f1);,f2=1;a=addvar(a,input,ec,-3*f2,3*f

8、2);%添加 ec 的模糊语言变量a=addmf(a,input,2,NB,zmf,-3*f2,-1*f2);a=addmf(a,input,2,NM,trimf,-3*f2,-2*f2,0);a=addmf(a,input,2,NS,trimf,-3*f2,-1*f2,1*f2);a=addmf(a,input,2,Z,trimf,-2*f2,0,2*f2);a=addmf(a,input,2,PS,trimf,-1*f2,1*f2,3*f2);a=addmf(a,input,2,PM,trimf,0,2*f2,3*f2);a=addmf(a,input,2,PB,smf,1*f2,3*f2

9、);,f3=1.5;a=addvar(a,output,u,-3*f3,3*f3);%添加 u 的模糊语言变量a=addmf(a,output,1,NB,zmf,-3*f3,-1*f3);a=addmf(a,output,1,NM,trimf,-3*f3,-2*f3,0);a=addmf(a,output,1,NS,trimf,-3*f3,-1*f3,1*f3);a=addmf(a,output,1,Z,trimf,-2*f3,0,2*f3);a=addmf(a,output,1,PS,trimf,-1*f3,1*f3,3*f3);a=addmf(a,output,1,PM,trimf,0,2

10、*f3,3*f3);a=addmf(a,output,1,PB,smf,1*f3,3*f3);,rulelist=1 1 1 1 1;%编辑模糊规则 1 2 1 1 1;1 3 1 1 1;1 4 2 1 1;1 5 2 1 1;1 6 3 1 1;1 7 4 1 1;2 1 1 1 1;2 2 2 1 1;2 3 2 1 1;2 4 2 1 1;2 5 3 1 1;2 6 4 1 1;2 7 5 1 1;,e,ec,u,权系数0-1,与“1”或“0”,a=addrule(a,rulelist);%添加模糊规则函数 showrule(a)%显示模糊规则函数 a1=setfis(a,Defuzz

11、Method,centroid);%设置模糊系统特性 writefis(a1,fuzzf);%保存模糊系统 a2=readfis(fuzzf);%从磁盘读出保存的模糊系统 disp(fuzzy Controller table:e=-3,+3,ec=-3,+3);%显示矩阵和数组内容 Ulist=zeros(7,7);%全零矩阵,for i=1:7 for j=1:7 e(i)=-4+i;ec(j)=-4+j;Ulist(i,j)=evalfis(e(i),ec(j),a2);%完成模糊推理计算 end end Ulist=ceil(Ulist)%朝正无穷方向取整,figure(1);plotfis(a2);figure(2);plotmf(a,input,1);figure(3);plotmf(a,input,2);figure(4);plotmf(a,output,1);,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号