原文地址:

http://www.51hei.com/bbs/dpj-152844-1.html

---------------------------------------------------------------------------

比例-积分-微分 (PID) 算法,可以解决各种反馈控制问题, 但它并不是万能的。
比例-积分-微分 (PID) 回路是目前工业过程中最常见的反馈控制机制, 正如在美国CONTROL ENGINEERING编辑报道覆盖率的调查中所反映的一样。在该网站,提到 'PID' 或 '比例-积分-微分'的次数为8900次 ,而所有其它控制方法提到的次数为7600次。
 

为什么PID受到如此多的关注呢?首先, PID 回路相对容易理解和实现。PID算法组成部分中比例 (P)、 积分 (I) 和微分 (D) 部件的影响可以直观的预测,有时可以将设计过程简化为 “这应该可以, 让我们尝试一下”,然后,“这并不是很好, 我们需要更多 (或更少)的比例 (或积分或微分)”,最终以“足够好”结束。
 
 
当进程已启动并运行时, 这种试错的设计模式,比那些学术化的、需要进程离线测试的方案更方便。即使在理论上更先进的控制技术,可以提供更好的性能, 但它需要付出很多额外的努力和费用,而对于有些应用来说可能并不值得。
 
 
此外, 工业控制工程师已经花费了70年的时间来检查、优化和增强 PID 技术, 并针对他们发现的缺陷制定解决方案。
 
 
因此, PID 已经成为事实上的标准——如果想要学习反馈控制,即使不是专家也可能开展研究的控制主题。即使是专家,他们也往往会更倾向于在简单应用中应用PID, 因为它能以较少的数学建模和分析,再辅以更先进的相关技术来将工作完成。
 
 
PID 算法过往的人气,反过来又促使自动化厂商更愿意提供现成的PID控制器。其它反馈控制算法也可以作为商业产品购买,但没有一个像PID那样广泛应用。
 
 
 
 
广泛的应用
 
PID的另一个巨大优势是其能够处理整个流程行业范围内广泛的控制问题,前提是:
 
受控过程是合理的、 '运行良好'的;
 
控制器的唯一任务就是“迟早”将过程变量与设定值相匹配;
 
负责执行控制器纠正措施的执行器在整个过程中具有足够的影响力,以最终实现设定值。
 
在学术术语中, '运行良好' 通常意味着过程是一阶或二阶、最小相位、线性、时间不变, 或者开环稳定或集成。实际上, 这意味着如果控制器继续推进, 这个过程就会一直朝着正确的方向发展。如果控制器加大推动力度, 则该过程就以可预测的速度更快速的移动(参见图 1)。
 
 

图 1: 在这个 '运行良好'的 过程控制示例中, 过程变量 (绿色) 在控制活动(红色) 中,或多或少的对步进过程做出响应。然后, 它以不断下降的速率提升速度,直至达到稳定状态值。在温度、压力和流量控制应用中, 一阶滞后过程尤其适用于 PID 控制。

 
幸运的是,对于过程工业而言,大多数应用都需要控制温度、压力、液位和流量来维持过程的良好运转。 尽管如此,PID还是会面临许多常见的反馈控制问题带来的挑战,其中一些问题可以通过对基本算法进行适当的扩展来克服,而另外一些问题则不是那么简单。
 
 
 

PID的挑战

正如在图2中所描述的过程行为, 过程变量不会立即响应控制器的指令。它开始时并没有缓慢的向控制器期望的方向移动,直到控制器已经开始推动它很长时间后才开始移动。

图 2: 此过程表现的不是特别好,因为直到过了死区时间之后,过程变量 (绿色)才能在控制活动 (红色) 的作用之下发生改变。这通常发生在控制器对物料进行操作的应用中, 因为它通过执行器的移动抵达某个距离之外的传感器。这种死区时间主导过程的 PID 控制器必须具备足够的耐心或远见, 才能在最近的纠正努力到达期待值之前等待死区时间结束。

如果控制器的控制活动和过程开始响应之间的延迟或死区时间,并没有那么长时间,那么未经修改的PID控制器就可以调节过程,只是PID算法配置的动作速度要缓慢。但是, 如果死区时间特别长或应用程序需要较少等待, PID 控制器就需要额外增加智能控制。

