孙 超,吴修广
(浙江省水利河口研究院,浙江 杭州 310020)
液位测量有接触式和非接触式2种,如接触式的浮子型及压力型,非接触式的微波雷达法、激光法和超声波法等。其中接触式测量在使用中会干扰液位变化,产生较大误差[1]。非接触式测量的微波雷达法技术难度大、成本高,激光法精度高但易受干扰。超声波液位测量具有结构简单、成本低、不受光线、烟雾干扰等优势[2]。但目前的超声波液位测量装置存在精度较低(2.0 mm左右)、测量数据不稳定的问题,限制了它的应用。
本文基于STM32单片机,采用高精度的超声波传感器,配合24位ADC,实现120.0 ~ 1 000.0 mm量程范围内0.1 mm精度的超声波液位测量。
超声波测距的原理见图1。
图 1 超声波测距原理图
利用已知超声波在空气中传播速度v,超声波换能器垂直向液面发射超声波,声波在水面与气体的分界面发生反射,并回传至换能器,记录传播时间t,即可得到换能器到液面的直接距离L = 0.5vt,继而得到实际的液面高度[3]:
1.2.1 温 度
超声波的声速与温度有关,一般经验公式为v = 331.5 +0.607t,t为摄氏温度,℃。在超声波传感器实际应用中,应根据环境温度的变化进行补偿,否则将有比较大的误差。本系统使用的传感器内部已经进行温度补偿。
1.2.2 单片机计时量化
从式(1)还可以看到,液位测量的误差和时间t的测量误差有关,而t的测量误差取决于单片机系统计时量化带来的误差[4]。
如果要求误差0.1 mm,假设C = 344 m/s(20 ℃)时,对应的Δt为:
本系统采用STM32F103C8T6单片机,主频为72 MHz,其计时量化时间为0.013 μs,远小于式(3)要求的时间,故其产生的误差可以忽略不计。
ST公司的STM32F103C8T6是一款基于ARM Cortex - M内核的32位的微控制器,程序存储器容量是64 KB,RAM容量是20 KB,工作电压2.0 ~ 3.6 VDC,具有37个GPIO及复用的1个SPI硬件接口、1个I2C接口、3个USART接口、1个USB接口等。
1.2.3 AD采样位数
超声波传感器输出为4 ~ 20 mA,经过转换为0.0 ~ 5.0 VDC,而测量要求是量程0.0 ~ 1 000.0 mm,精度达到0.1 mm,则可以计算出系统电压的最小分辨率需要至少为:
而以2.5 VDC为基准参考电压且单端输入时18位AD的最小分辨率为:
可见采用18位AD采样芯片就可以满足系统精度要求。综合考虑芯片价格、外围电路复杂程度、通道数、采样速率较高时AD有效位数减少等因素,本系统采用TI公司的24位采样芯片ADS1256。
ADS1256是具有8通道极低噪声的24位Δ - Σ型模数转换器,其最高采样频率30 kSPS,采用SPI接口。模拟工作电压5.0 VDC,数字工作电压1.8 ~ 3.6 VDC。
1.2.4 基准参考电压
基准参考电压是AD转换的依据,其精度和稳定性决定系统的精度和稳定性。本系统采用ADR431B芯片产生2.5 VDC基准电压。AD公司的ADR431B是具有3.5 μVp-p噪声、3 ppm/℃温漂的高精度基准参考电压芯片。
1.2.5 超声波传感器
超声波传感器是一种可以把电信号和声能相互转换的装置,可以分为电动式、电磁式、磁滞式和压电式。经过对比各种超声波传感器的性能,本系统选择德国Microsonic公司的压电式超声波传感器pico+100/WK/I,主要性能指标:检测范围为120 ~ 1 000 mm;盲区120 mm;换能器频率200 kHz;工作电压10 ~ 30 VDC;最高分辨率0.069 mm;输出 4 ~ 20 mA。
1.2.6 电流转电压电路
超声波传感器的输出信号是4 ~ 20 mA电流,需要转换为0.0 ~ 5.0 VDC电压才能被ADC采样。转换电路的精度同样决定系统的精度,本系统采用以OPA4227芯片为核心的运放运算电路作为转换电路。
OPA4227芯片是TI公司的4通道高精度低噪声运算放大器,主要性能指标:典型噪声90 nVp-p;输入失调电压±10 μV;工作电压 ±2.5 ~ ±18.0 V。
该芯片需要的正负双极性电压由芯片ICL7660提供。ICL7660是Maxim公司的小功率双极性电源转换器,只需外接一个10 μF的电容就可以将1.5 ~ 12.0 VDC范围内输入的正电压转换为相应的负电压。
硬件系统整体结构见图2。
图 2 硬件系统整体结构图
硬件系统分为3部分:第一部分是电源,先通过开关电源将220.0 V交流电转为12.0,5.0,3.3 V的直流电分给供给超声波传感器、电流转电压电路、ADS1256模块、MAX485模块和STM32单片机模块。另外添加ADR431,以提供基准电压给ADS1256。第二部分是数据收集,超声波传感器将测量数据通过4 ~ 20 mA的电流信号传输给电流转电压电路,该电路将可读的电压信号发送给24位精度的ADS1256模块,再通过SPI将数字信号发送给STM32单片机。第三部分是信号的处理以及发送显示,STM32单片机将得到的数字信号处理后通过串口转485模块,发送给PC显示。
4 mA输入仿真结果见图3;20 mA输入仿真结果见图4。
图 3 4 mA输入仿真结果图
图 4 20 mA输入仿真结果图
使用电流转电压电路中的4个OPA4227PA组成的减法器、加法器和放大器,将电流信号转化为可读的电压信号。
软件系统流程见图5。
图 5 系统软件流程图
使用珠江水利委员会生产的高精度光栅式水位仪(0.01 mm绝对精度)测量水位高度,PC端查看系统传回的电压值(见图6)。
图 6 率定及验证示意图
根据率定结果(见图7),当H = 100 cm时得到电压与水位的关系:
图 7 电压-水位关系图
使用高精度水位仪做标准,与液位计实测结果对比(见图8)。
验证结果见图8,误差范围在0.2%以内,绝对误差小于0.1 mm。
图8 验证结果图
本文分析了高精度超声波液位计的误差原理,给出详细的设计方案,最终实现120.0 ~ 1 000.0 mm量程范围内0.1 mm精度的超声波液位设计。