基于S函数的模糊整定PID控制器的设计及仿真IX自动化技术与应用》2007年第26卷第2期.m业控制与应用ndustryControlandApplications基于S函数的模糊整定PID控制器的设计及仿真李娟(西北第二民族学院设计艺术系,宁夏银/II75002I)摘要:针对工业过程控制中被控对象往往为非线性,时变系统,常规的PID控制对于这样的系统的控制效果不是很理想,提出了模糊整定PID控制算法,并且在Matlab下利用S函数实现了模糊整定PID控制器的设计及仿真,并将该方法用于激光晶体生长系统的直径调节器中,结果表明,该系统对纯滞后,参数时变的激光晶体生长系统有很好的控制作用.关键词:S函数;模糊控制;PID控制中图分类号:TP273.4文献标识码:A文章编: 10037241 (2007)02002604 DesignandSimulationofaFuzzyTuningPIDControllerwithS.functionsLUuan(DepartmentofDesign&^rt.TheSecondNorthwestUniversityForMinorities.Y^ch uan750021,China)Abstract:ThispaperintroducesafuzzytuningPIDcontrollerdesignedbyusingS-Functionin Malab.Thecontorllerisusedfordiametercontroloflasercrystalgrowthsystem.Experimentshowsthatthemethodissuitablef orthesystemwithnonlinear,greatinertia,purehysteresisandtime—varyingcharacteristics.KeyWords: S-fu nction;fuzzycontrol ;PIDcontroller 1引言工业过程控制中,被控对象往往为非线性,时变系统,常规的PID控制对于这样的系统的控制效果不是很理想.这是因为常规PID不能根据现场盼隋况进行在线自我调节参数.而模糊控制具有鲁棒I生强和不需要被控对象精确数学模型的优点.因此,将模糊控制和P控制两种算法相结合,构成模糊整定P 制器,如图1所示.本文在Matlab下利用S函数实现了模糊整定PID控制器的设计及仿真,对于实际模糊整定P 控制器的设计具有很好的借鉴意义.图1模糊整定PID控制器收稿日期:2006—08—032模糊整定PID控制的基本原理由图1可见,模糊控制由常规PID控制部分和模糊推理两部分组成,模糊推理部分实质就是一个模糊控制器,只不过它的输入是偏差E和偏差变化率EC,输出是△ KV,AKi,AKd.PID参数模糊自整定是找出PID三个参数和偏差E,偏差变化EC之间的模糊关系,在运行中通过不断检测E和EC,根据模糊控制原理来对3个参数进行修改,以满足不同E和EC时对控制参数的不同要求,从而使被控对象有良好的动,静性能【11.在PID控制中,因为AKv过大会使调节过程产生较大的超调,过小会影响静差与响应速度;AKi主要消除静差,但过大的Al(i会导致积分饱和;AKd主要克服超调,但△!<€!过大会使调节过程加长,过小会使克服超调作用减弱•因此在调节过程初期,为了防止超调和积分饱和,AKv适当小一些,AKil置较小,AKd置较大;至调节过程中期,为了提高响应速度,因逐渐增大AKv和△l(i,同时保持中等偏小水平;至调节过程后期,为了提高输出精度,减小静差,并降低调节时间‘△KD应逐渐减小,加大,z^Kd应进一步减小,由此,可得到AKp,Al(i,AKd模糊规则表1,表2,表3.利用这些表,AKD,AKi,AKd参数调整算式如下:工业控制与应用ndustryControlandApplications《自动化技术与应用》2007年第26卷第2期AKK(Ei,ECt},AKK 十\Ei,EC,AKK\E|'ECj式中,{E,E卜一误差E与误差变化率EC对应表中的值. 表1AKD的模糊规则表HBNMHSZOPSPMPBHBPBPBPMPMPSZoZoNMPBPBPMPSPSZ0N8HSPMPMPMPSZoNSNSZOPMPMPSZoNSNMNMPSPSPSZoNSNSNMNMPMPSZoNSNMNMNMNBPBZ0Z0NMNMNMNBNB表2AKi的模糊规则表AKEc\HBNMHSZOPSPMPBHBNBNBNMNMNSZ0Z0NMNBNBNMNSNSZ0Z0HSNBPMNSNSZoPSPSZONMNMNSZoPSPMPMPSNMNSZoPSPSPMPBPMZ0Z0PSPSPMPBPBPBZ0Z0PMPMPMPBPB表3Z\Kd的模糊规则表AKd\EcHBNMHSZOPSPMPBHBPSNSNBNBNBNMPSNMPSNSNBNMNMNSZoHSZoNSNMNMNSNSZoZOZoNSNSNSNSNSZoPSZ0Z0Z0Z0Z0Z0Z0PMPBNSPSPSPSPSPBPBPBPMPMPMPSPSPB3基于S函数的模糊整定PID控制器设计交互式的模型输入与仿真环境Simulink工具箱是Matlab软件的扩展,它是一个用来对动态系统进行建模,仿真和分析的软件包,S 一函数fs-Function测是Simulink 提供的内置模块,它是Simdink}〜块的计算机语言描述,用户可以在S 一函数中编程实现用户算法.首先,确定模糊控制器为两输入三输出,误差E和误差变化率EC作为输入,AKo,AKi,AKd为输出,E,EC,AKo, A,AKd 的模糊子集均为{NB,NM,NS,z,PS,PM,PB},论域均为{・6,+6}.其次,建立M文件的S函数.把计算出的模糊查询表以矩阵形式放在S-Function中,然后根据误差和误差变化的输入在模糊矩阵查询表中查找相应的输出,实现模糊控制器的功能. 具体如下:fimction[sys,xO,strJs]--/-oids(t,x,u,fla 〜)ke=6.o0:%设置模糊化因子kc=10.o0:kD=O.025;%设置解模糊因子ki=0.0o0025:kd=0.o03:P:=r6665444332 6665433332 66654333325555433220444443320—144433220—1 — 14443320 一1 一2—3333220—1 — 1—2—3 33320—1—2—2—2—33220— 1 — 1 —3—3—3—3320— 1 —2—3—3—3—3—3220— 1 —3—3—3—3—3—4000-1 — 3-3-3-3—3—411I:r 一6一5一6一4—3一3一3一3一2 5—5—5—4—3—3—3—3—2・16—5—6—4—3—3—2—2—2— 1 5—4—4—3—3—3—2—1 — 10 6—4—3—3—2—2—2— 102 4—4—3—3—2—1 — 1022 3—3—3—3—2—102333—3—3—1—102233 3—3—2—10233331 — 1 — 1022333400023333450002333345000233444511D F 30—2—3—6—5—6—5—6—4 30—2—3—5—4—4—4—4—3 30—2—3—6—4—3—3—3—3 20—2—3—4—4—3—3—3—30— 1 —2—3—3—3—3—3—2—20一1 —2—3—3—3—3—3—2—20— 1 —2—2—2—2—2—2—2—20—1 —1 — 1 —1 — 1 —1 — 1 —1 — 1000000000021 — 1022222261 一203333336212333333654444433311IX自动化技术与应用》2007年第26卷第2期工业控制与应用ndustryControlandApplicationsswitchflag,caseO[sys,xO,smts]=mdlInitializeSizes(ke,kc,ho,ki,kd 只I,D);csse3sys=mdlOutputs(t,X,u&e,kc…ki,kd,P,I,D);casefl,2*4,9)sys=(];otherwiseerror([,unhandledflag=\num2s-flag)]);end function[sys,xO,str,ts]=mdUniti 〜zeSizes(ke,kc,kp,ki,kd,PTD) sizes=simsizes;%readdefaultcontrolvariables=0:%nocontinuousstatessizes.NumDiscStates=0:%3statesandassumetheyaletheP/I/ Dcomponentssizes.NumOutputs=3;%2outputvariables:controlu(t)andstatex(3)sizes.Num!nputs=2:%4inputsignalssizes.DirFeedthrough=l:%inputreflecteddirectlyinoutputsizes.NumSampleTimes=0:%singlesamplingperiodsys=simsizes(sizes);%x0=[】;%zeIOinitialstatesstr=[];ts=[] ;%samp〜gpedodfunctionsys=rndlOutputs(t,x,U,ke,kc,kp,ki,kdI,D)ifu(0>6%限制误差在误差基本论域中u(l)=6;endifu ⑴(.6u(l)_.6;endifu⑵>O.l%限制误差变化在误差变化基本论域中u(2)--o. 1;endifu(2)<-0.1u(2)=-o.l;endE=round(ke*u(1))_卜7;%误差的模糊化EC=rotmd(kc*u(2)7;%误差变化的模糊化sys⑴=P(E)丰kp;%P解模糊化sys⑵=I(E,EC)ki;%I 解模糊化sys(3)=D(E,EC)kd;%D 解模糊化当保存此S函数是,取文件名为fpids3.m.然后,建立SIMULINK仿真模型.其中,在SIMULINK下,添加S一Function模块,双击此模块,在对话框中键入fpids3.这样,完成了S—Function与SIMULINK的连接.在本系统中,PID控制器是根据FuzzyLogicController的输出,不断的修改Kp,Ki,Kd的值,因此还必须设计一个常规的位置型PID控制器,在这个PID控制器中要先给定PID参数的初始值,然后将PID控制器与S—Function模块结合起来,从SIMULINK库中选择所需的模块,便构成了模糊整定PID控制器子系统,如图2所示.图2基于S函数的模糊整定PID控制器子系统将上述子系统封装成子模块,加入输入信号,反馈环节,示波器等模块,便构成了SI1VIULINK T的基于S函数的模糊整定P]D控制系统,如图3所示.图3模糊整定P1D控制系统4仿真实例分析激光晶体生长系统具有非线性,大惯性,时变的特点,采用常规的PID控制器,很难以达到理想的控制效果.若以炉温变化绝对值IATI作为输入,以晶体重量增量偏差绝对值fAG—AGoI 作为输出,则在任意时刻,其传递函数可表示为:G(s)=而KP.(2)其中,K为放大系数,T为惯性环节时间常数,6为延迟环节滞后时间,由于晶体生长极为缓慢,要求控制系统具有良好的稳态精度I3Jo实践表明,在生长过程的某一段时间内,采用PID控制器能取得良好的控径效果,但被控对象同时又具有时变的特点,即随着生长过程的进行,炉体内固熔成分比例发生了变化,导致比热容变小,从而被控对象的参数K,T和6也随之变小,被控对象处于变化之中,由于常规PID控制器不具有自整定参数的能力,难以实现有效的控制.因此采用模糊整定PID控制算法,这样不但能达到理想的稳态精度,而且具有良好的动态陡能,能够实现工业控制与应用ndust-ControIandApplications《自动化技术与应用》2007年第26卷第2期有效的控制.下面将对目前应用非常广泛的一•种激光晶体的生长实例作仿真分析,以验证控制系统性能.晶体炉传递函数G()=Ts+le中的K=I8=500,=200,= 170,80,其中参数f的值会随着晶体生长的进行而变化,直径调节器算法会根据其变化进行相应的调节,系统的控制效果就取决于模糊P1D控制算法的调节能力.分别将式(2)中的被控对象参数f设为最大值,中间值以及最小值,即分别取/'・・500,r= 170,T=350,r= 125,T=200,F80,用传统PID控制,和图3所示的模糊PID控制系统分别进行仿真.利用zjegler-Nichols法【41,计算传统P1D控制器和模糊P1D控制器参数为:KO=0.16872.Ki=0.00015,Kd=2.图4是常规PID的阶跃仿真曲线,在大时滞系统中振荡激烈,超调量大,过度过程时间长,达到稳态的时间也长,稳定性很差.图5是基于S〜函数的模糊整定PID的仿真曲线,模糊PID控制的系统超调小,振荡明显减小,而且调节时间也短,其控制效果明显优于传统PID控制.也就是说,对于晶体炉这种大惯性,纯滞后,参数时变的被控对象,采用模糊整定PID控制算法,既可以获得较高的稳态精度,也可以获得良好的动态性图5模糊整定PID控制阶跃响应能.图中,曲线1,2,3分别为是被控对象为G(s)=石18e_8,G(s)=磊蔷e_125s,G(s)=e_17 的仿真结果.5结论本文针对晶体生长炉大惯性,参数时变,非线性的特点,采用模糊整定PID控制算法,取得了满意的控制效果.本文提出的利用S函数实现模糊整定PID控制器的设计方法,对于实际模糊整定PID控制器的设计具有很好的借鉴意义.参考文献:[1]章卫国,杨向忠.模糊控制理论与引用[M】.西安:西北工业大学出版社.1999,10,82—85.[31费春国.模糊自调整控制器的研究及应用[D】.天津科技大学.2003,25-26.[31吴茂兴.激光晶体等径生长控制系统的研究[D】.西安理工大学.2003,4,56-60.[4]刘金琨.先进PID控制MATLAB仿真【M】.北京:电子工业出版社2004,9.作者简介:李娟(1975 —),女,宁夏平罗人,助工,西北第二民族学院设计艺术系实验室教师,目前从事计算机应用技术的研究. (上接第15页) 而对于线性被控对象,改进型NNTPID能够在已有PID控制参数的基础上,通过极为简单的非线性度变换来改善控制性能.该方法对现有系统改动小,简单易行. 对误差信号产生衰减,导致实际死区范围加大的问题,可以采用多模态控制的思想,通过变化参数例如误差进入±5%范围后,调整=1)来解决,这样可以在控制初期达到快速稳定的目的,在基本稳定后利用PID的固有特性来减小系统误差. 参考文献:[1] BRIANARMSTRONQDavidNeevelandToddKusik. NewResultsinNPIDControl:TrackingJntegralControl,Fric—tionCompensationandExperimentalResultsfJl.IEEETransaction OnControlSystemTechnology.2001,9(2):399406.[2]GoodwinGC,EvansRJ.DesignofNonlinearPID ControllersforNonlinearPlants.Thel2thConferenceofthe InternationalFederationofAutomaticControl[Cl.Triennial(UK): 1994.125—138. [3]朱发国,陈学允.同步发电机的串级非线性PID励磁控制[J] .电力系统自动化.1999(5):2124.[4]陈众,李祖枢,颜伟,等.基于HSIC的非线性PID控制器fJ] .控制与决策2003,12(6):694-697,702[5]韩京清.从PID技术到”自抗扰控制”技术[J] .控制工程. 2002,9(3):13—18.[6]薛定宇.反馈控制系统设计与分析一MATLAB语言应用fM].北京:清华大学出版社,2000,4.作者简介:解利(1975 —),男,天津人,工程师,研究方向:工业检测自动化.…一鬻。