什么是PID

本人想做做之前的电赛题--滚球平衡,但这涉及到了一些自动控制的东西,比如PID。

对PID之前只是略有耳闻,为了复现滚球平衡,只能来现学PID了。

本系列内容是看了MATLAB的教学视频后写的,视频链接点击阅读原文

PID的公式在此

看着是不是觉得挺复杂,不过放心,让我们先抛弃公式,从PID是什么以及为什么要有PID开始讲起

这里有这么一个我们需要控制的设备,我们需要使用驱动信号(actuating signal)取控制它,同时,我们可以获得设备的当前信息,也就是受控变量(controlled variable)


这个驱动信号由一个控制器产生,控制器的作用是使得系统的error为0,error则是控制变量减去受控变量的值。控制变量(commanded variable)是我们对这个系统的需求,比如将烙铁加热到xx度;受控变量是从设备获得的信息,比如当前烙铁xx度。

接下来就将这个PID模型具象化,以球场上一个人走向半场的过程为例

如图所示,假设这个人离半场的距离有50m,那么控制变量为50m,设定控制器的值为0.1,那么初始速度为5m/s,人接收到速度的指令后行走,反馈回路将当前位置返回累计器,从而调整走路速度,随着人离中场越近,人的速度越慢,直到走到中场,速度为0

右下角的两张图分别是路程/时间走路速度/时间的关系图,体现了控制器不同的值时的区别

看起来似乎一个比例就可以解决控制器的问题了,那还要积分和微分器干嘛,下面换一个无人机的例子来说明

如的图所示,有这么个无人机,想悬停在50m的空中

无人机无法像上面人走路一样简单的比例就可以完成了,因为无人机会因为重力的作用下坠,如果到了50m的空中电机就定制转动,无人机会直接下坠

我们假定无人机的悬停需要100rpm的电机速度

通过增加增益,无人机电机转速会增加,然后上升,反馈使得误差减小,转速降低,降到100rpm时保持悬浮。只有继续增大增益,无人机才会继续上升

但是无论增益怎么增加,都没办法悬浮在50m处,如图中表格所示,最终会有误差无法消除,管这种误差叫做稳态误差(steady state error)

为了消除这种稳态误差,可以请积分器出场了

如图所示,一个常数值经过积分器后得到一个增大的函数,会使得转速增加,从而使得无人机上升减小误差

当误差为0时,只有积分器的输出100rpm,而比例输出为0

但是现实中并不是这么理想的,当误差E比较小的时候积分器的输出会大于100rpm,而比例的输出大于0,会使得总输出大于100rpm,会使得无人机突然超越50m的高度。这种情况叫做超调


为了减小这种超调的问题,就需要使用微分器了

对函数的求导可以得到它的斜率。误差函数由于是下降的趋势,微分得到的斜率是小于0的,并且随着下降的速度增大,误差函数斜率的绝对值也增大,这个负值的斜率输出到电机时会减慢电机的速度,这样就可以减小超调量

比例、微分、积分组合起来就是我们常说的PID控制器了,通过调整Kp Ki Kd权重因子,还可以只使用PI PD P等等

下一篇会讲到积分器的保护或者说抗饱和积分问题


■ Over ■


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在Linux/Unix下,很多程序比如nginx会启动多个进程,而发信号的时候需要知道要向哪个进程发信号。不同的进...
    lintong阅读 5,316评论 0 1
  • PID控制器是一种常用的控制技术,常用于多种机械装置(如车辆、机器人、火箭)中。用数学方式来描述PID控制器是非常...
    云淡天空阅读 11,506评论 0 11
  • 本文转载自微信公众号“电子搬砖师”,原文链接 这篇文章是PID控制的进阶说明,如果没有看过PID控制(上)的读者,...
    这个飞宏不太冷阅读 8,957评论 0 14
  • 嗨,大家好,我是专心,用心卖的小姑娘叫王洪微,大家可以叫我微微。 成年人的生活里没有容易二字,让我...
    岁月蹉跎努力阅读 1,631评论 0 1
  • 寒假的时间比较短,刨去春节的时间,基本上可以供自己自由支配用于学习的时间大概只有20天左右,所以,大家在寒假中一定...
    书2088阅读 4,099评论 0 1