PID控制(上)

本文转载自微信公众号“电子搬砖师”,原文链接

这篇文章会以特别形象通俗的方式讲讲什么是PID。

很多人看到网上写的PID文章,要么是一堆公式,要么是充满疑惑的例子,就觉得PID是个很难的控制算法。其实要理解PID很简单,读者完全可以有这种认识和信心。

一、PID是什么?

PID控制是一种自动控制方式,它可以使得被控对象按照设定量运行。常见的PID控制例子有无人机自平稳,平衡车自平衡,空调控制房间温度恒定等。

那么PID是什么控制原理?为什么叫 “PID” ?

我们举一个例子做说明:

假设你在推箱子,你需要将箱子推到距离你100米处的终点,那你应该用什么方法才能又快又准确地将箱子推到目的地?最简单好用的方法是:

在距离目的地远的地方用大力气推,在距离目的地近的地方用小力气推。

抛开物理公式,用直觉想想看,要想快准狠的到达目的地,最理想的方式是不是推力和距离成比例?在距离远的时候因为推力大所以速度快,可以节省时间;在距离近的时候减小推力,防止速度太快冲过了头。随着距离越来越近,推力越来越小。

Proportion,比例

这个距离和推力成比例的思想就是PID控制理论中三大核心内容之一 ——比例控制,英文单词是Proportion,简写成 P。

由于箱子和地面有摩擦力,在距离100米处给的推力大可以轻松推动箱子,但在距离5米地方可能因为推力小推不动箱子了。这时由于距离较短,依据比例控制得到的推力一直不足以推动箱子,所以箱子就会一直处在距离目的地5米的地方不动。这种和设定量一直存在静态误差的现象也称为静差,我们要想办法消除静差。

小贴士:通常电子控制系统都是每隔一段时间查看当前状态和设定量是否还有偏差,如果有则继续制动以消除偏差,我们可以利用这一特性消除静差。

回到推箱子事件中,假设我们每秒观测一次当前位置和目的地的距离,我们将每次的距离值累加起来。上一秒距离5米,这一秒还是距离5米,则累加值就会是10米,下一秒距离如果还是5米,则累加值就是15米。将累加值乘以一个系数添加到推力中,则随着时间的延长,终有一刻会再次推动箱子。最终实现哪怕有一丁点的静差,都会被累加值消除掉,使得控制对象精准等于设定量。

Integration,积分

这个累加消除静差的思想就是PID控制理论中三大核心内容之一——积分控制,积分就是累加这个动作的美称,积分英文单词是Integration,简写成 I。

此外,由于距离和推力的比例设定过强或者箱子和地面的摩擦力太小,有可能造成箱子被推过头,然后再推回来,往往复复好几次才停下来的结果。我们希望箱子能尽快推到正确位置,所以必须减少这种震荡调节的次数。为了让箱子在即将到达目的地的时候能及时减速停下来,我们必须关注箱子的距离的变化率,或者说是速度。我们将箱子的距离的变化率也乘以一个系数作为阻力,将这个阻力叠加到推力上,如果上一时刻的距离和这一时刻的距离相差太大,即箱子推动速度太快了,推力就会因为阻力大而变小一点;如果上一时刻的距离和这一时刻的距离相差不太大,推力就会因为阻力小而基本不受影响。这样就可以避免快到终点时因为用力过猛而推过头。

Differentiation,微分

这个依据距离变化率调节阻力的思想就是PID控制理论中三大核心内容之一——微分控制,距离变化率(速度)就是距离的微分,微分英文单词是Differentiation,简写成 D。

将以上三种控制方式叠加在一块,就是PID控制了。

读到这里,可能大家对积分项和微分项会有两个疑问:

  1. 如果每次都将箱子距离累加起来,那从100米推到0米时,积分项不是要变得非常大?这么大的一个积分乘以一个系数变为推力,那在0米时就会有很大的推力,这不就破坏系统平衡了?
  2. 箱子距离变化率,或者说箱子推动速度,如果这个值很大,乘以微分系数就会得到比较大的阻力,那距离目的地100米时,本来需要很大推力的,结果阻力也很大,这不是自己给自己添堵吗?

