经典PID控制及应用体会总结

经典PID控制及应用体会总结


PID控制原理

PID是一种线性控制器,它根据给定值rin(t)与实际输出值yout(t)构成控制方案:
这里写图片描述

重点关注相关算法是如何对偏差进行处理的:
这里写图片描述

PID控制器各校正环节的作用如下:
 

  • 比例环节: 成比例地反映控制系统的偏差信号e(t),偏差一旦产生,控制器立即产生控制作用,以减小偏差。

  • 积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数T,T越大,积分作用越弱,反之则越强。

  • 微分环节:反映偏差信号的变化趋势,并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。

PID控制算法分类

位置式PID控制算法

原理及公式化描述

按模拟PID控制算法,以一系列的采样时刻点kT代表连续时间t,以矩形法数值积分近似代替积分,以一阶后向差分近似代替微分,即:
这里写图片描述
可得离散表达式:
这里写图片描述
式中,ki=kp/Ti,kd=kp×TD, T为采样周期,K为采样序号,k=1, 2, ……, e (k-1)和e (k)分别为第(k-1)和第k时刻所得的偏差信号。

位置式PID控制系统

这里写图片描述

算法流程

这里写图片描述

本方法可实现D/A及A/D的功能,符合数字实时控制的真实情况,计算机及DSP的实时PID控制都属于这种情况。

增量式PID控制算法

当执行机构需要的是控制量的增量(例如驱动步进电机)时,应采用增量式PID控制。根据递推原理可得:
这里写图片描述

增量式PID的算法:
这里写图片描述

积分分离PID控制算法

在普通PID控制中,引入积分环节的目的主要是为了消除静差,提高控制精度。但在过程的启动、结束或大幅度增减设定时,短时间内系统输出有很大的偏差,会造成PID运算的积分积累,致使控制量超过执行机构可能允许的最大动作范围对应的极限控制量,引起系统较大的振荡,这在生产中是绝对不允许的。
积分分离控制基本思路是,当被控量与设定值偏差较大时,取消积分作用,以免由于积分作用使系统稳定性降低,超调量增大;当被控量接近给定量时,引入积分控制,以便消除静差,提高控制精度

具体实现的步骤是:
1、根据实际情况,人为设定阈值ε>0;
2、当∣e (k)∣>ε时,采用PD控制,可避免产生过大的超调,又使系统有较快的响应;
3、当∣e (k)∣≤ε时,采用PID控制,以保证系统的控制精度。

体现的思想就是分段控制

积分分离控制算法可表示为:
这里写图片描述
式中,T为采样时间,β项为积分项的开关系数
这里写图片描述
其算法流程:
这里写图片描述

抗积分饱和PID控制算法

积分饱和现象
所谓积分饱和现象是指若系统存在一个方向的偏差,PID控制器的输出由于积分作用的不断累加而加大,从而导致u(k)达到极限位置。此后若控制器输出继续增大,u(k)也不会再增大,即系统输出超出正常运行范围而进入了饱和区。一旦出现反向偏差,u(k)逐渐从饱和区退出。
 进入饱和区愈深则退饱和时间愈长。此段时间内,系统就像失去控制。这种现象称为积分饱和现象或积分失控现象。
执行机构饱和特性:
这里写图片描述
抗积分饱和算法
  在计算u(k)时,首先判断上一时刻的控制量u(k-1)是否己超出限制范围。若超出,则只累加负偏差;若未超出,则按普通PID算法进行调节。
  这种算法可以避免控制量长时间停留在饱和区。

梯形积分PID控制算法

在PID控制律中积分项的作用是消除余差,为了减小余差,应提高积分项的运算精度,为此,可将矩形积分改为梯形积分。
  梯形积分的计算公式为:
这里写图片描述

变速积分PID控制算法

变速积分的基本思想是,设法改变积分项的累加速度,使其与偏差大小相对应:偏差越大,积分越慢;反之则越快,有利于提高系统品质。
设置系数f(e(k)),它是e(k)的函数。当∣e(k)∣增大时,f减小,反之增大。变速积分的PID积分项表达式为:
这里写图片描述
系数f与偏差当前值∣e(k)∣的关系可以是线性的或是非线性的,例如,可设为:
这里写图片描述
变速积分PID算法为:
这里写图片描述

