佘世刚,赵 宇,胡月娥,曹亚运,袁峥峥
(常州大学 机械工程学院,江苏 常州 213164)
液化天然气因为其无污染而被称为“清洁能源”(LNG,liquefied natural gas),LNGV车载燃料汽车利用LNG作为燃料应运而生。现阶段对LNG汽车方面的研究较多,随着LNG燃料汽车的大力发展,LNG气瓶作为LNGV车载燃料汽车的动力核心部分,对LNG气瓶进行实时监测就变得十分必要。但现有的LNG气瓶检测技术仍然相对滞后,这是阻碍LNG气瓶推广使用的最大瓶颈[1]。通过对市场进行调查研究不难发现,目前市面上投入运行的LNG气瓶监测设备大部分面临压力值测量不精确、液位量监测精度低、数据传输滞后等缺点[2]。
现有的设备关于监测气瓶内部压力通常使用高精度的压力传感器进行实时监测,以达到避免气瓶内部压力过大,威胁汽车安全运行的目的。但针对气瓶内部液位测量技术却远未达到理想值,调查显示如今用于监测气瓶内部液位值的方法普遍采用差压法。其工作原理是通过测量气罐内部液柱上下两端的静态压力,而后利用密度公式进行计算,从而得到液柱的容量及液柱高度。通过这种方法测量液位不仅所测精度低,而且随着LNG气瓶规格的变化,计算公式也需要做出相应变化,不能做到监测简化。因此差压法测量液量存在测量精度较差、工作难度较大等缺点。此外为保证气瓶安全运行,需操控人员实时掌握气瓶液位状态,这故需将所测得的液位数据传输到操控室显示仪表盘上显示。传统的数据传输通常采用RS485等串口通信方式,而这些通信技术存在接口标准杂乱、连接线路过多等诸多问题[3]。为避免上述存在的问题,本系统提出了一种基于无线通信的LNG气瓶液位监测系统。该系统基于电容式液位传感器对液量信息进行数据采集,然后通过STM32中央处理单元进行数据判断、分析处理,最后将采集到的数据通过无线传输技术进行收并发,完成数据传输工作。本文采用NRF24L01芯片进行无线通信,从而实现无线通信监测系统的设计[4-5]。
为保证LNG气瓶运行安全,本文以液位为设计参数,设计基于电容式液位传感器的液位监测系统,感知层利用电容液位计、ADUM1411芯片,配合STM32单片机[6]控制完成数据采集工作,而后利用NRF24L01芯片完成数据无线传输工作,界面显示模块采用LCD1602液晶显示屏实现液量数据显示。系统设置液位阈值,当电容式液位传感器监测液位高度超出阈值时,发出警报并通过LCD显示屏显示,系统总体设计如图1所示。
图1 系统总体设计框图
采用筒式电容液位传感器监测气瓶的液位参数,其工作原理如下[7]:设筒的内直径为d,外直径为D,传感器的长度为L,液位的高度为H,LNG(液化天然气)的相对介电常数设为α,液面表层空气的介电常数即绝对介电常数以β(约为1)来计算,若这些参数在稳定的情况下,则传感器的电容值即C的大小就仅仅取决于液位的高度。这样就可以通过测量电容值C的大小来得到液位的高度。具体公式如下:
电容C与传感器长度L、液面高度的关系为:
(1)
当液位高度H为0时,此时储液罐处于空瓶状态。此时的电容C为:
(2)
当液位高度H达到最大值时,储液罐处于满瓶状态,此时的电容C为:
(3)
式中,C为电容值,α为液化天然气的相对介电常数,β为液面表层空气的介电常数即绝对介电常数,H为液面的高度,D为罐体的外径,d为罐体的内径,L为传感器长度。
本设计使用的是STM32F401微控制器[8-9],因其功耗低、模式种类多且具有3路USART(速度高达10.5 Mbit/s)、4路SPI(速度高达42 Mbit/s)等优点而被广泛应用。
STM32F401微控制器及外围电路原理图图2所示,主要包括引脚7的复位电路、引脚5、6、18、19的时钟电路、引脚20、44的启动电路、引脚45的警报电路、引脚34、35调试接口、PA2是蜂鸣器接口,STM32F401单片机与ADUM1411芯片、NRF24L01之间均通过SPI方式进行通信[10],引脚25~28与电气隔离芯片相连,单独设置电气隔离模块不仅可以减少垃圾数据占用单片机内存,加快其处理速度,同时可减小电路干扰,提高数据传输准确性。引脚VIA、VOD为液位信号输入输出接口。因本系统采用电容式液位传感器,其输出电压为1~5 V,而ADUM1411芯片信号接入口电压为0.5~2.7 V,故需在接口处设置下拉电阻,将电压转换ADUM1411芯片所需值,随后将数据传输至MCU控制模块进行判断处理,若测得的液位值超出所设阈值,则触发警报功能,且引脚29~32是通信模块中无线收发上单元连接接口,完成对液位数据无线传输工作,送至HMI液晶屏上面显示。
图2 MCU主控及外围电路原理
LNG气瓶液位测量电路如图3所示,为便于验证监测系统的准确性与一致性,共设置两个监测点。JP0中1、2管角连接电容式液位传感器。因传感器外接电源,为防止2号监测点接入电压过高,故接入一个BAV10-A9开关管保护电路;同时在电路中的每个引脚上均添加一个保护电阻。管脚9、10、11与外围电路相连;为提高传感器与MCU主控模块之间数据传输精度,减小电频信号干扰,在SPI总线接口处连接ADUM1411数字隔离器来保证数据的准确传输。数字隔离器具有4路独立通道,隔离干扰能力强,适用于本监测系统;ADUM1411的11引脚设为输出端口,便于电容充放电,10引脚与隔离芯片内部反向模拟比较器相连,常规比较引脚9、10之间的模拟电压高低,确定反向模拟器输入电压[11-12]。
图3 电容式液位测量电路图
本文设计的无线通信模块分为无线收发上、下单元,上单元与MCU控制模块连接,下单元与显示模块相连。采用的是NRF24L01芯片[13-14],其最高工作速率可达2 Mbps,且具有高效的GFSK调制,同时该芯片抗干扰能力强;此芯片具有125个可选的频道,可满足多点信和调频通信的需要;芯片内置CRC检错和点对多点的通信地址控制,以此确保数据的可靠传输。此芯片通过SPI与外部MCU控制模块进行通信,模块VCC引脚使用3.3 V电压。该芯片除了VCC和GND脚,其它引脚都可以和5 V单片机的I/O口直连,故在使用上具有很大优势。接口电路如图4所示。
图4 无线通信模块原理图
本系统的显示模块采用LCD1602液晶显示屏,LCD1602点阵型液晶模块[15]可用于显示字母、数字、符号。LCD1602液晶显示屏最多可同时显示32个字符。LCD液晶的显示原理是利用液晶的物理特性,通过电压对显示区域进行控制。LCD1602液晶显示屏采用了标准的16脚接口,通过3个控制端接口实现控制要传输的指令或者数据。除了几个电源正负极引脚外,通讯只需用到NRF24L01芯片上空闲的11个I/O口即可;LCD1602内含复位电路,提供清屏、字符闪烁、显示移位等各种控制命令。因此方便使用和编程,同时可满足于液位测量系统的显示。LCD1602与无线收发下单元相连,将NRF24L01芯片的P3接口接入到显示屏上,可完成将电容式液位传感器测得的数据显示到LCD1602显示屏上。其电路如图5所示。
图5 显示模块原理图
电源模块部分的作用主要是为电路中的各个模块提供稳定的工作电压使其能够正常的工作。在实验的情况下,系统的电源通常由开关电源或者USB接口提供,为了将电源电压转换为单片机以及芯片所需的3.3 V工作电压。本设计电源模块电路首先设置由开关管和二极管组成的BUCK电路对交流电供电电压进行降压,降至电压调节器LM5007的工作电压范围,LM5007电压调节器的输入直流电压范围为12~45 V,经过LM5007与外围电路再将电压降至5 V输出。设置电容CA1滤除输入电源中的高频扰动,再经电容C34、C38吸收输入电源中低频纹波,将5 V电压经过线性稳压器TPS70933DBVR及其外围电路降压至3.3 V稳压电源。采用AMS1117系列稳压器,稳压器的片上微调可将把基准电压调整到1.5%的误差范围以内而且电流限制也能得到调整,这样可以尽量减少因稳压器和电源电路超载所带来的压力。本系统所设计的电源模块通过整流以及滤波再经过7805将电源转换为5 V电压,最后经过AMS1117转换为单片机所需的3.3 V电压,具体电源电路如图6所示。
一个完整可靠的监测系统应该包含软件以及硬件部分,只有通过二者的协调工作才能更好的完成监测任务。系统的软件设计主要包括数据采集、MCU控制模块以及无线收发通信模块。
系统主程序以低耦合高内聚为核心进行软件设计,完成对各个模块调用工作。整体程序设计如图7所示,系统上电后对各个模块硬件接口、寄存器进行配置;并对串口驱动、定时器等程序进行初始化;初始化完成后开始应用程序调用,首先读取系统停机前LNG气瓶状态参数信息;接着开始对LNG气瓶当前液位状态进行信息采集,随后利用算法对电容式液位传感器采集的液位数据进行计算比较,判断液位值是否超出阈值,若超出所设阈值,则系统发出警报设置蜂鸣器发声;在数据采集分析处理完成后将数据进行存储,而后将数据通过NRF无线传输到上位机显示界面,整个程序完成。
图7 系统主程序
本系统采用C语言编程,程序部分主要介绍无线发送部分以及无线接收部分,具体程序如下所示:
无线发送部分:
#include "system.h"
#include "SysTick.h"
#include "adc.h"
#include "nrf24l01.h"
void sendok(void);
/***********************
* 函数名 : main
* 函数功能 : 主函数
* 输入 : 无
* 输出 : 无
***********************
int main()
{
u8 str[4];
u16 value=0;
u8 m_water;
SysTick_Init(168);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中断优先级分组 分两组
ADCx_Init();
NRF24L01_Init();
NRF24L01_TX_Mode();//设置NRF24L01为发送模式
while(1)
{
value=Get_ADC_Value(ADC_Channel_5,20);//获得电压 m_water=(u8)(value*100.0/4096);
str[0]=m_water/100+0x30;
str[1]=m_water%100/10+0x30;
str[2]=m_water%10+0x30;
str[3]=' ';
// printf("%d%",m_water);
while(NRF24L01_Check()); //检测NRF24L01是否存在
while(NRF24L01_TxPacket(str)==TX_OK);//一直等待他发送完成
}
}
无线接收部分:
#include "system.h"
#include "SysTick.h"
#include "beep.h"
#include "usart.h"
#include "nrf24l01.h"
void sendok(void);
/***********************
* 函 数 名 : main
* 函数功能 : 无
* 输 入 : 无
* 输 出 : 无
***********************
int main()
{
u8 str[4];
u8 m_water;
SysTick_Init(168);
BEEP_Init();
USART1_Init(9600);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中断优先级分组 分两组
NRF24L01_Init();
NRF24L01_RX_Mode();//设置NRF24L01为接收模式
while(1)
{
while(NRF24L01_Check()); //检NRF24L01是否存在
if(NRF24L01_RxPacket(str)==0) //接收到数据显示
{
printf("t0.txt=”%s”",str); //HMI串口屏协议
sendok();
}
if(m_water<10)
{
beep=!beep;
delay_ms(1000); //1s
}
else
{
beep=1;
}
void sendok()
{
u8 i;
for(i=0;i<3;i++)
}
{
}
USART_SendData(USART1,0xff);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);
delay_ms(10);
}
为验证本文设计的LNG车载气瓶液位监测系统的一致性、稳定性及准确性,故在实验室的环境下,按照所需的实验要求搭建实验平台,对本文设计的监测系统整体功能进行全面测试。
首先验证液位监测系统的一致性与精确性,选择一参量为定量,测量相对参量值。故选择测量3个容器中液位值分别为300 mm、500 mm、700 mm的液体,分别进行4次测量,并记录下测量数据。实验结果如表1所示,为试验中连续4次测量3组容器不同液位值所得数据。
表1 同一容器4次测量值
对实验结果进行分析可得,在连续4次测量中,实际液位值与该电容式液位传感器测得的值误差均在2 mm内波动,且相对误差值不超过1.5%。直接验证LNG车载气瓶液位监测系统具有很好的一致性和精确性。
接着对LNG车载气瓶液位监测系统的稳定性进行测试,验证选择电容式液位传感器测量LNG气瓶液位值,相较于其他测量方法更具有稳定性。同样选择在实验室条件下进行系统实验,在同一容器每次均匀地增加液位的高度,连续测量6组数据,将监测系统测得的值与实际值进行比较,验证系统的稳定性和精确性。实验结果如表2所示,为连续6次均匀地增加液位高度,监测系统所测值。
表2 均匀增加液位高度测量值
通过对表2的6组实验数据进行分析可得:即使实时改变容器内液位值,该监测系统测量值与液位实际值之间的绝对误差不超过2 mm,相对误差同样在1%范围内,故可验证该气瓶液位监测系统精确性高、稳定性好。
随着国家对清洁能源的大力推广,LNG汽车的使用量将会日益增长。LNG气瓶作为LNG燃料汽车的核心部件,对LNG气瓶的液位进行监测就显得十分必要。在生产需求的基础上,本论文设计了一套基于无线通信方式的LNG气瓶液位监测系统。该监测系统提出了以STM32单片机为MCU控制核心;基于电容式液位传感器采集点采集数据;监测数据通过无线通信方式传输的先进监测方式。一方面解决了传统LNG气瓶监测中连接线路过多、接口标准杂乱、不便于扩展等诸多问题;另一方面提高了数据传输可靠性及准确性。经试验验证,该监测系统可安全、准确、可靠地监测LNG气瓶液位信息,并实时传输气瓶液位数据,也证明该监测系统的实用性与可行性。