回答第一个问题:
如果被控对象的当前状态量和目标设定量差距很大,那在向目标设定量靠近的过程确实会累计比较大的积分,并且在首次达到目标设定量时确实会因为积分项太大导致冲过头了,但是兄弟们,冲过头之后状态量就是负的了,系统就会将这个负的状态量也累加到积分中,从而逐渐削弱积分项。最终,在来回震荡几次后,积分项就会逼近于零。另外,拿四轴来说,通常在启动四轴时,都是平着放的,即初始偏差角度和机械中值差别并不大,累加不到什么积分。

回答第二个问题:
确实箱子在距离100米时应该要很大的推力,进而也会受到很大的阻力。但是微分项此时的控制作用干不过比例项,只有当箱子距离小了,比例项强弩之末了,这时如果速度还很大,微分项就会起到很大的阻滞作用。

二、科班风格解释PID

PID公式如下:

PID公式

其中u(t)是t时刻PID算法的输出结果,对应推箱子的例子就是推力了;Kp是比例项系数,e(t)是t时刻状态值和设定值的误差;Ki是积分项系数,它后面的那一串就是误差的积分;Kd是微分项系数,它后面的那一串是误差的微分。我们通过调节Kp、Ki、Kd三个系数,就可以使得系统稳定工作起来,这个调节系数的过程也称为PID参数整定

PID控制有两种,以上式子属于位置式PID,还有一种是增量式PID。增量式PID由这一时刻位置式PID输出减去上一时刻位置式PID输出得来,公式是:

增量式PID

经过一堆的计算,最后可表示为:

增量式PID.png

其中q0,q1,q2都是系数,e(t),e(t-1),e(t-2)分别是此刻误差,上一时刻误差,上上一时刻误差。我们通过调节q0,q1,q2三个系数,就可以使得系统稳定工作起来。

位置式PID和增量式PID有什么差别?哪个好用一点?

通常位置式PID用于执行机构不会将PID输出值累积起来的系统,而增量式PID用于执行机构会将PID输出值累积起来的系统。举个例子,步进电机就属于会累积PID输出值的执行机构,当PID输出一个值给步进电机,步进电机会转过一定的角度,然后PID再输出一个值给步进电机,步进电机会在上一刻转角基础上再转过对应的角度,即执行机构会将历史值累积起来。而我们常用的四轴,属于PWM控制电机,就用位置式PID比较合适。因为PID输出一个值给PWM,PWM控制电机产生一个速度,然后PID再输出一个值给PWM,PWM控制电机产生另一个速度,后者的速度不会在前者的速度基础上累加,二者相互独立。

这篇文章的主旨是PID入门,暂时点到这里,下一篇文章属于PID算法进阶,会讲讲PID算法的优化和串行PID。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • 本文转载自微信公众号“电子搬砖师”,原文链接 这篇文章是PID控制的进阶说明,如果没有看过PID控制(上)的读者,...
    这个飞宏不太冷阅读 3,442评论 0 14
  • 总所周知,PID算法是个很经典的东西。而做自平衡小车,飞行器PID是一个必须翻过的坎。因此本节我们来好好讲解一下P...
    熊猫啃竹阅读 1,549评论 1 12
  • PID控制器是一种常用的控制技术,常用于多种机械装置(如车辆、机器人、火箭)中。用数学方式来描述PID控制器是非常...
    云淡天空阅读 6,252评论 0 11
  • ~~~ ~~? !?! ,,~ 《?》 《!》 《……》 ……?! !!! ;,, ,,, ,,~ ;!! @,,...
    季梦VC_ETG阅读 378评论 44 8
  • 有朋友提起他们公司年会可以带家属夜间会在长江大桥的知音号上看演出,调侃道“带我去带我去”,字音未落,结果如愿...
    Z苏丽珍阅读 338评论 0 0