题目:用抗积分饱和PID控制传递函数为G(s)的被控对象

G(s)=523500/(s^3+87.35s^2+10470s)

二、抗积分饱和原理

积分饱和现象是在系统存在一个方向的偏差,PID控制器的输出由于积分作用的不断加大而加大,从而导致执行器达到极限位置,如果控制器的输出继续增大,阀门开度却不能再增大,此时计算机输出超出了执行器正常操作的范围而进入了饱和区。一旦系统出现反方向的偏差,控制器的输出逐渐退出饱和区,但若进入的饱和区很长,那么退出饱和区的时间也就很长,在饱和区这段时间执行器仍停留在极限位置而不能随偏差的反向立即做出相应的改变,就好像系统失去了控制一样,造成控制性能恶化,这就是积分饱和。

作为防止积分饱和方法之一就是抗积分饱和法。思路是在计算U(k)时,首先判断上一时刻控制器的输出量U(k-1)是否已经超出限制范围。

若U(k-1)>=Umax,则只累加负偏差,正偏差则去掉积分作用;

若U(k-1)<=-Umax,则只累加正偏差,负偏差则去掉积分作用;

三、程序清单:

%PID Controler with intergration sturation

clear all;

close all;

ts=0.001;

sys=tf(5.235e005,[1,87.35,1.047e004,0]);

dsys=c2d(sys,ts,'z');

[num,den]=tfdata(dsys,'v');

u_1=0.0;u_2=0.0;u_3=0.0;

y_1=0;y_2=0;y_3=0;

x=[0,0,0]';

error_1=0;

um=6;

kp=0.85;ki=9.0;kd=0.0;

rin=30; %Step Signal

for k=1:1:800

time(k)=k*ts;

u(k)=kp*x(1)+kd*x(2)+ki*x(3); % PID Controller

if u(k)>=um

u(k)=um;

end

if u(k)<=-um

u(k)=-um;

end

%Linear model

yout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(2)*u_1+num(3)*u_2+num(4)*u_3;

error(k)=rin-yout(k);

M=1;

if M==1 %Using intergration sturation

if u(k)>=um

if

error(k)>0 %前一时刻PID输出值超出控制器的最大限度,而当前的偏差为正,说明被 alpha=0; %控量未达到设定值,防止积分饱和故去掉积分作用

else

alpha=1;

%前一时刻PID输出值超出控制器的最大限度,而当前的偏差为负,说明被 end %控量超出设定值,应该较小控制器的输出,则加上积分作用

elseif u(k)<=-um

if error(k)>0

%这是历史PID输出值超出控制器的最小限度,道理与超出最大限度的一样

alpha=1; %一定要区分是前一时刻的PID输出值和当前的偏差情况共同判断是否加积

else

%分作用

alpha=0;

end

else

alpha=1;

end

elseif M==2 %Not using intergration

sturation

alpha=1;

end

%Return of PID parameters

u_3=u_2;u_2=u_1;u_1=u(k);

y_3=y_2;y_2=y_1;y_1=yout(k);

error_1=error(k);

x(1)=error(k); % Calculating P

x(2)=(error(k)-error_1)/ts; % Calculating D

x(3)=x(3)+alpha*error(k)*ts; % Calculating

I

xi(k)=x(3);

end

figure(1);

subplot(311);

plot(time,rin,'b',time,yout,'r');

xlabel('time(s)');ylabel('Position tracking');

subplot(312);

plot(time,u,'r');

xlabel('time(s)');ylabel('Controller output');

subplot(313);

plot(time,xi,'r');

xlabel('time(s)');ylabel('Integration');

当M=2时即无抗积分饱和:

 当M=1时即有抗积分饱和:

由上图比较得到,加抗积分饱和后超调量明显减小,而且系统能较快的达到稳定值,系统的稳定性和精确性得到改善。

四、结语:

积分饱和和积分分离是两个不同的概念,从他们的原理可知,积分分离是偏差来决定是否加入积分作用;而积分饱和则是由前一控制器的输出值和当前的偏差值的情况共同决定是否加积分作用。