这种算法对A、B两参数的要求不精确,参数整定较容易

不完全微分PID控制算法

在PID控制中,微分信号的引入可改善系统的动态特性,但也易引进高频干扰,在误差扰动突变时尤其显出微分项的不足。若在控制算法中加入低通滤波器,则可使系统性能得到改善
不完全微分PID的结构如下图。左图将低通滤波器直接加在微分环节上,右图是将低通滤波器加在整个PID控制器之后
这里写图片描述
不完全微分算法:
这里写图片描述
Ts为采样时间,Ti和Td为积分时间常数和微分时间常数,Tf为滤波器系数。

微分先行PID控制算法

微分先行PID控制的特点是只对输出量yout(k)进行微分,而对给定值rin(k)不进行微分。这样,在改变给定值时,输出不会改变,而被控量的变化通常是比较缓和的。这种输出量先行微分控制适用于给定值rin(k)频繁升降的场合,可以避免给定值升降时引起系统振荡,从而明显地改善了系统的动态特性。
结构图如下:
这里写图片描述

带死区的PID控制算法

在计算机控制系统中,某些系统为了避免控制作用过于频繁,消除由于频繁动作所引起的振荡,可采用带死区的PID控制算法,控制算式为:
这里写图片描述
式中,e(k)为位置跟踪偏差,e0是一个可调参数,其具体数值可根据实际控制对象由实验确定。若e0值太小,会使控制动作过于频繁,达不到稳定被控对象的目的;若e0太大,则系统将产生较大的滞后。
控制算法流程:
这里写图片描述

应用体会

具体接触到实际中的应用有过两次的体会:
一是利用数字PID控制算法调节直流电机的速度,方案是采用光电开关来获得电机的转动产生的脉冲信号,单片机(MSP430G2553)通过测量脉冲信号的频率来计算电机的转速(具体测量频率的算法是采用直接测量法,定时1s测量脉冲有多少个,本身的测量误差可以有0.5转加减),测量的转速同给定的转速进行比较产生误差信号,来产生控制信号,控制信号是通过PWM调整占空比也就是调整输出模拟电压来控制的(相当于1位的DA,如果用10位的DA来进行模拟调整呢?效果会不会好很多?),这个实验控制能力有一定的范围,只能在30转/秒和150转/秒之间进行控制,当给定值(程序中给定的速度)高于150时,实际速度只能保持在150转,这也就是此系统的最大控制能力,当给定值低于30转时,直流电机转轴实际是不转动的,但由于误差值过大,转速会迅速变高,然后又会停止转动,就这样循环往复,不能达到控制效果。

根据实测,转速稳态精度在正负3转以内,控制时间为4到5秒。实验只进行到这种程度,思考和分析也只停留在这种深度。

二是利用数字PID控制算法调节直流减速电机的位置,方案是采用与电机同轴转动的精密电位器来测量电机转动的位置和角度,通过测量得到的角度和位置与给定的位置进行比较产生误差信号,然后位置误差信号通过一定关系(此关系纯属根据想象和实验现象来拟定和改善的)转换成PWM信号,作为控制信号的PWM信号是先产生对直流减速电机的模拟电压U,U来控制直流减速电机的力矩(不太清楚),力矩产生加速度,加速度产生速度,速度改变位置,输出量是位置信号,所以之间应该对直流减速电机进行系统建模分析,仿真出直流减速电机的近似系统传递函数,然后根据此函数便可以对PID的参数进行整定了。

两次体会都不是特别清楚PID参数是如何整定的,没有特别清晰的理论指导和实验步骤,对结果的整理和分析也不够及时,导致实验深度和程度都不能达到理想效果。

以后的学习要保持咬定青山不放松的劲头,不把一件事情弄透彻绝不放手!PID控制的学习可以继续进行,看看如何通过仿真来更加深入的理解其过程。


实际上以上内容是2013年12月17日星期二那天我总结的技术报告,现在整理成博客,以供大家参考。


2015-9-20 艺少

原文地址:https://www.cnblogs.com/huty/p/8519147.html