狂暴战车 直流电机转速闭环,pid调试过程

2019-8-1 10:32 [复制链接] 3 426

本帖最后由 sogw 于 2019-8-1 13:48 编辑 , `( ^* }: g6 [2 e2 T. Q

& _' p. c/ V- `! }  ]: A" h6 {$ z

当我们给小车设定速度时,自然是希望它能够按照预设的速度运行,但因为外界阻力,显然轮子的转速会受到影响,达不到预设值或变的不稳定。这个时候就需要闭环控制了,来使车轮的转速在受到一定的干扰时也能稳定在预设值上下。


0 e" z8 a; o3 A; h8 q

谈到闭环控制算法,最经典的当然是PID了,rt-robot 中提供了PID的算法,其中有增量式PID和位置式PID,对于电机的控制,增量式PID更为合适。 在PID调试过程中, 观察波形是很有必要的。 可以显示波形的工具有很多, 在这里,我使用的是 ANO_TC匿名科创地面站, 它不仅可以图形化显示数据,而且还有调参接口,支持串口、UDP等通信方式。 ANO_TC 上位机有一套自己的协议,下位机(小车)需要实现这部分,才能够使用它。

( [3 l  \8 `7 J* a6 ?0 S0 M
! Q0 g. C" X7 S9 [
: b3 G: O8 H/ ^: [+ S5 m6 X  C
在与上位机通信对接完成后,就可以开搞了。调参过程中,增量式与位置式略有不同, 增量式先加大 Ki.
' I# S7 b  Q9 ?  R3 `' @& {
/ v. K$ P5 W- Z1 |1 o5 U# X!:所用电机不太好。同时因为IO口不够用,没能使用MCU定时器的编码器接口(硬件),只好用软件包中的提供的编码器接口(软件)。* B6 ]) p8 Y3 A. k1 b
测速稍有影响,明显的可以看到在相互干扰,所以在看以下调试过程中的波形时,不要太过苛刻啊。
' E# v+ k! r: Z2 I9 c5 C1 [

. m* N- [& h6 g0 z. e
5 ]6 t* v6 ?  q
; |' s0 Q/ b& f& X. z5 A; L' a以下是具体的调参过程,仅供参考 (ps:两驱小车,使用同一套PID参数)
# v+ W5 Z3 t) O
4 j8 h3 h4 _( q7 z: b
5 b- m- _# C$ k7 _1 S5 e; d, D* b1.0: 首先设置KP=0,KD=0,KI=0.1。观察波形,可以看到稳定过慢,值太小" s7 _5 [$ q0 E7 a

3 U. Z! m! ^% R% N( T+ I7 M  ^$ M1 k/ q7 U( W
5 d& K4 X3 l* u5 R7 ?4 p
1.1:保持Kp、Kd不变,设置Ki为1.0。观察波形,稳定加快。
( U, B* `6 q6 X/ U& l, G
9 ^9 ~1 ^# E4 E0 g9 }. |0 ]1 m8 }, {; k7 g: W; u
1.2:保持Kp、Kd不变, 设置Ki为2.0。观察波形,有振荡的趋势
' [, f4 z: y! ]4 M: i- L) j* M. P1 C$ X# Z1 T* e2 f
  v- d0 O) Z; T+ B
1.3:保持Kp、Kd不变,设置Ki=4.0。观察波形,振荡趋势更加明显/ |$ G, W1 s1 G# @; n2 G+ x0 x+ @

8 C3 j" B- ?" {7 ]5 I6 r/ B6 B) l  j3 K
1.4:保持Kp、Kd不变,设置Ki=8.0。观察波形,在有规律的振幅渐小的振荡& x( @9 J: V( g0 K7 L- ~- D

9 l4 s) K, w! X( o0 _7 Q) Y* y  g6 ]
" y  K/ z3 H( ~1.5:保持Kp、Kd不变,设置Ki=16.0。观察波形,来回大幅度振荡,此时Ki已经过大了
( X5 ^& ], t! s- S* a' P
2 a3 G2 K9 O) _5 f9 i" m8 M! [" @9 K2 R( ?" h3 a% I1 G! Q

经过 1 过程后,暂定Ki为8.0


, J. k; k+ ?) e! x9 }2.0:设置Kp=0.1、Ki=8.0、Kd=0.0。观察波形,几乎没有什么影响
. f0 r% M; X- A, i, T/ w* N; v5 L1 X5 z; w" V; h& h

: u8 ^9 W# D: ^8 z/ _# m" z2.1:保持Ki、Kd不变,设置Kp=1.0。观察波形,变化不大7 g: D/ `* a1 R( l0 q  }) q# {
7 f, k0 ]/ d- U; K$ s
* @" E  f& l: G3 L
2.2:保持Ki、Kd不变,设置Kp=2.0。观察波形,振荡有被消减& f$ i/ T1 u0 h  A

5 i8 p/ W8 {0 }0 h0 A* t
; C% O' u/ G- `" N2 {, c2.3:保持Ki、Kd不变,设置Kp=4.0。观察波形,变化不大
0 c; v) f" @, l
) V3 z1 C2 n+ E8 g
- \0 L% X+ e4 h2.4:保持Ki、Kd不变,设置Kp=8.0。观察波形,振荡明显减弱, v" e! D: _$ b, x

5 a' k  r, s* p, J2 R0 _: w0 i# h0 p7 v4 E/ b) ^
2.5:保持Ki、Kd不变,设置Kp=16.0。观察波形,新的振荡出现,此时Kp已经过大了% ]" w& L2 E1 l2 ~8 h( G

: Z' H' ~$ \6 ], q2 n% H
. k4 y) d" ^( N) z: D* n

