这是学习PID时的理解,做个笔记!

一:首选,说一下一些基本概念,为了更好理解。

PID:就是对输入偏差进行比例积分微分运算,运算的叠加结果去控制执行机构。

  P(proportion):比例,就是对输入偏差乘以一个系数。

  I(integration):积分,就是对输入偏差进行积分运算。

  D(differentiation):微分,就是对输入偏差进行微分运算。

动态偏差:在调节过程中,被调量和设定值之间的偏差随时间改变,任意时刻两者之间的偏差叫做动态偏差,简称动差。

静态偏差:调节趋于稳定之后,被调量和设定值之间还存在的偏差叫做静态偏差,简称静差。

传递函数:是对线性微分方程在零初始条件下进行拉普拉斯变换得到的。

  与微分方程的相通性:U(S):输入信号的拉普拉斯变换   Y(S):输出信号的拉普拉斯变换

    

  传递函数的两种形式:

    

  闭环传递函数公式:

    

线性系统稳定性充要条件:

    

系统动态性能说明:

  

  a,其中,对于没有震荡的系统,tr指响应从终值10%上升到终值90%所需要的时间。上升时间反应系统的响应速度,上升时间越短,说明系统响应速度越快。

  b,调节时间ts反应系统过渡过程时间的长短。

  c,tr,tp,ts表示控制系统响应的快速性,最大超调量,N反应系统动态过程的平稳性。

  d,控制系统动态过程的平稳性和快速性指标之间往往存在相互制约的关系,例如要想响应速度更快(即tr更小),往往引起系统的超调量加大。相反,如果要保持小幅度的超调,通常也会延长系统的过度时间。

  e,在保持系统不出现大的超调的前提下,尽量提升系统的响应速度,是控制系统设计的主要目标之一。

PID的结构:

  

PID公式:

  

  Kp:比例放大系数

  Ti:积分时间常数

  Td:微分时间常数

对丄式两边取拉普拉斯变换,得到PID控制器的传递函数;

  G(S)=U(S)/E(S)=Kp+Ki/s+Kd*s,其中Td=Kd/kp,Ti=kp/ki。

线性系统稳态误差计算:

  

根轨迹:

  

二,控制效果理解:

被控对象的传递函数:

  

matlab仿真模型:

模型很简单,所以仿真波形就不贴出来了,感兴趣可以自己搭一个,然后看一看。

1,比例控制

  当ki,kd给0时仿真结果:比例系数越大,可以使系统响应速度加快,也会减小静差,但是不能完全消除,同时也会使系统调节时间加长,震荡次数增加,过大还会导致系统不稳定。

  当我们求出上面的模型中,只有比例控制时的系统传递函数时,通过上面的误差求解公式,我们可以得出,增大KP,会减小误差,但不会消除,而且通过画出根轨迹图也可以看出,当K大于18时,系统将变得不稳定。

  下面是根轨迹图:

2,比例微分控制:

  当只有Ki=0时,为比例微分控制。

  仿真结果:微分作用可以提高系统相对稳定性,抑制系统的超调量,加快系统响应速度,但是过大,会使得系统对扰动的抑制能力减弱。

  使用比例为分控制器,系统的开环传递函数相当于在负实轴上增加了零点。附加位置适当的开环零点,可使系统的稳定性和动态性能同时得到显著改善。
3,比例积分控制:

  当Kd=0时,为比例积分控制。

  仿真结果:加入积分,能有效消除系统的静差,加快达到参考值的时间,但是积分作用太强会使系统的超调量加大,甚至使系统出现震荡,对系统的瞬态特性也不利。

  使用比例积分控制器。在给系统增加一个极点之外,也增加了一个位于负实轴的零点。

三,算法实现:

位置式:输出直接为控制量。

增量式:输出的是控制量的增量。

经典pid参数整定方法:

       参数整定找最佳, 从小到大顺序查。
                         先是比例后积分, 最后再把微分加。
                         曲线振荡很频繁, 比例度盘要放大。
                         曲线漂浮绕大弯, 比例度盘往小扳。
                         曲线偏离回复慢, 积分时间往下降。
                         曲线波动周期长, 积分时间再加长。
                         曲线振荡频率快, 先把微分降下来。
                         动差大来波动慢, 微分时间应加长。
                         理想曲线两个波, 前高后低四比一。
                         一看二调多分析, 调节质量不会低。

 

