搜索

通俗讲解PID

[复制链接]
天地我心 发表于 2019-9-7 12:38 | 显示全部楼层 打印 上一主题 下一主题
控制模型:你控制一个人让他以PID控制的方式走110步后停下。
: V: t: `$ c. }9 r3 D
1 y- y" t5 t9 P  H8 ?: E(1)P比例控制,就是让他走110步,他按照一定的步伐走到一百零几步(如108步)或100多步(如112步)就停了。6 x$ F, Y9 t, R. h1 t2tech.cn
( _5 o, s4 L6 [8 v+ E2tech.cn
说明:P比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。
" L4 I$ `. i/ d( u: h+ D+ a% g- [7 g' V$ B/ A5 r2tech.cn
(2)PI积分控制,就是他按照一定的步伐走到112步然后回头接着走,走到108步位置时,然后又回头向110步位置走。在110步位置处来回晃几次,最后停在110步的位置。
( ^5 Z( V+ F' v) x7 e- i
; |$ d# t- U. `9 [3 a; c1 k( K4 l) V说明:在积分I控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。$ }8 H* M5 C- R( S% C" j2tech.cn

  o+ _& T& ^. G- S4 J) Z(3)PD微分控制,就是他按照一定的步伐走到一百零几步后,再慢慢地向110步的位置靠近,如果最后能精确停在110步的位置,就是无静差控制;如果停在110步附近(如109步或111步位置),就是有静差控制。
1 h% q% g  o( Z; Z* R# @, I0 E: G: |' T, I$ m; Y; ~4 W. l2tech.cn
说明:9 `8 z6 ]2 q" \3 @2tech.cn

/ x9 x! c% |% K在微分控制D中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。$ E& ]7 ]0 Q  ?) o4 j, {+ B" g2tech.cn

  B8 c. u# p! j' u- G1 N7 y3 M自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳,其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例P”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势。这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例P+微分D(PD)控制器能改善系统在调节过程中的动态特性。# F- [, Y6 w! L' V' N$ g- ]" Q! u2tech.cn

! v( \6 w3 X1 _) x+ m& c  ~& m很多同学都不清楚PID是个什么东西,因为很多不是自动化的学生。他们开口就要资料,要程序。, V5 T- T2 O/ P3 }5 s2tech.cn

# [! Z* ^6 `6 z  Y8 s/ ]这是明显的学习方法不对,起码,首先,你要理解PID是个什么东西。
- u% p& P+ F6 T/ `' d
/ }" b4 u2 h- h$ X6 D& p. c7 X本文以通俗的理解,以小车纵向控制举例说明PID的一些理解。
: p( j  n  i$ ]5 S  d) d  ?! h8 q' f& ^. d) b2tech.cn
首先,为什么要做PID?
$ n; Y9 ]8 U: U% F5 v' z& B+ o/ @8 D/ A# ?. h* U# ?2tech.cn
由于外界原因,小车的实际速度有时不稳定,这是其一,要让小车以最快的时间达达到既定的目标速度,这是其二。速度控制系统是闭环,才能满足整个系统的稳定要求,必竟速度是系统参数之一,这是其三., e+ T2 P6 e% b% H7 ?2tech.cn

1 O: m2 V$ i* g: i' H9 T1 u" \8 j小车调速肯定不是线性的,外界因素那么多,没人能证明是线性的。如果是线性的,直接用P就可以了。比如在PWM=60%时,速度是2M/S,那么你要它3M/S,就把PWM提高到90%。因为90/60=3/2,这样一来太完美了。完美是不可能的。9 h. _1 G: W2 p$ ?2tech.cn

2 S- |& @7 F! l: _那么不是线性的,要怎么怎么控制PWM使速度达到即定的速度呢?即要快,又要准,又要狠。(即快准狠)系统这个速度的调整过程就必须通过某个算法调整,一般PID就是这个所用的算法。
, d7 H4 X( Z  C
; _% j' q3 X6 B* e7 @7 L可能你会想到,如果通过编码器测得现在的速度是2.0m/s,要达到2.3m/s的速度,那么我把pwm增大一点不就行了吗?是的,增大pwm多少呢?必须要通过算法,因为PWM和速度是个什么关系,对于整个系统来说,谁也不知道。要一点一点的试,加个1%,不够,再加1%还是不够,那么第三次你还会加1%吗?很有可能就加2%了。
( ?4 p7 r- \" }, @# b4 h! L通过PID三个参数得到一个表达式:△PWM=a *△V1+b *△V2+c *△V3,a b c是通过PID的那个长长的公式展开,然后约简后的数字,△V1 ,△V2 ,△V3 此前第一次调整后的速度差 ,第二次调整后的速度差,第三次。。。。。一句话,PID要使当前速度达到目标速度最快,需要建立如何调整pwm和速度之间的关系。
/ H6 p  J& o) t3 T& v- N
  h2 R3 q5 L; ^4 v$ x输入输出是什么:6 X. ?  ?* @8 v6 O' b! a2tech.cn
输入就是前次速度,前前次速度,前前前次速度。* B: C! h; G* s$ E; A6 l7 u* w' e  L2tech.cn
输出就是你的PWM应该增加或减小多少。/ N. {2 C2 o6 ?/ O& D1 O2tech.cn

8 G/ w2 a, B: }* o) `) X

© 声明:本文仅表作者或发布者个人观点,与环保学社[2TECH.CN]无关。其原创性及陈述文字、内容、数据及图片均未经证实,对本文及其全部或部分内容、图片、文字的真实性、完整性、及时性本站不作任何保证或承诺,仅做参考并自行核实。如有侵权,请联系我们处理,在此深表歉意。

您需要登录后才可以回帖 马上登录 | 中文注册

本版积分规则

技术话题

关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
快速回复返回顶部 返回列表