本帖最后由 MissFortune 于 2019-4-25 09:51 编辑
各位大佬号, 小弟最近在做一个温度控制的事情,在实际测试过程中发现温度在变化过程中会 有异常的现象,左思右想都没有找到解决方法。
电路描述如下:
1.传感器是使用PT1000,平衡电桥+ADC采集电路,使用的是TI的ADS1120,24bitADC芯片,平衡电桥的电源采用AMS1117-33(附图),计算温度的公式也是按照PT1000的计算方法的运算;
2.控制器采用STM32;
3.驱动电路采用IR公司的驱动芯片+MOS管H桥,实际使用的PWM最大占空比未90%(防止自举电容不能充电),但很少有机会能达到90%;
程序描述如下:
1.采用经典的增量式PID控制,PID.result 为输出占空比(最大绝对值为92%)
2.下位机接受到温度指令数据之后,将设定温度与当前温度根据PID公式计算;
3.下位机的温度数据接收是使用串口中断;
4.温度控制在定时器中断中运行,保证温度控制具有周期性,周期为5ms;
5.下位机的温度数据,每间隔1s发一次实时温度到上位机中,发送方式使用DMA+串口(发送时间间隔调整,不用DMA也仍然存在下述现象)
- PID.result += PID.p * (PID.err_current - PID.err_last) ////PID.p = 45
- + PID.i * PID.err_current ////PID.i = 0.35
- + PID.d * (PID.err_current - 2*PID.err_last + PID.err_previous) // Pid.d = 0
- ;
测试过程如下:
每次变更温度时由电脑端在串口调试助手上发送温度指令,例如 T=30, T=56, T=96;
现象:
1.每次发送温度指令之后,温度都会有反向的冲击,尤其是在高温向低温变化时更为显著,在电路板的VREF电源上增加了电容,没有起到效果;
请问各位大佬有没有相关的指导经验给小弟一些参考,诚心拜谢各位的指导,如果有未补充的,请留言,谢谢!
|