张卫锋 刘致君 张灿祥
(青岛科技大学机电学院 青岛266061)
医学的发展,使人们的生活出现了翻天覆地的变化。我国非常重视人民的医药健康问题。政府免费向人民提供部分疫苗,减少人民疾病的发生。疫苗按用途可分为预防性疫苗和治疗性疫苗两种。预防性疫苗的接受者为新生儿或健康个体,用于疾病的预防。治疗性疫苗主要用于患病的个体,接受者为患者。但是在疫苗运输过程中,为保证疫苗的质量,需严格控制疫苗的温度。因疫苗对温度非常敏感,从疫苗的生产到疫苗的使用,之间每一个环节都可能因为温度因素使疫苗失效,甚至产生有害物质。针对这一问题,本文设计出了一种基于PID算法的疫苗保温箱的温控系统。该系统具有结构简单、温控精度高、调温响应速度快等特点。
在自动控制领域总控制算法得到了很大的发展,大林算法就是其一。大林算法是先设计闭环系统的响应,再反过来综合调节器的方法[1]。因设计的控制器使闭环系统具有时间滞后的一阶惯性环节,且滞后时间与被控对象的滞后时间相同。所以此算法具有消除余差、对纯滞后有补偿作用等特点[2]。
其 中A=1−e−T Tφ;B=e−T Tφ;C=e−T T1;k=A[K0(1−e−T T1)]。闭环极点−1Tφ决定系统的动态响应。Gc()u在u=1时有极点,即系统对阶跃输入的稳态误差为零,是由于闭环传递函数为惯性环节。因此稳态时E(k)=0。
图1 单回路控制系统框图
当闭环响应确定下,可以得到控制器Gc(u)。因闭环响应大多数期望采用一阶惯性加纯延迟形式。其延迟时间等于对象的延迟时间τ。
式中,Tφ为闭环系统的时间常数,由此而得来的控制规律称之为大林算法。
该系统采用了传统PID算法控制结合大林算法控制,并且进行前馈补偿。解决了非线性、大滞后、大惯性问题。
单片机选用STM32F103C8T6芯片,STM32F103C8T6有48个引脚,37个外部双向输入/输出(I/O)端口,同时内含4个16位可编程定时计数器,1个12位的ADC,2个比较器、2个16位通用定时器,2个32位通用定时器,2个16位基本定时器,2个16位高级定时器。对于系统数据采集处理等要求,本产品完全满足。
温度传感器选用DS18B20。电路原理图如图2所示,DS18B20的DIO引脚与单片机的P2.4引脚连接,进行双方通信,采用4.7kΩ的电阻上拉。采用外接电源方式供电通过HT7533降压3.3V给DS18B20芯片供电。
图2 基于DS18B20数字温度计电路原理图
STM32F103C8T6复位电路如图3所示。
图3 复位电路
STM32F103C8T6晶振电路4如图所示。
图4 晶振电路
STM32F103C8T6串口电路如图5所示。
图5 串口电路
STM32F103C8T6的引脚如图6所示。
图6 STM32F103C8T6的引脚
DS18B20是一个具有抗干扰能力强,精度高,体积小等特点的12位数字温度传感器。其在使用中不需要外围元件,在一只形如三极管的集成电路内集成了全部的传感元件及转换电路元件[3]。适应电压范围为3.0V~5.5V,在寄生电源方式下可由数据线供电。并且其能测温度范围很大:-55℃~+125℃,在-10℃~+85℃时精度达到了±0.5℃。DS18B20具有独特的单线接口方式,一条口线即可实现微处理器与温度传感器的双向通讯[5]。芯片分辨率为9位~10位,对应的可分辨温度为0.5℃、0.25℃、0.125℃和0.0625℃。可以实现高精度测温。DS18B20的速度非常快,在9位分辨率时把温度信号转换成数字最多需要93.75ms,在12位分辨率时把温度信号转换成数字最多需要750ms。该传感器以“一线总线”串行送给CPU,CRC校验码可同时传送,抗干扰纠错能力极强。同时其具有负压特性。在本系统中测得的温度信号在单片机的数码管上显示。DS18B20内部有高速暂存器RAM、可电擦除RAM、64位光刻ROM、配置寄存器,确定过温报警的温度可以通过设置相关的寄存器来实现。SOSI封装DS18B20引脚如图7所示。
图7 DS18B20引脚
单总线数据接口。NC引脚为悬空。VCC为电源,电压范围为3.5V~5.5V。GND引脚为接地。
DS18B20配置寄存器是通过配置不同的位数来确定温度和数字的转化。R0和R1是温度的决定位,决定温度转换的精度位数。R0和R1的模式表如表1所示。
表1 R0和R1模式表
因为疫苗保温箱在运输途中环境变化很大,在夏季保温箱里的温度低,环境和保温箱有温度偏差,而且该温差随着环境的变化而变化。这样使得疫苗保温箱的控制效果受到很大影响。为了有效地抵消类似的干扰,避免出现较大的超调,本系统采用前馈控制。
前馈控制器主要是依据在一定的准确度下不相关的思想,或者依据控制系统的被控量与扰动量完全无关进行的。基本的思路是在扰动出现时能有效的消除干扰对控制对象参数的影响。
根据前馈补偿的原理,H(u)和Gc(u)是互为倒数,可假设:
变换得:
根据具体的环境的温度与预先设定值进行计算前馈控制扰动补偿量。为了补偿疫苗保温箱因与环境有温差而带来的影响,所系在系统中加入前馈控制。
当系统开始工作时,首先是包括系统时钟初始化、中断寄存器设置、A/D以及D/A控制寄存器配置、禁用看门狗等进行系统初始化。然后进行键盘扫描,判断是否有按键按下,当有按键命令后,通过中断服务子程序进行相应参数的设置。通过判断按键次进行参数的设置。系统在设置完成后开始采集温度传感器实时数据,将其进行显示并且处理。如图8所示温控系统设计主流程图。
图8 温控系统主流程图
图9 单片机程序流程图
在完成软件硬软件设计完成后,为了检测该疫苗保温箱在实际使用时温控的误差以及该装置在实际应用中温控的稳定性。用该测温装置进行试验。
1)用精度较高的温度测试器测量实验室温度。测得温度为22.2℃。该温控装置放置在室温为22.2℃的温度下。
2)把疫苗保温箱分别设定为26℃、32℃。两个设定值,分别记录时间、保温箱的温度。
3)每30s观测一次温度值,同时把观测值和时间记录下来。数据记录如表2所示。
表2 实验数据
试验可以很好地验证出该疫苗保温箱的实用性,检验温控的平稳性以及误差,达到我们的设计要求。
传统的温度控制装置受外界环境因素影响大,具有大惯性、非线性、大滞后性以及超调现象。该保温箱的温控系统PID控制结合大林算法,并且进行前馈补偿有效地解决了传统的温控装置的问题。避免了在生活生产中过多的电能消耗,控制不必要的资源浪费。在疫苗运输过程中对温度要求严格,该保温箱有效控制了实际温度与设定温度的偏差,有效地控制了温度调节不精确和控制不稳定现象,具有结构简单、成本低、体积小质量轻、温控精度高、调温响应速度快等特点。