TA的每日心情 | 开心 2020-7-28 15:35 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一、PID算法简介
% b+ U4 y C7 [& Y, n在智能车竞赛中,要想让智能车根据赛道的不断变化灵活的行进,PID算法$ n4 g/ E6 p8 \
的采用很有意义。
4 w( L! c G6 B P ^# r首先必须明确PID 算法是基于反馈的。- -般情况下,这个反馈就是速度传" y3 }/ V3 d3 A
感器返回给单片机当前电机的转速。简单的说,就是用这个反馈跟预设值进行比* Z( K: u$ V$ V* V
较,如果转速偏大,就减小电机两端的电压:相反,则增加电机两端的电压。
4 V) F/ R* a- E& M4 l! q2 `; Y顾名思义,P指是比例(Proportion ),I指是积分(Integral ),D指微
/ m" T7 N1 Q, o! Y5 K5 L8 f分(Differential ) 。在电机调速系统中,输入信号为正,要求电机正转时,反
9 X) k1 ~* }0 R" k5 i) u/ {- d! y馈信号也为正(PID 算法时,误差=输入-反馈),同时电机转速越高,反馈信号
6 L" v4 n9 F0 y G0 b9 a越大。要想搞懂PID 算法的原理,首先必须先明白P,I,D 各自的含义及控制规律:% i* I0 M$ N% W
比例P:比例项部分其实就是对预设值和反馈值差值的发大
$ U: a5 \6 |# H) M( w" a& F倍数。举个例子,假如( u8 Y4 {. d, X. u7 n
原来电机两瑞的电压为U o。 比例P为0.2,输入值是800, 而反馈值是1000, 那么输' n# t h: ]8 V' g. I& t% L; u
出到电机两端的电压应变为U o+0.2* (800-1000) .从而达到了调节速度的目的. .
+ q6 t* y: K( ]6 _3 ^( k显然比例P越大时,电机转速回归到输入值的速度将更快,及
9 c5 D4 Y. P, Z* ^+ C8 v# Z6 M调节灵敏度就越高。
5 P V6 r. O5 c# L' y从而,加大P值,可以减少从非稳态到稳态的时间。但是同时也可能造成电机转速
& b; F; {' z2 Q0 [$ q I3 n在预设值附近振荡的情形,所以又引入积分I 解决此问题.% E2 S4 P. g8 B8 F8 V z
积分1:顾名思义,积分项部分其实就是对预设值和反馈值之间的差值在时间上进9 G" T8 z) Y7 r* l# v
行累加。当差值不是很大时,为了不引起振荡。可以先让电机按原转速继续运行。. _7 V1 ~6 ~! R% J2 A; x( ]
当时要将这个差值用积分项累加。当这个和累加到- -定值时,再-次性进行 处理.1 F9 J8 q1 ?/ l# m8 o h. m3 A6 F
从而避免了振荡现象的发生。可见, 积分项的调节存在明显的滞后。而且 1值越大,5 j3 \3 a: ]( X
滞后效果越明星。
! F9 A& c: M w" s8 Z) O1 v微分D:微分项部分其实就是求电机转速的变化率。& t0 k/ ?% O" X: ?- Q/ X/ n
也就是前后两次差值的差而已.
! N- i2 H8 D" l1 ^也就是说,微分项是根据差值变化的速率, 提前给出一个相应的调节动作。
; z, h' E$ F. `: G0 \3 ^可见微分项的调节是( c0 m1 t3 g+ `( C; o" R0 P
超前的。并且D值越大,超前作用越明显。可以在- -定& Y' S U' V9 D
程度上缓冲振荡。/ N8 a+ ^" t, T- G e$ ~" V- b* ~
比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分7 i% X* T& y0 e" E) G% w, t0 \) I
项",它能预测误差变化的趋势0 _7 t+ s+ ~3 R8 |- h( q
这样,具有比例+微分的控制器,就能够提前使抑制3 X+ S) ^! v7 \* {+ n
误差的控制作用等于零,甚至为负值,从而避免了被控量的严巫超调。
1 K! L7 O5 ]2 Q. M% z$ H$ Q: _* a. g5 a) i" L! {5 N! I% C
, \/ m) ~5 [; F. A" I4 t |
|