原文地址:

http://m.elecfans.com/article/1153309.html

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

PID控制器(比例-积分-微分控制器),由比例单元(P)、积分单元(I)和微分单元(D)组成。

可以通过调整这三个单元的增益Kp,Ki和Kd来调定其特性,PID控制器主要适用于基本上线性,且动态特性不随时间变化的系统。

之前简单写过一篇关于PID的文章:重温经典PID算法

一、基础理论

PID是以它的三种纠正算法而命名。受控变数是三种算法(比例、积分、微分)相加后的结果,即为其输出,其输入为误差值(设定值减去测量值后的结果)或是由误差值衍生的信号。若定义 {displaystyle u(t)} u(t)为控制输出,PID算法可以用下式表示

其中

Kp:比例增益,是调适参数

Ki:积分增益,也是调适参数

Kd:微分增益,也是调适参数

e:误差=设定值(SP)- 回授值(PV)

t:目前时间

1.比例控件

比例控制考虑当前误差,误差值和一个正值的常数Kp(表示比例)相乘。

如下图,不同比例增益Kp下,受控变数对时间的变化(Ki和Kd维持定值):

2.积分控件

积分控制考虑过去误差,将误差值过去一段时间和(误差和)乘以一个正值的常数Ki。

如下图,不同积分增益Ki下,受控变数对时间的变化(Kp和Kd维持定值):

3.微分控件

微分控制考虑将来误差,计算误差的一阶导,并和一个正值的常数Kd相乘。

如下图,不同微分增益Kd下,受控变数对时间的变化(Kp和Ki维持定值):

二、参数调试

PID的参数调试是指通过调整控制参数(比例增益、积分增益/时间、微分增益/时间)让系统达到最佳的控制效果。

稳定性(不会有发散性的震荡)是首要条件,此外,不同系统有不同的行为,不同的应用其需求也不同,而且这些需求还可能会互相冲突。

PID只有三个参数,在原理上容易说明,但PID参数调试是一个困难的工作,因为要符合一些特别的判据,而且PID控制有其限制存在。历史上有许多不同的PID参数调试方式,包括齐格勒-尼科尔斯方法等,其中也有一些已申请专利。

1.稳定性若PID控制器的参数未挑选妥当,其控制器输出可能是不稳定的,也就是其输出发散,过程中可能有震荡,也可能没有震荡,且其输出只受饱和或是机械损坏等原因所限制。不稳定一般是因为过大增益造成,特别是针对延迟时间很长的系统。

2.最佳性能PID控制器的最佳性能可能和针对过程变化或是设定值变化有关,也会随应用而不同。

两个基本的需求是调整能力(regulation,干扰拒绝,使系统维持在设定值)及命令追随 (设定值变化下,控制器输出追随设定值的反应速度)。有关命令追随的一些判据包括有上升时间及整定时间。有些应用可能因为安全考量,不允许输出超过设定值,也有些应用要求在到达设定值过程中的能量可以最小化。

3.各调试方法对比

4.调整PID参数对系统的影响

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

