PID原理及程序
引言:
开始我接触PID的时候很不理解,周围的人也没有多少懂得PID的,尤其是程序设计及具体实际应用。随着对PID的了解,也渐渐的知道是怎么回事了。
要想学会应用PID首先要知道,提出PID这个概念或者PID理论存在的价值,或者直接说他是用来干什么的:工业生产过程中,对于生产装置的温度、压力、流量、液位等工艺变量常常要求维持在一定的数值上,或按一定的规律变化,以满足生产工艺的要求。PID控制器是根据PID控制原理对整个控制系统进行偏差调节,从而使被控变量的实际值与工艺要求的预定值一致。应用于恒速,就是说被控物理量(车速)经传感器(测速码盘)检测到的反馈信号对速度进行调整,从而达到设定的速度。下面将从原理和程序设计来解析PID。
控制原理:
在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制:
比例(P)控制:比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。
积分(I)控制:在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。
微分(D)控制:在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入 “比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。
模拟PID控制原理
在模拟控制系统中,控制器最常用的控制规律是PID控制。 常规的模拟PID控制系统原理框图如图所示。
y(t)
比例 r(t) + e(t) 积分 + + 被控对象 u(t) 微分 - +
模拟PID控制系统原理图
该系统由模拟PID控制器和被控对象组成。图中, r(t)是给定值, y(t)是系统的实际输出值,给定值与实际输出值构成控制偏差e(t)
(te) = r(t) ? y(t) (式1
-1)
e (t)作为PID控制的输入,u(t)作为PID控制器的输出和被控对象的输入。所以模拟PID控制器的控制规律为
u(t) =Kp [e(t) +错误!未找到引用源。dt+Td错误!
未找到引用源。]
(式1-2)
其中:Kp ―― 控制器的比例系数
Ti-- 控制器的积分时间,也称积分系数 Td―― 控制器的微分时间,也称微分系数
1、比例部分
比例部分的数学式表示是:Kp*e(t)
在模拟PID控制器中,比例环节的作用是对偏差瞬间作出反应。偏差一旦产生控制器立即产生控制作用,使控制量向减少偏差的方向变化。控制作用的强弱取决于比例系数Kp,比例系数Kp越大,控制作用越强,则过渡过程越快,控制过程的静态偏差也就越小;但是Kp越大,也越容易产生振荡,破坏系统的稳定性。故而,比例系数Kp选择必须恰当,才能过渡时间少,静差小而又稳定的效果。
2、 积分部分
积分部分的数学式表示是: 错误!未找到引用源。
从积分部分的数学表达式可以知道,只要存在偏差,则它的控制作用就不断的增加;只有在偏差e(t)=0时,它的积分才能是一个常数,控制作用才是一个不会增加的常数。可见,积分部分可以消除系统的偏差。
积分环节的调节作用虽然会消除静态误差,但也会降低系统的响应速度,增加系统的超
调量。积分常数Ti越大,积分的积累作用越弱,这时系统在过渡时不会产生振荡;但是增大积分常数会减慢静态误差的消除过程,消除偏差所需的时间也较长,但可以减少超调量,提高系统的稳定性。当Ti较小时,则积分的作用较强,这时系统过渡时间中有可能产生振荡,不过消除偏差所需的时间较短。所以必须根据实际控制的具体要求来确定Ti。
3、 微分部分
微分部分的数学式表示是:Kp*Td错误!未找到引用源。
实际的控制系统除了希望消除静态误差外,还要求加快调节过程。在偏差出现的瞬间,或在偏差变化的瞬间,不但要对偏差量做出立即响应(比例环节的作用),而且要根据偏差的变化趋势预先给出适当的纠正。为了实现这一作用,可在PI控制器的基础上加入微分环节,形成PID控制器。
微分环节的作用使阻止偏差的变化。它是根据偏差的变化趋势(变化速度)进行控制。偏差变化的越快,微分控制器的输出就越大,并能在偏差值变大之前进行修正。微分作用的引入,将有助于减小超调量,克服振荡,使系统趋于稳定,特别对髙阶系统非常有利,它加快了系统的跟踪速度。但微分的作用对输入信号的噪声很敏感,对那些噪声较大的系统一般不用微分,或在微分起作用之前先对输入信号进行滤波。
微分部分的作用由微分时间常数Td决定。Td越大时,则它抑制偏差e(t)变化的作用越强;Td越小时,则它反抗偏差e(t)变化的作用越弱。微分部分显然对系统稳定有很大的作用。 适当地选择微分常数Td,可以使微分作用达到最优。
数字式PID控制算法可以分为位置式PID和增量式PID控制算法。这里只介绍增量式PID算法:
当执行机构需要的不是控制量的绝对值,而是控制量的增量(例如去驱动步进电动机)时,需要用PID的“增量算法”。
增量式PID控制算法可以通过(2-4)式推导出。由(2-4)可以得到控制器的第k-1个采样时刻的输出值为:
(2-5)
将(2-4)与(2-5)相减并整理,就可以得到增量式PID控制算法公式为:
(2-6)
其中
由(2-6)可以看出,如果计算机控制系统采用恒定的采样周期T,一旦确定A、B、C,只要使用前后三次测量的偏差值,就可以由(2-6)求出控制量。
增量式PID控制算法与位置式PID算法(2-4)相比,计算量小得多,因此在实际中得到广泛的应用。
位置式PID控制算法也可以通过增量式控制算法推出递推计算公式:
(2-7)
(2-7)就是目前在计算机控制中广泛应用的数字递推PID控制算法。
程序设计:
通过对上述原理的理解,PID的概念渐渐清晰起来。要想构建PID系统,首先要有一个反馈系统,所以小车必须有一个测速装置,这里选用的是光电开关和100孔的码盘。其次是要想构建一个稳定的PID系统,必须确定合理的P、I、D常数,通过经验及多次试验慢慢修改。 第一步:获得速度
思路:行驶一定的距离,测量所用总时间T,轮子所产生的总得脉冲N与行驶距离S,那么距离与脉冲的关系K=S/N;平均速度V=S/T; 获得这个参数后,程序就可以根据码盘所返回的脉冲数算出速度, v=n*K/t t为定时器定时中断的时间 n是t时间内所产生的脉冲数
数据记录与分析:
delay(12000) 行走了2738mm 左轮脉冲为1887 那么K=2738/1887=1.450 delay(10000) 行走了2230mm 左轮脉冲为1541 那么K=2230/1541=1.447 delay(8000) 行走了1820mm 左轮脉冲为1262 那么K=1820/1262=1.442 综上述实验,取 K=1.45
“算速度” 的程序采样率为 50ms/次(即每50ms取一次脉冲数算速度) 连续4次采样取平均,所得速度单位 cm/s
相关推荐: