1. 概述

搞了一段时间电机控制和车辆横纵向控制,发现好多人包括开发和标定工程师都只知道PID反馈控制可以比较有效的调整被控系统(如动力电机,转向系统,制动和动力系统)的工作性能,但都不知道其中的本质机理。关于这块儿我大致整理了一下自己的理解写在本文中。水平有限,思路仅供参考。
本文要解决的问题主要有两个:

  1. 为何负反馈在工业界应用广泛,它到底起什么作用。
  2. PID为何能够调整被控系统的性能。

便于理解,我想先从现实物理切入到数学,然后再回到现实物理当中,的方式进行阐述。

2. 描述物理系统的数学方程

2.1 物理系统如何用数学方程表征
现实物理世界中,任何系统的性质都可用数学方程进行描述。这是本文最重要的一个概念,“任何系统”比如电路系统(电阻/电感/电容)和机械系统(刚体/弹簧/阻尼)等,而电路+机械是汽车的基本构成元素。举个些简单的例子:
示例1:

示例2:

上面这些系统的数学方程表征了系统的控制属性,即输入输出之间的关系。且上面5张图为电路系统和机械系统两类装置,其物理模型不同但其数学模型相同(输入输出均为比例关系或二阶微分关系),为“异构同功”。我们把这种具有相同数学模型的不同物理系统称为“相似系统”
我们现在知道,现实物理系统可用数学方程(一般是微分方程、差分方程)进行描述,可根据数学方程对被控系统进行分析,并加以控制。但实际工程中被控系统可能非常复杂,求解这种复杂被控系统对应的微分方程、差分方程非常困难。因此引出了另一种分析控制系统微分方程的数学方法:传递函数

2.2 物理系统的数学方程类型

控制理论中引入传递函数的最主要原因是:用另一种数学方法,以实现简便地分析物理系统的数学微分方程。因时域内的微分方程分析起来比较复杂,因此使用频域的方法进行分析,如上图:

  1. 拉氏变换是将时间函数f(t)变换为复变函数F(s),或作相反变换;
  2. 时域中t是实数。复域中s是复数,又称为“复频率”;
  3. 拉氏变换建立了时域和复域(s域)之间的联系。

具体拉拉氏变换公式:
拉氏变换的具体推理我这里就不写了,我们只需要知道这个概念。另外如何用拉氏变换分析呢?过程详见下图:

3. 传递函数与典型环节

传递函数是系统输出/输入的关系式,是系统微分方程拉氏变换后的代数方程,一般形式如下:

书上是这么说的:式中分子多项式的根为系统零点,分母多项式(也称特征多项式)的跟为系统的极点。极点决定了系统的自由运动模态,零点影响系统各模态在系统响应中所占的比重。

那么为何系统闭环传递函数的零点和极点可以表征系统的响应特征呢?详见下面公式推导:


闭环极点的分布对时域响应的影响

对于极点:

  1. 如果极点均在复平面左侧,也就是说极点实部均小于零,那就意味着系统最终稳定。反之,如果有正实部的极点,那么系统响应就会发散,系统不会稳定。
  2. 极点的增加,对应着振荡模态的增加。

对于零点:

  1. 如果零点和极点离得比较远,那么零点对系统的时域响应影响不明显,在频域响应会影响相位和幅值。如果零极点离得很近,那么零点就会明显抵消极点的作用。

传递函数的特性:

因此,我们对传特函数的特性总结一下:

  1. 传递函数描述了系统的外部特性,不反应系统的内部物理结构有关信息;
  2. 传递函数只取决于系统本身的结构参数,而与输入和初始条件等外部因素无关;
  3. 传递函数和微分方程一一对应;
  4. 传递函数一旦确定,系统在一定输入信号下的动态特性就确定了。

典型环节:

这里涉及到PID的物理意义和零点极点的初步分析。网上很多,这里多不累述了,如果后面有空再补。

  1. 比例环节

  2. 积分环节

  3. 微分环节

  4. 惯性关节

  5. 延迟环节

  6. 二阶振荡环节


传递函数的典型连接形式:

这里讲传递函数的典型连接形式,主要是为了引出反馈连接和闭环连接,并由此展开讨论闭环负反馈为何在工业界应用这么广泛。

  1. 串联连接

  2. 并联连接

  3. 反馈连接

反馈系统是自动控制中应用最广泛的系统。最常用的反馈连接是将系统G(s)的全部输出信号反馈作为另一个系统H(s)的输入,根据H(s)输出和G(s)输入信号之间是相加还是相减,系统可分为正反馈和负反馈。G(s)称为前向传递函数,H(s)称为反馈传递函数。

4. 闭环连接

这里的闭环指的是通常意义下的单位反馈连接,在实际应用中大量存在,时反馈传递函数H(s)=1的一个特例。

4. 论述负反馈

负反馈主要有以下作用,才使得它被广泛应用:

  1. 调整系统的增益

由负反馈的闭环传递函数可以看出,如果G(s)H(s)>0,则1+G(s)H(s)>1。则相对于开环,负反馈闭环使系统的传递函数增益变小了。一般情况下,这个增益变小会增大稳态误差(可和比例环节串联以中和该问题),但会提高系统的稳定性。

  1. 降低系统闭环增益敏感度

系统闭环增益敏感度指的是:系统开环增益G(s)的变化,导致闭环增益T(s)产生变化多少的衡量。可以简单的看作对系统健壮性的度量。具体公式如下:

开环增益为G(s),闭环增益为T(s)。由上式可以看出,如果G(s)H(s)>0,则1+G(s)H(s)>1,则系统的增益敏感度变小了。

  1. 减少外部干扰对系统的影响

在闭环控制系统中,如果项1+GaGbH>1,则相对于开环,负反馈闭环使系统受外部干扰的影响变小了。

总的来讲,闭环系统相对于开环系统更加稳定更加健壮,反馈削弱了前向上元件变化对系统的影响,才使得它应用广泛。
还有另一个角度可以思考:对同一个系统进行闭环开环,零极点会互相转化,所以反馈的本质其实还是前文提到的零极点。

5. 论述PID

可以由下图看出,PID是反馈连接H(s)和串联连接Gc(s)的组合,那么PID有什么特殊的地方使它被广泛应用在工业界呐?

从PID的传递函数可以看出,当PID控制器和被控对象串联时,相当于在系统中增加了1个位于原点的开环极点(使系统的型别提高一级,可消除或减小系统稳态误差。注:常按开环传递函数中所含有的积分环节的个数n,称为n型别系统),并增加了2个位于S左半平面的开环零点(减小系统阻尼比,缓和极点对系统稳定性产生的不利影响)

需要说明的时PID是线性控制器,在控制非线性、时变、耦合等复杂过程时,无论如何调参数效果都不好。下面这张图可大致表现处PID各参数对系统响应的影响:

这里补上一句,在实际的工程应用中,I项因为是累加项,因此有一些特殊的用法:比如I项初始化/冻结/饱和处理等。这块儿非常重要,要靠经验来取舍。

6. 前馈

这要从被控系统的校正说起,常用的校正装置有如下6类:P185

  1. 超前校正(PD)
  2. 滞后校正(PI)
  3. 滞后-超前校正(PID)
  4. 串联校正(前文已述)
  5. 反馈校正(前文已述)
  6. 前馈校正

这里主要讲的是前馈,通俗的讲一下前馈的场景:
就比如人开车,人就是控制器,车就是被控对象,进行转弯的时候,人刚开始肯定是先参照道路上的车道线打方向盘,这就是前馈控制。打完之后由于轮胎的回正力矩会使车辆没有按照期望的路径来跑,这个时候人就会继续打方向盘,这就是反馈控制。
被控对象偏离初始的前馈控制的期望目标之后,就会有一个反馈控制来进行修正,前馈相当于一个预测控制,而反馈应当于一个补偿控制,前馈加反馈控制是为了使被控对象能够按照预期的目标运动。
工程应用中,经常出现前馈和反馈配合使用的情况,比如LKA系统就是按照这个思路进行控制的。反过来讲,如果一个系统只用反馈PID控制而不配合使用前馈,即所有的误差都经过PID调控,有可能出现即便微小误差也会被P项放大并进行控制的情况,这时可能出现系统震荡无论如何调节PID参数都难以消除的情况。

控制算法简析1——PID和负反馈的数学原理相关推荐

  1. android中so文件格式详解,[原创]一 Android ELF系列:ELF文件格式简析到linker的链接so文件原理分析...

    Android ELF系列:ELF文件格式简析和linker的链接so文件原理分析 Android ELF系列:实现一个so文件加载器 Android ELF系列:手写一个so文件(包含两个导出函数) ...

  2. 控制算法简析8——被控系统的稳定性分析

    概述 本系列前几篇文章前面说了这么多关于控制工程的东西,还引入了ACC的被控系统分析,接下来想要针对得到的被控系统,分析一个很重要的问题:如何判定该被控系统是否稳定?该系统是发散还是收敛? 什么叫稳定 ...

  3. 基于libmad库的MP3解码简析

    基于libmad库的MP3解码简析  MAD (libmad)是一个开源的高精度 MPEG 音频解码库,支持 MPEG-1(Layer I, Layer II 和 LayerIII(也就是 MP3). ...

  4. Linux内核引导简析

    bootsect.S.setup.S.head.S分析 收藏 2010-01-14 13:36:34 bootsect.S,系统引导程序,一般不超过512字节. 在PC系统结构中,线性地址0xA000 ...

  5. fuser 用法简析

    fuser 用法简析 fuser [功能]  fuser 可以显示出当前哪个程序在使用磁盘上的某个文件.挂载点.甚至网络端口,并给出程序进程的详细信息. [描述]  fuser显示使用指定文件或者文件 ...

  6. Linux的启动流程简析(以Debian为例)

    Linux的启动流程简析(以Debian为例) 正文: 前面的文章探讨BIOS和主引导记录的作用.那篇文章不涉及操作系统,只与主板的板载程序有关.今天,我想接着往下写,探讨操作系统接管硬件以后发生的事 ...

  7. Linux信号处理简析

    1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺. 2. 分析背景 本文基于 ARM32 架构 + Linux 4.14 内核源码进行分析. 3. 信号概述 3 ...

  8. Java中高级核心知识全面解析——Redis(集群【概述{主从复制、哨兵、集群化}、数据分区方案、节点通信机制、数据结构简析】)5

    目录 一.[集群]入门实践教程 1.Redis 集群概述 1)Redis 主从复制 2)Redis 哨兵 3)Redis 集群化 2.主从复制 1)主从复制主要的作用 2)快速体验 ①.第一步:本地启 ...

  9. Android开机启动流程简析

    Android开机启动流程简析 (一) 文章目录 Android开机启动流程简析 (一) 前言 一.开机启动的流程概述 二.Android的启动过程分析 (1).总体流程 init简述 Zygote简 ...

最新文章

  1. 怎么样做一个合格而又可爱的面试官
  2. OpenCV纠正文本中的偏斜(附完整代码)
  3. 网站外链数量的变化可以从哪几点去理解
  4. 即时消息服务框架(iMSF)应用实例之分布式事务三阶段提交协议的实现
  5. [蓝桥杯]字母组串-递归
  6. 数据批量导入Oracle数据库
  7. linux打印机怎么设置631端口,设置 Linux 下打印机的几种方式
  8. 整数快速幂(原理+模板)
  9. mysql 存储过程 获取错误信息 继续执行
  10. html 数据库 编写学生表,【数据库】用sql语句创建学生表如何做
  11. 《java学习二》jvm性能优化-----认识jvm
  12. DelphiXe Ansistring使用注意事项
  13. 调整Eclipse字体大小
  14. mex文件用matlab能打开吗,MATLAB通过mex文件调用C/C++程序
  15. 旧机还在换盆?! Linux deploy让她再发光!
  16. 【Kanzi】1:android编译环境配置
  17. nbu客户端卸载_在linux中卸载Netbackup
  18. 用树莓派搭建远程下载+私有云盘(中篇)
  19. 李航:做本质的、严谨的、有意思的研究!
  20. 初尝Google Code

热门文章

  1. 编程到底学的是什么,主次又是什么
  2. python 脚本分析dns日志计算前几位的请求数域名
  3. 企业邮箱注册申请入口,公司邮箱申请哪个好?
  4. 天津大学大学计算机基础成绩查询,天津大学《大学计算机基础1》课程教学大纲.PDF...
  5. 烧录esp32 并用oled显示
  6. 计算机网络ospf实验报告,计算机网络ospf实验报告.pdf
  7. 使用React创建一个web3的前端
  8. flash传值php乱码,Flash中出现中文乱码的解决办法,网页模板帮助中心
  9. Android网络编程(八) 之 HttpURLConnection原理分析
  10. 【无标题】There was an unexpected error (type=Internal Server Error, status=500).