0 前面的话

理想的PID算法往往不能满足实际使用中的很多场景,比如积分饱和的问题,因此需要在此基础上对积分器做抗饱和处理,积分anti windup的优化。这不,隆哥这次面试,直接挂在这么基础的知识点上,肠子悔青,在这里简单总结一下。

推荐一首歌,是仙剑的插曲,音乐响起,便想起了童年,非常怀念,斯人已去,世上再无阿桑,也向歌手致敬。

目录

1 什么是积分饱和

2 实际的例子

3 负面影响

4 如何防止积分饱和

5 PID算法(抗饱和)

6 参考

1 什么是积分饱和

积分饱和(或)是指PID控制器或是其他有积分器的控制器中可能会发生的一种现象。

这种现象往往发生在误差有大幅变化(例如大幅增加),积分器因为误差的大幅增加有很大的累计量,因为积分器的输出满足下式;

离散化形式表示为:

所以随着时间的增加,每次累积较大的误差

,很容易造成积分饱和并产生较大的过冲,而且当误差变为负时,其过冲仍维持一段时间之后才恢复正常的情形。

2 实际的例子

这里举一个直流电机调速例子,先看下图;

隆哥设定了转速为

,这里可以是,但是由于某种原因电机一开始堵转了,所以反馈的转速

为;

这时候仍然处于堵转状态,那偏差

就会一直处于很大的状态,积分器对偏差

进行累积,便迅速达到一个很大的值,导致的输出已经接近输出的上限,导致最终输出的的占空比很大;

此时,堵转忽然消失,但是前面提到的输出已经接近输出的上限,因此电机转速也急剧上升,当

时,

,此时偏差都处于负数状态;

虽然误差变成负数,并且积分器开始累加负数,但是由于之前积分器累积的值已经很大,于是,PID依然会保持较大的输出一段时间,从而产生了很大的过冲;

通常会产生的输出如下图所示;

从图中我们不难发现,这里有三个过程;

过程:因为这个过程存在较大幅度变化的误差,因此积分器累积了较大的值,从图中可以看到,积分器的面积比较大(阴影部分);

过程:此时积分已经饱和,产生了较大的过冲,并且在较长的一段时间内,一直处于过冲的状态;

过程:积分脱离饱和状态,产生了积极的调节作用,消除静差,系统输出达到设定值;

3 负面影响

积分器的作用是消除系统稳态误差,如果出现积分饱和,往往会对系统造成负面的影响;

系统输出会产生较大的过冲(超调量);

如果产生正向饱和(图一所示)则系统对于反向的变化会偏慢;

系统产生了较大的过冲

,并且较大的一段时间

都处于过冲的状态;具体如下图所示;

4 如何防止积分饱和

为了防止PID控制器出现积分饱和,需要在算法加入抗积分饱和()的算法;通常有以下几种措施;

积分分离或者称为去积分算法;

在饱和的时候将积分器的累计值初始化到一个比较理想的值;

若积分饱和因为目标值突然变化而产生,将目标值以适当斜率的斜坡变化可避免此情形;

将积分累计量限制上下限,避免积分累计量超过限制值;

如果PID输出已经饱和,重新计算积分累计量,使输出恰好为合理的范围;

TI文档中的方法

下面是的位置式PI算法所做的改进,如下图所示;

比例部分的输出:

积分部分的输出:

未做处理的PID输出:

最终PID输出

抗积分饱和用的系数

根据我的理解,由上述输出和式可知,判断系统是否处于饱和的状态;

如果

,说明积分器处于饱和状态,此时使

系数为0,这样防止积分进一步进行累积。

反计算抗饱和法

反计算法,简称AW法,就是在输出限幅部分根据输入信号和输出信号的差值,把

作为反馈值输入到积分部分,从而达到抑制积分饱和现象的目的;

具体如下图所示;

不难发现,在输出未饱和的情况下,

因此不会对积分器造成影响;当系统发生饱和时,则

现在假设此时为正向饱和,则

,那么

,所以最终将

反馈到积分部分;那么从图中可知,相当于从

中减去了

,这样可以削弱积分,让它退出饱和的状态;

关于

系数,

越大,积分器退出饱和的作用越强,反之则越弱;

当然,积分抗饱和的方法还有很多 遇限积分削弱法,遇限保留积分法 ,这只是其中的一种,下面给出的位置式算法,增量式的抗饱和处理也是类似的做法。

5 PID算法(抗饱和)

的算法中只实现了比例和积分,如果需要微分项,可以去除结尾部分的注释;

6 参考

https://www.mathworks.com/help/simulink/slref/anti-windup-control-using-a-pid-controller.html

虽然写的不一定是最好,但是每一个字、每一个公式都是用心码的,每一张图都是用心画的,每一句话都是加入了自己的理解,如果帮到了你,请无情三连吧;另外笔者能力有限,文中难免存在错误和纰漏,望轻拍指正。

简易PID算法的快速扫盲

