基于Matlab控制系统PID校正的仿真总结此文包含两个实例,其中1-14为第一个,其余为第二个一、目的意义PID控制,又称PID调节,是比例(proportional)、积分(intergral)、微分(differential)调节的简称。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。本文通过对实际问题的Matlab仿真,使大家对PID有个基本的了解。二、PID控制的工作原理当被控对象的结构和参数不能完全被掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。PID控制,实际中也有PI和PD控制。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。2.1PID调节规律:PID调节器的数学模型为:(2-1)式中:为PID调节器的输出信号;系统误差信号定义为:;是系统的给定输入信号;是系统的被控量;称为比例系数,称为微分时间常数,称为积分时间常数。])()(1)([)(0dttdeTteTteKptuDtI)(tu)()()(tctrte)(tr)(tcPKDTITPID调节的传递函数模型:(2-2)由上式可得PID调节的几种特例形式:当、时,则有,此为比例(P)调节器;当时,则有,此为比例微分(PD)调节器,而当时,有,此为比例积分(PI)调节器,当、、时,则有这叫做全PID调节器。)11()(sTsTKsGDIP0DTITPCKsG)(IT)1()(sTKsGDPC0DT)11()(sTKsGIPC0PK0DTIT),11()(sKsTKsGDIPC(2-2)由式(2-2)可以看出,PID控制是通过三个参量起作用的。这三个参量取值的大小不同,就是比例、积分、微分作用强弱的变化。为了说明每个参数单独变化时对于系统较正时的影响,特列举以下实例。)11()(sTsTKsGDIP三、动态特性参数法:(Ziegler-Nichols整定公式)的PID校正器设计对于传递函数表达式为的系统,其PID控制的参数值可以用一组经验公式来计算。这种PID调节器参数值确定的方法是1924年由Ziegler和Nichols首先提出的。已知被控对象的传递函数模型的三个参数、、时,整定PID调节器参数的计算公式如表1所示:seTsKsG1)(seTsKsG1)(KT表1调节器Ziegler-Nichols整定公式为实现用Ziegler-Nichols整定公式计算系统P、PI、PID校正器的参数,作者给出函数zn01()。用Ziegler-Nichols整定公式计算系统P、PI、PID校正器的参数的函数zn01.m。调用格式为:[Gc,Kp,Ti,Td]=zn01(PID,vars)其中PID是校正器类型,当PID=1时,为计算P调节器的参数;当PID=2时,为计算PI调节器的参数;当PID=3时,为计算PID调节器的参数。输入参量vars为带延迟—惯性环节模型的已知三参数:K=vars(1);T=vars(2);tau=vars(3)。输入参量Gc为校正器传递函数,Kp为校正器的比例系数;Ti为校正器的积分时间常数;Td为校正器的微分时间常数。KTfunction[Gc,Kp,Ti,Td]=zn01(PID,vars)K=vars(1);T=vars(2);tau=vars(3);Kp=[];Ti=[];Td=[];ifPID==1,Kp=T/(K*tau);elseifPID==2,Kp=0.9*T/(K*tau);Ti=3.33*tau;elseifPID==3,Kp=1.2*T/(K*tau);Ti=2*tau;Td=tau/2;endswitchPIDcase1,Gc=Kp;case2,Gc=tf([Kp*TiKp],[Ti0]);case3,nn=[Kp*Ti*TdKp*TiKp];dd=[Ti0];Gc=tf(nn,dd)end例,已知过程控制系统的传递函数为:试用Ziegler-Nichols整定公式计算系统P、PI、PID校正器的参数,并进行阶跃给定响应的仿真。clearK=8;T=360;tau=180;n1=[K];d1=[T1];G1=tf(n1,d1);[np,dp]=pade(tau,2);Gp=tf(np,dp);[Gc2,Kp2,Ti2]=zn01(2,[K,T,tau])[Gc1,Kp1]=zn01(1,[K,T,tau])[Gc3,Kp3,Ti3,Td3]=zn01(3,[K,T,tau])Gcc1=feedback(G1*Gc1,Gp);set(Gcc1,'Td',tau);step(Gcc1);holdonGcc2=feedback(G1*Gc2,Gp);set(Gcc2,'Td',tau);step(Gcc2);Gcc3=feedback(G1*Gc3,Gp);set(Gcc3,'Td',tau);step(Gcc3);gtext('1Pcontrol'),gtext('2PIcontrol'),gtext('3PIDcontrol')sessG180013608)(程序运行后,求出P、PI、PID校正器的传递函数分别为:Gc1=0.2500Gc2=134.9s+0.225---------------599.4sGc3=9720s^2+108s+0.3----------------------360s程序运行以后,还得到经P、PI、PID校正(用Ziegler-Nichols整定公式计算)系统阶跃给定响应曲线,如图所示。图3-1Ziegler-Nichols的P、PI、PID控制阶跃响应曲线由图可见,用Ziegler-Nichols整定公式计算的P、PI、PID校正器对系统校正后,其阶跃给定响应曲线中的P、PI校正两者响应速度基本相同。因为这两种校正求出的Kp不同,所以两种校正的被调量终了值不同。PI校正的超调量比P校正的要小些。PID校正的比前两者的响应速度都要快,但是超调量最大。四、结论PID控制系统结构简单、稳定性好、工作可靠、调整方便。PID校正响应速度比P校正和PI校正都要快,但是超调量比较大。先进PID控制及其MATLAB仿真控制工程与控制理论课程设计讲座主讲人付冬梅自动化系第1章数字PID控制1.1PID控制原理1.2连续系统的模拟PID仿真1.3数字PID控制1.1PID控制原理模拟PID控制系统原理框图1.1PID控制原理PID是一种线性控制器,它根据给定值rin(t)与实际输出值yout(t)构成控制方案:PID的控制规律为:()()()inoutetrtyt011()()()()tpDdetutketetdtTTdtsTsTksEsUsGDp111)()()(1.1PID控制原理PID控制器各校正环节的作用如下:比例环节:成比例地反映控制系统的偏差信号e(t),偏差一旦产生,控制器立即产生控制作用,以减小偏差。积分环节:integral['intiɡrəl]主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数T,T越大,积分作用越弱,反之则越强。微分环节:differentialcoefficient反映偏差信号的变化趋势,并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。1.2连续系统的基本PID仿真1.2.1基本的PID控制1.2.2线性时变系统的PID控制以二阶线性传递函数为被控对象,进行模拟PID控制。在信号发生器中选择正弦信号,仿真时取Kp=60,Ki=1,Kd=3,输入指令为其中,A=1.0,f=0.20Hz被控对象模型选定为:()sin(2)inrtAft1.2连续系统的基本PID仿真2133()25Gsss连续系统PID的Simulink仿真程序1.2连续系统的基本PID仿真连续系统的模拟PID控制正弦响应1.2连续系统的基本PID仿真1.3数字PID控制1.3.1位置式PID控制算法1.3.2连续系统的数字PID控制仿真1.3.3离散系统的数字PID控制仿真1.3.4增量式PID控制算法及仿真1.3.5积分分离PID控制算法及仿真1.3.6抗积分饱和PID控制算法及仿真1.3.7梯形积分PID控制算法1.3.8变速积分PID算法及仿真1.3数字PID控制1.3.9不完全微分PID控制算法及仿真1.3.10微分先行PID控制算法及仿真1.3.11带死区的PID控制算法及仿真1.3.1位置式PID控制算法按模拟PID控制算法,以一系列的采样时刻点kT代表连续时间t,以矩形法数值积分近似代替积分,以一阶后向差分近似代替微分,即:000(0,1,2,3)()()()()()((1))()(1)kktjjtkTketdtTejTejdetekTekTekekdtTT1.3.1位置式PID控制算法可得离散表达式:式中,Ki=Kp/Ti,Kd=KpTd,T为采样周期,K为采样序号,k=1,2,……,e(k-1)和e(k)分别为第(k-1)和第k时刻所得的偏差信号。010()(()()(()(1)))()(1)()()kDpjkpidjTTukkekejekekTTekekkekkejTkT1.3.1位置式PID控制算法位置式PID控制系统根据位置式PID控制算法得到其程序框图。在仿真过程中,可根据实际情况,对控制器的输出进行限幅:[-10,10]。1.3.1位置式PID控制算法1.3.2连续系统的数字PID控制仿真本方法可实现D/A及A/D的功能,符合数字实时控制的真实情况,计算机及DSP的实时PID控制都属于这种情况。采用MATLAB语句形式进行仿真。被控对象为一个电机模型传递函数:式中,J=0.0067,B=0.10BsJssG21)(1.3.2连续系统的数字PID控制仿真PID正弦跟踪1.3.2连续系统的数字PID控制仿真采用Simulink进行仿真。被控对象为三阶传递函数,采用Simulink模块与M函数相结合的形式,利用ODE45的方法求解连续对象方程,主程序由Simulink模块实现,控制器由M函数实现。输入指令信号为一个采样周期1ms的正弦信号。采用PID方法设计控制器,其中,Kp=1.5,Ki=2.0,Kd=0.05。误差的初始化是通过时钟功能实现的,从而在M函数中实现了误差的积分和微分。1.3.2连续系统的数字PID控制仿真Simulink仿真程序图1.3.2连续系统的数字PID控制仿真PID正弦跟踪结果1.3.3离散系统的数字PID控制仿真仿真实例设被控制对象为:采样时间为1ms,采用Z变换进行离散化,经过Z变换后的离散化对象为:ssSsG1047035.87523500)(23()(2)(1)(3)(2)(4)(3)(2)(1)(3)(2)(4)(3)outoutoutoutykaykaykaykbukbukbuk1.3.3离散系统的数字PID控制仿真离散PID控制的Simulink主程序1.3.3离散系统的数字PID控制仿真阶跃响应结果1.3.4增量式PID控制算法及仿真当执行机构需要的是控制量的增量(例如驱动步进电机)时,应采用增量式PID控制。根据递推原理可得:增量式PID的算法:10(1)((1)()((1)(2)))kpidjukkekkejkekek