PID控制学习笔记(一)
比例控制往往会存在稳态误差(该结论适用于0型对象)
由比例度的定义和意义,比例增益Kc越大,即直线的斜率越大,则,越快达到平衡,稳态误差越小,因此在保证系统相对稳定性一定的条件下,总是希望比例增益越大越好(具体理解可以参考郑辑光等编写的《过程控制系统》P100).
增大比例增益确实是一种减小稳态误差的方法,但是,这个对系统的要求比较高,比如完全线性,并且控制机构具有较快的响应速度,还要保持系统的稳定。
另外一种方法就是灵活调整直流分量,通过把曲线的上下移动来消除稳态误差(这句话说的很不专业,但是就是差不多这个样子的)。但是,一定的直流分量对于不同的设定值(或干扰大小)不能同时满足,也就是条件或者环境一变,就必须改变这个值,有些情况下这个值我们可以得到,但是对于一些未知的干扰怎么办呢?
为了解决这个问题,积分控制引入。

对比上面的两个公式,积分项实际上就是对直流分量
的一种自动“重置”,并且当稳态偏差e(t)逼近零后,积分项就逼近“理想”的直流分量。
一般在含有积分的PID控制器中,积分项消除静差在本质上就相当于积分项通过不断“试凑”,最终总能找到合适的
(除非系统不稳定)。
但是,如果出现了这样的情况:假设截至到同一当前时刻t,两过程的误差积分以及在t时刻的瞬时误差大小均相同,则PI控制器在t时刻只能给出完全相同的输出信号。如果一个的趋势是向下,一个是向上,这样显然就不合理了。
为此,引入了微分控制。
比例积分控制基于历史偏差以及当前偏差做出控制策略,如果再把误差的未来变化趋势引入控制器设计,或许会取得更好的控制效果。尤其针对如温度等大惯性对象,其输出变化趋势往往非常明显,通过对控制误差进行简单的求导,即可对其未来的误差进行比较准确的预估计,从而可实现基于未来有限时段的误差变化量的调节动作,即微分动作。
在稳态条件下,即使误差再大,单纯的微分环节也不会产生任何的调节作用。
PID控制学习笔记(一)的更多相关文章
- PID控制学习笔记(二)
不管是基本的PID控制还是变形的PID控制算法,其核心都是对输入信号(设定值信号.测量信号或者偏差信号等)做基本的比例.积分.微分运算,最终提供给被控过程良好的调节信号. 在过程控制仪表,特别是在数字 ...
- 某科学的PID算法学习笔记
最近,在某社团的要求下,自学了PID算法.学完后,深切地感受到PID算法之强大.PID算法应用广泛,比如加热器.平衡车.无人机等等,是自动控制理论中比较容易理解但十分重要的算法. 下面是博主学习过程中 ...
- 专家PID控制仿真学习
目录 专家控制 专家系统 专家控制 学习笔记,用于记录学习 资料:<智能控制>(第四版)--刘金琨 专家系统 一.专家系统的定义 专家系统是一类包含知识和推理的智能计算机程序,其内部包含某 ...
- V-rep学习笔记:关节力矩控制
Torque or force mode When the joint motor is enabled and the control loop is disabled, then the join ...
- 播放一个视频并用滚动条控制进度-OpenCV应用学习笔记二
今天我们来做个有趣的程序实现:利用OpenCV读取本地文件夹的视频文件,并且在窗口中创建拖动控制条来显示并且控制视频文件的读取进度. 此程序调试花费了笔者近一天时间,其实大体程序都已经很快写出,结果执 ...
- Dynamic CRM 2013学习笔记(十六)用JS控制Tab可见,可用
一个Form里经常会有好几个Tab,有时要根据一些条件设置哪些Tab可用,可见.下面就介绍下如何用JS对Tab进行控制. 1. 控制可见 function setTabVisableByName( ...
- Dynamic CRM 2013学习笔记(十八)根据主表状态用JS控制子表自定义按钮
有时要根据主表的审批状态来控制子表上的按钮要不要显示,比如我们有一个需求审批通过后就不能再上传文件了. 首先打开Visual Ribbon Editor, 如下图,我们可以利用Enable Rules ...
- STM32学习笔记(二)——串口控制LED
开发板芯片:STM32F407ZGT6 PA9-USART1_TX,PA10-USART1_RX; PF9-LED0,PF10-LED1; 一.串口1配置过程(不使用串口中断): 1.使能时钟,包括G ...
- STM32学习笔记(四)——串口控制LED(中断方式)
目录: 一.时钟使能,包括GPIO的时钟和串口的时钟使能 二.设置引脚复用映射 三.GPIO的初始化配置,注意要设置为复用模式 四.串口参数初始化配置 五.中断分组和中断优先级配置 六.设置串口中断类 ...
随机推荐
- 2、为Eclipse绑定Tomcat
1.window→preferences打开属性窗口 2.点击add 3.点击Tomcat6.0 点击next 4.选择tomcat的解压目录和jdk,并点击finish 5.点击ok 6.打开ser ...
- Unity5系列资源管理AssetBundle——更新实现
前面我们研究了AssetBundle的打包与加载,现在我们来了解下如何在项目中根据版本号更新内容. 最最重要的一点,细心的朋友应该看到了在加载AssetBundle的MrcAssetManager类中 ...
- C#获取数字证书
string Thumbprint = "C2489D912F247C187AA14B1291A6fB612281225D"; X509Store store = new X509 ...
- .Net Core Session验证码
1.验证码帮助类 namespace IdeaCore.Services.Common { public class ValidateCodeService : IValidateCodeServic ...
- <pre>标记的使用...
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 【转载】将python脚本打包成exe文件
exe文件也就是可以直接执行的文件.通常我们编好的带py后缀的脚本文件都是需要在有python的环境下执 行,每次通过Win + R打开运行窗口再输入powershell打开控制台,再千辛万苦地cd ...
- maven入门(上)
Apache Maven 入门篇 ( 上 ) 作者:George Ma 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法.这 ...
- C#第七天
一 1.继承:我们可能会在一些类中,写一些重要的成员,将这些重复的成员单独的封装到一个类中,作为这些类的父类. Student Teacher Driver ...
- beginBackgroundTaskWithExpirationHandle
[[UIApllication sharedApplication] beginBackgroundTaskWithExpirationHandle:^{}];这个方法在app进入后台时,可以做一些事 ...
- 配置pyqt5环境 for python3.4 on Linux Mint 17.1
1.安装QT 配置QT PATH 在 /etc/profile文件中追加 export QTDIR=/usr/local/Qt5.4.2/5.4/gcc_64 export LD_LIBRARY_PA ...