TA的每日心情 | 开心 2020-7-28 15:35 |
|---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一、PID算法简介4 _' C* ?7 z! ^* W
在智能车竞赛中,要想让智能车根据赛道的不断变化灵活的行进,PID算法2 P, p( L7 q; M8 ]# ~" Q
的采用很有意义。
" R* W7 x+ N& a首先必须明确PID 算法是基于反馈的。- -般情况下,这个反馈就是速度传( y! {; h9 a/ c$ K8 o9 j
感器返回给单片机当前电机的转速。简单的说,就是用这个反馈跟预设值进行比
5 V6 ~; \0 V8 m1 t2 E& f S& d较,如果转速偏大,就减小电机两端的电压:相反,则增加电机两端的电压。5 O! f4 F( L) s( [+ b
顾名思义,P指是比例(Proportion ),I指是积分(Integral ),D指微/ o6 ?" }) G% Z4 }* [$ ?2 n
分(Differential ) 。在电机调速系统中,输入信号为正,要求电机正转时,反1 e6 H: l3 w+ y+ B( C7 @7 O4 Z" O
馈信号也为正(PID 算法时,误差=输入-反馈),同时电机转速越高,反馈信号 p% S& ]* S5 w: L+ g" o
越大。要想搞懂PID 算法的原理,首先必须先明白P,I,D 各自的含义及控制规律:, b4 p- ^, [# ^: X/ Y" r% h
比例P:比例项部分其实就是对预设值和反馈值差值的发大
1 K0 \% E" h6 n/ Y/ j倍数。举个例子,假如
" I0 i. R. i" ?7 n* B. M原来电机两瑞的电压为U o。 比例P为0.2,输入值是800, 而反馈值是1000, 那么输
/ M1 W/ B( {! B+ i出到电机两端的电压应变为U o+0.2* (800-1000) .从而达到了调节速度的目的. .
( o' e$ S, u% D显然比例P越大时,电机转速回归到输入值的速度将更快,及5 B; f/ A9 Y+ T) D* n/ x1 q
调节灵敏度就越高。
( G ?+ d8 u% Z7 N) ? [从而,加大P值,可以减少从非稳态到稳态的时间。但是同时也可能造成电机转速( _/ ^' ]. |) H* [: D T
在预设值附近振荡的情形,所以又引入积分I 解决此问题.
! \- q9 ^! C. L/ `" r U积分1:顾名思义,积分项部分其实就是对预设值和反馈值之间的差值在时间上进
& a+ u7 p3 K% Z9 j7 d行累加。当差值不是很大时,为了不引起振荡。可以先让电机按原转速继续运行。
3 N3 d+ [3 K, h( ^* W- l+ p当时要将这个差值用积分项累加。当这个和累加到- -定值时,再-次性进行 处理.
( j+ u2 C: [2 i: S/ X0 Y从而避免了振荡现象的发生。可见, 积分项的调节存在明显的滞后。而且 1值越大,
$ J# ~3 ?7 i# x' t滞后效果越明星。
, D8 j# ~/ I8 w l' _7 z J+ G微分D:微分项部分其实就是求电机转速的变化率。
& h6 ^* U7 g) b- m! Y2 s也就是前后两次差值的差而已.2 S0 ~- j* d) w" k+ G4 h
也就是说,微分项是根据差值变化的速率, 提前给出一个相应的调节动作。& y7 g5 e, m7 T4 x8 m
可见微分项的调节是
* X4 F( E3 |( m$ O/ g7 Z超前的。并且D值越大,超前作用越明显。可以在- -定6 }7 S' U1 I$ c# o
程度上缓冲振荡。
/ b' d# k; O5 ]+ \) G3 L( ~4 ]比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分. Q; x/ p3 Q' i2 \4 p: T
项",它能预测误差变化的趋势3 M7 ~/ S$ E1 m
这样,具有比例+微分的控制器,就能够提前使抑制( d1 n4 S2 f% T
误差的控制作用等于零,甚至为负值,从而避免了被控量的严巫超调。
$ h, j; F' |( E1 j0 A, O# {5 K" J5 d( U1 \
. }1 ?2 c6 E/ O4 w/ I |
|