【转载】 PID原理与参数调试的更多相关文章

  1. [转载]C/C++可变参数之va_start和va_end使用详解

    本文主要介绍va_start和va_end的使用及原理. 在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解. 介绍这两 ...

  2. Deep Learning.ai学习笔记_第二门课_改善深层神经网络:超参数调试、正则化以及优化

    目录 第一周(深度学习的实践层面) 第二周(优化算法) 第三周(超参数调试.Batch正则化和程序框架) 目标: 如何有效运作神经网络,内容涉及超参数调优,如何构建数据,以及如何确保优化算法快速运行, ...

  3. 吴恩达《深度学习》第二门课(3)超参数调试、Batch正则化和程序框架

    3.1调试处理 (1)不同超参数调试的优先级是不一样的,如下图中的一些超参数,首先最重要的应该是学习率α(红色圈出),然后是Momentum算法的β.隐藏层单元数.mini-batch size(黄色 ...

  4. PHP实现openSug.js参数调试

    这是一款利PHP对百度搜索下拉框提示免费代码实现参数配置调试的程序源代码. 由想要对网站进行搜索下拉调试的站长朋友们进行方便.快速的效果演示,具体参考下面的PHP代码. 如何使用? 请新建一份PHP文 ...

  5. [转载]SSD原理与实现

    [转载]SSD原理与实现 这里只mark一下,对原论文讲解的很好的博文 https://zhuanlan.zhihu.com/p/33544892 这里有一个关于SSD的很好的程序实现,readme里 ...

  6. 改善深层神经网络(三)超参数调试、Batch正则化和程序框架

    1.超参数调试: (1)超参数寻找策略: 对于所有超参数遍历求最优参数不可取,因为超参数的个数可能很多,可选的数据过于庞大. 由于最优参数周围的参数也可能比较好,所以可取的方法是:在一定的尺度范围内随 ...

  7. Spring Validation最佳实践及其实现原理,参数校验没那么简单!

    之前也写过一篇关于Spring Validation使用的文章,不过自我感觉还是浮于表面,本次打算彻底搞懂Spring Validation.本文会详细介绍Spring Validation各种场景下 ...

  8. Eclipse带参数调试的方法

    下面是体现带参数调试的一个代码demo,首先输出参数的数量,然后依次输出每个参数. public class ArgsEx { public static void main(String[] arg ...

  9. pid 及参数调试方法

    所谓PID指的是Proportion-Integral-Differential.翻译成中文是比例-积分-微分. 记住两句话: 1.PID是经典控制(使用年代久远) 2.PID是误差控制() 对直流电 ...

  10. PID三种参数的理解

    来源:http://blog.gkong.com/liaochangchu_117560.ashx PID是比例.积分.微分的简称,PID控制的难点不是编程,而是控制器的参数整定.参数整定的关键是正确 ...

随机推荐

  1. C# .NET HttpWebRequest 显示指定SSL TLS 版本

    C# .NET HttpWebRequest 显示指定SSL TLS 版本 (TLS1.0,TLS1.1,TLS1.2) 在程序启动时加入这段代码: ServicePointManager.Secur ...

  2. C# .NET 压缩ZIP时 OOM OutOfMemoryException

    C# .NET 压缩ZIP时 OOM OutOfMemoryException. ZipArchiveEntry.ZipEntry.SharpZipLib.ZipOutputStream.OutOfM ...

  3. .NET5 ASP.NET CORE 发布到IIS 文件无法替换

    由于默认是:进程内托管.要在IIS里停止网站,才能替换文件. 建议解决方案是:进程外(out-of-process)托管 记事本修改项目的  .csproj 文件(或在VS上,选中web项目,右键-编 ...

  4. es应用服务初始化步骤

    第一步:创建索引+settings+mappingtestes_v1 PUT { "settings": { "index.mapping.total_fields.li ...

  5. 常用的jvm一些监控命令

    一.jmap 查看堆内对象示例的统计信息 jmap -heap pid 描述:查看堆信息 jmap -histo:live pid | head -30 描述:显示堆中对象的统计信息 命令:jmap ...

  6. 洛谷 P1216 数字三角形

    题目链接:数字三角形 思路 dp:金字塔顶的元素为起点,金字塔每行的最左侧数字只能从上一层的最左侧数字到达,如7 -> 3 -> 8 -> 2 -> 4,这些数字中的每一个(除 ...

  7. 获取ImageView的触摸点所对应的UIImage的坐标

    获取ImageView的触摸点所对应的UIImage的坐标 功能描述 实现前分析 注意事项 代码 求打赏 功能描述 在imageview上触摸图片,求对应UIImage的触摸点. 实现前分析 从ima ...

  8. HDU1010第一道DFS

    DFS就是深度搜索算法....感觉就像破案一样.... #include<iostream> #include<cstdio> #include<cstring> ...

  9. ENSP的VirtualBox虚拟网卡不能用

    VirtualBox 安装好后本地会新建一个名为 "VirtualBox Host-Only Network" 的虚拟网卡,虚拟机可以通过这个虚拟网卡网卡和物理机通信.但ENSP有 ...

  10. openfoam 修改 src 库经验记录

    遇到一个问题,要把 sprayFoam 求解器的蒸发模型修改为自定义蒸发模型. sprayFoam 求解器本身没有实现蒸发模型,而是调用 $FOAM_SRC/lagrangian/intermedia ...