—— The End ——

反积分饱和 程序_三面大疆惨败,因为不懂PID的积分抗饱和相关推荐

  1. 反积分饱和 程序_用抗积分饱和PID控制传递函数为G(s)的被控对象

    题目:用抗积分饱和PID控制传递函数为G(s)的被控对象 G(s)=523500/(s^3+87.35s^2+10470s) 二.抗积分饱和原理 积分饱和现象是在系统存在一个方向的偏差,PID控制器的 ...

  2. 增量式pid调节方式有何优点_增量式PID的“假抗饱和”性

    众所周知,PID的一般结构如图所示: 它是一种线性控制器: 根据给定值 与实际输出值 构成控制方案: . 三个环节: 比例环节:成比例地反映控制系统的偏差信号 ,偏差一旦产生,控制器立即产生控制作用, ...

  3. 大疆A型板使用经验分享(七)——大疆M3508电机和PID控制

    一. 大疆M3508电机 大疆M3508电机可以从RM官网下载很多相关资料,这里不做过多赘述.关于电机配套电调使用的时候,重点是如下两张图: 第一张图是电调接收报文的格式,即如果要发送数据给1号到4号 ...

  4. 反积分饱和 程序_非常通俗易懂的PID控制(2)--积分饱和

    第一篇在: 非常通俗易懂的PID控制(1) - 江知季的文章 - 知乎 上一篇讲述了PID的原理,看起来控制是十分完美的,至少在理论上. 不过现实总是不完美的. 因为在PID输出的控制信号(在理论上可 ...

  5. python输入三次密码程序_请教各位大神,为啥以下代码输入修改密码后连输错三次还是能输入...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #定义一个密码,列表属性,可以修改 password_list = ['reset', '12345'] #定义一个函数,设定输入次数 def user_ ...

  6. 反编译小程序_小程序/小游戏 反编译教程

    使用的反编译脚本叫做wxappUnpacker 开搞吧,我们通过电脑上的安卓模拟器来获取,我这里使用的是夜神模拟器,启动后安装微信,RE管理器,QQ(用来传输文件) 登陆微信后,在下拉框中找到我们要获 ...

  7. 制作一个查询信息程序_三步学会制作一个小程序

    小程序在刚出现的时候简直是惊艳了整个业界,不管什么内容,光是那酷炫的交互效果就足以篇篇刷屏了,再加上"用完即走",不用安装.不占用内存.入口众多等特性.不过早期由大厂商的专业程序员 ...

  8. java 安卓蓝牙程序_求Java大神帮忙,简单修改下安卓蓝牙串口输出程序代码!!急...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 附上蓝牙串口通讯代码, package com.test.BTClient; import java.io.File; import java.io.Fi ...

  9. 随机抽取学号的java程序_学生求大神带,在线等急把四十个人随机分成八个组每组五人,输入...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 public class Demo { public static void main(String[] args) { int group[]=getG ...

最新文章

  1. 计算机二级应用题改卷,全国计算机等级考试二级Python语言程序设计模拟试卷B卷综合应用题-Go语言中文社区...
  2. golang map嵌套struct 结构体字段 不能直接修改 解决方法
  3. 智能的定义是什么?如何正确理解智能家居?
  4. 速约~阿里云存储新品发布会
  5. c4.5算法 程序语言,决策树之C4.5算法详解-Go语言中文社区
  6. 黄峥辞任董事长,超级投票权失效!拼多多已成为中国电商第一
  7. 雷林鹏分享:AJAX 简介
  8. swift-switch使用方法
  9. Excel-VBA操作文件四大方法之一(1/4)
  10. 2021-08-10 C3P0连接池
  11. APP自动化测试--IOS
  12. 阿里云ECS云服务器快照
  13. OSChina 周五乱弹 —— 姑娘在这个节日里表白你接受么?
  14. fastjson解析json文本
  15. 二氧化硅纳米微球光子晶体乳液聚合聚苯乙烯核壳结构/中空二氧化硅/钛纳米微球的制备方法
  16. autodesk fbx sdk sample里面的工程无法调试解决方法
  17. EMC——青青子衿,居易安信
  18. 【嵌入式04】用寄存器HAL库完成LED流水灯程序
  19. 工资3000,靠国际版抖音TikTok月入2W+:这个风口真的很赚钱!
  20. 怎么将几张pdf合并成一张_如何将多个pdf文件合并成一个pdf文件?

热门文章

  1. 运维入门之CPU平均负载及问题排查
  2. 分享免费与收费的主流报表工具推荐
  3. C++时间日期的处理ctime
  4. ubuntu20.04未找到Wi-Fi适配器
  5. Vue.js实战——内置指令(二)
  6. [Power Query] 汇总表
  7. 推荐系统领域对比学习和数据增强论文及代码集锦
  8. 如何为 360 度审核提供同事反馈
  9. HDU-4417-Super Mario(划分树+二分)
  10. 金融核心业务流程整理