nmo是什么单位,nmo是什么化学物质

  

  几年前,我设计了一款带液晶屏的产品。一般情况下,液晶显示屏的工作温度为常温型0-50,宽温型-20-70,超宽温型-30-80。   

  

  众所周知,俄罗斯和北欧国家冬天冰雪覆盖,地面冻得冰凉。即使在白天,气温也可能低至零下50摄氏度。   

  

  所以要求这款产品的工作温度在-40-70,也就是说液晶屏在-40下仍能正常工作。   

  

  我们的解决方案是通过NTC检测温度,用PWM驱动功率电阻产生热量进行加热。   

  

  好在产品体积比较小,电路板和液晶屏都密封在外壳里,只需要消耗少量的电量就能达到很好的加热效果。   

  

  其实在这个产品之前,公司也有别人设计的类似产品。最初的方案是根据阈值控制功率电阻的导通或断开,即:   

  

  当检测到的温度低于-15时,MCU的IO口输出高电平,开启NMOS,给功率电阻供电,使其发热;   

  

  当检测到的温度高于-5C时,输出低电平以关闭NMOS并停止功率电阻器的加热。   

  

  这种简单的模糊控制方式不仅浪费电能,而且无法在低温下为电子元器件和液晶屏提供-10的恒温工作环境。   

  

  恶劣的工作环境影响了这些设备的心情。也许他们会罢工或提前退休。   

  

  作为一个有几十年工作经验的工程师,我深知“细节决定成败”的真谛,所以在这个供暖方案上做了一些创新:电路还是那个电路,器件还是那个器件;   

  

  温度检测和电阻加热电路原理图   

  

  温度检测相对简单。3.3V的参考电压经NTC和R2分压后送到单片机的ADC端口。   

  

  MCU的PWM口受R4限制,R5的漏电控制NMOS Q1驱动10欧姆的电源电阻R3发热。   

  

  采用控制NMOS的端口由普通的IO口改到PWM频率为1KHz、占空比为0%-100%可调的PWM信号驱动NMOS,使功率电阻R3产生可调热量;   

  

  将编写MCU程序实现增量式PID控制,并根据PID算法计算的数值设定PWM的占空比温度设置为-10   

  

  从ADC端口读取对应于当前温度的ADC值。   

  

  计算设定温度和当前温度之间的差值。   

  

  从其内存中读取预设的比例和积分系数,并计算控制量。   

  

  增量式PID控制算法   

  

  对比例系数、积分系数进行整定.在PID参数的设定上非常考虑能力和经验,我的经验是先设定比例系数,先断开控制的闭环,测试当整个系统中的输入为一个单位时,受控输出可以变化多少个单位。选择比例因子,使得单个输入可以使输出改变大约0.1个单位。   

  

  接下来选择积分系数,积分系数大约是比例系数的1/20,可以根据测试结果用二分法连续调整。使控制效果最佳,既不会产生振荡,也不会导致系统反应过慢。   

  

  增量式PID控制算法如下:void PID _ init (void) {int32m _ LCF,m _ LCI,m _ lcurupidcon . m _ iDU=(int 16)pidcon . m _ ui setad-(int 16)pidcon . m _ ui curad;m _ lCF=(int 32)pidcon . m _ uiKP * pidcon . m _ iDU;m _ lCI=(int 32)pidcon . m _ uiKI * pidcon . m _ iDU;m _ lCurU=m _ lCF m _ lCIpidcon . m _ ul curu=m _ lcu ru;} # define HT _ AD _ CURU _ MIN 0 # define HT _ AD _ CURU _ MAX((int 32)HT _ PWM _ PERIOD * 512)void PID _ cal(void){ int 16m _ iDU,m _ iDDUINT32 m_lCF,m_lCI,m _ lCurUm _ iDU=(int 16)pidcon . m _ ui setad-(int 16)pidcon . m _ ui curad;m _ iDDU=m _ iDU-pidcon . m _ iDU;pidcon.m _ iDU=m _ iDUm _ lCF=(int 32)pidcon . m _ uiKP * m _ iDDU;m _ lCI=(int 32)pidcon . m _ uiKI * m _ iDU;m _ lCurU=m _ lCF m _ lCIpidcon . m _ ul curu=m _ lcu ru;if(pidcon . m _ ul CURU HT _ AD _ CURU _ MIN){ pidcon . m _ ul CURU=HT _ AD _ CURU _ MIN;} if(pidcon . m _ ul CURU HT _ AD _ CURU _ MAX){ pidcon . m _ ul CURU=HT _ AD _ CURU _ MAX;} } void PID _ conduty(void){ U32 lduty;lduty=0;PID con . m _ ui duty=0;if(pidcon . m _ ul curu 0){ lduty=(U32)pidcon . m _ ul curu/512;} if(lduty=HT _ PWM _ PERIOD){ PID con . m _ ui duty=HT _ PWM _ PERIOD;} else { pidcon . m _ ui duty=(U16)lduty;} update duty(pidcon . m _ ui duty);}最后的效果很完美。将产品放入高低温试验箱,并将温度设置为-30c。产品外壳内部的温度曲线测量如下:   

  

  温度变化曲线,实现完美跟踪。   

相关文章