模糊控制在MATLAB中的实现.ppt
- 文档编号:2761800
- 上传时间:2022-11-12
- 格式:PPT
- 页数:40
- 大小:854.50KB
模糊控制在MATLAB中的实现.ppt
《模糊控制在MATLAB中的实现.ppt》由会员分享,可在线阅读,更多相关《模糊控制在MATLAB中的实现.ppt(40页珍藏版)》请在冰豆网上搜索。
模糊控制在MATLAB中的实现1、采用、采用MATLAB语言根据具体的控制算法编程语言根据具体的控制算法编程2、利用、利用MATLAB提供的模糊逻辑工具箱函数提供的模糊逻辑工具箱函数3、利用模糊逻辑工具箱的图形界面与、利用模糊逻辑工具箱的图形界面与Simulink动态仿真环境动态仿真环境仿真方法:
仿真方法:
简单简单直观直观复杂但灵活复杂但灵活MATLABMATLAB工具箱提供的图形化工具:
工具箱提供的图形化工具:
模糊系统模糊系统FISEditor模糊推理系统编辑器模糊推理系统编辑器(Fuzzy)MFEditor隶属度函数隶属度函数编辑器编辑器(Mfedit)RuleEditor模糊规则模糊规则编辑器编辑器(Ruleedit)RuleViewer模糊规则模糊规则观察器观察器(Ruleview)SurfaceViewer输入输出面视图输入输出面视图(Surfview)例:
小费问题例:
小费问题小费与服务及食物质量有关。
小费与服务及食物质量有关。
输入:
输入:
服务及食物质量,服务及食物质量,2个输入。
个输入。
输出:
输出:
小费,小费,1个输出。
个输出。
语言值:
语言值:
食物:
差、好;食物:
差、好;010服务:
差、好、很好;服务:
差、好、很好;010小费:
少、中等、高;小费:
少、中等、高;030模糊规则:
模糊规则:
1、如果服务差或食物差,则小费少;、如果服务差或食物差,则小费少;2、如果服务中等,则小费中等;、如果服务中等,则小费中等;3、如果服务好或食物非常可口,则小费高。
、如果服务好或食物非常可口,则小费高。
在在matlab工作窗口输入:
工作窗口输入:
fuzzy+回车或回车或fuzzy+文件名(文件名(.fis)进入图形界面编辑进入图形界面编辑增加输入变量增加输入变量输入输入mfeditmfedit或选择编辑隶属度函数菜单或选择编辑隶属度函数菜单输入服务的隶属度函数输入服务的隶属度函数输入输入mfeditmfedit或选择编辑隶属度函数菜单或选择编辑隶属度函数菜单输入食物的隶属度函数输入食物的隶属度函数输入输入mfeditmfedit,或选择编辑隶属度函数菜单,或选择编辑隶属度函数菜单输出小费的隶属度函数输出小费的隶属度函数将修改保存到工作空间输入输入ruleeditruleedit,或选择编辑,或选择编辑模糊规则模糊规则菜单菜单模糊规则:
模糊规则:
1、如果服务差,食物差,则小费少;、如果服务差,食物差,则小费少;2、如果服务好,则小费中等;、如果服务好,则小费中等;3、如果服务好和食物非常可口,则小费高。
、如果服务好和食物非常可口,则小费高。
浏览模糊规则浏览模糊规则模糊推理输入输出曲面视图,完成模糊推理系统的构建。
模糊推理输入输出曲面视图,完成模糊推理系统的构建。
模糊推理系统的存储:
模糊推理系统的存储:
1、选择、选择FileExport菜单将创建的模糊推理系统菜单将创建的模糊推理系统存成存成*.fis文件。
文件。
2、选择、选择FileSavetoWorkspaceas.保存到保存到matlab工作空间,输入变量名(英文命名)。
工作空间,输入变量名(英文命名)。
例:
自适应模糊例:
自适应模糊PIDPID控制器控制器设计一模糊控制器步骤步骤1.确定确定ee,dede和和uu的论域的论域2.ee,dede和和uu语言变量的选取语言变量的选取3.规则的制定规则的制定4.推理方法的确定推理方法的确定假定被控对象的传递函数为:
利用利用Simulink动态仿真动态仿真1.根据系统实际情况,选择e,de和U(Kp,Ki,Kd)的论域erange:
-11derange:
-0.10.1urange:
022.e,de和u语言变量的选取e8个:
NB,NM,NS,NZ,PZ,PS,PM,PBde7个:
NB,NM,NS,Z,PS,PM,PBU7个:
NB,NM,NS,Z,PS,PM,PB利用利用MATLAB的的Toolbox工具工具偏差的隶属度函数偏差的隶属度函数输入的隶属度函数输入的隶属度函数偏差变化的隶属度函数偏差变化的隶属度函数输出的隶属度函数输出的隶属度函数Kp,Ki,Kd根据以上规律得根据以上规律得KpKp、Ki、Kd的模糊规则表的模糊规则表根据设计经验,得出改变根据设计经验,得出改变PID参数参数Kp,Ki,Kd的规律的规律当偏差较大时,当偏差较大时,Kp=较大(使系统响应加快),较大(使系统响应加快),Kd=零或较小零或较小Ki=0(避免过大的超调)(避免过大的超调)当偏差中等时,当偏差中等时,Kp=较小(使系统响应具有较小的超调),较小(使系统响应具有较小的超调),Kd=适当(对系统影响较大)适当(对系统影响较大)Ki=适当适当当偏差较小时,当偏差较小时,Kp=较大(使系统具有良好的稳态性能),较大(使系统具有良好的稳态性能),Kd=适当(避免在平衡点附近振荡)适当(避免在平衡点附近振荡)Ki=较大(使系统具有良好的稳态性能),较大(使系统具有良好的稳态性能),3.模糊规则确定模糊规则确定p654.推理方法的制定推理方法推理方法:
采用采用mamdani方法方法去模糊方法:
去模糊方法:
加权平均法加权平均法选择隶属函数的形式:
选择隶属函数的形式:
三角型三角型MATLAB利用模糊逻辑工具箱的图形界面与利用模糊逻辑工具箱的图形界面与Simulink动态仿真环境动态仿真环境模糊规则:
模糊规则:
模糊规则:
模糊规则:
0.11-0.1-102用用surfviewsurfview菜单命令看模糊控制器的输出量菜单命令看模糊控制器的输出量整定出的整定出的Kp,Ki,Kd代入代入PID算法的离散算法的离散差分公式差分公式1、双击、双击fuzzycontrller,给模糊控制器命名,给模糊控制器命名OK2、在、在matlab窗口中输入命令:
窗口中输入命令:
命名命名=readfis(变量名变量名.fis)将将*fis文件导入文件导入Simulink模型中的步骤:
模型中的步骤:
Scope2Scope1Scope3利用利用MATLABMATLAB提供的模糊逻辑工具箱函数提供的模糊逻辑工具箱函数创建一个新的模糊推理系统(模糊控制器)创建一个新的模糊推理系统(模糊控制器)输入输出的量化等级都为输入输出的量化等级都为77级级ee、ecec、u=-3,-2,-1,0,1,2,3u=-3,-2,-1,0,1,2,3各取各取77个语言值,可取:
模糊子集:
负大、负中、负个语言值,可取:
模糊子集:
负大、负中、负小、零、正小、正中、正大小、零、正小、正中、正大ee、ecec的论域的论域=-3,3=-3,3uu的论域的论域=-4.5,4.5=-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的模糊语言变量的隶属度函数(的模糊语言变量的隶属度函数(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*f2);%添加添加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);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*f3,3*f3);a=addmf(a,output,1,PB,smf,1*f3,3*f3);rulelist=11111;%编辑模糊规则编辑模糊规则12111;13111;14211;15211;16311;17411;21111;22211;23211;24211;25311;26411;27511;eecu权系数权系数0-1与与“1”或或“0”a=addrule(a,rulelist);%添加模糊规则函数添加模糊规则函数showrule(a)%显示模糊规则函数显示模糊规则函数a1=setfis(a,DefuzzMethod,centroid);%设置模糊系统特性设置模糊系统特性writefis(a1,fuzzf);%保存模糊系统保存模糊系统a2=readfis(fuzzf);%从磁盘读出保存的模糊系统从磁盘读出保存的模糊系统disp(fuzzyControllertable:
e=-3,+3,ec=-3,+3);%显示矩阵和数组内容显示矩阵和数组内容Ulist=zeros(7,7);%全零矩阵全零矩阵fori=1:
7forj=1:
7e(i)=-4+i;ec(j)=-4+j;Ulist(i,j)=evalfis(e(i),ec(j),a2);%完成模糊推理计算完成模糊推理计算endendUlist=ceil(Ulist)%朝正无穷方向取整朝正无穷方向取整figure
(1);plotfis(a2);figure
(2);plotmf(a,input,1);figure(3);plotmf(a,input,2);figure(4);plotmf(a,output,1);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模糊 控制 MATLAB 中的 实现