PID积分饱和 和 积分分离

1.积分饱和:积分是当前误差的累加ei_sum=ei_sum +err_now;积分饱和则是当你pid输出到了你想要的最大值,但存在外界干扰造成err_now当前误差仍然存在。这时积分还在不断增加,pid输出最大值不变,如果在该时刻你想要降低pid输出,就不会得到立马响应,要消除刚刚一直在加得积分积分饱和通俗讲就是系统在一个偏差方向上的饱和,比如一个系统设定了输出不会超过100,但因为出现一个方向上的偏差积分使得输出超过了100,此时达到了饱和状态,如果继续在这个方向上积分会导致PID控制超过100系统却运行在100,相当于积分调节对系统输出没有作用,就出现失控的状态,这是系统不能接受的,而且饱和积分越深,退出饱和就越久。上面是在正向的饱和,负向的饱和类似!

2.积分分离:在系统正常情况下,如果你突然设置目标值太大即err_now=(set_value-now_value)太大,这时积分一下就迅速增大,会造成系统不和谐。如刚开机时,误差就特别大。

3.解决方案:积分饱和是当你积分累加过大时,选择不累加下次积分,当出现反向积分时则累加。
积分分离是当你当前误差太大时,选择不使用积分。增量式pid没有积分,绝对式pid才有积分.

4.代码

PID speed;//PID结构体float speed_pid()
{u8 index=0;//速度输入限幅if(speed.f_set >=200.0) {speed.f_set =200.0;}if(speed.f_set <=-200.0){speed.f_set =-200.0;}speed.err_now = speed.f_set - speed.f_now;//err_now=float设置值 - float当前值if(speed.ei_sum>=speed.umax) //正向积分饱和处理  speed.umax这个值需要根据自己的系统调出{if(fabsf(speed.err_now)>speed.err_now_max) //积分分离  speed.err_now_max这个值需要根据自己的系统调出{index=0;//当误差大于speed.err_now_max 舍弃积分}else{index=1;if(speed.err_now<0) //当误差小于speed.err_now_max时,且是反向积分则积分累加否则不加speed.ei_sum = speed.ei_sum + speed.err_now;}}else if(speed.ei_sum<-speed.umin) //负向积分饱和处理  speed.umin这个值需要根据自己的系统调出{if(fabsf(speed.err_now)>speed.err_now_max) //积分分离  speed.err_now_max这个值需要根据自己的系统调出{index=0;//当误差大于speed.err_now_max 舍弃积分}else{index=1;if(speed.err_now>0) //当误差小于speed.err_now_max时,且是反向积分则积分累加否则不加speed.ei_sum = speed.ei_sum + speed.err_now;}}else//积分正常不饱和{if(fabsf(speed.err_now)>speed.err_now_max) //积分分离{index=0;//当误差大于speed.err_now_max 舍弃积分}else{index=1;speed.ei_sum = speed.ei_sum + speed.err_now;//积分不处于饱和状态,积分正常累加}}//标准绝对式  pwm_temp = P*err + i*(ei+=err) + d*(e_now-e_old);speed.value_out = speed.Kp*speed.err_now+ speed.Ki*speed.ei_sum*index+ speed.Kd*(speed.err_now -speed.err_next);speed.err_next = speed.err_now;//上次偏差//pid输出限幅if(speed.value_out>=32000.0) {speed.value_out=32000;}if(speed.value_out<=-32000.0){speed.value_out=-32000;}return (speed.value_out); //最终输出值}

PID积分饱和 和 积分分离相关推荐

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

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

  2. 反积分饱和 程序_三面大疆惨败,因为不懂PID的积分抗饱和

    0 前面的话 理想的PID算法往往不能满足实际使用中的很多场景,比如积分饱和的问题,因此需要在此基础上对积分器做抗饱和处理,积分anti windup的优化.这不,隆哥这次面试,直接挂在这么基础的知识 ...

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

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

  4. PID控制器开发笔记之三:抗积分饱和PID控制器的实现

    积分作用的引入是为了消除系统的静差,提高控制精度.但是如果一个系统总是存在统一个方向的偏差,就可能无限累加而进而饱和,极大影响系统性能.抗积分饱和就是用以解决这一问题的方法之一.这一节我们就来实现抗积 ...

  5. PID控制的深入探讨(位置式PID、增量式PID、PID的积分饱和)

    本文主要探讨PID算法在使用时的一些实际问题.处理技巧和方法,学习本节内容需要先对PID控制算法有基本的了解. 1)PID控制的基本原理 PID是一个二阶线性控制器,它具有不需要建立数学模型,控制效果 ...

  6. 抗积分饱和PID控制器

    积分作用的引入是为了消除系统的静差,提高控制精度.但是如果一个系统总是存在统一个方向的偏差,就可能无限累加而进而饱和,极大影响系统性能.抗积分饱和就是用以解决这一问题的方法之一.这一节我们就来实现抗积 ...

  7. matlab限幅器无饱和怎么设置,抗积分饱和算法:输出限幅.ppt

    抗积分饱和算法:输出限幅 模块八 数字控制器设计 本章要点 1. 连续化设计方法 重点:数字PID设计 2. 直接离散化设计方法 重点:最少拍控制算法 3. 大林算法与纯滞后控制 4. 模糊控制基础 ...

  8. 变速积分pid控制器matlab,变速积分PID控制系统设计.docx

    课程设计报告 设计题目变速积分PID控制系统设计 课程名称计算机控制技术B 姓名 苏丹学号 2008100731 班级自动化0803 教师闫高伟 摘 要 错误!未定义书签. Abstract 第1章数 ...

  9. PID控制器(比例-积分-微分控制器)

    PID控制器(比例-积分-微分控制器)- I 形象解释PID算法 小明接到这样一个任务: 有一个水缸点漏水(而且漏水的速度还不一定固定不变),要求水面高度维持在某个位置,一旦发现水面高度低于要求位置, ...

