|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PID算法解释
% [% k$ |# _' s) z4 S很多同学都不清楚PID 是个什么东西,因为很多不是自动化的学生。他们开口就要资料,要程序。
7 L& b! g4 d2 S7 R T- s8 Z这是明显的学习方法不时,起码,首先, 你要理解
4 S S J; S7 QPID是个什么东西。
- Z* x' v' }, s! ?本文以通俗的理解,以小车级向控制举例说明" d1 _" h4 k' _! z
PID的一些理解。
- a0 q4 y; }. i# v* s4 [7 o3 q首先,为什么要做PID 9# }' g5 F8 Z+ e$ j
由于外界原因,小车的实际速度有时不稳定,这是其一,
) l# t6 r$ U5 L; q0 o& ~& c要让小车以最快的时间达达到既定的目标速度,这是其二。) ?5 b5 t5 L5 C; n# ] z+ D, Q4 v* V9 k
速度控制系统是闭环,才能满足整个系统的稳定要求,必竟速度是系统参数之- -,这是其三! W6 m# O& r) y, ~5 }
小车调速肯定不是线性的,外界因素那么多,没人能证明是线性的。如果是线性的。直接用
+ |: t0 G- S j) c) N; }5 s, s* BP就可以了。8 d" I4 b* W' T. \" {1 z7 q
比如在PWM=80% 时, 速度是2M/S ,那么你要它3MS ,就把PWM提高到90% .因为90/60=3/2 , 这样. q" ]# t' y( G- J) `; [6 w% R8 S
一来太完美了。
& A" K. J Z0 v3 c4 f m完美是不可能的.
. p. N# s1 r! s& U! v那么不是线性的,要怎么怎么控制
( |; B' t: w! P& [6 m# ?, F' wPWM使速度达到即定的速度呢?即要快,又要准,又要狠。(即快准狠
4 ]" X/ y ]; Q3 t2 h4 p8 s0 W)系统这个速度的调整过程就必须通过某个算法调整,- -般0 M% d( ]% Y" V. C* U: A
PID就是这个所用的算法。; i5 K" T, B: p3 o
可能你会想到,如果通过编码器测得现在的速度是
3 A, [, }4 [) s0 D2.0m/s.要达到 2.3m/s 的速度, 那么我把pwm增大一
2 G/ n" X V4 R r点不7 Y2 A6 X7 q# b" x2 g
就行了吗?是的。增大pwm 多少呢? 必领要通过算法。因为PWM 和速度是个什么关系,对于整个系统来说,$ _7 R3 \+ I8 @# T/ A& X
谁也
" ~. p8 A% x9 N, u# u- n+ k0 N8 M不知道。要- 一点-一点的试,加个 1%,不够,再加1%还是不够,那么第三次你还会加 1% 吗?很有可能就加2%$ {6 N2 P7 `: C; J: b+ V1 l5 ^
了。4 i: P$ K) t, }0 W: q
通过PID 三个参数得到-一个表达式:△PWM=a’ OV1+b" △V2+c' OV3,abc 是通过PID的那个长长的
. Y l# }( a1 z2 z公式展开
; v" P, P3 H' C) g& H/ |然后的简后的数字,△V1 ,△V2,△V3此前第一次调整后的速度差
1 [3 F3 ?& Y) g& O$ y,第二次调整后的速度差. 第三次。.! I' ~) G$ M3 ^3 m
- -句话, PID要使当前速度达到目标速度最快,置要建立如何调整$ {3 v/ i8 N6 P& f; ~3 P# ^; ^
pwm和速度之间的关系。
: D' h+ k6 z% g' h$ H Z3 @输入输出是什么: .
% v& \) e4 m5 I# S/ h, x& U9 k& q1 [输入就是前次速度,前前次速度,前前前次速度。
( v- c) t; L' ^" Y输出就是你的PWM 应该增加或减小多少.
7 o" F9 }9 k+ d) n4 h& Z8 e3 `, P8 E9 c0 D4 U* O5 R6 L+ Q
x! z* S5 L7 h |
|