第5次课例1:工业工程控制例2:典型二阶环节的模糊控制例1:工业过程例1:某一工业过程要根据测量的温度(t)和压力(p)来确定阀门开启的角度:这种关系很难用数学模型精确描述。实际中由有经验的操作员完成,因此通常可设计模糊控制器取而代之。),(Ptf输入输出变量的论域温度:[0~30]度压力:[0~3]大气压阀门开启的角度:[-10+10]度温度和压力的模糊隶属度函数采用三角形隶属度函数温度:“冷”“热”压力:“正常”“高”05101520253000.20.40.60.81温度隶属度函数00.511.522.5300.20.40.60.81压力隶属度函数阀门开启角度的模糊隶属度函数“负”“零”“正”-10-8-6-4-2024681000.20.40.60.81角度增量隶属度函数模糊推理规则库模糊推理规则有3条:If温度“冷”and压力“高”,则阀门角度增量为“正”If温度“热”and压力“高”,则阀门角度增量为“负”If压力“正常”,则阀门角度增量为“零”模糊控制器设计(5-1)pc1=newfis('pc1');pc1=addvar(pc1,'input','温度',[030]);pc1=addvar(pc1,'input','压力',[03]);pc1=addvar(pc1,'output','增量',[-1010]);addvar功能:在FIS中添加变量。格式:a=addvar(a,'varType','varName',varBounds)模糊控制器设计(5-2)addmf功能:隶属度函数添加到FIS(模糊推理系统)。格式:a=addmf(a,'varType',varIndex,'mfName','mfType',mfParams)05101520253000.20.40.60.81温度隶属度函数00.511.522.5300.20.40.60.81压力隶属度函数三角形:3个参数梯形:4个参数模糊控制器设计(5-3)pc1=addmf(pc1,'input',1,'冷','trapmf',[001020]);pc1=addmf(pc1,'input',1,'热','trapmf',[10203030]);pc1=addmf(pc1,'input',2,'正常','trimf',[012]);pc1=addmf(pc1,'input',2,'高','trapmf',[1233]);pc1=addmf(pc1,'output',1,'负','trimf',[-10-50]);pc1=addmf(pc1,'output',1,'零','trimf',[-505]);pc1=addmf(pc1,'output',1,'正','trimf',[0510]);模糊控制器设计(5-4)addrule功能:在FIS中添加规则。格式:a=addrule(a,ruleList)m个输入,n个输出:前m列表示系统的输入,每列的数值表示输入变量隶属度函数的编号;接着的n列表示系统的输出,每列的数值表示输出变量隶属度函数的编号;第m+n+1列为该条规则的权值(0~1);第m+n+2列的值决定模糊操作符的类型:1(当模糊操作符为AND时)或2(当模糊操作符为OR时)。模糊控制器设计(5-5)rulelist=[12311;22111;01212];pc1=addrule(pc1,rulelist);模糊推理规则If温度“冷”and压力“高”,则阀门角度增量为“正”If温度“热”and压力“高”,则阀门角度增量为“负”If压力“正常”,则阀门角度增量为“零”模糊推理计算evalfis功能:完成模糊推理计算。格式:output=evalfis(input,fismat)output=evalfis(input,fismat,numPts)numPts:计算输入和输出隶属度函数时采用的取样点数,如缺省,则采用缺省值:101。模糊推理计算例如,当t=5°,P=2,则evalfis([52],pc1)ans=5这说明模糊控制器的输出为5°输入输出控制曲线绘制出当t(或者P)不变时的控制曲线,例如当t=5°时,可求出控制输出θ与压力P之间的关系,如图(a)所示。t=5;P=[0.1:0.1:3]';X=[t*ones(size(P)),P];Y=evalfis(X,pc1);figure(1)subplot211plot(P,Y),xlabel('压力');ylabel('控制')00.511.522.53-20246压力控制051015202530-505温度控制输入输出控制曲线t1=[0:30]';P1=2;X1=[t1,P1*ones(size(t1))];Y1=evalfis(X1,pc1);subplot212plot(t1,Y1),xlabel('温度');ylabel('控制')模糊控制器的输入/输出曲面gensurf(pc1)例2:典型二阶环节的模糊控制14.46.120)(2sssHDuCxyBuAxx其中a=-2.7500-0.6250b=11.000000c=[012.5000]d=0这种以传递函数形式表示的系统可以等效表示成状态方程形式设计模糊控制器,使系统输出尽快跟随系统输入。龙格-库塔(Runge-Kutta)方法四阶龙格-库塔公式,也就是在工程中应用广泛的经典龙格-库塔算法:34231214321*)(,)(2/*)(,2)(2/*)(,2)())(),((6/22*)()1(),()(khixhiufkkhixhiufkkhixhiufkixiufkkkkkhixixBuAxxuftx系统输入输出设系统输入为R,系统输出误差为e,误差导数为de,则可根据系统输出的误差和误差导数设计出模糊控制器(FC)。误差e的论域:【-6+6】误差导数de的论域:【-6+6】控制输入u的论域:【-3+3】模糊化-6-4-2024600.20.40.60.81eNBNSZRPSPB-6-4-2024600.20.40.60.81deNBNSZRPSPB模糊化-3-2-1012300.20.40.60.81uNBNSZRPSPB模糊推理规则edeNBNSZRPSPBNBPBPBPSPSZRNSPBPSPSZRZRZRPSPSZRZRNSPSPSZRZRNSNSPBZRZRNSNSNB模糊控制系统设计%Example3.8%典型二阶系统的模糊控制%%被控系统建模num=20;den=[1.6,4.4,1];[a1,b,c,d]=tf2ss(num,den);x=[0;0];模糊控制系统设计%系统参数T=0.01;h=T;N=250;R=1.5*ones(1,N);%参考输入模糊控制系统设计%定义输入和输出变量及其隶属度函数a=newfis('Simple');a=addvar(a,'input','e',[-66]);a=addmf(a,'input',1,'NB','trapmf',[-6,-6,-5,-3]);a=addmf(a,'input',1,'NS','trapmf',[-5,-3,-20]);a=addmf(a,'input',1,'ZR','trimf',[-2,0,2]);a=addmf(a,'input',1,'PS','trapmf',[0,2,35]);a=addmf(a,'input',1,'PB','trapmf',[3,5,6,6]);模糊控制系统设计a=addvar(a,'input','de',[-66]);a=addmf(a,'input',2,'NB','trapmf',[-6,-6,-5,-3]);a=addmf(a,'input',2,'NS','trapmf',[-5,-3,-20]);a=addmf(a,'input',2,'ZR','trimf',[-2,0,2]);a=addmf(a,'input',2,'PS','trapmf',[0,2,3,5]);a=addmf(a,'input',2,'PB','trapmf',[3,5,6,6]);模糊控制系统设计a=addvar(a,'output','u',[-33]);a=addmf(a,'output',1,'NB','trapmf',[-3,-3,-3,-2]);a=addmf(a,'output',1,'NS','trimf',[-2,-1,0]);a=addmf(a,'output',1,'ZR','trimf',[-1,0,1]);a=addmf(a,'output',1,'PS','trimf',[0,1,2]);a=addmf(a,'output',1,'PB','trapmf',[2,3,3,3]);模糊控制系统设计%模糊规则矩阵。rr=[5544354433443324332233221];r1=zeros(prod(size(rr)),3);k=1;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);模糊控制系统设计%采用模糊控制器的二阶系统仿真e=0;de=0;ke=30;kd=20;ku=1;fork=1:N%输入变量变换至论域模糊控制系统设计e1=ke*e;de1=kd*de;ife1=6e1=6;elseife1=-6e1=-6;endifde1=6de1=6;elseifde1=-6de1=-6;end模糊控制系统设计%模糊推理,计算出被控对象的控制输入in=[e1de1];u=ku*evalfis(in,a);uu(1,k)=u;模糊控制系统设计%控制作用于被控系统,计算系统输出k0=a1*x+b*u;k1=a1*(x+h*k0/2)+b*u;k2=a1*(x+h*k1/2)+b*u;k3=a1*(x+h*k2)+b*u;x=x+(k0+2*k1+2*k2+k3)*h/6;y=c*x+d*u;yy(1,k)=y;模糊控制系统设计%计算系统输出误差及误差导数e1=e;e=y-R(1,k);de=(e-e1)/T;end模糊控制系统设计%典型二阶环节的模糊控制输出曲线kk=[1:N]*T;figure(1);plot(kk,R,'k',kk,yy,'r');gridonxlabel('时间(秒)');ylabel('输出');模糊控制系统设计模糊控制系统阶跃响应曲线00.511.522.500.20.40.60.811.21.41.61.82时间(秒)输出校园新貌完成下列题目之一,独立思考,可以互相讨论,目的是掌握模糊控制系统的实际设计;将自己设计结果形成报告,应该包含系统分析、模糊控制系统设计、程序、结果、结果分析和设计体会。报告发送地址:Email:shtlou@mail.xidian.edu.cn综合设计题目1:二阶系统的模糊控制典型二阶系统的模糊控制与传统PID控制的性能比较。通常的工业过程可等效成二阶系统加上一些典型的非线性环节,如死区、饱和、纯延迟等,这里假设系统为:控制执行结构具有0.07的死区和0.7的饱和区,取样时间间隔T=0.01。设计模糊控制器,并绘出参考输入为1时的模糊控制系统响应。18210)(2sssH题目2:倒立摆平衡的模糊控制器倒立摆的动力学方程为:其中x1表示摆与垂直线的夹角,x2表示摆的旋转角速度,g为地球重力加速度,m是倒立摆的质量,2L为摆长,a=1/(M+m),M为小车质量,u表示作用于小车上的力。设m=2kg,M=8kg,L=0.5m)(cos3/4)cos(2/)2sin()sin(1211221221xamlluxaxamlxxgxxx