常规PID控制或算法如下:

uc=Kc*(e+∫e*dt/Ti+Td*de/dt)

或者用传递函数表示:

Gc(s)=Kc*(1+1/(Ti*s)+Td*s)

如果用计算机实现PID算法,那得用数值积分和数值微分来代替积分和微分运算,即Δt代替dt,用∑运算代替∫运算,用差分代替微分运算,但每次作∑运算显然是不合理的,1是计算量大,2是随着时间增加,变量将趋无穷多,这也是不可能的,所以,改成增量计算是更好的方法,这样PID控制的增量计算式为:

Δu=Kc*{e(k)-e(k-1)+e(k)*Ts/Ti+[e(k)-2*e(k-1)+e(k-2)]*Td/Ts}

式中Ts为采样时间,Kc为比例增益,Ti是积分时间,Td是微分分时间。

这个算式在单片机中实现是非常简单的。

采样时间通常来说,流量系统一般是1-2秒,压力系统一般是3-5秒,液位系统一般是3-5秒,温度系统一般是15-20秒,在STM32F407上,我们把采样时间定为1秒,这能满足通用要求。

STM32F407上,PID控制的效果如图1所示。

从图中可以看出,仿真情况由WINCC组态软件显示,监控画面主要由一个在线趋势控件、三个输入/输出域、两个按钮组成,在线趋势控件显示过程值曲线,输入/输出域显示过程值,一个按钮实现自动/手动切换,另一个按钮实现自动整定切换。

图1中调节器输出曲线(蓝色线)有突变现象,那是由于STM32F407串行通讯中,接到的设定值(SP)或者过程值(PV)出错而造成的,对接收的SP和PV数据进行异常处理后,这个问题就解决了,此时,实时仿真情况如图2所示。

图1和图2都是没有干扰情况下进行的仿真,而现实世界中都有电磁干扰存在,那时情况又如何?我们在SIMULINK模型中加入有限带宽的白噪声,在此基础上进行仿真,结果图3所示,从图中可以看出,调节器输出MV(执行变量)波动很大,如果调节器后面的执行机构是调节阀,那么调节阀阀杆摩损被加速,缩短调节阀寿命。

对付干扰的一个方法是对信号作滤波处理,控制工程中常用的滤波方法有:1算术平均滤波,2滑动平均滤波,3一阶低通滤波,其传递函数为Gf(s)=1/(Tf*s+1),低通数字滤波实现,1)是可以将微分方程转换为差分方程,然后进行代数运算,2)是用控制系统仿真中离散相似法进行计算,我们用的后者,低通环节也是一阶系统,后面还将应用在smith预估补偿控制中,低通数字滤波实现其实还有其他方法,这里不再赘述。

对过程值(PV)进行滤波处理后,仿真情况如图4所示,从图中可以看出,调节器输出波动小了很多。

用STM32F407玩控制—常规PID控制

用STM32F407玩控制—常规PID控制


用STM32F407玩控制—常规PID控制



用STM32F407玩控制—常规PID控制

关键字:STM32F40  常规PID控制 引用地址:用STM32F407玩控制—常规PID控制

上一篇:用STM32F407玩控制—不完全微分PID控制
下一篇:用STM32F407玩控制—通信

推荐阅读

