- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种PID温度控制算法设计与实现
一种PID温度控制算法设计与实现 摘 要: 介绍温度控制中一种实际应用中效果良好的通用的PID温度算法,说明其原理、设计、流程、应用。
关键词: PID算法;温度控制;相对误差;控制值;分段积分
中图分类号:O231 文献标识码:A 文章编号:1671-7597(2013)0110057-02
0 引言
在仪器设备的制造中精准地控制温度经常成为制造成败的关键,从快速成型设备到小小的自动烹饪锅都离不开它,而PID(Proportional Integral Derivative)控制这种技术成熟、应用广泛的控制策略是在控温中经常会采用的策略。
最近有几个项目都要求实现PID的温度控制,本人尝试用VC做了一个PID温度算法的程序,在实际中得到了比较好的应用。
1 原理及设计
PID控温算法的原理简单的说是在一个闭环系统中根据测量到的温度与设定温度的差异来调节温度控制器,以求最后达到稳定的设定温度。
这其中分成三部分:测量温度,计算控制值,控制温度。
1.1 测量温度
温度的测量比较简单,一般在程序中通过端口读取所连接测温模块的数据就可以得到。当然实际测量的一般是电压之类的值不会是实际温度,但这个电压与温度的关系表一般厂家会提供,可以把那些具体数据拟合为适当的计算公式,这样就可以轻松的把电压转换为近似温度了。
1.2 计算控制值
这是最重要的部分。它通过测量到的实际温度值与设定要达到的温度值的偏差来计算。一般做法是直接用这个绝对误差值来计算,但考虑到这个绝对误差对控温的影响与实际设定温度有关,从通用性的角度,本人特意用相对误差代替了绝对误差,并为了计算方便加大了100倍,通俗的说就是改成了测量温度与设定温度的误差百分数。具体相对误差的计算如式1所示。
Error=(SetPoint-Curvalue)*100/SetPoint (1)
其中Error指相对误差,SetPoint指设定要达到的温度,Curvalue指当前测量得到的温度。
计算控制值的基本公式也是采用普通的增量式PID算法,如式2所示:
U(k)=kp*error(k)+kiΣeror(j)+kd(eror(k)-eror(k-1))
(2)
其中u(k)指要求的k时刻的控制值,error(k)指k时刻的相对误差,kp为比例系数,ki为积分系数,kd为微分系数。在采样周期一定的情况下式2中的ki、kd已经把采样周期的值计算在内了。
因为在整个PID控制的启动、结束或大幅度增减设定时,短时间内系统输出可能有很大的偏差,会造成PID运算的积分积累,引起系统较大的超调和振荡。特别在温度变化比较缓慢且带有纯滞后环节时,若采用单纯PID控制,当有较大扰动或大幅度改变给定值时,会产生较大的偏差,所以参考别人的做法对式3中的比例系数做了进一步调整,增加了一个分段积分的变化系数λ,最后公式定为:
u(k)=kp* error(k)+ λ*kiΣeror(j)+kd(eror(k)-eror(k-1)) (3)
而λ的取值是随着当前相对误差的绝对值的改变而改变的,基本上可以设计为一个分段函数。当相对误差的绝对值越大时,也就是测量值偏离设定值越大时希望让积分系数的影响越小,就把λ取小;相反,当相对对误差的绝对值越小时,就是测量值越靠近设定值时就希望让积分系数的影响越大,就把λ取大些,可以按式4设置λ。
1.3 控制温度
一般来说,控制温度是对温度控制器的电热元件之类如发热丝、加热棒进行控制。在简单的控制系统中只能控制加热或不加热两种状态。但如果只根据计算出的控制值与某个阀值的大小在一个周期内做加热或不加热两种的控制,一来使计算出的具体控制数值大部分失去了控制意义,不能发挥作用,二来更重要的是使温度控制器控温的惯性温度误差问题显得更加严重,不容易精确的稳定住温度。
由于控制温度是要控制加热的功率,而加热功率除了与加热器本身能力有关外,也与加热的时间有关,所以我们可以通过控制周期内加热时间的长短来控制加热器,如果把控制器的加热状态当成1,不加热状态当成0形成一个PWM的方波的话,那么也就是说可以用控制值控制这个PWM的占空比来控制加热功率。
基本的控制程序可以类似下面的代码来实现:
double minval=0;
int times=int(1000*m_SampleTimes);
if(controlvalminval){
unsigned int th;
unsigned int tl;
double bili;
double limit=100;
if(controlvallimit)
您可能关注的文档
最近下载
- 人民版劳动教育四年级上册全册教学课件.ppt
- 三年级上册道德与法治课件-第一单-快乐学习-单元梳理-部编版(共28张PPT).pptx VIP
- 蛋白质工程蛋白质设计课件.ppt VIP
- Haier海尔洗衣机XQB100-M21JDB使用说明书手册参数图解图示pdf电子版下载.pdf VIP
- 提高住院患者大小便标本送检率PDCA.pptx VIP
- 2025年建设应急避难广场的可行性研究分析报告.docx
- 2025年扬中锂电铜箔项目可行性研究报告.docx
- 2025年中国注射用环磷腺苷项目创业计划书.docx
- 2025年可行性研究报告怎么写3.docx
- 2022年江苏省安全员C1证(机械安全员)考试题库大全(含答案).docx VIP
文档评论(0)