|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PID算法解释& u* M3 ?* C5 m" l+ S
很多同学都不清楚PID 是个什么东西,因为很多不是自动化的学生。他们开口就要资料,要程序。 F3 N; g" H/ e( W# j, u
这是明显的学习方法不时,起码,首先, 你要理解7 A' B+ X/ n; k7 N }7 }- n( o
PID是个什么东西。
( d }' O: H. p. h# q本文以通俗的理解,以小车级向控制举例说明
7 z8 |4 t3 o- n! \PID的一些理解。$ y+ Q' b' g( p1 z; {6 i
首先,为什么要做PID 9
; g6 m$ a! H+ O由于外界原因,小车的实际速度有时不稳定,这是其一,4 B" @8 _" x- w: ] l( W
要让小车以最快的时间达达到既定的目标速度,这是其二。
, A5 l! b! }9 U; X9 w速度控制系统是闭环,才能满足整个系统的稳定要求,必竟速度是系统参数之- -,这是其三
) b9 ]/ c2 |+ S$ _# B3 Z- ?小车调速肯定不是线性的,外界因素那么多,没人能证明是线性的。如果是线性的。直接用2 l' ?+ c" B. s4 A# h; X1 D" j) I
P就可以了。' ]( C$ R n" V4 z3 n. N7 c
比如在PWM=80% 时, 速度是2M/S ,那么你要它3MS ,就把PWM提高到90% .因为90/60=3/2 , 这样1 s3 g2 c, s9 {4 B) i+ ]. C
一来太完美了。
0 }" N- b+ N4 }8 O完美是不可能的.
4 }) {3 i$ D) l- t/ y0 V. O7 g% f9 z7 D那么不是线性的,要怎么怎么控制
5 y3 L8 l) H5 H: X2 QPWM使速度达到即定的速度呢?即要快,又要准,又要狠。(即快准狠4 B+ b. T* p' K
)系统这个速度的调整过程就必须通过某个算法调整,- -般/ Y9 G) @ V( D
PID就是这个所用的算法。 V, [% [- o1 X2 V% {; Z
可能你会想到,如果通过编码器测得现在的速度是
" y: {/ K; @ a2.0m/s.要达到 2.3m/s 的速度, 那么我把pwm增大一6 K% X7 `0 x" H; S3 z5 | u% N) x/ o
点不
8 ^4 |6 R {% W6 M3 A就行了吗?是的。增大pwm 多少呢? 必领要通过算法。因为PWM 和速度是个什么关系,对于整个系统来说,9 Q. l6 c% x! N) ]: o+ u
谁也
; D$ m2 S8 u I! C( J不知道。要- 一点-一点的试,加个 1%,不够,再加1%还是不够,那么第三次你还会加 1% 吗?很有可能就加2%
( k0 N, |8 L7 z- g4 a2 i了。
- I! L) @9 I, j( F8 x通过PID 三个参数得到-一个表达式:△PWM=a’ OV1+b" △V2+c' OV3,abc 是通过PID的那个长长的
8 [$ M- L6 {6 _6 I9 A8 B公式展开
! p4 R& P% }9 Z( }然后的简后的数字,△V1 ,△V2,△V3此前第一次调整后的速度差' Z+ b, s1 h0 T+ s
,第二次调整后的速度差. 第三次。.
7 q4 L; R" }3 D$ D1 x/ q# [- -句话, PID要使当前速度达到目标速度最快,置要建立如何调整
$ L9 K' \. m S& e- s# ?, Ppwm和速度之间的关系。
. B3 `4 k ]9 Q7 g; _5 l" @输入输出是什么: .
1 [9 f J: s+ F7 |* M输入就是前次速度,前前次速度,前前前次速度。
7 b0 ], S2 m) g输出就是你的PWM 应该增加或减小多少.# z* x6 N! K7 w
* N* n1 {: J# Q* `
) H# V. B+ u: t |
|