TA的每日心情 | 开心 2020-7-28 15:35 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一、PID算法简介
" p! f: T; C) F* o+ W" W- E在智能车竞赛中,要想让智能车根据赛道的不断变化灵活的行进,PID算法% a6 `4 y9 Y& | a
的采用很有意义。 P2 ^; \& U8 p. [
首先必须明确PID 算法是基于反馈的。- -般情况下,这个反馈就是速度传
# i1 o' J; U. `; w# p感器返回给单片机当前电机的转速。简单的说,就是用这个反馈跟预设值进行比% b0 T4 \. A" m) U& Y$ n
较,如果转速偏大,就减小电机两端的电压:相反,则增加电机两端的电压。0 I3 m/ g) r3 @; p! s! L- Q
顾名思义,P指是比例(Proportion ),I指是积分(Integral ),D指微* g7 ]# @ ^. {& I
分(Differential ) 。在电机调速系统中,输入信号为正,要求电机正转时,反
! \7 t7 ^! c$ `馈信号也为正(PID 算法时,误差=输入-反馈),同时电机转速越高,反馈信号
$ z) a& `( F3 J+ \越大。要想搞懂PID 算法的原理,首先必须先明白P,I,D 各自的含义及控制规律:
$ q' _2 l4 a4 x比例P:比例项部分其实就是对预设值和反馈值差值的发大 A5 L) i; s' E( ~- |* j
倍数。举个例子,假如
' [3 i( T5 j- @0 e. `/ a0 S原来电机两瑞的电压为U o。 比例P为0.2,输入值是800, 而反馈值是1000, 那么输
5 ^3 C1 ]; w0 J7 y* n) _, u4 B出到电机两端的电压应变为U o+0.2* (800-1000) .从而达到了调节速度的目的. .4 k' _" R+ i' _( E
显然比例P越大时,电机转速回归到输入值的速度将更快,及
0 H3 d2 R x6 l! ^( c调节灵敏度就越高。
& g5 C6 H( U0 ?. x7 t从而,加大P值,可以减少从非稳态到稳态的时间。但是同时也可能造成电机转速* k: Q4 r1 j6 H0 Z" M
在预设值附近振荡的情形,所以又引入积分I 解决此问题.9 P# A* Y5 }6 o6 {! s. j3 y
积分1:顾名思义,积分项部分其实就是对预设值和反馈值之间的差值在时间上进
4 ? z+ R. P* v7 u% I& [% t# e1 d行累加。当差值不是很大时,为了不引起振荡。可以先让电机按原转速继续运行。& ]$ o! M P1 u; h. E' z) d
当时要将这个差值用积分项累加。当这个和累加到- -定值时,再-次性进行 处理.. f, P$ q6 H9 Z0 b. m4 T8 T* b
从而避免了振荡现象的发生。可见, 积分项的调节存在明显的滞后。而且 1值越大,5 v0 q, Z5 I! \2 J1 X3 s3 v
滞后效果越明星。1 y K( u) `5 X/ Z- d$ b0 J, B
微分D:微分项部分其实就是求电机转速的变化率。
2 Q v0 L* v" q" ?3 h9 T也就是前后两次差值的差而已.1 S8 K0 R4 Q0 f
也就是说,微分项是根据差值变化的速率, 提前给出一个相应的调节动作。
9 x7 r7 w0 N2 a- e3 U可见微分项的调节是
2 T3 P: w* G' c6 N超前的。并且D值越大,超前作用越明显。可以在- -定& f+ ^, d" U! ~ q( T; y
程度上缓冲振荡。
% v. {! z4 \5 d! a: H) Q4 c+ n6 `比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分
5 U( ~: W* j3 w0 d9 l+ Y项",它能预测误差变化的趋势% W+ S2 a+ C. w( \4 I
这样,具有比例+微分的控制器,就能够提前使抑制2 m# P/ d/ ~8 m' ^" ]
误差的控制作用等于零,甚至为负值,从而避免了被控量的严巫超调。
% T" v, r9 I+ L' \+ Y( F' @# q4 q. c( ?
; l9 X2 S8 j. q, b( ` \) v% {. U$ X& E |
|