广工大智能控制器作业(模糊自适应整定PID控制器)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

入口ec(k)=e(k)-e(k-1)e(k)=r(k)-y(k)取当前采样值模糊整定ΔKp,ΔKi,ΔKde(k-1)=e(k)e(k)、ec(k)模糊化计算当前Kp,Ki,KdPID控制器输出返回智能控制设计作业××一、题目设计一个模糊自适应整定PID控制器,其被控对象为:22.28()(0.5)(1.648.45)pGssss(1-1)采样时间为1ms,编写matlab仿真程序,确定其在阶跃输入的响应结果,并与经典PID控制相比较。要求详细描述控制系统的设计,控制系统工作流程,模糊控制中的输入输出的隶属函数设计及其采用的模糊规则。二、模糊自适应整定PID控制器的设计过程1.模糊PID工作流程的拟定参照教材,工作流程图如右所示,其中,e是偏差ec是偏差变化量。r代表输入,y代表输出。Kp,Ki,Kd分别代表比例、积分、微分环节的系数。图2-1流程图2.matlab仿真程序的编写(1)matlab仿真程序设计前的准备工作具体的程序请见附录。采样时间为1ms,采用z变换进行离散化,离散化后的被控对象为:y(k)=-den(2)y(k-1)-den(3)y(k-2)-den(4)y(k-3)+num(2)u(k-1)+num(3)u(k-2)+num(4)u(k-3)位置指令为幅值1.0的阶跃信号,r(k)=1.0。仿真时,先运行模糊推理系统设计程序conclusion.m,实现模糊推理系统,并将此模糊推理系统调入内存中,然后运行模糊控制程序controller.m。在程序conclusion.m中,根据下面的模糊控制规则,分别对e、ec、kp、ki、kd进行隶属函数的设计。根据位置指令、初始误差和经验设计e、ec、kp、ki、kd的范围。其中,这几个变量的隶属函数均采用三角形模型的隶属函数。(2)确定模糊控制规则将输入的e、ec与输出的kp、ki、kd进行模糊化。输入量e、ec的模糊集分为{负大、负小、零、正小、正大},五个成员。输出量的kp、ki、kd模糊集都为{负大、负中、负小、零、正小、正中、正大}七个成员。对这5个变量的的论域的划分,以及隶属函数的设计如下面的图2-1到图2-5所示。具体数据可以见附录的conclusion.m程序。因为有两个输入,而且各五种状况,故有25条规则。1.如果偏差e为负大,且ec为负大,那么Kp为负大,Ki为负大,Kd为正小2.如果偏差e为负大,且ec为负小,那么Kp为负大,Ki为负大,Kd为正小3.如果偏差e为负大,且ec为零,那么Kp为负中,Ki为负中,Kd为正中4.如果偏差e为负大,且ec为正小,那么Kp为负大,Ki为负中,Kd为正大5.如果偏差e为负大,且ec为正大,那么Kp为负大,Ki为负大,Kd为正大6.如果偏差e为负小,且ec为负大,那么Kp为负中,Ki为负中,Kd为正中7.如果偏差e为负小,且ec为负小,那么Kp为负中,Ki为负小,Kd为正小8.如果偏差e为负小,且ec为零,那么Kp为负中,Ki为负小,Kd为正小9.如果偏差e为负小,且ec为正小,那么Kp为零,Ki为正小,Kd为正小10.如果偏差e为负小,且ec为正大,那么Kp为正小,Ki为正中,Kd为零11.如果偏差e为零,且ec为负大,那么Kp为正大,Ki为正大,Kd为负中12.如果偏差e为零,且ec为负小,那么Kp为正中,Ki为正大,Kd为负中13.如果偏差e为零,且ec为零,那么Kp为正中,Ki为正中,Kd为负小14.如果偏差e为零,且ec为正小,那么Kp为正小,Ki为正小,Kd为零15.如果偏差e为零,且ec为正大,那么Kp为零,Ki为零,Kd为零16.如果偏差e为正小,且ec为负大,那么Kp为正大,Ki为负大,Kd为正大17.如果偏差e为正小,且ec为负小,那么Kp为正中,Ki为负中,Kd为正中18.如果偏差e为正小,且ec为零,那么Kp为正小,Ki为负小,Kd为正小19.如果偏差e为正小,且ec为正小,那么Kp为零,Ki为正中,Kd为负中20.如果偏差e为正小,且ec为正大,那么Kp为负小,Ki为正大,Kd为负大21.如果偏差e为正大,且ec为负大,那么Kp为正中,Ki为负中,Kd为正中22.如果偏差e为正大,且ec为负小,那么Kp为正小,Ki为负小,Kd为正小23.如果偏差e为正大,且ec为零,那么Kp为零,Ki为零,Kd为负小24.如果偏差e为正大,且ec为正小,那么Kp为负小,Ki为正中,Kd为负中25.如果偏差e为正大,且ec为正大,那么Kp为负小,Ki为正大,Kd为负大按照上述模糊规则,可以建立以下模糊规则表表2-1Kp整定的模糊规则表NBNSZPSPBNBNBNMPBPBPMNSNBNMPMPMPSZNMNMPMPSZPBNBZPSZNSPSNBPSZNSNS表2-2Ki整定的模糊规则表NBNSZPSPBNBNBNMPBNBNMNSNBNSPBNMNSZNMNSPMNSZPBNMPSPSPMPSPSNBPMZPBPB表2-3Kd整定的模糊规则表NBNSZPSPBNBPSPMNMPBPMNSPSPSNMPMPSZPMPSNSPSNSPBPBPSZNMNMPSPBZZNBNBeceeceece图2-1误差的隶属函数图2-2误差变化率的隶属函数图2-3kp的隶属函数图2-4Ki的隶属函数图2-4Kd的隶属函数图2-5模糊系统fuzzpid.fis的结构图2-4模糊推理系统的动态仿真环境图2-4模糊PID控制阶跃响应三、与经典PID控制相比较1.对控制对象进行PID控制器设计为了计算方便,设计控制器时。先为被控对象进行降阶,继而补上纯PID(P/s+Is+D),通过多次试验以挑输出效果比较好的P、I、D系数。又因为为了和上题进行比较,故选取的参数都是上题中的参数初值。综合上面的因素最后选择PID控制器为:)5.01)(5.0(sss=s25.0s1.5ss23(3-1)于是可以得到如下的经过PID控制器整定后的闭环系统。图3-1经典PID整定后的闭环系统图通过matlab的classical.m文件仿真后得到如下的阶跃响应图。具体程序请见附录。图3-1经典PID整定后的系统阶跃响应仿真图-Y(s)R(s)s25.0s1.5ss23)45.864.1(5.0s28.22ss)(GcGp2.模糊自适应整定PID控制器与经典PID控制器的比较下面两图选取的参数类似,即模糊自适应PID控制器的初值与经典PID选取的参数一致,因此可以从下图看出二者的一些区别。图3-2模糊自适应整定PID控制器与经典PID控制器的阶跃响应比较模糊自适应整定很大程度取决于模糊变量的结构、隶属函数,模糊规则以及初值的选取,实验过程中若是一部分选取不当便引起振荡或者上升时间太久、稳态误差过大等等问题。但是一旦能够选取较为适当的时候。模糊PID能够做到比经典PID更为快速达到稳态。在图中,可见模糊控制的方法下,上升时间tr=3.7s,而经典PID的方法下,上升时间是tr=12s。但是模糊控制方法下的波形输出没那么规则平滑,这点则主要归咎于本人对规则的设定不太合理所致。三、实验总结通过这次实验可以说我们有了多方面的收获:第一,加深了对模糊控制方法的学习;第二,认识matlab编程语言的规律;第三,回顾了经典PID控制方法,并通过对两种控制方法进行比较来加深印象。四、附录1.inference.m程序clearall;closeall;a=newfis('fuzzpid');a=addvar(a,'input','e',10*[-1,1]);a=addmf(a,'input',1,'NB','zmf',10*[-1,-0.6]);a=addmf(a,'input',1,'NS','trimf',10*[-0.8,-0.4,0]);a=addmf(a,'input',1,'Z','trimf',10*[-0.4,0,0.4]);a=addmf(a,'input',1,'PS','trimf',10*[0,0.4,0.8]);a=addmf(a,'input',1,'PB','smf',10*[0.6,1]);a=addvar(a,'input','ec',3*[-3,3]);a=addmf(a,'input',2,'NB','zmf',3*[-3,-1.8]);a=addmf(a,'input',2,'NS','trimf',3*[-2.4,-1.2,0]);a=addmf(a,'input',2,'Z','trimf',3*[-1.2,0,1.2]);a=addmf(a,'input',2,'PS','trimf',3*[0,1.2,2.4]);a=addmf(a,'input',2,'PB','smf',3*[1.8,3]);a=addvar(a,'output','kp',[-3.5,3.5]);a=addmf(a,'output',1,'NB','zmf',[-3.5,-2.5]);a=addmf(a,'output',1,'NM','trimf',[-3,-2,-1]);a=addmf(a,'output',1,'NS','trimf',[-2,-1,0]);a=addmf(a,'output',1,'Z','trimf',[-1,0,1]);a=addmf(a,'output',1,'PS','trimf',[0,1,2]);a=addmf(a,'output',1,'PM','trimf',[1,2,3]);a=addmf(a,'output',1,'PB','smf',[2.5,3.5]);a=addvar(a,'output','ki',5*[-0.8,0.8]);a=addmf(a,'output',2,'NB','zmf',5*[-0.8,-0.4]);a=addmf(a,'output',2,'NM','trimf',5*[-0.6,-0.4,-0.2]);a=addmf(a,'output',2,'NS','trimf',5*[-0.4,-0.2,0]);a=addmf(a,'output',2,'Z','trimf',5*[-0.2,0,0.2]);a=addmf(a,'output',2,'PS','trimf',5*[0,0.2,0.4]);a=addmf(a,'output',2,'PM','trimf',5*[0.2,0.4,0.6]);a=addmf(a,'output',2,'PB','smf',5*[0.4,0.8]);a=addvar(a,'output','kd',[-3.5,3.5]);a=addmf(a,'output',3,'NB','zmf',[-3.5,-2.5]);a=addmf(a,'output',3,'NM','trimf',[-3,-2,-1]);a=addmf(a,'output',3,'NS','trimf',[-2,-1,0]);a=addmf(a,'output',3,'Z','trimf',[-1,0,1]);a=addmf(a,'output',3,'PS','trimf',[0,1,2]);a=addmf(a,'output',3,'PM','trimf',[1,2,3]);a=addmf(a,'output',3,'PB','smf',[2.5,3.5]);rulelist=[1111411;1211511;1322611;1432711;1533711;2122611;2223511;2323511;2434411;2545311;3177211;3267211;3366311;3455511;3544611;4171711;4262611;4353511;4446211;4537111;5162611;5253511;5344311;5436211;5537111;];a=addrule(a,rulelist);a=setfis(a,'DefuzzMethod','centroid');writefis(a,'fu

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功