一窍懂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数字化的推导过程(实质:微积分的近 ...
随机推荐
- pyautogui 文档(四):消息框功能
消息框功能 PyAutoGUI利用PyMsgBox中的消息框函数提供跨平台的纯Python方式来显示JavaScript样式的消息框.提供了四个消息框功能: alert()函数 >>> ...
- Unity PRO 2018.3.3f1 for MAC+完美pojie补丁!!!
Unity Pro 2018 for mac是游戏开发必备的软件之一,Unity mac 版主要用于创建2D和3D跨平台游戏,比如三维视频游戏.实时三维动画.建筑可视化等类型,最新版本的Unity P ...
- webservice学习01:wsdl文档结构
webservice学习01:wsdl文档结构 wsdl文档结构 WSDL文档示例 <wsdl:definitions xmlns:xsd="http://www.w3.org/200 ...
- vue的表单输入绑定
1.单行绑定 <p>{{logintype}}</p> <input type="text" v-model="logintype" ...
- 轻量级富文本编辑器wangEditor
开发公司一个系统的时候需要一个富文本编辑器,找了几个,最后选择这个,蛮不错的. 百度搜索wangEditor,进入官网根据所介绍的使用进行开发就可以了,很不错的一个工具.
- Oracle SQL Developer 调试存储过程步骤(Oracle)
1.首先你编译通过你的存储过程,编译的时候一定要选“编译以进行调试”. 2.在想要调试的行上设置好断点. 3.点击“调试”按钮,然后输入存储过程入参,点“确定”开始调试. 4.断点进入后,上方会出现一 ...
- 使用CSV控件方法实现参数化
一.录制脚本 二.下面介绍如何使用CSV控件方法实现参数化 1. 添加-->配置元件-->csv Data Set Config Filename:文件的来源 Variable Name ...
- py文件的运行
安装过程及配置 安装过程准备: 下载好Python的安装程序后,开始安装,在进入安装界面后一定确保勾选将Python加入到系统环境变量的路径里.如图所示: 2 如果没有选取,那么按照下面的步骤进行操作 ...
- APP支付(.NET版)
---恢复内容开始--- APP支付(.NET版) 一. 支付宝支付 1. 有一个支付账号,在蚂蚁金服开放平台中登录账号→选择“管理中心”→在“开发者中心”下选择“网页&移动应用”→然后按 ...
- VB 性能优化点
1.将Single,Double和Currency类型的变量替换为Integer或Long类型的变量:10倍 2.避免使用变体: 慢:Dim FSO as object Set FSO = N ...