一窍懂PID的更多相关文章

  1. 一文读懂PID控制算法(抛弃公式,从原理上真正理解PID控制)

      PID控制应该算是应用非常广泛的控制算法了.小到控制一个元件的温度,大到控制无人机的飞行姿态和飞行速度等等,都可以使用PID控制.这里我们从原理上来理解PID控制. PID(proportion ...

  2. PID算法原理 一图看懂PID的三个参数

    找了好久这一篇算是很容易看懂的了  推荐给大家   写的十分清楚   原文作者DF创客社区virtualwiz LZ以前有个小小的理想,就是让手边的MCU自己"思考"起来,写出真正 ...

  3. 漫谈PID——实现与调参

    闲话: 作为一个控制专业的学生,说起PID,真是让我又爱又恨.甚至有时候会觉得我可能这辈子都学不会pid了,但是经过一段时间的反复琢磨,pid也不是很复杂.所以在看懂pid的基础上,写下这篇文章,方便 ...

  4. PID算法知识点博文收藏记录

    https://blog.csdn.net/Uncle_GUO/article/details/51367764 https://blog.csdn.net/HandsomeHong/article/ ...

  5. 对while((pid = waitpid(-1, &stat, WNOHANG)) > 0)不懂的地方,现在懂了

    while((pid = waitpid(-1, &stat, WNOHANG)) > 0) 需要写到信号处理函数中,假如有10个子进程 只要父进程能够收到最后一个信号,就能把前面丢失的 ...

  6. 手把手教你看懂并理解Arduino PID控制库——引子

    介绍 本文主要依托于Brett Beauregard大神针对Arduino平台撰写的PID控制库Arduino PID Library及其对应的帮助博客Improving the Beginner’s ...

  7. 怎样看懂Oracle的执行计划

    怎样看懂Oracle的执行计划 一.什么是执行计划 An explain plan is a representation of the access path that is taken when ...

  8. 一篇文章教你读懂Makefile

    makefile很重要      什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professiona ...

  9. PID控制器的数字实现及C语法讲解

    PID控制器的数字实现及C语法讲解 概述 为方便学习与交流,根据自己的理解与经验写了这份教程,有错误之处请各位读者予以指出,具体包含以下三部分内容: (1)  PID数字化的推导过程(实质:微积分的近 ...

随机推荐

  1. 【JavaScript】EasyUIのForm的跨域提交问题解析

    昨日.プログラムを作るとき.一つの問題がありますが.皆に共有します. [問題] EasyUIのFormでURLを請求するとき.返却の値が取得できない. [ソース] var fnRegUser = fu ...

  2. my.conf配置信息

    # mysql conf /etc/my.cnf# Created by http://www.wdlinux.cn# Last Updated 2010.06.01 [client]port = 3 ...

  3. python 从大到小排序

    a = [3,7,4,9]a = sorted(a,reverse=True)print(a)#[9, 7, 4, 3]

  4. CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-1虚拟机安装及环境初始化

    1.软件准备: VMware-workstation-full-14.1.2-8497320.exe CentOS-7-x86_64-DVD-1804.iso 2.VMare激活码: AU5WA-0E ...

  5. Junit集成测试

    Spring4.x高级话题(七):Spring的测试 一. 点睛 测试是开发工作中不可缺少的部分,单元测试只针对当前开发的类和方法进行测试,可以简单通过模拟依赖来实现,对运行环境没有依赖:但是仅仅单元 ...

  6. Python 列表(list)的使用

    文章目录 一.创建list 二.访问list中元素 三.更新元素 四.删除元素 五.求list长度 六.连接列表 七.截取列表 八.复制列表 一.创建list myList = [2,3,1,5,6, ...

  7. p2p技术之n2n源码核心简单分析一

    首先在开篇之前介绍下内网打洞原理 场景:一个服务器S1在公网上有一个IP,两个私网机器C1,C2 C1,C2分别由NAT1和NAT2连接到公网,我们需要借助S1将C1,C2建立直接的TCP连接,即由C ...

  8. Python中logging日志模块的使用

    参考https://www.cnblogs.com/CJOKER/p/8295272.html

  9. supervisor简要使用说明

    安装方法(之一) pip install supervisor 主要组件 supervisord: 用于控制启用和退出子进程,记录子进程的标准输出和标准错误输出. supervisorctl: she ...

  10. [Bat]UNC路径不支持的2种解决方法

    UNC(Universal Naming Convention),\\servername\sharename,其中servername是服务器名.sharename是共享资源的名称 1.使用push ...