PID控制原理详解(一)[通俗易懂]

PID控制原理详解(一)[通俗易懂]PID的理解       关于理解PID控制算法最典型的一个例子就是一个漏水的水缸的问题。网上有很多讲解PID的帖子会讲到这个例子。这里我也把我自己对于PID的理解用这个例子阐述一遍。       有个漏水的水缸,而且漏水的速度还不是恒定的。然后我们还有个水桶,我们可以控制往水缸里面加水或者从水缸里面舀水出来。另外我们可以检测水平面。现在我们的目的就是要控制水平面稳定在我们想要的任何一个平面上…

大家好,又见面了,我是你们的朋友全栈君。

PID的理解

        关于理解PID控制算法最典型的一个例子就是一个漏水的水缸的问题。网上有很多讲解PID的帖子会讲到这个例子。这里我也把我自己对于PID的理解用这个例子阐述一遍。

        有个漏水的水缸,而且漏水的速度还不是恒定的。然后我们还有个水桶,我们可以控制往水缸里面加水或者从水缸里面舀水出来。另外我们可以检测水平面。现在我们的目的就是要控制水平面稳定在我们想要的任何一个平面上。

        注意我们使用PID需要在一个闭环系统里面。什么叫闭环系统,就是有输入有反馈,输入就是能输入一个量去影响和控制我们的系统,反馈就是我们要能知道我们最终控制的东西的状态。在这个漏水的水缸系统中,输入就是这个水桶,我们能通过水桶往水缸里面加水或者从水缸里面舀水出来来影响我们水缸的水平面,反馈的话也就是说我们要能测量水平面,知道水平面是多少。控制系统原理图如下(原理图没有用别人的,有一些区别,道理上一样):

PID控制原理详解(一)[通俗易懂]

基本公式要背过:

PID控制原理详解(一)[通俗易懂]

其中Kp为比例系数,Ti为积分时间常量,Td为微分时间常量。

比例控制理解

        首先是比例控制。比例控制就好比是通过水桶往水缸加水或者从水缸舀水。假设我们需要把水平面稳定在A平面,而实际水平面在B平面,那么水平面差值Err=A-B,那这个时候我们需要往里面加水的量就是Kp*Err,Kp就是我们的比例控制系数。

        如果A>B,Err为正,就往水缸里面加水;如果A<B,Err为负,就从水缸里面舀水出来。那么只要预期水平面和实际水平面有差值,我们都会通过水桶去加减水来调整系统。同时Kp的大小也有对系统的性能有影响。如果Kp的值比较大,优点是从B平面达到A平面的速度快,缺点是在B平面已经接近A平面的时候系统会产生比较大的震荡。如果Kp的值比较小,优点是B平面在接近A平面的时候系统震荡小,缺点是从B平面达到A平面的速度慢。

        这里也许有人会有疑问,如果这里把比例控制系数Kp直接设置成1,然后加水的量直接为Err=A-B不就可以了。然而实际上很多系统是做不到这点的。比如温度控制系统,实际温度为10度,我要通过加热把温度提升到40度,这里难道我们能一次性准确的给系统加30度?显然这是做不到的。那么比例控制的最终结果是Err的值趋向于0。比例控制部分公式如下图:

PID控制原理详解(一)[通俗易懂]

课堂笔记:

增大开环增益能减小系统稳态误差,但系统的相对稳定性会降低,甚至造成闭环系统不稳定(振荡严重),通常比例控制不单独使用。

微分控制理解

        然后我们先看看微分控制。在我们的比例控制的作用下,Err是开始减小的(假设一开始预期水平面A大于实际水平面B,也就是说Err是一个正值),那么也就是说Err随时间是一条斜率小于0的曲线,那么在周期时间内,Err越大,微分的绝对值越大,那么也就对Err的减小速度是起到抑制的作用的,直到最后斜率为0微分才会停止作用。微分公式如下:

PID控制原理详解(一)[通俗易懂]

    那么随着微分的影响,Err曲线的斜率最终是趋向于0的,如下图:PID控制原理详解(一)[通俗易懂]

课堂笔记:

PID控制原理详解(一)[通俗易懂]

        微分控制能反映输入信号的变化趋势,因此在输入信号的量值在变化太大之前可为系统引入一个有效的早期修正信号以增加系统的阻尼程度,从而提高系统的稳定性,但一阶微分的高通特性使得该控制器易于放大高频噪声。

积分控制理解

        积分控制部分的作用主要是用来消除静差。那么积分是怎样来消除静差的呢?

        比例控制只能尽量将Err调节到0,而微分的作用是将曲线的斜率控制到0则停止对其作用,但斜率为0的时候Err并不一定为0。

        这个时候我们就需要积分来起作用了。我们知道曲线的积分相当于曲线与x轴围出来的面积。如下图,积分作用的目的是使红色部分的面积和蓝色部分的面积的和为0,那么即使系统在比例控制和微分控制部分已经趋于稳定,只要Err不为0就会存在静差,只要存在静差那么积分就会对系统产生影响,直到系统的Err值为0。那么这样我们的PID控制在理论上就可以达到一个非常精确的控制效果。

PID控制原理详解(一)[通俗易懂]

        来看看我们的积分公式部分:

PID控制原理详解(一)[通俗易懂]


课堂笔记:

