EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 HelloEE 于 2019-11-25 17:15 编辑 7 f9 N- |# h! }9 @+ n: X
. Y5 U, a6 I) J+ n8 I# y
PID控制是闭环控制的一种经典算法。反馈信号取自系统的输出端。当输出量偏离所要求给定的值时,反馈信号成比例变化。 在输入端,给定信号与反馈信号相比较,存在一个偏差值。对于该偏差值,经过P、I、D调节,执行单元改变输出信号,迅速、准确地消除系统的偏差,恢复到给定值,振荡和误差都比较小。 在这里我们以: 9 f! E* N, G/ G
为控制对象。G(s)为该控制对象的传递函数,在信号与系统中也可以叫系统函数。 然后z变换离散化,经z变换后的离散化对象为: 经典PID控制器为: 比例项=kp(比例系数)*error(k)(当前误差) 微分项=kd(微分系数)*(error(k)-error(k-1))/ts(误差的微分) 积分项=ki(积分系数)*(error(k)+...+error(1))(误差和) 暂时不明白每一项的的用处没关系。接下我们通过实际调试来弄清楚每项的作用。 代码如下:
8 S" W& F. W' f$ W7 l. F9 w
" q Y5 H( H* A; ?# B$ S
比例项 这里将kp逐渐增大,可以看到系统达到稳定状态的速度越来越越快了。但是当kp偏大时系统却产生了震荡。 我们选取系统最佳的响应状态kp=0.5,此时系统响应未出现震荡且响应速度较快。
( t/ t7 B. m" ]% J
比例控制可以使系统达到稳定,那是不是只用比例控制就可以了呢?
/ T3 X& y9 o' E2 f& b+ T; ]$ F
比例控制有个缺点,就是会产生静态误差。静态误差的产生是因为系统有滞后、干扰和非线性,比例作用会即时地成比例地反应控制系统的偏差信号e(t),偏差一旦产生,调节器立即产生控制作用以减小偏差。 但考虑系统偏执,其数学公式是: u=kp*e+B u是控制器输出5 q7 J# l" F1 b5 }; M- @: Y/ o! n/ ~
kp是比例系数
" i0 b' C @3 u5 h# K) J/ r5 ge是偏差
`$ X6 l7 ^2 ~B是系统偏置量,系统滞后、干扰和非线性都会影响它。 举个例子,空调设定为20度,室温为10度,差值为10度,假设系统偏置量B为2,Kp设定为2,按照上述公式,PID控制器输出u为22。等到室温为20度,差值为0度时,由于存在系统偏置B,u还在输出2,而实际上我们想让u=0。这样就造成了有静差。 要克服静态误差就必须引入积分作用。 积分项 左图是在微分系数ki=0,余差B=0.1的状态下得到的系统响应。右图则是当ki=1时,余差B=0.1的状态下得到的系统响应,显然在引入积分项后余差的问题解决了。 但是观察右图,你会发现系统响应的出现超调,也称积分饱和。解决积分饱和的办法有很多,比如积分分离法,变速积分法,抗积分饱和机制等。这次我们暂不提,下次再做介绍。 P和I控制一般是结合在一起使用,他们的目的是消除余差;P起到粗调的作用,I起到细调的作用,直到偏差为零;一般的调节都用PI调节。接下来我们看看D项,D调节其实目的是使控制品质改善。 微分项 微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。但是微分作用对噪声干扰有放大作用,因此过强地加微分调节,对系统抗干扰不利。此外,微分反应的是变化率,而当输入没有变化时,微分作用输出为零。 左图是在kp=1.5,ki=1,kd=0的情况下跟踪正弦波的系统响应,可看出跟踪状态不理想,有明显滞后和超调。右图则是在kp=1.5,ki=1,kd=0.01的情况下跟踪正弦波的响应,控制系统状态非常良好。
- W# \# b& K1 }5 F& Q |