TA的每日心情 | 开心 2020-7-28 15:35 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一、PID算法简介1 ~% B! `8 Y2 ]. u
在智能车竞赛中,要想让智能车根据赛道的不断变化灵活的行进,PID算法+ F# d& i* X& z( q+ C$ Q- d
的采用很有意义。" M0 q/ v; E* D) {( S5 u) n5 u* ^& o
首先必须明确PID 算法是基于反馈的。- -般情况下,这个反馈就是速度传
- V' f! J: @3 r$ |2 ?感器返回给单片机当前电机的转速。简单的说,就是用这个反馈跟预设值进行比0 V9 }2 ]3 U( Q8 A- l+ I
较,如果转速偏大,就减小电机两端的电压:相反,则增加电机两端的电压。+ q4 Y$ @+ N; {
顾名思义,P指是比例(Proportion ),I指是积分(Integral ),D指微0 s+ b9 h( L {% r% u ]
分(Differential ) 。在电机调速系统中,输入信号为正,要求电机正转时,反
9 e+ T1 B" a. f" q3 T馈信号也为正(PID 算法时,误差=输入-反馈),同时电机转速越高,反馈信号2 W* k {( ?5 q! O
越大。要想搞懂PID 算法的原理,首先必须先明白P,I,D 各自的含义及控制规律:8 D5 K$ c, r2 n( X$ z$ x
比例P:比例项部分其实就是对预设值和反馈值差值的发大
# ?* p+ D4 w( N6 {4 i倍数。举个例子,假如
1 i" o$ w; L' p% M5 q原来电机两瑞的电压为U o。 比例P为0.2,输入值是800, 而反馈值是1000, 那么输& L9 V# n2 Z* ^- p* a
出到电机两端的电压应变为U o+0.2* (800-1000) .从而达到了调节速度的目的. .3 s4 d1 Z! t: I7 w) E2 z
显然比例P越大时,电机转速回归到输入值的速度将更快,及
, T- |. l; d ?调节灵敏度就越高。
; u: s. S1 r+ ?+ m& p4 K: H: ?% C从而,加大P值,可以减少从非稳态到稳态的时间。但是同时也可能造成电机转速: |+ W/ h; Y" i" f& L# A
在预设值附近振荡的情形,所以又引入积分I 解决此问题.4 ~7 Z3 K0 x b P9 L" M8 E9 v. N
积分1:顾名思义,积分项部分其实就是对预设值和反馈值之间的差值在时间上进
! j' i3 D9 e5 f9 k' s P; Z ?$ e- z行累加。当差值不是很大时,为了不引起振荡。可以先让电机按原转速继续运行。: B6 I* {* |! i# U% \* \
当时要将这个差值用积分项累加。当这个和累加到- -定值时,再-次性进行 处理.2 C& `% _7 t, Y# z6 p
从而避免了振荡现象的发生。可见, 积分项的调节存在明显的滞后。而且 1值越大,$ k& L5 l+ X/ d" n
滞后效果越明星。
8 s+ B' v5 c7 O! O微分D:微分项部分其实就是求电机转速的变化率。
" d" _# f8 l$ D' ]; A9 L也就是前后两次差值的差而已.
1 Y1 G, P/ U: @6 o: x也就是说,微分项是根据差值变化的速率, 提前给出一个相应的调节动作。, e1 K. g( W: h: B
可见微分项的调节是# c' A! y. _' h8 x; \
超前的。并且D值越大,超前作用越明显。可以在- -定$ t* c1 g& g! p1 u' C5 F
程度上缓冲振荡。$ w, p1 K) E4 V3 i5 v8 g' f
比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分
# G* {5 y2 D' J) o项",它能预测误差变化的趋势9 q# v, H! B9 X: L4 D! u; p
这样,具有比例+微分的控制器,就能够提前使抑制3 p" ^4 [0 r8 W$ l- }! {, l1 t Q
误差的控制作用等于零,甚至为负值,从而避免了被控量的严巫超调。
1 @* D* m& [4 L- L/ F& W" W9 r0 n. w, y- h+ R' W
! M$ U: a# k8 @& T; }1 b8 ~) G |
|