集微网消息,市场研究机构Frost & Sullivan数据显示,2017年按营收计,比特大陆已是全球最大的基于ASIC的加密货币矿机公司,占据全球74.5%的市场份额。该公司在最近的招股书中表示,公司是“专门从事比特币、比特币现金、以太币、莱特币、达世币和Zcash等加密货币挖矿ASIC芯片的前端及后端设计,并与业内领先的生产合作伙伴制造芯片及硬件产品。”据比特...
互联网、、人工智能等技术与机器人产业加速融合,促使机器人技术及其产品也发生天翻地覆的变化。大象机器人以全新逻辑,持续在机器人算法、控制器、及产品开发方面创新和投入,布局安全机器人细分市场,以满足市场多元化的需求。 伴随智能化、信息化、网络化的不断发展,机器人技术及其产品也发生着天翻地覆的变化。在汽车行业,工业机器人一改以往固定...
存储芯片占据半导体产业总产值的1/5、晶圆产能和资本支出的近1/3,且周期性强于半导体产业整体均值,从而成为半导体产业景气度的“风向标”。而关于存储行业的并购也在不断的浮出水面,近日,SK 海力士90亿美元收购英特尔NAND闪存业务引发了不小的波动。近几年这些存储巨头市场活动的背后,也代表着存储芯片技术之间的角逐。 DRAM 、NAND格局:几家独大,...
10月20日,在2021云栖大会上,阿里云宣布自研云原生关系型数据库PolarDB重磅升级,实现内存池化、多主架构、HTAP实时分析等创新功能,进一步引领云原生数据库技术的持续创新。阿里云智能数据库事业部总负责人李飞飞表示,PolarDB将云原生进行到底!本次技术升级中,PolarDB实现了三项创新:第一,业内首次实现内存与计算、存储的三层解耦,实现内存池化,...

史海拾趣

问答坊 | AI 解惑

如何成为一位杰出的工程师-How to be a Star Engineer

如何成为一位杰出的工程师-How to be a Star Engineer Robert E. Kelley, Carnegie Mellon University (Robert E. Kelley, \"How to be a star engineer,\" IEEE Spectrum, pp. 51-58, Oct. 1999.) 翻译:马仕毅 在1985 年,我被问了一些问题,从那 ...…

查看全部问答∨

一次小教训

大家都知道,场输出电路的升压电容有问题会损坏场块,因此,每次碰到场块烧毁时,我总是把升压电容一块换掉。但是,今天接修了一台康佳F5428D却因偷懒而白百烧掉了一块场块。该机用LA7688作中放,LA7837作输出,故障现象是一条水平亮线,查场块烧毁 ...…

查看全部问答∨

求助各位大侠小弟刚刚接触单片机

晶振频率为12M要产生200HZ方波需要的时间怎么计算?…

查看全部问答∨

给大坛子的小建议

我看了咱们坛子里有不少讲如何学习单片机的,讲的很详细,很不错。 但是 我搜了半天想看看一个比较系统的讲PCB设计电路板制作的居然没有?!不知是我没找到还是....我的想法很简单,最好做个系列教程---就讲一个简单的51学习板怎么制的。我觉的这 ...…

查看全部问答∨

在SQL ServerCE中怎样判断一个表是否存在

在SQL ServerCE 中怎样判断一个表是否存在,如果存在的话,删除这个表…

查看全部问答∨

dm9000a 丢包问题

x86架构,VxWorks系统,dm9000a包长为100时,100W包不丢包,包长为1470时,3W丢大约100包左右。 可以怎么来改善?…

查看全部问答∨

该做嵌入式还是游戏平台?

小弟做了一年的Vc开发 现在刚进入一家公司做嵌入式开发 本来很有兴趣,但是没有人教,全是自己看,看了一个月大概明白了,但是感觉离开发还有一定的距离。另外有一家公司是做游戏平台的,类似浩方平台那种,刚刚创办,上手应该很快的,现在犹豫不 ...…

查看全部问答∨

请问IFG1中的 OFIFG(晶体出错中断标志)可不可以软件清0???????

请问IFG1中的 OFIFG(晶体出错中断标志)可不可以软件清0??????? do { IFG1 &= ~OFIFG; // 清除OSCFault标志 } while ((IFG1 & OFIFG) == OFIFG); // 如果OSCFault =1 //等待OSC ...…

查看全部问答∨

【国赛专贴】MSP430讨论贴

大家有多少人在国赛中使用MSP430呢?遇到问题,就开贴提出来吧!众坛友们再线讨论,帮你排忧解难!还等什么呢?把你纠结的地方提出了吧!…

查看全部问答∨

nios中OSMutexCreate();优先级可以给0

ucos-ii操作系统 nios中OSMutexCreate();优先级可以给0? OSMutexCreate(0,&err);好像有问题,给其他值没问题,优先级可以为0-63,不知道这里对不对…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved