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

https://blog.csdn.net/HandsomeHong/article/details/72528869

一个故事读懂PID控制绝对经典

一文看懂舵机硬件pid电路原理-电子发烧友网

《从新手到高手 自动调节系统解析与PID整定》

PID控制器的数字实现及C语法讲解 - free_稀饭 - 博客园

有的时候书本上的仅仅是理论,读起来会比较深奥。反倒是博客上的有些文章是比较不错的。所以记录下。

mcu实现的有位置式PID和增量PID,但是通常用的多是增量式PID,这样可以减少mcu的内存占用,效果也可以达到,因此在多数场景中,都用增量式PID控制的方法。

两者的优缺点

a) 增量式算法优点:①算式中不需要累加。控制增量Δu(k)的确定仅与最近3次的采样值有关,容易通过加权处理获得比较好的控制效果;②计算机每次只输出控制增量,即对应执行机构位置的变化量,故机器发生故障时影响范围小、不会严重影响生产过程;③手动—自动切换时冲击小。当控制从手动向自动切换时,可以作到无扰动切换。

b) 位置式PID控制算法的缺点:当前采样时刻的输出与过去的各个状态有关,计算时要对e(k)进行累加,运算量大;而且控制器的输出u(k)对应的是执行机构的实际位置,如果计算机出现故障,u(k)的大幅度变化会引起执行机构位置的大幅度变化。

区别于联系:

1、其实是位置式和增量式是一样的,增量式最后那个输出化解完和位置式一样。增量式PID可以通过 u(k) = u(k-1) + Δu(k) 得到位置式输出

2、增量型算法与位置型算法比较:

(1)增量型算法不需做累加,计算误差后产生的计算精度问题,对控制量的计算影响较小。位置型算法用到过去的误差的累加,容易产生较大的累加误差。

(2)增量型算法得出的是控制的增量,误动作影响小,必要时通过逻辑判断限制或禁止本次输出,不会影响系统的工作。位置型算法的输出是控制量的全部输出,误动作影响大。

(3)增量式算法的主要优势体现在对积分环节的处理上,积分作用的累加效果会影响到输出的准确性。

(4)楼上的说法让我获益不少,一直没理解“避免误动作”的原因。另外,增量式算法易于实现手、自动的无扰动切换。

增量式PID调教总结

1.负反馈

自动控制理论也被称为负反馈控制理论。首先检查系统接线,确定系统的反馈为负反馈。例如电机调速系统,输入信号为正,要求电机正转时,反馈信号也为正(PID算法时,误差=输入-反馈),同时电机转速越高,反馈信号越大。其余系统同此方法。

2.PID调试一般原则

a.在输出不振荡时,增大比例增益P。

b.在输出不振荡时,减小积分时间常数Ti。

c.在输出不振荡时,增大微分时间常数Td。

调整方法现在一般采用的是临界比例法。

部分来源于网络。。

控制系统中应用最为广泛的一种控制规律。

PID调节器之所以经久不衰,主要有以下优点:

(1)技术成熟,通用性强

(2)原理简单,易被人们熟悉和掌握

(3)控制效果较好

(一)、PID的形式:

P:Proportion(比例),就是输入偏差乘以一个常数。I  :Integral(积分),就是对输入偏差进行积分运算。D:Derivative(微分),对输入偏差进行微分运算。

注:输入偏差=读出的被控制对象的值-设定值。比如说我要把温度控制在26度,但是现在我从温度传感器上读出温度为28度。则这个26度就是”设定值“,28度就是“读出的被控制对象的值”。

KP为比例增益;TI为积分时间常数;TD为微分时间常数;u(t)为控制

量(控制器输出);e(t)为被控量与给定值的偏差。

(二)PID参数对控制性能的影响

1.随着比例系数Kp的增加,超调量增大,系统响应速度加快,

2.积分时间常数Ti对控制性能的影响

        积分作用的强弱取决于积分常数Ti。Ti越小,积分作用就越强,反之

Ti大则积分作用弱。积分控制的主要作用是改善系统的稳态性能,消除

系统的稳态误差。当系统存在控制误差时,积分控制就进行,直至无

差,积分调节停止,积分控制输出一常值。

        加入积分控制可使得系统的相对稳定性变差。Ti值的减小可能导致

系统的超调量增大,Ti值的增大可能使得系统响应趋于稳态值的速度减

慢。

3.微分时间常数Td对控制性能的影响

        随着微分时间常数Td的增加,闭环系统响应的响应速度加快,调节

时间减小。微分环节的主要作用是提高系统的响应速度。由于该环节对

误差的导数(即误差变化率发生作用),它能在误差较大的变化趋势时施加

合适的控制。

        但是过大的Kd值会因为系统造成或者受控对象的大时间延迟而出现

问题。微分环节对于信号无变化或变化缓慢的系统不起作用。

总结:

*比例控制能迅速反映误差,从而减小误差,但比例控制不能消除稳态误

  差,KP的加大会引起系统的不稳定;

