热敏电阻测温点位置不同,是否会影响PID参数设定?

在下面是程序提供者回复的一些问题:
//共享一个西门子PLC上所使用的软件PID程序(FB58),我已将其改为C语言代码,并已在关键地方附有中文注释,带自整定功能。经测试,自整定后的PID参数非常好用,这就解决了繁琐的参数整定问题了。不过就是占内存大些,基本都是浮点运算,如果使用stm32f3或f4那就更爽了。再上传一份西门子fb58的中文资料供参考。(后续补充说明在8楼。)

//这个程序是比较繁琐,我研究了一个月时间才搞定。给大家一些提示,这是属于位置式PID,程序本身即可以模拟输出,又可以PWM控制输出功能(用开关变量控制),只要将程序放在定时器中断中或单独一个线程中(ucos或其它,我用的是RTT)直接调用就可以了。所谓step 7指的是参数自整定是用7步搞定的,这个在资料中有说明。
//有一问题需要补充下:TIME_TCK()函数需要自已添加,他的功能大意是在自整定的1阶段时需要外部定时器计时,这个定时器要跟程序循环周期参数做比较,差值超过5%整定就会失败的。TIME_TCK()函数只要在外面用1ms的定时器就可以了。另外在C原程序中将//tTime = TIME_TCK();去掉注释,我没记错的话应该是两个地方。例如:
//在PID程序中添加以下函数:

我大略研究过,这个FB58的PID程序是经过优化的,即积分使用的是抗积分饱,微分属于不完全微分功能。整定后的参数有两组PI和PID,用户可以随时调用或切换。所以这个PID程序我认为已经可以满足大多数场合的需要了,当然也不只是控制温度变量,其它压力,流量等慢速响应变量都可以应用的。
我测试的控温精度能达到0.1度(结果出来后,我自己都感到惊叹),当然这只是在我这个项目中的测试结果。以后也看大家测试效果了。这跟你使用的控温环境及控制策略等有很大关系。
这个不太好说,还是先吃透资料吧,上面有告诉你整定失败的大致原因。提示下:看看STATUS_H和STATUS_D变量回的数据是多少,对照资料说明可查下原因。
原程序之所以将所有变量定义成全局变量,就是这个意思。也就是说所有大写的变量都是接口,所以定义到.h文件也就设多大意义了。这个只要根据自已的应用去引用相应的外部变量就行了。比如QPULSE 就是对应外部输出脉冲引脚的接口,只要一条赋值语句就行了。

我的理解是两种整定方式都需要一个比较稳定的工作点,只是起动方式不同而已。根据我的测试,这个 ...

首先感谢楼主的热心解答,在此谢谢!,下面还有几个疑惑,还请楼主在百忙之余帮小弟看下,谢谢

请问楼主里面的CYCLE就是PID模块的控制周期吧?我设置成1s,就是需要1s钟计算一次PID的输出值。
那么过程量的采样,即采样周期一般是不是要跟CYCLE一致啊?我是在每次PID运算前,更新的过程量,不知这样对不对。我想过程量的更新跟PID的计算不同步不及时,PID的结果也是无意义的把

为什么老是20100呢? 其实用20100整定出来的参数是能用的,效果也很不错,0.1度很轻松的。但是就是不明白为什么不是10000
这句话一直没能理解 “特殊情况, 纯粹的PT1 处理:不要重复,可能弱化控制器参数” ,, 何谓PT1啊

下面是我的整定波形,TUN_DLMN 已经调到最小了,因为我想细化温度段,每个温度段10度整定一次参数。这样单片机查表自动更新参数。前两次CYCLE=1S,后三次CYCLE=0.5s。只有第一次0.5s 得到10000的状态

1、我理解的CYCLE和过程量的更新跟你的理解是一样的,完全正确。
2、这个“PT1”(猜测是Process Type的缩写即过程类型)我理解就是资料的3-2页中说明的过程类型I(典型温度过程),因为(TU < 3*CYCLE)就说明这个滞后时间很小了(CYCLE=1就小于3秒了,应该是够快了),所以这种情况应该是属于过程类型I的殊特情况,再加上你测试的效果就说明应该是没问题的。
另外赞一下这位兄弟,研究得已经很透彻了,其实这里面很多细节问题由于时间仓促我也没有过多的仔细研究,毕竟个人能力有限,这还得象楼上的这位兄弟那样需要大家共同来补充。这样咱们才能把这个程序应用得更好。这个上位机软件做的也不错哦,labview做的吗?从图上看整定后的参数很不错了。

哈哈,谢谢楼主的指点迷津,其实上图只是自整定的过程,用整定出来的参数跑比这个还要好,哈哈,响应那叫一个快,稳定0.1度以内。这个是用VC6.0做的,只不过我用了一个iocomp公司的iplot曲线显示控件。
您说的很对,现在STATUS_D输出的状态就是 过程类型1,就是这个意思,太谢谢您了!哈哈,从整定的响应度上也可看出来,增加5%响应曲线就很陡。
我开始还纳闷了,20100出来的参数就这么好,10000该有多好啊,哈哈,
我现在要做的是20-400的宽范围,并且目标值是一个不确定的,动态变化的温控系统,还得继续努力啊,我想不同的温度段PID参数应该不一样,这应该就是系统本身非线性度照成的吧,只是猜测,楼主这方面经验丰富的话,可以指点一二,谢谢
一个不稳定的控制系统要用一个PID参数能稳得住也不太可能,设置多段PID参数是个办法,或者可以考虑模糊PID控制;如果控制系统比较稳定的话,也没必要这么麻烦,要是单就改变设定温度时为防止过冲太大的话,其实PFAC_SP参数就是起到控制作用的,不用人为动参数,程序自动控制了。个人所见,不一定对。

CYCLE_P指的是脉冲采样周期,要开启PULSE_ON,就必须与你的PID程序调用周期(非CYCLE)一致,这样才能保证整定时不超过5%,比如设置CYCLE_P=0.01,那你的PID调用周期也得是0.01s,你要用1S时间,那整定时肯定报错了。那为什么你关了PULSE_ON就好了呢,我猜是你的CYCLE是1S秒,所以它就好使了。
一般的用法是,如果开启PULSE_ON,那就让PID程序调用时间间格=CYCLE_P,否则PID程序调用时间间格=CYCLE,这就应该没问题了。
PULSE_ON要开启的话,一般用在响应比较慢的控制上,因资料上说明“为获得足够精确的可调节变量分辨率,一定要确保下列关系式:CYCLE_P ≤PER_TM/50。”,这就说明,如果CYCLE_P=0.01(10ms调用周期对单片机来说是差不多是极限了),你的PWM更新时间也就是0.5秒钟,即使CYCLE设置比0.5小,我认为这也影响了PID的响应时间了;要想达到更快的时间响应,那就关闭PULSE_ON,将LMN输出直接更新单片机硬件PWM的脉冲时间,如CYCLE=0.02时,为保证PWM更新时间也为0.02S,如果要达到100%的PWM精度,则设置硬件硬件定时器分频后的计数周期为200us,PWM周期设为为20ms,这对于stm32来说实现这个PWM是很轻松的,还提高了效率,当然前提是你的执行单元能跟上响应速度。如果用固态之类的话,开启PULSE_ON也是可以的。
我想这个PULSE_ON是为PLC控制输出方便用的,要用在单片机上,用自身的硬件定时器实现输出PWM应该更合理些。

我CYCLE设置的是0.2s,pid这个函数的调用是我放到一个0.2s的定时器的。 我记得资料上说。PULSE_ON关闭后,会使CYCLE_P =CYCLE,所以整定就通过了。 最后我也是自己直接利用LMN这个变量,设置PWM,控制精度也达到了0.1度。
很感谢楼主搞得这个代码,很不错。

经过半个多月的实际应用(AC220V100W加热器),确认自整定的参数控温精度能达到正负0.1度,现有以下问题依旧未解决,还请楼主大侠及各位同道多多指点:
(1)如果设定的温度与环境温度相差大于20度,从上电开始启用PID自整定功能,升温速度好慢好慢,请问有什么方法能缩短这个时间吗?
(2)在实际温度大于设定温度时启用PID参数自整定功能控制器无法整定出合理的参数,而且温度会一直上升直到加热器烧坏(很容易出事故);
(3)如果在 设定温度减实际温度小于20度时开启PID参数自整定功能时,控制器自整定的参数控温效果不理想,有3度左右的偏差;

在应用中我开启了脉冲控制器,看过楼主大侠的回帖:不用开启脉冲控制器直接用LMN也能实现高精度控温,想了好久也没能想透用LMN如何实现,还请楼主大侠将这一部分代码贴出并做一个说明,谢谢!!

(2)实际温度和设定温度接近时,建议要用改变设定值方式启动自整定,如果采用手动开启,在没找到拐点之前温度会一直上升,所以不要用这种方式。
LMN跟其它PID控制输出是一个道理,比如控制输出0-100之间的数值(区间可以任意修改,跟据你的PWM控制精度有关),然后自已添加代码去更新你的Time定时器控制输出的PWM脉宽。

1、整定的参数比较理想,一般就不需要整定了。
2、搞PID控制首先就得考虑环境等其它影响因素,比如恒温箱,当然要考虑保温了,目的也是为了降低环境的影响。但一般季节影响因素应该不会很大,因积分可以消除静差,所以温度肯定会恒定的,只是会影响恒定时间。
3、自动判断稳定条件?没敢这么用过,除非你可预知这种不稳定因素,那就多弄几个参数。一般自整定是为了前期调试用的,调好了就不要动了。可不要一味的信任自整定,最好还是人为干预为好。

这是一个小项目,采用NI的my-DAQ做数据采集,需要采集的数据有温度(LM35),气体(MQ2),需要控制的设备有风扇.加热棒,另外还有光照亮度调节. 一.数据采集 1.LM35 LM35是模拟输出的温度监控芯片,其输出电压和摄氏温度成线性比列关系,本项目采用的是TO92封装的LM35D,温度监测范围为0~100℃,工作电压在-0.2~+36V,其封装和引脚对应的关系如图1,需要注意的是,该图是底部视角. 图1.LM35D引脚对应关系 如果要简单使用,则GND接地,VSS接+5V,VOUT接m

回答数:3994 | 被采纳数:1

PID温控仪的优点: 1、可外接热电阻传感器Pt100、Cu50,热电偶传感器K、E、J、N、T、R、S、B,共十种传感器信号兼容输入,充分满足控制现场的需要。 2、SSR电压型无触点式PID控制输出,继电器有触点式PID控制输出,两种方式可任意选择。 3、既可用于加热控制,也可用于制冷控制,可按现场的需要任意选定。 4、继电器报警输出可满足多种报警方式的要求。 5、具有PID参数自整定功能,可自动适应不同的被控制对象。 6、无效零消隐,全部参数设定值都有停电记忆。


我要回帖

更多关于 热敏电阻温度计 的文章

 

随机推荐