·

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

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

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

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

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

  3. java积分签到功能_大河客户端积分商城上线,看新闻就能换取各种超实用奖品,来约...

    大河报·大河客户端记者 段伟朵 "在大河,爱中国",读新闻攒积分即可换好礼啦!今年是新中国成立70周年,在祖国母亲生日到来之际,大河报给读者送上祝福和礼物,即日起,大河客户端积分商 ...

  4. tec控制pid程序_半导体制冷片tec元件PID温度控制求解

    刚才发错地方了 再发一次 以前学的是信号处理,完全没接触过单片机,现在接到一个关于arduino温度控制的项目,控制tec元器件,温度从0度升到100度,然后再从100降到0.每次升温或降温都是10度 ...

  5. 怎么用python控制另一个程序_超干货!Python流程控制

    流程控制指的是代码运行逻辑.分支走向.循环控制,是真正体现我们程序执行顺序的操作.流程控制一般分为 顺序执行.条件判断和循环控制. 一.顺序执行 Python代码在执行过程中,遵循下面的基本原则: 普 ...

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

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

  7. java线程池饱和策略_线程池的饱和策略-调用者执行 | 学步园

    java并发编程实践阅读笔记之线程池的饱和策略 使用java的任务管理框架的线程池执行任务时,线程池的任务等待队列被填满时,饱和策略开始发挥作用.ThreadPollExecutor的饱和策略通过se ...

  8. python语音控制电脑程序_用Python编程实现语音控制电脑_天津SEO

    天津SEO 电脑面前的你,是否也希望能让电脑听命于你? 当你累的时候,只需说一声"我累了",电脑就会放着优雅的轻音乐来让你放松. 或许你希望你在百忙之中,能让电脑郎读最新的NBA比 ...

  9. PID控制算法的C语言实现六 抗积分饱和的PID控制算法C语言实现

    所谓的积分饱和现象是指如果系统存在一个方向的偏差,PID控制器的输出由于积分作用的不断累加而加大,从而导致执行机构达到极限位置,若控制器输出U(k)继续增大,执行器开度不可能再增大,此时计算机输出控制 ...

最新文章

  1. MySQL 数据库常用命令—insert delete update select
  2. leetcode算法题--从尾到头打印链表
  3. mvc大对象json传输报错
  4. 系统中常用操作基类(SSH项目中)非常非常经典的部分
  5. 我是这样入侵 Hacking Team 的
  6. v-for和v-if的问题
  7. 如何手动添加或者修改海威康视摄像头IP地址的方法
  8. STM8S103之独立看门狗和窗口看门狗
  9. 科普类(二)先有鸡还是先有蛋?看看C语言怎么说......
  10. 网易AI工程师面试常见知识
  11. html图片缩小属性,CSS属性实现同比例缩小图片
  12. 无需编程,DIY自己智能小车的Android蓝牙遥控软件(三)
  13. 控件为何不能自动装载?--全面总结
  14. java优化for循环
  15. 多种经典色差计算公式——matlab代码
  16. 完美世界乐逍遥笔试面试
  17. JPEGLS图像压缩算法的FPGA实现(一)压缩算法
  18. mysql查找字符第n次出现位置_查找字符在字符串中第N次出现的位置
  19. 阿里云windows服务器安装mysql
  20. 28335学习之《模数转换器ADC》

热门文章

  1. Cloud一分钟 | 谷歌退出美国防部云计算竞标;网络黑灰产业已近千亿,个人信息泄露是源头...
  2. 嘿,运维!你与VXLAN有场约会……
  3. 效率提升,英特尔助力企业驶入“快车道”
  4. linux推出超级用户_linux添加root权限用户
  5. 如何用c语言程序写一段英文字母,菜鸟求助,写一个随机输出26个英文字母的程序...
  6. zend连接mysql_zend_db连接mysql(附完整代码)
  7. vsftpd FTP Server ‘ls.c‘ 远程拒绝服务漏洞(CVE-2011-0762)漏洞修复方案
  8. ETL异构数据源Datax_datax-web简述_09
  9. idea terminal 不支持中文
  10. Vue-touch的使用