TA的每日心情  | 开心 2020-7-28 15:35 | 
|---|
 
  签到天数: 2 天 [LV.1]初来乍到  
 | 
	
    
 
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册  
 
x
 
一、PID算法简介 
4 S- N$ [2 \. M4 n$ m" X& ]在智能车竞赛中,要想让智能车根据赛道的不断变化灵活的行进,PID算法 
$ W/ D% P0 L9 ]1 o( g( E( L. c的采用很有意义。. q2 P- n' C3 Y. n 
首先必须明确PID 算法是基于反馈的。- -般情况下,这个反馈就是速度传 
) n& v# P; [3 s感器返回给单片机当前电机的转速。简单的说,就是用这个反馈跟预设值进行比: w1 I' \2 Y. X 
较,如果转速偏大,就减小电机两端的电压:相反,则增加电机两端的电压。 
( w1 w, |9 }6 Z  j; r顾名思义,P指是比例(Proportion ),I指是积分(Integral ),D指微 
: \+ j* X2 l" p4 y% m! [分(Differential ) 。在电机调速系统中,输入信号为正,要求电机正转时,反5 s+ i  [5 Q/ }! K 
馈信号也为正(PID 算法时,误差=输入-反馈),同时电机转速越高,反馈信号 
8 O& m6 _  g' g% N; ?& j. F越大。要想搞懂PID 算法的原理,首先必须先明白P,I,D 各自的含义及控制规律:% I6 y$ s8 ]+ Y; _ 
比例P:比例项部分其实就是对预设值和反馈值差值的发大  T( [9 }! D5 R* W8 \ 
倍数。举个例子,假如 
. K9 l" a+ o& v原来电机两瑞的电压为U o。 比例P为0.2,输入值是800, 而反馈值是1000, 那么输. g8 k" g4 C' T8 Q9 L4 a; t 
出到电机两端的电压应变为U o+0.2* (800-1000) .从而达到了调节速度的目的. ., _: |' y2 }* G! z# A6 e7 J 
显然比例P越大时,电机转速回归到输入值的速度将更快,及5 z/ X7 H+ g( @1 Z* d$ q* q 
调节灵敏度就越高。 
! D" m8 A+ a" ~8 J) I$ P从而,加大P值,可以减少从非稳态到稳态的时间。但是同时也可能造成电机转速 
2 d4 B- j' Z: _: j" _. [在预设值附近振荡的情形,所以又引入积分I 解决此问题. 
" _, y' W& e* B" w2 q$ }$ o积分1:顾名思义,积分项部分其实就是对预设值和反馈值之间的差值在时间上进 
' {/ c- e$ N  W: d) y行累加。当差值不是很大时,为了不引起振荡。可以先让电机按原转速继续运行。' f# b' o* U+ E1 B$ A- g/ m+ V 
当时要将这个差值用积分项累加。当这个和累加到- -定值时,再-次性进行 处理.% l& Z) r+ j9 q8 q* m& E. {8 S 
从而避免了振荡现象的发生。可见, 积分项的调节存在明显的滞后。而且 1值越大,# |  `8 @) S( F9 H7 [( b  g8 d2 V  k 
滞后效果越明星。 
& t4 A6 B) ]# r$ D8 ~% i微分D:微分项部分其实就是求电机转速的变化率。 
0 j6 o& @" x' Q/ N" x也就是前后两次差值的差而已. 
  v: P* b, e+ g2 l' l) V也就是说,微分项是根据差值变化的速率, 提前给出一个相应的调节动作。* {/ |9 {' A' s# \! ]: t 
可见微分项的调节是# h5 ^6 F/ e4 n) h+ H 
超前的。并且D值越大,超前作用越明显。可以在- -定 
9 U2 @, r: E6 \; b! C程度上缓冲振荡。 
+ S8 }3 l  W/ k4 ?" e( |# Q比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分4 t* p* }) K) O% i 
项",它能预测误差变化的趋势 
- i$ |. v. X# `这样,具有比例+微分的控制器,就能够提前使抑制 
  B7 k2 n+ v, ?6 U6 j5 h. M) ~7 B误差的控制作用等于零,甚至为负值,从而避免了被控量的严巫超调。 
2 T' {8 [8 _/ y' I! E9 W- l5 B, x 
. p  X7 M. X& g7 B! C, q 
( c5 I5 C4 N" Z0 g% O7 F  s& f |   
 
 
 
 |