TA的每日心情 | 开心 2020-7-28 15:35 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一、PID算法简介
) K" `$ ]9 v# J0 Q( z' d! h8 P在智能车竞赛中,要想让智能车根据赛道的不断变化灵活的行进,PID算法
+ Y+ }; K6 _' U0 ]的采用很有意义。! W3 `) t3 n Q. v5 C: z8 W l Z
首先必须明确PID 算法是基于反馈的。- -般情况下,这个反馈就是速度传
, e( [2 Q8 f' n$ Z+ o感器返回给单片机当前电机的转速。简单的说,就是用这个反馈跟预设值进行比
& D3 z! m' ~; V' D) @较,如果转速偏大,就减小电机两端的电压:相反,则增加电机两端的电压。
# w7 S7 ^+ B ]. s/ G顾名思义,P指是比例(Proportion ),I指是积分(Integral ),D指微
1 ], T8 H* g5 T/ g, D* B: B% f分(Differential ) 。在电机调速系统中,输入信号为正,要求电机正转时,反
+ ]$ N$ ]/ r: f馈信号也为正(PID 算法时,误差=输入-反馈),同时电机转速越高,反馈信号, A# E) r8 x: X5 z: `% A
越大。要想搞懂PID 算法的原理,首先必须先明白P,I,D 各自的含义及控制规律:
0 X! r* M. R# W# y5 |) c比例P:比例项部分其实就是对预设值和反馈值差值的发大( Z5 n0 g; N' I. y' J* R
倍数。举个例子,假如
' q' B5 f$ T4 h; P2 |9 N4 `原来电机两瑞的电压为U o。 比例P为0.2,输入值是800, 而反馈值是1000, 那么输8 s7 _0 ~. t! w) E8 }4 _! t' b
出到电机两端的电压应变为U o+0.2* (800-1000) .从而达到了调节速度的目的. .
6 E: X* A6 X c7 A* r显然比例P越大时,电机转速回归到输入值的速度将更快,及
/ _$ s# \1 W) J6 f" o: \3 M9 c调节灵敏度就越高。! ^1 ]) j$ ?6 e0 m9 V
从而,加大P值,可以减少从非稳态到稳态的时间。但是同时也可能造成电机转速# A3 X- X! @7 V3 c
在预设值附近振荡的情形,所以又引入积分I 解决此问题.
- j. D& d& ~& A, n V积分1:顾名思义,积分项部分其实就是对预设值和反馈值之间的差值在时间上进, n, S/ Z0 V3 G/ c( }/ |! H
行累加。当差值不是很大时,为了不引起振荡。可以先让电机按原转速继续运行。
6 R# N I/ _) u( P a: s& O. p当时要将这个差值用积分项累加。当这个和累加到- -定值时,再-次性进行 处理./ S4 r/ g% {) }3 z8 [, e
从而避免了振荡现象的发生。可见, 积分项的调节存在明显的滞后。而且 1值越大,
( f W; [; W4 x* X/ P3 l" P# t滞后效果越明星。
/ {4 L, ]. K) x0 I* V( r2 h微分D:微分项部分其实就是求电机转速的变化率。
0 k% r( c* ]% X7 J# X! \/ M# u/ |也就是前后两次差值的差而已." x, ?; f: ^) H/ ?" u0 R- ?) c5 A
也就是说,微分项是根据差值变化的速率, 提前给出一个相应的调节动作。
+ v7 o) {1 E/ D I1 |可见微分项的调节是
* P' C8 O( l3 q9 U1 | d超前的。并且D值越大,超前作用越明显。可以在- -定
4 b1 V% z- K* P" @9 B1 u8 Z( n$ a6 E程度上缓冲振荡。
% m. ]: m, X+ h( K5 `# v# v比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分' q4 M( }8 u P* q( I
项",它能预测误差变化的趋势# J- j- H: {1 |+ x3 ?) a1 S
这样,具有比例+微分的控制器,就能够提前使抑制
^) L; _! h8 T( ^3 y误差的控制作用等于零,甚至为负值,从而避免了被控量的严巫超调。
6 c I G; F4 K1 ?
P2 b, t+ C7 h
) R! I- r+ T' C( ^* ^' C7 r |
|