|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
PID算法解释
6 e6 C, B( A) x4 {: C7 f很多同学都不清楚PID 是个什么东西,因为很多不是自动化的学生。他们开口就要资料,要程序。
3 ^' _% _- i$ z, F这是明显的学习方法不时,起码,首先, 你要理解
! Z0 v4 u! o0 U. ~2 ?$ E+ IPID是个什么东西。' E. H i, H b6 w$ ]7 w
本文以通俗的理解,以小车级向控制举例说明
/ L' ^! U" N5 z- i2 q% s8 i( u5 KPID的一些理解。
) z9 X: A% v1 T+ q3 K0 ^% H( G首先,为什么要做PID 90 u$ O& h$ E7 D/ e% z
由于外界原因,小车的实际速度有时不稳定,这是其一,
* l' L: E6 [' i2 X2 G要让小车以最快的时间达达到既定的目标速度,这是其二。2 ]0 b: y7 B2 K" U0 i+ C
速度控制系统是闭环,才能满足整个系统的稳定要求,必竟速度是系统参数之- -,这是其三
0 S; E ~( z2 ~2 {* M0 {6 L9 M小车调速肯定不是线性的,外界因素那么多,没人能证明是线性的。如果是线性的。直接用
' J6 x1 u& X/ J* xP就可以了。0 x5 x+ a1 p3 v+ h7 w8 E
比如在PWM=80% 时, 速度是2M/S ,那么你要它3MS ,就把PWM提高到90% .因为90/60=3/2 , 这样% a, h+ U5 \* j: V
一来太完美了。
) v' [ B7 A2 m. [' D. ?) p完美是不可能的.. Q0 I) H. f0 ~/ G4 h4 j5 k
那么不是线性的,要怎么怎么控制/ B3 S+ F% {7 Q$ ~$ i
PWM使速度达到即定的速度呢?即要快,又要准,又要狠。(即快准狠6 G% O: x- I; _# A- @/ C* g+ j& |
)系统这个速度的调整过程就必须通过某个算法调整,- -般) a# w k+ a/ v: c% x
PID就是这个所用的算法。" Q4 d5 v! ]" S& j {5 P3 t S
可能你会想到,如果通过编码器测得现在的速度是
Q1 Q9 ? G( p& z" }2 M9 O+ h2.0m/s.要达到 2.3m/s 的速度, 那么我把pwm增大一* j1 a9 O) a- A! s' L
点不9 f+ T" p3 [2 K: h( O
就行了吗?是的。增大pwm 多少呢? 必领要通过算法。因为PWM 和速度是个什么关系,对于整个系统来说,8 z( Q! T$ V3 o; L$ d, |" C
谁也$ I/ i+ E9 n$ c* L* B1 @, _
不知道。要- 一点-一点的试,加个 1%,不够,再加1%还是不够,那么第三次你还会加 1% 吗?很有可能就加2% _( c9 Z2 B4 }- l
了。
# ]! X- X; p/ e6 g' |/ S通过PID 三个参数得到-一个表达式:△PWM=a’ OV1+b" △V2+c' OV3,abc 是通过PID的那个长长的
- ?7 b% A5 p/ {. J$ {公式展开9 p4 t- f6 T8 M+ H
然后的简后的数字,△V1 ,△V2,△V3此前第一次调整后的速度差# C+ \$ Y: a3 J" F. l$ R# f
,第二次调整后的速度差. 第三次。.
' _# F4 m* ^) @7 Q q) L1 h- }: u- -句话, PID要使当前速度达到目标速度最快,置要建立如何调整
* a l# j7 A4 I: W) d0 ]pwm和速度之间的关系。
+ m& x2 ?' c) U) k; M3 x输入输出是什么: .
( Y4 L5 g8 B2 Q5 z- S, N- {2 e输入就是前次速度,前前次速度,前前前次速度。, G& D, p/ }- ^6 M, {4 z) ]9 L
输出就是你的PWM 应该增加或减小多少.
% S# b) g H! K$ O8 S( s. r
+ ~% W' B+ u* j$ e2 k* c7 U& p! [0 ~7 v+ b {& N% e% h
|
|