最新文章

  1. 设计模式(行为型模式)——访问者模式(Visitor)
  2. 迁移学习与微调的区别
  3. 几个经典的路由重分发实验
  4. 唤醒控件曾经拥有的能力
  5. go run 和 go build 和 go install 命令区别
  6. ASP.NET Core服务器综述
  7. LeetCode 1161. 最大层内元素和(层序遍历)
  8. 正则表达式2-测试代码
  9. (转)Spring Boot 2 (十):Spring Boot 中的响应式编程和 WebFlux 入门
  10. Python一题三解:查找字符串中每个字符的首次出现
  11. 攻防世界 php2,CTF-攻防世界-PHP2
  12. 专注CTF Pwn的著作终于来了!从此悟透各类漏洞利用技术
  13. GitHub桌面版 Github Desktop 下载
  14. linux下声卡配置文件,Linux设备配置之声卡配置
  15. JVM内存和垃圾回收-12.String Table
  16. 欢祝圣诞——北斗星的爱!
  17. cad怎么向下位移_CAD偏移快捷键命令(教你怎么绘制滚轮)
  18. cstring与string区别联系
  19. 从零开始学Python练习题(一)
  20. html表格摘要不会显示吗,Html表格lt;tablegt;还是须要加入一些标签进行优化,能够加入标题lt;captiongt;和摘要lt;table summarygt;...

热门文章

  1. 猿人学第五题上---代码
  2. PHP基于微信小程序的医院预约挂号系统 uniapp 小程序
  3. 联想Z5 Pro划时代旗舰发布 屏占比95.06%售价1998元起
  4. 路由器连接上但上不了网如何操作
  5. 阿里面试官Redis把我问到哑口无言…
  6. android 视频背景图片,安卓手机怎么给视频添加背景图片 上下图片中间视频画面的小视频制作...
  7. 【嵌入传播】Embedding Propagation: Smoother Manifold for Few-Shot Classification
  8. 详解重定向(HTTP状态码301/302/303/307/308)附案例
  9. 使用QVE视频转换器制作gif动图
  10. 如何应对工作中的冲突?