1、先进PID控制及其MATLAB仿真控制工程与控制理论课程设计讲座主讲人主讲人 付冬梅付冬梅自动化系自动化系第1章 数字PID控制 1.1PID控制原理 1.2连续系统的模拟PID仿真 1.3数字PID控制1.1PID控制原理 模拟PID控制系统原理框图1.1PID控制原理 PID是一种线性控制器,它根据给定值rin(t)与实际输出值yout(t)构成控制方案:PID的控制规律为:()()()inoute tr tyt011()()()()tpDde tu tke te t dtTTdtsTsTksEsUsGDp111)()()(1.1PID控制原理 PID控制器各校正环节的作用如下:比例环节:
2、成比例地反映控制系统的偏差信号e(t),偏差一旦产生,控制器立即产生控制作用,以减小偏差。积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数T,T越大,积分作用越弱,反之则越强。微分环节:反映偏差信号的变化趋势,并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。1.2 连续系统的基本PID仿真 1.2.1 基本的PID控制 1.2.2 线性时变系统的PID控制 以二阶线性传递函数为被控对象,进行模拟PID控制。在信号发生器中选择正弦信号,仿真时取Kp60,Ki1,Kd3,输入指令为 其中,A1.0,f0.20Hz
3、被控对象模型选定为:()sin(2)inrtAft1.2 连续系统的基本PID仿真2133()25G sss 连续系统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.
4、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)kktjjtkT ke t dtTe jTe jde te kTekTe ke kdtTT1.3.1位置式PID控制算法 可得离散表达式:式中,Ki=Kp/Ti,Kd=KpTd,T为采样周期,K为采样序号,k=1,2,e(k-1)和e(k)分别为第(k-1)和
5、第k时刻所得的偏差信号。010()()()()(1)()(1)()()kDpjkpidjTTu kk e ke je ke kTTe ke kk e kke j TkT1.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=
6、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连续系统的数字PI
7、D控制仿真 PID正弦跟踪结果1.3.3离散系统的数字PID控制仿真 仿真实例 设被控制对象为:采样时间为1ms,采用Z变换进行离散化,经过Z变换后的离散化对象为:ssSsG1047035.87523500)(23()(2)(1)(3)(2)(4)(3)(2)(1)(3)(2)(4)(3)outoutoutoutykaykaykaykbu kbu kbu k1.3.3离散系统的数字PID控制仿真 离散PID控制的Simulink主程序1.3.3离散系统的数字PID控制仿真 阶跃响应结果1.3.4增量式PID控制算法及仿真 当执行机构需要的是控制量的增量(例如驱动步进电机)时,应采用增量式PID
8、控制。根据递推原理可得:增量式PID的算法:10(1)(1)()(1)(2)kpidju kk e kke jk e ke k()()(1)()()2(1)(2)pidu kk e ke kke kk e ke ke k)1()()(kukuku1.3.4增量式PID控制算法及仿真 根据增量式PID控制算法,设计了仿真程序。设被控对象如下:PID控制参数为:Kp=8,Ki=0.10,Kd=10sssG50400)(21.3.4增量式PID控制算法及仿真 增量式PID阶跃跟踪结果1.3.5积分分离PID控制算法及仿真 在普通PID控制中,引入积分环节的目的主要是为了消除静差,提高控制精度。但在过
9、程的启动、结束或大幅度增减设定时,短时间内系统输出有很大的偏差,会造成PID运算的积分积累,致使控制量超过执行机构可能允许的最大动作范围对应的极限控制量,引起系统较大的振荡,这在生产中是绝对不允许的。积分分离控制基本思路是,当被控量与设定值偏差较大时,取消积分作用,以免由于积分作用使系统稳定性降低,超调量增大;当被控量接近给定量时,引入积分控制,以便消除静差,提高控制精度。具体实现的步骤是:1、根据实际情况,人为设定阈值0;2、当e(k)时,采用PD控制,可避免产生过大的超调,又使系统有较快的响应;3、当e(k)时,采用PID控制,以保证系统的控制精度。1.3.5积分分离PID控制算法及仿真1
10、.3.5积分分离PID控制算法及仿真 积分分离控制算法可表示为:式中,T为采样时间,项为积分项的开关系数0()()()()(1)/kpidju kk e kke j Tk e ke kT01()e k()e k1.3.51.3.5积分分离积分分离PIDPID控控制算法及仿真制算法及仿真根据积分分离式PID控制算法得到其程序框图如右图。1.3.5积分分离PID控制算法及仿真 设被控对象为一个延迟对象:采样时间为20s,延迟时间为4个采样时间,即80s,被控对象离散化为:160)(80sesGs)5()2()1()2()(kunumkydenky1.3.5积分分离PID控制算法及仿真积分分离式积分
11、分离式PIDPID阶跃跟阶跃跟采用普通采用普通PIDPID阶跃跟踪阶跃跟踪1.3.5积分分离PID控制算法及仿真 Simulink主程序1.3.5积分分离PID控制算法及仿真 阶跃响应结果1.3.5积分分离PID控制算法及仿真 需要说明的是,为保证引入积分作用后系统的稳定性不变,在输入积分作用时比例系数Kp可进行相应变化。此外,值应根据具体对象及要求而定,若过大,则达不到积分分离的目的;过小,则会导致无法进入积分区。如果只进行PD控制,会使控制出现余差。(为什么是?)1.3.6抗积分饱和PID控制算法及仿真 积分饱和现象所谓积分饱和现象是指若系统存在一个方向的偏差,PID控制器的输出由于积分作
12、用的不断累加而加大,从而导致u(k)达到极限位置。此后若控制器输出继续增大,u(k)也不会再增大,即系统输出超出正常运行范围而进入了饱和区。一旦出现反向偏差,u(k)逐渐从饱和区退出。进入饱和区愈深则退饱和时间愈长。此段时间内,系统就像失去控制。这种现象称为积分饱和现象或积分失控现象。1.3.6抗积分饱和PID控制算法及仿真 执行机构饱和特性1.3.6抗积分饱和PID控制算法及仿真 抗积分饱和算法在计算u(k)时,首先判断上一时刻的控制量u(k-1)是否己超出限制范围。若超出,则只累加负偏差;若未超出,则按普通PID算法进行调节。这种算法可以避免控制量长时间停留在饱和区。仿真实例设被控制对象为
13、:采样时间为1ms,取指令信号Rin(k)30,M1,采用抗积分饱和算法进行离散系统阶跃响应。ssssG1047035.875235000)(231.3.6抗积分饱和PID控制算法及仿真1.3.6抗积分饱和PID控制算法及仿真抗积分饱和阶跃响应仿真抗积分饱和阶跃响应仿真普通普通PIDPID阶跃响应仿真阶跃响应仿真1.3.7梯形积分PID控制算法 在PID控制律中积分项的作用是消除余差,为了减小余差,应提高积分项的运算精度,为此,可将矩形积分改为梯形积分。梯形积分的计算公式为:tkiTieiedtte002)1()()(1.3.8 变速积分算法及仿真 变速积分的基本思想是,设法改变积分项的累加速
14、度,使其与偏差大小相对应:偏差越大,积分越慢;反之则越快,有利于提高系统品质。设置系数f(e(k),它是e(k)的函数。当e(k)增大时,f减小,反之增大。变速积分的PID积分项表达式为:10()()()()kiiiukke ife ke kT1.3.8 变速积分算法及仿真 系数f与偏差当前值e(k)的关系可以是线性的或是非线性的,例如,可设为0)(1)(ABkeAkefBAkeBAkeBBke)()()(1.3.8 变速积分算法及仿真 变速积分PID算法为:这种算法对A、B两参数的要求不精确,参数整定较容易。)1()()()()()()(10kekekTkekefiekkekkudkiip1
15、.3.8 变速积分算法及仿真 设被控对象为一延迟对象:采样时间为20s,延迟时间为4个采样时间,即80s,取Kp=0.45,Kd=12,Ki=0.0048,A0.4,B0.6。160)(80sesGs1.3.8 变速积分算法及仿真变速积分阶跃响应变速积分阶跃响应普通普通PIDPID控制阶跃响应控制阶跃响应1.3.9不完全微分PID算法及仿真 在PID控制中,微分信号的引入可改善系统的动态特性,但也易引进高频干扰,在误差扰动突变时尤其显出微分项的不足。若在控制算法中加入低通滤波器,则可使系统性能得到改善。不完全微分PID的结构如下图。左图将低通滤波器直接加在微分环节上,右图是将低通滤波器加在整个
16、PID控制器之后。不完全微分算法结构图1.3.9不完全微分PID算法及仿真 不完全微分算法:其中 Ts为采样时间,Ti和Td为积分时间常数和微分时间常数,Tf为滤波器系数。()(1)()(1)(1)DDDukKa e ke kuksDpDTTkK/fsfTTT1.3.9不完全微分PID算法及仿真 被控对象为时滞系统传递函数:在对象的输出端加幅值为0.01的随机信号。采样时间为20ms。低通滤波器为:160)(80sesGs11801)(ssQ1.3.9不完全微分PID算法及仿真不完全微分控制阶跃响应不完全微分控制阶跃响应普通普通PIDPID控制阶跃响应控制阶跃响应1.3.9不完全微分PID算法
17、及仿真1.3.10微分先行PID控制算法及仿真 微分先行PID控制的特点是只对输出量yout(k)进行微分,而对给定值rin(k)不进行微分。这样,在改变给定值时,输出不会改变,而被控量的变化通常是比较缓和的。这种输出量先行微分控制适用于给定值rin(k)频繁升降的场合,可以避免给定值升降时引起系统振荡,从而明显地改善了系统的动态特性。微分先行PID控制结构图1.3.10微分先行PID控制算法及仿真 微分部分的传递函数为:式中,相当于低通滤波器。设被控对象为一个延迟对象:采样时间T=20s,延迟时间为4T。输入信号为带有高频干扰的方波信号:11)()(sTsTsysuDDD11.3.10微分先
18、行PID控制算法及仿真160)(80sesGsinR(t)=1.0sgn(sin(0.0005At)+0.05sin(0.03At)11DT s微分先行微分先行PIDPID控制方波响应控制方波响应普通普通PIDPID控制方波响应控制方波响应1.3.10微分先行PID控制算法及仿真微分先行微分先行PIDPID控制方波响应控制方波响应控制器输出控制器输出普通普通PIDPID控制方波响应控制控制方波响应控制器输出器输出1.3.10微分先行PID控制算法及仿真 在计算机控制系统中,某些系统为了避免控制作用过于频繁,消除由于频繁动作所引起的振荡,可采用带死区的PID控制算法,控制算式为:式中,e(k)为
19、位置跟踪偏差,e0是一个可调参数,其具体数值可根据实际控制对象由实验确定。若e0值太小,会使控制动作过于频繁,达不到稳定被控对象的目的;若e0太大,则系统将产生较大的滞后。1.3.11带死区的PID控制算法及仿真)(0)(keke00)()(ekeeke1.3.111.3.11带死区的带死区的PIDPID控制算法及仿真控制算法及仿真带死区的PID控制算法程序框图 设被控制对象为:采样时间为1ms,对象输出上有一个幅值为0.5的正态分布的随机干扰信号。采用积分分离式PID控制算法进行阶跃响应,取=0.20,死区参数e0=0.10,采用低通滤波器对对象输出信号进行滤波,滤波器为:ssssG1047035.87523500)(23104.01)(ssQ1.3.11带死区的PID控制算法及仿真不带死区不带死区PIDPID控制控制带死区带死区PIDPID控制控制1.3.11带死区的PID控制算法及仿真