这是学习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. git 免密码push

    git版本2.14.1 windows系统 用户根目录 .gitconfig 文件添加配置 [credential] helper = store[push] default = simple 用户根 ...

  2. CodeForces-4C Registration system

    // Registration system.cpp : 此文件包含 "main" 函数.程序执行将在此处开始并结束. // #include <iostream> # ...

  3. 100-days: twenty

    Title: Apple's 'show time(好戏开幕)' event(发布会) puts the spotlight on subscription services Apple's 'sho ...

  4. cocoapods 安装中出的太多问题

    前言: 新欢的公司,新买的电脑,新安装 cocoapods.然后开开心心去百度如何安装 cocoapods,前面的步骤我就不说了. 在 pod setup 上之后,网速超慢然后就失败 fatal: T ...

  5. taro Object(...) is not a function 版本更新后,H5端运行出错

    之前使用taro,版本号1.2.11 会有这样的问题,如下:gitHub找解决的,看到大佬们说更新一下版本就好了,果然更新后,此问题解决OK了. 当然,坑是走不完的,版本也更新挺快的,想着把taro和 ...

  6. flask debug 模式开启

    debug 模式开启 最近在写python flask 的Waf后台管理界面,想要启用调试模式,发现安装目前网上流行的两种方式均无法在我的Pycharm中打开调试模式. )直接在对象上设置 app.d ...

  7. 定时执行自动化脚本-(一)导入保存jmeter参数至文件的jar包

    1.先完成jmeter脚本编写,具体怎么写此处不再详述,可以参考其他文档. 2.有时你会发现jmeter脚本执行后,有些响应信息你需要提取到文件中,以便后续使用: 怎么实现呢?个人思路就是,先写个ja ...

  8. dubbo知识体系

    Dubbo负载均衡 Random随机/ RoundRobin轮询/ LeastActive最少Dubbo缓存Dubbo集群容错 Dubbo回调 服务分组: group Dubbo异步调用 <du ...

  9. nginx学习笔记(三)

    nginx变量 有一些内建变量是支持改写的,其中一个例子是 $args. 这个变量在读取时返回当前请求的 URL 参数串(即请求 URL 中问号后面的部分,如果有的话) 我们看一个通过修改 $args ...

  10. 将EditPad Lite 加入鼠标右键

    > 开始 > regedit 如图新建shell及command