*积分控制的作用是,只要系统存在误差,积分控制作用就不断地积累,

  输出控制量以消除误差。因此只要有足够的时间,积分控制将能完全消

  除误差,但是积分作用太强会使系统超调加大,甚至使系统出现振荡;

*微分控制可以减小超调量,克服振荡,使系统的稳定性提高,同时加快

  系统的动态响应速度,减小调整时间,从而改善系统的动态性能。

PID算法知识点博文收藏记录的更多相关文章

  1. PID算法学习记录

    最近做项目需要用到PID算法,这个本来是我的专业(控制理论与控制工程),可是我好像是把这个东西全部还给老师了. 没办法,只好抽时间来学习了. 先占个座,后续将持续更新!

  2. PID算法笔记2

    总所周知,PID算法是个很经典的东西.而做自平衡小车,飞行器PID是一个必须翻过的坎.因此本节我们来好好讲解一下PID,根据我在学习中的体会,力求通俗易懂.并举出PID的形象例子来帮助理解PID.一. ...

  3. 某科学的PID算法学习笔记

    最近,在某社团的要求下,自学了PID算法.学完后,深切地感受到PID算法之强大.PID算法应用广泛,比如加热器.平衡车.无人机等等,是自动控制理论中比较容易理解但十分重要的算法. 下面是博主学习过程中 ...

  4. 基本的PID算法整理(水缸的例子有问题!!)

    一,先谈关于水缸漏水的问题 谈到PID原理入门的时候,大家经常会举的一个例子就是水缸漏水的例子.这里把一个解释水缸漏水的帖子放在这里:https://blog.csdn.net/qq_41736609 ...

  5. 线性控制原理——PID算法应用

    使用控制系统(PID)控制被控对象 PID控制的三要素:控制器,被控对象,反馈器.控制器就是一个数学模型,就PID来说,等同于PID算法.是对反馈量的一个处理与输出.通俗的说就是对于每个被控的量,我的 ...

  6. 位置式PID与增量式PID算法

    位置式PID与增量式PID算法  PID控制是一个二阶线性控制器     定义:通过调整比例.积分和微分三项参数,使得大多数的工业控制系统获得良好的闭环控制性能.     优点             ...

  7. PID算法

    所谓PID就是比例-积分-微分的英文缩写,但并不是必须同时具备这三种算法,也可以是 PD, PI,甚至只有 P算法控制,下面分别介绍每个参数的含义:首先需要明确一个事实就是,要实现PID算法,必须在硬 ...

  8. PID算法(c 语言)(转)

    PID算法(c 语言)(来自老外) #include <stdio.h> #include<math.h> //定义PID 的结构体 struct _pid { int pv; ...

  9. PID控制器开发笔记之一:PID算法原理及基本实现

    在自动控制中,PID及其衍生出来的算法是应用最广的算法之一.各个做自动控制的厂家基本都有会实现这一经典算法.我们在做项目的过程中,也时常会遇到类似的需求,所以就想实现这一算法以适用于更多的应用场景. ...

随机推荐

  1. 1.WCF学习--创建简单的WCF服务

    一.基本了解WCF 1.面向服务代表的是一种设计理念,和面向对象.面向组件一样,体现的是一种对关注点进行分解的思想,面向服务是和技术无关的 2.WCF需要依存一个运行着的宿主进程,服务寄宿就是为服务指 ...

  2. Centos7.4 修改selinux错误导致服务器起不来

    [root@node10 ~]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # ...

  3. FMXUI TEXTVIEW代码设置IMAGEINDEX

    FMXUI作为一个开源的控件,真是DELPHIER的福音,向作者致敬.​TEXTVIEW非常好用,在属性面板中有ImageIndex属性,可以方便设置图标,在实际应用中图标状态需要改变,但在代码设置时 ...

  4. web uploader 上传大文件总结

    这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得 ...

  5. 【Java】java获取request body

    //方式一 public static String ReadAsChars(HttpServletRequest request) { BufferedReader br = null; Strin ...

  6. Security基础(六):部署Zabbix监控平台、配置及使用Zabbix监控系统、自定义Zabbix监控项目、实现Zabbix报警功能

    一.部署Zabbix监控平台 目标: 本案例要求部署一台Zabbix监控服务器,一台被监控主机,为进一步执行具体的监控任务做准备: 在监控服务器上安装LAMP环境    修改PHP配置文件,满足Zab ...

  7. Python基础教程(014)--缩进错误

    前言 学会编写格式 内容 print(“HelloWorld”) print(“HelloWorld”) ----缩进错误 print(“HelloWorld”) 错误信息: IndentationE ...

  8. asp label居中

    https://stackoverflow.com/questions/25245839/align-a-label-to-the-right-using-asp-net Try something ...

  9. 如何消去delphi Stringgrid重绘时产生重影

    procedure TForm1.Stringgrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGrid ...

  10. xshell几个常用命令以及注意事项:

    xshell几个常用命令以及注意事项: cd .. 回到上级目录 cd xx 进入xx目录 rm xx 删除文件xx rm -rf 删除目录及其所包含的所有文件,高危命令,一定谨慎 mkdir xx ...