我最近在做一个恒温箱,使用可控硅控制加热丝加热。温度采集用的是DS1B20。想用PWM控制可控硅。
过零检测电路,输出100Hz的方波信号,触发单片机的外部中断(每10ms产生一次中断),对产生的中断次数(方波下降沿/过零点次数)进行计数,满200个为PWM的周期(即PWM的周期为:2S),每个周期的前X次中断,为输出高电平(即加热)的时间,剩下的200-X次中断,为低电平。根据采集回来的温度,调整X的大小(即输出高电平/加热的时间)。
现在遇到的问题是:如何根据当前检测到的温度,来调整X???我觉得PID算法最好了,至少要有个PD或者P算法吧???可是我对这些算法真的一点都不懂,看过一些这方面的资料,可是还是不懂,真的很头疼!烦请各位大神帮帮忙,写一下这部分的C程序?在此万分感激!
温度控制还是比较简单的,因为温度变化比较慢,算法不用太多的优化应该就能实现。具体的没有用过
提示一点,可控硅的关断不是能由PWM完全控制的,可控硅需要在过零点才能关断,你也许已经考虑到了。
温度控制非常简单,楼主的项目显然是大滞后对象,温度精度也没提,估计不会高,那用接近法或PID算法都可以,用自带过零触发的光耦可控硅驱动双向可控硅带载,集成式半导体温度传感器采集对象温度即可。
回复 沙发 jishuaihu 的帖子
这点考虑到了,就是在过零点时,IO口输出高电平,使可控硅导通,这样,只要IO口还是高电平,就算到过零点,可控硅也不会断开的。直到IO口输出低电平后,下一次的过零点时,可控硅会自己断开的。
回复 板凳 chunyang 的帖子
精度当然要越高越好~
我就是想要一个自整定PD算法,可是不会写。。。