您好,欢迎访问三七文档
模糊控制实验报告-1-模糊控制实验报告一、实验目的根据所学习的模糊控制的相关的理论知识,在Matlab上建立隶属函数和规则,利用编程或者在Simulink实现对一个实际的系统进行优化控制,对所学的理论知识进行巩固和加深。二、实验内容系统开环传递函数如下,试设计一个模糊控制器,并撰写试验报告。24.228()0.5Gsss三、实验要求3.1系统开环传递函数各参数自行选择,当控制系统输入为阶跃信号时,系统输出的阶跃响应应满足以下性能指标要求:1)、超调量10%;2)、稳态精度5%;3)、过渡过程时间3s;3.2报告应包括以下内容:1)、MATLAB仿真系统结构图;2)、模糊控制器和模糊规则的建立过程;3)、根据性能指标进行的模糊控制器的调整过程;4)、最初的以及调整后的系统阶跃响应曲线图、性能指标计算结果;5)、实验结论和在实验中遇到的问题与解决办法;6)、提供MATLAB源程序;四、实验步骤4.1确定模糊控制器的输入变量和输出变量(即控制量)输入变量:误差e和误差的变化量ec;,输出变量:控制量u;是一个二维的二输入一输出的模糊控制器图4.1控制框图4.2变量论域的选取模糊控制实验报告-2-4.2.1变量实际论域的选取首先,在Simulink观察没有经过模糊控制的系统的输出,误差和误差的变化率来确定要控制的两个变量:偏差e和偏差的变化率ec的实际论域和输出u的实际论域。图4.2Simulink中原始的系统框图图4.3没有经过模糊控制的系统输出u从图4.3可以看出这个系统是一个稳定系统但是超调比较大,不符合要求,因此可以选择添加模糊控制系统,增加过渡时间来减小超调量。u的实际论域可以取[0,1.7]。模糊控制实验报告-3-图4.4偏差e的变化情况图4.5偏差变化率ec的变化情况由图4.4和图4.5可以看出,偏差e的变化大致在[-0.7,1],偏差变化率ec的变化大致在[-1.7,1.2]。但是偏差e也只是系统在上升时变化比较大,在系统趋于稳定之后,变化就很小了,为了得到好的控制精度,可取偏差的实际论域为[-0.05,0.05],变化范围小,使那些超出范围的全都量化到这个范围之内,以达到高的精度、小的稳态误差。因此,在利用模糊控制优化系统时,偏差e的实际论域可以取为[-1,1],偏差变化率ec的实际论域可以根据实际变化情况取为[-1.2,1.2]。模糊控制实验报告-4-4.2.2变量模糊论域和量化因子的选取通过偏差量化因子Ke,偏差变化率量化因子Kd和输出量化因子Ku将连续输入的变量偏差e和偏差的变化量ec和输出u都量化至量化域{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6},并且选偏差e,偏差的变化率ec和输出u的模糊变量为:{NL,NM,NS,ZO,PS,PM,PL}4.3确定论域上各语言值对应的隶属函数.图4.6偏差e的隶属函数图4.7偏差变化率ec的隶属函数图4.8输出u的隶属函数模糊控制实验报告-5-图4.9控制器的输入输出界面图4.10模糊推理系统由上述输入变量的隶属度曲线可以讲他转换成隶属函数表:表一隶属函数表偏差e和偏差变化量ec的论域隶属度-6-5-4-3-2-10123456NL1.00.500000000000NM00.51.00.5000000000NS0000.51.00.50000000ZO000000.51.00.500000PS00000000.51.00.5000PM0000000000.51.00.50模糊语言值PL000000000000.51.0模糊控制实验报告-6-4.4设计模糊控制器的控制规则用语言归纳模糊控制策略为规则:表二控制规则表偏差的变化量控制量uNLNMNSZOPSPMPLNLPLPLPLPLPMPSZONMPLPLPMPMPSZOZONSPLPMPMPSZOZONSZOPMPSPSZONSNSNMPSPSZOZONSNMNMNLPMZOZONSNMNMNLNL输入变量偏差ePLZONSNMNLNLNLNL对于多个控制规则并行时,决策过程为:图4.10控制决策过程4.5确定模糊化与解模糊的方法;1)最大隶属度法:选择最大隶属度对应的值2)加权平均法:*()()iiiuuuu3)取中位数法:将模糊隶属函数与横坐标之间面积平分为两等分的数作为解模糊的结果,此数称为中位数。4.6确定模糊控制器参数(如量化因子,比例因子)4.6.1量化因子若模糊控制器的基本论域是[a,b],模糊集论域为[-6,6],可采用公式模糊控制实验报告-7-12int[()]2abyxab则偏差量化因子,eenKx,ececnKx便可以求得初始的量化因子ke=120,kec=3。4.6.2比例因子模糊控制算法输出与实际控制量的变换uulKy其中uy为实际控制量,而l为模糊控制表所获得的精确控制量.可取Ku=7。五、实验数据和分析:5.1量化因子对控制作用的影响量化因子ke对控制系统的动态影响很大,ke较大时,系统超调也较大,过渡过程长。因为增大ke相当于缩小了误差的基本论域,增大了误差变量的控制作用,因此上升时间变短,但由于超调,使过渡时间变长。(相当于PID控制中比例系数增大)。Kd较大时,超调量小,kd增大则系统超调减小,但响应时间变长。kd对超调抑制作用明显。ke与kd的大小还意味着对输入变量误差与误差变化的不同加权程度,即ke与kd之间相互影响,例取kd=(1.5~2.5)ke。ku影响实际控制量大小,ku下降使动态响应变长,ku大则导致系统振荡。5.2编制控制程序,并观察输出结果图5.1系统Simulink仿真图模糊控制实验报告-8-当改变ke的值时,可以看到如图变化:图5.2不同的ke对应的不同输出Ke的大小对系统的动态性能影响很大。Ke选的比较大时,系统上升较快,超调量也较大,过渡时间较长。当改变kd的值时,可以看到如图变化:图5.3不同的kd对应的不同输出模糊控制实验报告-9-可以得出结论:Kd较大时,超调量小,kd增大则系统超调减小,但响应时间变长,kd对超调抑制作用明显。当改变ku的值时,可以看到如图变化:图5.4不同的ku对应的不同输出由图5.3可知,ku影响实际控制量大小,ku越小动态响应时间越长,ku越大则导致会系统振荡。图5.5最优化输出模糊控制实验报告-10-经过不断变化Ke,Kd,Ku三个参数,得到最优的系统输出,当Ke=150,Kd=3,Ku=8时,没有超调,稳态误差约为0,上升时间为0.4s,过渡时间约为0.4s。系统不仅符合设计要求,而且是各项参数最好的控制。六、实验结论在实验中,通过仿真对比分析了模糊控制器的量化因子和比例因子对模糊控制效果的影响。通过上述对比分析可以看出,对于已知精确模型的系统,模糊控制器具有很好的控制效果,能够完全消除稳态误差,而模糊控制器需要反复调节量化因子和比例因子才能尽可能地消除稳态误差。当然,实验中仅采取了最基本的模糊控制器,更加优秀的模糊控制器应该会带来更好的控制效果。6.1遇到的问题1、量化因子Ke,Kec,Ku该如何确定?有个一般的公式:Ke=n/e(max),Kec=m/ec(max),Ku=l/u(max)其中,n,m,l分别为Ke,Kec,Ku的量化等级,一般可取6或7;e(max),ec(max),u(max)分别为误差,误差变化率和控制输出的论域。可以先观察一下没有添加模糊控制时系统的误差,误差变化率和控制输出的实际论域,由公式首先确定出Ke,Kec,Ku的值,在这这个基础上通过凑试法,根据经验,先确定Ku,这个直接关系着你的输出是发散的还是收敛的。再确定Ke,这个直接关系着输出的稳态误差响应。最后确定Kec。2.Simulink和fis文件怎么连接?运行Simulink之前,先用fuzzy指令打开*.fis文件,输入隶属函数和规则之后将其export到workspace中,然后打开simulink中的模糊模块,双击模糊模块,填入刚才存入workspace中的那个文件名,这样模糊模块就和*.fis链接了。在进入Simulink中,右键单击Fuzzylogiccontroller,选择LookUnderMask既可以看到连接情况,若显示FIS说明连接好了,若是显示sffis说明没有连接好。6.2在实验中也发现,模糊控制同常规控制器比较,有着显著的优点:(1)、模糊控制能有效地利用人的控制经验和专家知识;(2)、它不需要建立被控对象的精确的数学模型;(3)、系统语言规则相对独立,利用控制规律间的模糊连接,容易得到折中选择,使控制效果优于常规控制。模糊控制实验报告-11-附:程序:%建立二阶系统模型num=4.228;den=[10.54.228];[a1,b,c,d]=tf2ss(num,den);G=tf(num,den);%建立fis文件,fuzzy控制器a=newfis('control');a=addvar(a,'input','e',[-66]);%添加偏差变量ea=addvar(a,'input','ec',[-66]);%添加偏差的变化率eca=addvar(a,'output','u',[-66]);%添加控制量ua=addmf(a,'input',1,'NL','trimf',[-8-6-4]);%添加偏差变量e的隶属函数a=addmf(a,'input',1,'NM','trimf',[-6-4-2]);a=addmf(a,'input',1,'NS','trimf',[-4-20]);a=addmf(a,'input',1,'ZO','trimf',[-202]);a=addmf(a,'input',1,'PS','trimf',[024]);a=addmf(a,'input',1,'PM','trimf',[246]);a=addmf(a,'input',1,'PL','trimf',[468]);a=addmf(a,'input',2,'NL','trimf',[-8-6-4]);%添加ec的隶属函数a=addmf(a,'input',2,'NM','trimf',[-6-4-2]);a=addmf(a,'input',2,'NS','trimf',[-4-20]);a=addmf(a,'input',2,'ZO','trimf',[-202]);a=addmf(a,'input',2,'PS','trimf',[024]);a=addmf(a,'input',2,'PM','trimf',[246]);a=addmf(a,'input',2,'PL','trimf',[468]);a=addmf(a,'output',1,'NL','trimf',[-8-6-4]);%添加u的隶属函数a=addmf(a,'output',1,'NM','trimf',[-6-4-2]);a=addmf(a,'output',1,'NS','trimf',[-4-20]);a=addmf(a,'output',1,'ZO','trimf',[-202]);a=addmf(a,'output',1,'PS','trimf',[024]);a=addmf(a,'output',1,'PM','trimf',[246]);a=addmf(a,'output',1,'PL','trimf',[468]);%模糊规则矩阵rr=[7777654;7766544;7665443;6554332;5443221;4432211;4321111];k=1;模糊控制实验报告-12-r1=zeros(prod(size(rr)),3);fori=1:size(rr,1)forj=1:size(rr,2)r1(k,:)=[i,j,rr(i,j)];k=k+1;endend[r,s]=size(r1);r2=ones(r,2);rulelist=[r1,r2];a=addrule(a,rulelist);%设置抽样时间T=0.01;h=T;N=500;R=1*ones(1,N);
本文标题:模糊控制大作业
链接地址:https://www.777doc.com/doc-7197314 .html