PID控制原理详解(一)[通俗易懂]

        开环传递函数分母中的s数量代表了系统型,积分控制提高了型次,消除减弱了系统的稳态误差;但是积分引入了相位滞后,使得系统相对稳定性变差;一阶微分环节的出现提高了系统的阻尼程度,缓和了控制器零极点对系统稳定性及动态过程的不利影响。

        一个纯积分环节相当于引入了一个-90°的滞后,一阶微分环节就减缓了滞后。

PID算法离散化

        假设采样时间间隔为T,则在k时刻:

        偏差为e(k);

        积分为e(k)+e(k-1)+e(k-2)+…+e(0);

        微分为(e(k)-e(k-1))/T;

        从而公式离散化后如下:

PID控制原理详解(一)[通俗易懂]

PID控制原理详解(一)[通俗易懂]

        比例系数:Kp,

        积分系数:Kp*T/Ti,可以用Ki表示;

        微分系数:Kp*Td/T,可以用Kd表示;

        则公式可以写成如下形式:

PID控制原理详解(一)[通俗易懂]

        PID算法的离散形式就是这样了,这就是我们平时说的位置式PID。

        但是为什么还要增推算量式?

        一个累加符号使得微机的内存可能不够用,一个字节八位最多存到255,第二点就是掉电之后产生的产生的影响非常大,之前存储的状态会全部丢失,所以要推算对状态记录要求不高的增量式。

        接下来我们继续推算增量式PID,根据上面公式我们可以求得:

PID控制原理详解(一)[通俗易懂]

PID控制原理详解(一)[通俗易懂]

PID控制原理详解(一)[通俗易懂]

        上式就是增量式PID的表现形式,计算出来的增量只跟最近三次的偏差值有关。注意这里计算出来的是增量值,也就是说如果我们要求u(k)的话应该是

                                                    PID控制原理详解(一)[通俗易懂] 

相关资料:

http://wenku.baidu.com/linkurl=XtnOjEGrIev7ZUmlwAIR7IEMG0YTvxV3YKpZMsVbEu8FWRsgAeVTLmJCe2K99fjsHuAGHq1c6_s6pqv6JJdYoiA1KcSQVLkV6HIW-_0w88m

http://wenku.baidu.com/link?url=DliKXRLALX6O-uW6glxLb5xW4RWIQm0Ia1PAR4nN4cguFAChMyoYk2XOaikcbIKBWCgmVnVsYnBLN1Ephm7Ly2SHvWioAN3drWlUgvvbFmi

http://blog.gkong.com/liaochangchu_117560.ashx


    

 








版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144045.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 异步传输模式atm采用_ATM网是什么

    异步传输模式atm采用_ATM网是什么       异步传输模式(ATM)在ATM参考模式下构成一个协议集,用来建立一个在固定53比特流的数据包(信元)上运送所有通信流量的机制。固定大小的包可以确保迅速且容易地实现交换和多路技术功能。ATM是一种面向连接的技术,也就是说,两个网络系统要建立相互间的通信,应该通知所有的中间交换有关它们的服务需求和流量参数。  ATM参考模式分为三层:ATM适配层AAL、ATM层和物

    2022年9月2日
  • VMware Ubuntu虚拟机忘记密码「建议收藏」

    前言:在VMware运行Ubuntu虚拟机时,开机之后忘记密码怎么办?环境:Ubuntu版本:ubuntu-16.04.6-server-amd64;VMware版本:14.1.1build-7528167解决办法:1,重启Ubuntu虚拟机,长按shift(要选中虚拟机哦),进入如下界面2,上下箭头选择AdvancedoptionsforUbuntu,enter…

    2022年4月16日
  • 手把手教你制作一款iOS越狱App,伪装微信位置

    手把手教你制作一款iOS越狱App,伪装微信位置说明缘由声明概念越狱的原理iOS目录层级结构iOS程序类型准备工作硬件设备辅助软件Mac需要的工具iOS需要使用的辅助开发工具逆向过程静态分析给App砸壳使用IDA静态分析动态调试iOS工程目录制作TweakTweak是什么了解Theos安装iOSOpenDev制作AppApp和Tweak通信交换数据App如何加载TweakApp如何

    2022年5月29日
  • 跟我一起数据挖掘(20)——网站日志挖掘

    跟我一起数据挖掘(20)——网站日志挖掘收集web日志的目的Web日志挖掘是指采用数据挖掘技术,对站点用户访问Web服务器过程中产生的日志数据进行分析处理,从而发现Web用户的访问模式和兴趣爱好等,这些信息对站点建设潜在有用的可理解的未知信息和知识,用于分析站点的被访问情况,辅助站点管理和决策支持等。1、以改进web站点设计为目标,通过挖掘用户聚类和用户的频繁访问路径,修改站点的页面之间的链接关系,以适应用户的访问习惯…

    2022年9月25日
  • 网线接口定义

    网线接口定义参考资料:http://blog.csdn.net/dog0138/article/details/7016351因为激光雷达插路由上不能识别IP地址,所以想确认网线接的是否正确,查了一下发现网上说的网线八芯定义都是DTE(数据终端设备)的定义,也即是我们一般用的PC,传感器这些主动传输数据的设备。1输出数据(+)2输出数据(-)3输入数据(+)4保留为电话使用5保

    2022年6月5日
  • a pillar of salt_pinmode函数的作用

    a pillar of salt_pinmode函数的作用saltstack[4]-pillar用户变量自定义

    2022年4月20日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号