图3中描述的过程行为是更棘手的情况。在这里, 过程运行在100%工况时,过程变量对控制器的控制行为做出更大的响应。相对于从0% 到50%所需付出的努力而言, 将过程变量从50% 到 100%所需要的控制力度要低得多。

图 3: 这个非线性过程推动了 PID 算法的极限。随着过程变量 (绿色) 的增加, 它对控制活动(红色) 的敏感度增加, 反之亦然。这可能会导致控制器在一个极端的情况下反应过激,而在其它工况下并不响应。过程灵敏度随着时间的推移而不可预测的变化, 将对 PID (或任何其它控制算法) 带来更大的挑战。

一个基本的PID控制器,很难调节这个过程, 主要是因为过程运行在最大负荷或运行过于保守时,它的控制活动往往太过激进。这个问题的经典解决方案就是所谓的 '增益调度',不需要为PID 算法添加任何额外的智能算法, 但它需要多个控制器,每个控制器仅在过程变量落在一定范围内时才激活。

具体地说,在过程变量接近100%时,保守的控制器接管控制,而在过程变量接近0%时,积极的控制器将接管控制。过程变量也可以划分为两个以上的范围, 每个区域都有自己的 PID 控制器, 以适应每个范围的过程行为。

另一方面, 如果与该例类似的非线性过程运行时,其过程变量如果只局限于某个狭窄的范围, 那么单一的传统 PID 控制器就足够了。在其它范围内,过程要么变得太敏感,要么变得太不敏感,但是控制器控制行为已经变得不太重要,因为进程永远不会到达那里。幸运的是,在工业应用中, 控制对象将过程变量维持在某个设定位置上,是一个相当常见的情况。

不适用PID的场合

虽然PID回路是这样的简单、普及和多用途, 但是仍有一些反馈控制问题需要替代解决方案。有时应用PID会用力过猛,例如,在烤箱内调节温度的开/关加热元件。只有当需要较高精度时, 才需要 PID 回路。比如在大多数家庭中使用的恒温控制器,如果温度下降过低时,只需打开加热器,或温度过高时关闭控制器,就可以维持大致恒定的温度。

另一种极端情况, 控制问题需要有比PID更智能化的解决方案, 如控制器必须提前计划约束控制, 以避免将控制活动或过程变量,调节到可接受的范围之外。对于多变量控制也需要高级规划, 控制器必须协调多个执行器的工作, 同时控制多个过程变量。

PID回路可以强制适用于这些应用中的任何一种,但更先进的、自定义设计的控制技术通常更具成本效益,至少在最初时是如此。但在通常情况下, 设计和实施这些技术的专家在项目结束后可能需要进行其它项目, 让非专家处理过程及其控制器。因此, 如果以后出现问题, 可能就没有足够的内部专家来解决这一难题。这种情况通常会导致高级控制器被 PID替代甚至完全被禁用, 尽管这样可能会导致性能下降。

然后,还有其它的控制问题, 即使不是不可能,也难以通过任何控制算法来解决。错误的传感器、尺寸过小的执行器、断开的连接等问题都必须在任何类型的反馈控制工作之前解决。

-------------------------------------------

