TA的每日心情 | 开心 2020-7-28 15:35 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一、PID算法简介; O& q: W/ A# n* J4 J
在智能车竞赛中,要想让智能车根据赛道的不断变化灵活的行进,PID算法2 H, z J4 n; k: H2 o
的采用很有意义。5 A& c3 C+ z( C0 M$ E j. j
首先必须明确PID 算法是基于反馈的。- -般情况下,这个反馈就是速度传6 M" W6 p2 l* T$ M& j% a# f# p
感器返回给单片机当前电机的转速。简单的说,就是用这个反馈跟预设值进行比
0 H9 V* ]' Z! F$ J. p g. a较,如果转速偏大,就减小电机两端的电压:相反,则增加电机两端的电压。: b* p. S0 f1 ?9 v
顾名思义,P指是比例(Proportion ),I指是积分(Integral ),D指微
9 p# l) L; l. S) d$ u! g分(Differential ) 。在电机调速系统中,输入信号为正,要求电机正转时,反
1 O2 `$ c. D6 C+ R; E馈信号也为正(PID 算法时,误差=输入-反馈),同时电机转速越高,反馈信号
. Q; V3 e& Z+ ]& W越大。要想搞懂PID 算法的原理,首先必须先明白P,I,D 各自的含义及控制规律:
, o2 ^& b: o$ Q1 ^' y比例P:比例项部分其实就是对预设值和反馈值差值的发大( H! D- \' l. ?# _- x- F
倍数。举个例子,假如/ ~& y- j, o7 c# ]8 k4 p2 M
原来电机两瑞的电压为U o。 比例P为0.2,输入值是800, 而反馈值是1000, 那么输/ j! `' G1 @7 o2 F7 Z/ h3 c4 b7 A" g
出到电机两端的电压应变为U o+0.2* (800-1000) .从而达到了调节速度的目的. .9 z5 a6 @8 Q2 x. a4 z
显然比例P越大时,电机转速回归到输入值的速度将更快,及
9 i2 k* g4 i4 v0 G. D调节灵敏度就越高。3 t7 j# a7 z& z6 G1 V
从而,加大P值,可以减少从非稳态到稳态的时间。但是同时也可能造成电机转速
0 J2 [- g7 j* M5 I在预设值附近振荡的情形,所以又引入积分I 解决此问题.# l* h- Z* ^2 K8 n. j
积分1:顾名思义,积分项部分其实就是对预设值和反馈值之间的差值在时间上进: K( i7 z0 Y1 ^7 ]" [% u6 ~
行累加。当差值不是很大时,为了不引起振荡。可以先让电机按原转速继续运行。0 q2 w$ l' s( H2 P/ X" c% F' @7 _; W
当时要将这个差值用积分项累加。当这个和累加到- -定值时,再-次性进行 处理.
2 r' s6 D" B( @; v5 b从而避免了振荡现象的发生。可见, 积分项的调节存在明显的滞后。而且 1值越大,
* c: c. d8 i6 j4 i滞后效果越明星。
4 B% K; i$ h2 ]6 j L s) {- _+ }6 W微分D:微分项部分其实就是求电机转速的变化率。
3 U9 }/ m" P7 w" g4 m. P+ [+ ~也就是前后两次差值的差而已.
, s. v6 e& V# s也就是说,微分项是根据差值变化的速率, 提前给出一个相应的调节动作。2 L1 j9 d' j; k/ w. T8 J
可见微分项的调节是
1 G: T% P2 n9 F& U) M" u1 l超前的。并且D值越大,超前作用越明显。可以在- -定$ B+ a; U$ Z1 b+ U
程度上缓冲振荡。( D% w8 V) B g% X; @
比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分' p; r5 c6 _) c2 C/ a8 p
项",它能预测误差变化的趋势" R1 v' f, r* Q* s; w9 u
这样,具有比例+微分的控制器,就能够提前使抑制$ s' O; I7 u9 u3 r% ]
误差的控制作用等于零,甚至为负值,从而避免了被控量的严巫超调。" z1 ]0 f( L9 I, ~& V( N3 |3 h0 W6 ^
& F V0 Y- a! K/ u6 j! L2 s* O
, x, f' F( E& q2 W0 d: v/ t$ G |
|