经过 2 过程后,暂定Kp为8.0

' r- ^' @9 l0 x0 f( ?# V% X; \
3.0:设置Kp=8.0、Ki=8.0、Kd=0.1。观察波形。看不出变化6 c  }  k" L/ t$ M

4 o) O6 |: h3 m1 Z/ r7 U0 @. d7 n6 E9 m# g5 L2 S# |
3.1:保持Kp、Ki不变,设置Kd=1.0。观察波形,超调幅度被消弱2 i( ?8 k; Z- R. w

/ ~+ V2 r' D& c) ^2 [0 B1 {! L9 V  Z$ P0 @
3.2:保持Kp、Ki不变,设置Kd=2.0。观察波形,无明显变化0 L- f3 N0 R, R. M

( A! A7 L6 D- L3 w
) D" `4 w' [$ f# y+ P  d( W: Q3.3:Kd=6.0。观察波形,超调幅度继续消弱
% v3 i) k; }; l6 J/ D* A7 s+ E8 b7 T* }1 b
# H% n' f- `$ {5 j8 }0 X
3.4 Kd=8.0。观察波形,超调幅度无明显变化,且有要振荡的趋势* f5 z( V" v9 D: e( ?( K/ g$ x0 b

8 g- r, l2 p& n! g3.5:Kd=16.0。观察波形,大幅振荡,此时Kd已经过大了, ~4 N6 i0 q1 l+ r
0 ^2 W$ `7 w, l( G, d! @* ~  t5 L
4 V, R3 u; r  P9 \2 l

经过 3 过程后,暂定Kd为8.0。至此,已经得到了一套PID参数,之后就是基于这套参数,反复调节,寻找更优的参数


1 O+ ]* V3 _; y1 P6 h

PID的参数并不是彼此孤立的,并不是确定了一个参数后,就一直不变,对于调一个参数时需要改动其它参数的情况是很常见的。以上只是方便展示,希望大家看过后,不要有误解。上述过程只是为了大致确定参数的数量级和敏感度。

9 q# }5 r1 x3 g2 z0 Z

' ]& b& ]# Y  [# ?n:最后选定的参数是:Kp=6.6、Ki=6.5、Kd=7.6。效果如下
* p  K3 c1 a; q/ _# K0 R: y; b
8 X4 C. s( k: w5 I8 C1 z" o; h- D
* j/ U0 ^7 u, U* Q# b+ L
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2019-8-1 10:36:54 | 显示全部楼层
PID整定参数的选择之试凑法
使用道具 举报 回复
发表于 2019-12-2 16:32:33 | 显示全部楼层
博主能分享一下你的 ”ANO_TC匿名科创地面站” 软件吗?
4 P& b& d# C5 f' q我最近调通了这个robot框架的电机闭环,发现框架内有现成的传参函数。+ j7 B9 I& z# i& Y9 @3 r, |
你的这个版本在匿名网站上找不到了,谢谢啦。
使用道具 举报 回复
发表于 5 天前 | 显示全部楼层
Carry 发表于 2019-12-2 16:32
6 o/ G: m( G: Y; y" \. i博主能分享一下你的 ”ANO_TC匿名科创地面站” 软件吗?" _( G1 Z6 o$ c2 V5 _) U# Y; e
我最近调通了这个robot框架的电机闭环,发现框架 ...

- g$ Y& i! \" Q5 I7 t( s https://pan.baidu.com/s/1Zbvmzr8Mbt9Mytft31IcCw
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

快速回复 返回顶部 返回列表