- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
智能控制实验
实 验 报 告实验课程:智能控制学生姓名:学号:专业班级:2015年1月5日实验一 水箱液位的模糊控制一、实验目的熟悉模糊控制的特征、结构及学习算法通过实验进一步掌握模糊控制的原理及实现掌握用MATLAB进行控制系统仿真的方法5、设计模糊控制器来控制水箱液位二、实验设备及条件计算机(装有MATLAB仿真软件)三、实验原理以水位的模糊控制为例,如下图所示。设有一个水箱,通过调节阀可向内注水和向外抽水。设计一个模糊控制器,通过调节阀门将水位稳定在固定点附近。按照日常的操作经验,可以得到基本的控制规则:“若水位高于O点,则向外排水,差值越大,排水越快”;“若水位低于O点,则向内注水,差值越大,注水越快”。根据上述经验,按下列步骤设计模糊控制器:图1.1水箱的液位控制四、实验步骤1、确定观测量和控制量定义理想液位O点的水位为h0,实际测得的水位高度为h,选择液位差将当前水位对于O点的偏差e作为观测量。2 输入量和输出量的模糊化将偏差e分为五级:负大(NB),负小(NS),零(O),正小(PS),正大(PB)。根据偏差e的变化范围分为七个等级:-3,-2,-1,0,+1,+2,+3。得到水位变化模糊表1。表1-1水位变化划分表控制量u为调节阀门开度的变化。将其分为五级:负大(NB),负小(NS),零(O),正小(PS),正大(PB)。并根据u的变化范围分为九个等级:-4,-3,-2,-1,0,+1,+2,+3,+4。得到控制量模糊划分表2表1-2 控制量变化划分表3 模糊规则的描述根据日常的经验,设计以下模糊规则:(1)“若e负大,则u负大”(2)“若e负小,则u负小”(3)“若e为0,则u为0”(4)“若e正小,则u正小”(5)“若e正大,则u正大”其中,排水时,u为负,注水时,u为正。上述规则采用“IF A THEN B”形式来描述:(1) if e=NB then u=NB(2) if e=NS then u=NS(3) if e=0 then u=0(4) if e=PS then u=PS(5) if e=PB then u=PB根据上述经验规则,可得模糊控制表3表1-3 模糊控制规则表4 求模糊关系模糊控制规则是一个多条语句,它可以表示为U×V上的模糊子集,即模糊关系R:其中规则内的模糊集运算取交集,规则间的模糊集运算取并集。由以上五个模糊矩阵求并集(即隶属函数最大值),得:5、编程按上述步骤,设计水箱模糊控制的Matlab仿真程序。通过该程序,可实现模糊控制的动态仿真。%Fuzzy Control for water tankclear all;close all;a=newfis(fuzz_tank);a=addvar(a,input,e,[-3,3]); %Parameter ea=addmf(a,input,1,NB,zmf,[-3,-1]);a=addmf(a,input,1,NS,trimf,[-3,-1,1]);a=addmf(a,input,1,Z,trimf,[-2,0,2]);a=addmf(a,input,1,PS,trimf,[-1,1,3]);a=addmf(a,input,1,PB,smf,[1,3]);a=addvar(a,output,u,[-4,4]); %Parameter ua=addmf(a,output,1,NB,zmf,[-4,-1]);a=addmf(a,output,1,NS,trimf,[-4,-2,1]);a=addmf(a,output,1,Z,trimf,[-2,0,2]);a=addmf(a,output,1,PS,trimf,[-1,2,4]);a=addmf(a,output,1,PB,smf,[1,4]);rulelist=[1 1 1 1; %Edit rule base 2 2 1 1; 3 3 1 1; 4 4 1 1; 5 5 1 1];a=addrule(a,rulelist);a1=setfis(a,DefuzzMethod,mom); %Defuzzywritefis(a1,tank); %Save to fuzzy file tank.fisa2=readfis(tank);figure(1);plotfis(a2);figure(2);plotmf(a,input,1);figure(3);plotmf(a,output,1);flag=1;if flag==1 showrule(a) %Show fuzzy rule base rule
文档评论(0)