麦庆军,黄鑫,郭勇涛,林璟鸿,李结松
广州医科大学基础医学院,广东广州510283
麻醉中的小鼠在动物实验过程中不采取任何保暖措施,小鼠表皮温度会降低,心率增快,清醒延迟,有寒颤、躁动等生理异常现象,并且容易伴随呼吸减弱和呕吐等症状,实验中低体温增大了麻醉恢复期意外并发症的发生概率,会导致实验后存活率降低[1]。随着温度的降低,细胞的大小形状、分布特征和表面结构、内部理化状态和变形能力都发生了变化[2]。由此可见,温度对实验动物的影响很大。如果控制不当会影响实验结果的可靠性和稳定性,从而影响研究结果的精确性和可重复性,甚至引起实验动物发生临床疾病、死亡[3]。
目前市场上适合开展动物实验的温度恒定设备大多是一个封闭的金属体,没有开展实验的工作平台,不方便固定小鼠开展动物实验。而且这些设备不能动态实时收集动物体温数据,很难直观完成对比分析温度对实验动物的影响。动物实验中使用较为广泛的是小鼠,其正常体温约为37 ℃,因此制作出一款专门用于维持小鼠体温的装置十分重要。
采用热电偶温度传感器分别采集加热器温度和被测小鼠体温,通过PID算法产生脉宽控制信号,控制继电器的通断,从而控制加热器的通电时间。在LCD上实时显示加热器温度和小鼠体温,同时通过蓝牙模块将数据传输至PC端USB接口,便于后期进行数据分析。PC端还可将加热装置的目标温度以及最大温度,通过蓝牙串口传输至装置的控制单元。为简化装置的使用,硬件上设置一个单键操作,按下后加热,再次按下暂停加热。装置系统框图如图1所示。
图1 装置系统框图Fig.1 System block diagram of the device
与上述系统框图对应,总体电路图如图2所示。
图2 装置电路图Fig.2 Circuit diagram of the device
1.2.1 核心处理器核心处理器采用STM32F103C8T6,意法半导体生产,芯片内核Cortex-M3,内含FLASH 64 kB和RAM 20 kB,内部自带2个12bit ADC,37个通用I/O口,4个16bit通用定时器,2个看门狗定时器,1个24bit向下计数的滴答定时器,2个IIC接口,2个SPI接口,3个USART接口,1个CAN接口,工作电压2.0~3.6 V,工作温度为-40~85 ℃,系统时钟最高可达到72 MHz。
1.2.2 温度传感器模块本装置使用K型热电偶作为温度传感器。热电偶是一种能量转换器,可将热能转换成电能,是一种无源传感器,测量时不需外加电源,即能将温度信号转化为热电动势信号[4]。得到电动势差后,再通过信号转换器转化为被测物的温度,温度信号转化模块为MAX6675。该芯片由Maxim公司推出,具备对热电势信号进行放大、模数转换、冷端补偿和校正的功能。内部自带的温敏二极管和检测二极管将周围环境的温度转化为温度补偿电压,从而减少环境温度对被测实验动物温度的误差[5-6]。MAX6675简化了电路设计,使得设备的体积减小。MAX6675主要特性和引脚说明[7-8]分别如表1、表2所示。MAX6675的引脚T-和T+分别连接K型热电偶的正负极。测量小鼠体温端的MAX6675芯片的SCK接STM32单片机的PA5引脚,SO接PA6引脚,CS接PA4引脚,而探测加热器端的MAX6675芯片的SCK接STM32单片机的PB13引脚,SO接PB14引脚,CS接PB12引脚。
表1 MAX6675主要特性Tab.1 Main characteristics of MAX6675
表2 MAX6675各引脚说明Tab.2 Description of each pin of MAX6675
1.2.3 液晶显示模块液晶显示模块采用LCD12864,瑞立德生产的RSCG12864B,自带中文字库,有IIC 接口,分辨率为 128×64。 RSCG12864B 的BUSY 与STM32F103的PB7引脚相连;SCL与PB11引脚相连,SDA与PB10相连。
1.2.4 加热模块(1)碳纤维导电加热片:碳纤维远红外电热膜是一种以电力为能源,通电后即能发热的半透明聚酯薄膜。它以碳纤维为发热体,采用3 μm以下的精密印刷技术印刷在聚酯薄膜上。发热体中的碳分子团在电场作用下产生“布朗运动”,碳分子之间发生剧烈的摩擦和撞击,产生的热能以远红外辐射和对流的形式对外传递,其电能与热能的转换率高达98%以上。碳纤维远红外电热膜能够产生在医学上被誉为“生命之光”的8~15 μm的远红外线,易于激活细胞活性、促进新陈代谢[9]。
本装置选取的碳纤维加热片如图3所示,长度约16 cm,宽度约14 cm,常温下电阻约6 Ω。在加热片两极加5 V的直流电压,在数十秒内温度即可达到40 ℃以上。为了增大加热面积,便于包裹小鼠,使小鼠躯干均匀受热,将3个加热片并联组合(图4),采用螺丝固定形成一个包围的加热体(图5)。
图3 一片碳纤维导电加热片Fig.3 A slice of carbon fiber conductive heating plate
图4 组合而成的大加热片Fig.4 Composed heating plate
图5 螺丝固定的包围加热体Fig.5 Screw-mounted enclosing heater
(2)加热时长控制模块:本装置使用1路继电器模块JQC-3FF-S-Z控制加热片的加电时间,该继电器模块吸合电压为5 V,最大切换电流达15 A,性能满足设计需要。继电器的NC引脚与电源负极接通,继电器的IN引脚与STM32单片机的PA1接口相连。当PA1为低电平时继电器开关闭合,高电平时则断开,PA1端口的PWM信号控制继电器的闭合与断开,从而控制加热时长。
1.2.5 蓝牙通信模块蓝牙通信模块采用HC-05蓝牙模块。HC05 是主从一体的蓝牙串口模块,工作频段为2.4 G,通过标准的串口TTL 电平通讯,工作电压约为3.0~3.6 V,无线传输距离约为10 m,发射功率为4 dBm,最高速率约为2 Mbps 且内置PCB 天线,接收灵敏度为-85 dBm。当蓝牙设备配对连接成功后,可忽视蓝牙内部的通信协议,直接将蓝牙当做串口用。
(1)装置端蓝牙通信模块:STM32的PA9连接蓝牙模块的RX 引脚,STM32 的PA10 连接蓝牙模块的TX引脚。
(2)PC端蓝牙通信模块:为方便利用PC端的USB接口进行通信,将蓝牙模块与USB转TTL模块连接,然后连接至PC端的USB接口。TTL端TX与蓝牙(HC05)模块RX对接,TTL端RX与蓝牙(HC05)模块TX对接,TTL端开发板+5 V与蓝牙(HC05)模块VCC对接,TTL端开发板GND与蓝牙(HC05)模块GND对接。打开串口通信软件,设置正确波特率就可以收发数据。
1.2.6 按键电路按键开关一端与STM32F103单片机的PA1接口相连,另一端接地。
设备上电后系统进行初始化设置,主控芯片采集探头温度、加热片温度,并在LCD上显示待机界面(图6)。待机界面还显示系统默认的加热器目标温度和最大温度,此时电脑端可通过串口通信改变温度默认值;若无参数改变,按下按键后,设备按照PID算法驱动加热装置达到并维持目标温度,此时显示加热工作界面(图7):显示实时的探头温度和加热片温度,同时设备还将温度数据通过蓝牙发送至电脑端。当再次按下按键时,加热停止,系统返回待机界面。软件流程图如图8所示,装置端蓝牙接收中断流程图如图9所示。
图6 待机界面Fig.6 Standby interface
图7 加热工作界面Fig.7 Working interface
图8 软件系统流程图Fig.8 Flowchart of software system
图9 蓝牙接收中断流程图Fig.9 Flowchart of heating interruption based on the data received by Bluetooth
MAX6675使用的是标准SPI接口,调用STM32自带的固件库stm32f10x_spi.h初始化STM32外设SPI和结构体,即可驱动MAX6675获取数据。MAX6675返回给STM32的是16位数据,时序如图10所示,其中D14-D3即为温度数据。
图10 MAX6675时序图Fig.10 Sequence diagram of MAX6675
LCD液晶显示器RSCG12864B使用的是标准的IIC接口协议,带有标准的库文件,配置好STM32的IIC协议固件库,即可建立RSCG12864B的驱动。
加热控制采用经典PID算法,由于其算法简单和鲁棒性好,被广泛地应用到工程实践中[10-11]。PID是一个集成比例(P)、积分(I)、微分(D)的闭环控制算法。比例反映系统的当前偏差e(t),系数大可以加快调节,快速减小误差,但过大的比例使系统稳定性下降,甚至造成系统不稳定。积分反映系统的累计偏差,使系统消除稳态误差,提高精度。微分反映系统偏差信号的变化率e(t)-e(t-1),具有预见性,产生超前的控制作用,可以改善系统的动态性能[12-14]。积分和微分都不能单独起作用,必须与比例控制配合。PID算法只能保证加热温度在目标温度上下震荡,震荡幅度可以通过调节式中KP、TI、TD3个参数予以调理。事实上没有任何一套算法可以保证加热温度正好等于目标温度而不产生浮动[15-18]。图11为系统温控框图。
图11 PID系统温控框图Fig.11 Block diagram of temperature control of PID system
本装置对温度传感器每秒采样一次,并非连续控制系统,采用如下的数字PID算法公式:
式中,T为采样时间,Kp为比例增益,Ti为积分时间常数,Td为微分时间常数,u(k)是PID控制器的输出信号,e(k)是给定值r(t)与测量值y(t)之差。
上式PID的输出与过去的所有状态有关,计算时要对每一次的控制误差进行累加,计算量很大。对于受控的继电器而言,并不关心PID输出的绝对值,只需要得到增量值△u,使控制继电器的PWM信号占空比加宽或者变窄即可[19-20]。将上式按照增量控制的思路简化后,得到增量值△u:
其中,A=Kp×(1+T/Ti+Td/T),B=Kp*(1+2Td/T),C=Kp×Td/T。
PID程序流程如图12所示,PID控制的难点不是编程,而是控制器的参数整定。经过初步整定,先将Ki参数设为0,将Kp参数设为大于0.1,Kd参数设为小于0.1,系统响应平稳且产生稳定的静态误差;经过反复调试最终得出Kp=0.6,Ki=0.001 5,Kd=0.05时,系统加热的速度比较快且目标温度上下浮动小于0.75 ℃,符合装置设计要求。
图12 PID流程图Fig.12 Flowchart of PID
将目标温度设置为37.5 ℃,最高温度设置为42 ℃。温度与时间对应数据如表3所示,加热温度曲线如图13所示。从表中数据可知,温度从25.25 ℃室温环境开始加热,温度在第4分11秒至第4分36秒之间到达目标温度37.5 ℃,最大过冲温度为38.25 ℃,最大过冲百分比为2%。
图13 目标温度为37.5 ℃的加热温度曲线Fig.13 Heating temperature curve with a target temperature of 37.5 ℃
表3 目标温度与对应加热时间数据Tab.3 Data of target temperature and corresponding heating time
小鼠正常体温约为37.5 ℃,本装置能够将目标温度控制在上下0.75 ℃,满足麻醉小鼠做医学实验的体温控制要求。体温数据能通过无线蓝牙传送到个人电脑中,便于后期开展实验数据的科学分析。
虽然装置基本达到恒温功能,但是还存在一些不足。一是整套装置的设计制作还比较粗糙,只能满足实验室的样机使用要求。二是PID算法中的参数整合,还需要动态精准调校,以减小系统的响应时间,提高温度控制的精度。下一步工作要在软件上进一步优化算法,硬件上进行PCB打样和外壳设计,增加装置的便携性,使装置成为成熟的实验动物温控设备。