一窍懂PID
这是学习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的更多相关文章
- 一文读懂PID控制算法(抛弃公式,从原理上真正理解PID控制)
PID控制应该算是应用非常广泛的控制算法了.小到控制一个元件的温度,大到控制无人机的飞行姿态和飞行速度等等,都可以使用PID控制.这里我们从原理上来理解PID控制. PID(proportion ...
- PID算法原理 一图看懂PID的三个参数
找了好久这一篇算是很容易看懂的了 推荐给大家 写的十分清楚 原文作者DF创客社区virtualwiz LZ以前有个小小的理想,就是让手边的MCU自己"思考"起来,写出真正 ...
- 漫谈PID——实现与调参
闲话: 作为一个控制专业的学生,说起PID,真是让我又爱又恨.甚至有时候会觉得我可能这辈子都学不会pid了,但是经过一段时间的反复琢磨,pid也不是很复杂.所以在看懂pid的基础上,写下这篇文章,方便 ...
- PID算法知识点博文收藏记录
https://blog.csdn.net/Uncle_GUO/article/details/51367764 https://blog.csdn.net/HandsomeHong/article/ ...
- 对while((pid = waitpid(-1, &stat, WNOHANG)) > 0)不懂的地方,现在懂了
while((pid = waitpid(-1, &stat, WNOHANG)) > 0) 需要写到信号处理函数中,假如有10个子进程 只要父进程能够收到最后一个信号,就能把前面丢失的 ...
- 手把手教你看懂并理解Arduino PID控制库——引子
介绍 本文主要依托于Brett Beauregard大神针对Arduino平台撰写的PID控制库Arduino PID Library及其对应的帮助博客Improving the Beginner’s ...
- 怎样看懂Oracle的执行计划
怎样看懂Oracle的执行计划 一.什么是执行计划 An explain plan is a representation of the access path that is taken when ...
- 一篇文章教你读懂Makefile
makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professiona ...
- PID控制器的数字实现及C语法讲解
PID控制器的数字实现及C语法讲解 概述 为方便学习与交流,根据自己的理解与经验写了这份教程,有错误之处请各位读者予以指出,具体包含以下三部分内容: (1) PID数字化的推导过程(实质:微积分的近 ...
随机推荐
- 自己电脑组一个Wifi热点
① 在cmd窗口 ssid 是wifi名称.key是密码 netsh wlan set hostednetwork mode=allow ssid=yb key=15564130 ② ③ 运行脚本 新 ...
- step_by_step_记录那些在VS上使用过的工具
Visual Studio: Any Developer, Any App, Any Platform 在.NET 平台做开发,强大的VS让人爱不释手.刚刚接触.NET平台的时候,去网上寻找开发工具 ...
- jumpserver笔记
一.安装docker使用官方脚本自动安装 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 二.拉取jumperse ...
- Servlet第一篇(Tomcat)
Tomcat 什么是Tomcat Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器. 为什么我们需要用到Tomcat 提供能够 ...
- 手工脱壳之AsPack压缩脱壳-随机基址
一.工具及壳介绍二.脱壳1.ESP定律脱壳2.单步跟踪脱壳3.基址重定位的修复 一.工具及壳介绍 使用工具:Ollydbg.PEID.ImportREC.LoadPE.010 Editor 查看待脱壳 ...
- AOP-事物管理
1. Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务
- Windows Server 2012 正式版/标准版/数据中心版安装序列号密钥
Windows Server 2012(开发代号:Windows Server 8)是微软发布的一款服务器操作系统,也是Windows 8对应的服务器版本,属于是Windows Server 2008 ...
- 导致网页顶部空白一行的解决办法【实测有效】
我用织梦做的网站,出现了导致网页顶部空白一行的问题.通过搜索,了解到这原来是UTF-8的BOM的问题. 导致网页顶部空白一行原因 这个问题只会在chrome ...
- 第三次Java作
- mysql 字段指定值靠前排序方法,多字段排序排序方法
背景:SEO下选择某查询条件 查询展示信息为装修设计师以及设计师作品.设计师原型设计为:选择某风格 例如:简约,则列表出现拥有简约风格的设计师信息以及该设计师类型为简约的作品(3条靠前记录) 浏览原型 ...