【转载】 传统PID算法解决不了的情况,应该怎么办?的更多相关文章

  1. 自整定模糊PID算法的理论

    模糊控制系统的构成与与常规的反馈控制系统的主要区别在于控制器主要是由模糊化,模糊推理机和精确化三个功能模块和知识库(包括数据库和规则库)构成的.具体实现过程如下所示: (1)预处理: 输入数据往往是通 ...

  2. PID算法通俗理解,平衡车,倒立摆,适合不理解PID算法的人来看!

    先插句广告,本人QQ522414928,不熟悉PID算法的可以一起交流学习,随时在线(PID资料再我的另一篇博客里) 倒立摆资料连接↓ https://www.cnblogs.com/LiuXinyu ...

  3. 广告成本控制-PID算法

    今天我们来聊聊广告成本控制中常用的PID算法. 0.PID算法简介 首先我们可以看下维基百科中给PID算法的定义:由比例单元(Proportional).积分单元(Integral)和微分单元(Der ...

  4. PID算法笔记2

    总所周知,PID算法是个很经典的东西.而做自平衡小车,飞行器PID是一个必须翻过的坎.因此本节我们来好好讲解一下PID,根据我在学习中的体会,力求通俗易懂.并举出PID的形象例子来帮助理解PID.一. ...

  5. Hash算法解决冲突的方法

    https://blog.csdn.net/feinik/article/details/54974293 Hash算法解决冲突的方法一般有以下几种常用的解决方法1, 开放定址法:所谓的开放定址法就是 ...

  6. PID算法控制简单理解

    1 传统的位式控制算法 用户期望值Sv(设定值)经控制算法输出一个输出信号OUT,输出信号加载到执行部件上(像MOS管等)对控制对象进行控制(步进电机.加热器等),控制对象的当前值(Pv)如速度通过传 ...

  7. PID控制算法的C语言实现一 PID算法原理

    本系列是转载............. 全部的程序有一个共同点:就是我没认真去调pid的参数 在工业应用中PID及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法,如果能够熟练掌握PID算法的设 ...

  8. hdu1533 Going Home km算法解决最小权完美匹配

    Going Home Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  9. PID算法 旋转倒立摆与平衡车的区别。此贴后边会更新。

    我做PID算法的背景和经历:本人之前电子信息科学与技术专业,对控制方向颇感兴趣,刚上大学时听到实验室老师说PID算法,那年在暑假集训准备全国电子设计竞赛,我正在练习做一个以前专科的题目,帆板角度控制系 ...

  10. 分布估计算法解决TSP问题

    分布估计算法解决旅行商问题(TSP) TSP问题(Traveling Salesman Problem,旅行商问题),由威廉哈密顿爵士和英国数学家克克曼T.P.Kirkman于19世纪初提出.问题描述 ...

随机推荐

  1. P7322

    P7322 好神仙! \(\color{#5bc9}\text{提醒,本文有大量没有推到过程的式子,所以读者可以自己遮住先推一下}\) Inscription: 有一个长度为 \(k\) 的窗口,在一 ...

  2. docker容器单机编排

    随着网站架构的升级,容器也使用的越发频繁,应用服务和容器间的关系也越发复杂. 这就要求研发人员能够更好的方法去管理数量较多的容器服务,而不能手动的去挨个管理. 例如一个LNMP的架构,就得部署web服 ...

  3. Spring扩展——BeanPostProcessor(BPP)

    BeanPostProcess简介 在Spring中 BeanPostProcessor 是一个非常重要的接口,它用于在每个bean对象初始化前后修改Bean的属性信息,比如我们最常用的@Autowi ...

  4. 内部网关协议RIP-路由选择协议

    路由信息协议RIP(Routing Information Protocol)是内部网关协议IGP中最先得到广泛使用的协议,其相关标准文档为RFC1058. 一.RIP基本工作原理 RIP要求自治系统 ...

  5. python 文件查找及截取字符串 (替换,分割) demo

    #"F:\\test.txt" ''' # 例1:字符串截取 str = '12345678' print str[0:1] # 例2:字符串替换 str = 'akakak' s ...

  6. openfly:基于nginx的4层代理管理平台

    简介 作者:京城郭少 基于nginx的4层代理管理平台 支持的功能: 被动健康检查 白名单 include导入文件 哈希 backup冗余互备 weight权重 注释 ...... 部署openfly ...

  7. 蚁群算法及 TSP 问题上的应用

    群智能(Swarm intelligence) 自然界动物群,称之为群. 群的特征: 相互作用的相邻个体的集合 个体的行为简单,既有竞争又有协作 智能化的集体行为(1+1>2): 个体间不仅能够 ...

  8. GitHub上狂揽62Kstars的程序员做饭指南

    写在前面 作为一名程序员,我们经常会在全球最大的同性交友网站 GitHub上寻找一些优质的开源项目来学习,以提升自己的专业技能. 今天给大家推荐的是一个GitHub上狂揽61K的开源项目.项目名叫做H ...

  9. Android系统启动:.rc文件

    Android系统启动:.rc文件 reference : https://www.jianshu.com/p/a4c17f0110d0 以init.rc为例. .rc文件 init.rc文件由系统第 ...

  10. V4L2视频采集操作流程和接口说明

    背景: V4L2是V4L的升级版本,为linux下视频设备程序提供了一套接口规范.包括一套数据结构和底层V4L2驱动接口. <WAV文件格式分析> 一般操作流程(视频设备): 1.打开设备 ...