基于STM32的风速风向测量系统设计
2018-09-27陈为星刘为国
陈为星, 刘为国
(安徽理工大学 电气与信息工程学院,安徽 淮南 232001)
0 引 言
现代超声波风速仪[1]是目前实际农业及工业科学领域较为实用的新型仪器,不仅设计结构简单,坚固耐用,且有着较高的测量精度,对于自然风中的阵风脉动的高频成分测量准确[2]。在理论上,测量风速范围无上限量,这就使得超声波风速仪有着广泛的应用前景。目前,超声波测量风速主要有2种方法:时间差测量法[3],主要是测量超声波发射到接收间的时间或频率差;另外一种方法是相位测量法,其原理为观察顺风与逆风时测得的超声波波形相位差计算风矢量信息[4]。温度湿度等信息会对风速测量结果产生一定影响,同时考虑到超声波在介质中的衰减情况,本文设计了一种基于STM32的超声波风速风向测量系统,由灵活可编程的A/D通道进行信息的采集,具有温度湿度补偿装置和RS—485信息通信功能。
1 时差法测量原理
由于一维风速风向模型无法测量风向的信息,因此,系统用二维风速风向测量模型,可以很好地模拟自然风的实际情况,对风矢量进行二维方向分解,再分别测量二维方向上的风速风向信息,极坐标模型表示如图1所示。
图1 极坐标模型
采用4个垂直水平放置的收发一体超声波探头,相对探头间距离固定,4者呈正方形放置。如图2模型所示。假设实际风向如图中所示,则将其在极坐标中进行分解,主要在南北方向和西东方向上存在分矢量。当探头以200 kHz频率发射超声波时,分别测得各方向顺风和逆风时传播时间为t12,t21,t34,t43,其中t21,t34为顺风时间,t12,t43为逆风时间。
图2 二维超声波模型
如上图设风速西东方向上为vWE,南北方向为vSH,探头间距离为d,则由一维风速测量公式得
(1)
由矢量勾股定理合成实际风为
(2)
求得方向角β为
(3)
可计算出风向的数值,在第一象限时为arccosβ,在第二象限为π-arccosβ,第三象限为π+arccosβ,第四象限为2π-arccosβ。
2 系统硬件电路设计
2.1 系统设计框架
系统选用STM32F103为核心,处理来自风速仪的传输数据和与上位机的通信,该单片机最高工作频率可达72 MHz,512 kB的FLASH,支持RS—485通信,内部自带一路数字温湿度传感器接口,具有处理速度快,成本低,精度高的特点。本系统的设计框图如图3所示。
图3 系统设计框图
系统框图中电源模块提供所需电能,STM32发送起始信号启动风速风向仪工作,风速风向仪探头测得的结果选择电流形式传输。为了便于单片机进行A/D处理,设计了I/V转换电路,低通滤波电路、峰值检测电路将最终信号送达单片机I/O口。STM32内部计数器捕捉峰值信号,将计算结果加上温度电路补偿显示在液晶显示屏上。RS—485模块负责探头和STM32、上位机通信,方便在上位机上设置和监控探头。
2.2 超声波风速风向仪的选择
本系统选择FC—09G型风速风向仪,利用时差法测量风速风向。全数字化信号检测,高精度,可自动加热除冰雪,同时进行风速、风向和声学温度的实时测量。风速风向测量信号选择4~20 mA电流模拟方式输出,0.01 m/s的分辨率;工作电压为24 V;风速测量范围0~60 m/s,精度是±0.2 m/s(≤10m/s)、±2 % (>10 m/s);风向测量范围0°~360°,精度是±1°;声学温度测量范围-40~60 ℃,精度±2°。同时自带数字滤波技术,抗电磁干扰能力更强。风速风向仪底部有一个8脚防水插头,用以通过屏蔽电缆线连接外部电源和通信接口。通过串行连接单片机,且可以全双工模式输出,8脚插头引脚分别为RXD-,TXD-,NC,RXD+,TXD+,AGND,DC-和DC+。FC—09G Monitor软件为用于设置与监视超声波风速仪的上位软件,该软件可以用于监测FC—09G风速风向仪的数据,并记录于计算机硬盘上。
2.3 电源电路
为了得到较小的纹波24 V电压供FC—09G风速风向仪使用,系统设计了专门的电源电路,并在此基础上进一步降压成5 V为STM32提供工作所需电压,具体电路如图4所示。首先由变压器降压得到20 V的交流电,再整流为直流电,LM7824芯片可以将直流电进行稳压除波纹得到风速风向仪需要的稳压源,再经过LM2576S芯片得到单片机的工作电压,电路中的IN5822起防击穿保护作用,电感器L1可以进一步减小电路中涌动电流的冲击干扰。
图4 电源电路
2.4 接收处理电路
为了便于STM32的输入计算,设计了I/V转换电路,将测得的4~20 mA电流信号转换为电压信号,再经过低通滤波整理,滤除电路中的干扰成分,主要是高频和低频信号[5]。峰值检测电路检测出信号的包络曲线,传送单片机A/D口采集。
2.5 I/V转换电路
选用了RCV420高精密芯片进行I/V的转换,该芯片可以将4~20 mA的环路电流变换成0~5 V的电压,具有很可靠的性能和很低的成本。内部含有精密运放和电阻网络,在不需要外部调整的情况下,可以获得86 dB的共模抑制比和40 V的共模电压输入。在全量程范围内输入阻抗仅有1.5 V的压降,对环路电流具有很好的变换能力,总误差小于±1 %。芯片所需电压在图4的基础上利用LM46002进行降压可得,不再具体给出。
2.6 低通滤波电路
为了保证输入到单片机的信号以400 Hz为主,同时滤除其他的高频杂波。设计了400 Hz的低通巴特沃斯滤波器加强对信号的干扰处理,保证了有用信号频率最大限度平坦,高频信号波则逐渐下降为零。具体电路如图5所示。电路中的自动开关器用于400 Hz的切断频率,可以通过改变频率的比例值来扩大。
图5 低通巴特沃斯滤波器
2.7 峰值检测电路
为获得超声波准确传播时间,对获得的滤波后信号进行峰值检测,其关键是准确判断出接收信号的到达时间。通常采用的方法有高速计算器计数求包络峰值[6],利用两者峰值差值求解,为了避免数据在计算及存储方面的消耗时间可能对系统测量结果造成误差,以及峰值出现平缓难以检测情况,本文采用峰值检测电路处理后的波形重心法[7],保证了较高的准确性及抗干扰能力。峰值检测电路如图6所示,用于得到接收信号的包络线,通过STM32的A/D口进行数据的采集,利用中位值滤波算法进行求解,增加结果的准确性。检测电路先对波形进行了半波整流,再由低通滤波器滤除高次谐波成分。
图6 峰值检测电路
通过峰值检测电路处理后,进行放大,可以得到图7所示的处理波形。可知,电路处理效果较好,峰值两侧基本呈对称,单片机对包络波形的峰值区进行取值计算作为峰值。
图7 峰值检测处理放大波形
2.8 温度补偿模块
实际测量时,超声波传播速度受温度影响较大[5,8],传播速度数值差异较大。为了提高测量精度,设计了温度补偿电路[9,10]。已知超声波传播速度与绝对温度T的关系为c=331.45+0.607T。
温度补偿电路采用DS18B20芯片,工作电压5 V,同时通过软件编程设置,满足系统设计需求。
2.9 通信设置
为了便于同上位机的通信处理,设计了RS—485串行半双工通信接口,利用SP3485芯片进行数据的收发控制,同时充分利用系统中FC—09G风速风向仪的通信功能,通过RS—485与上位机连接,在上位机上使用专门软件Monitor设置风速风向仪。
3 系统软件设计
系统软件程序设计主要包括主程序、温度采集程序、数值计算程序、中断程序等。
系统首先由单片机发出工作开始信号,启动风速风向仪开始超声波的发射与接收工作,同时启动A/D采集程序和中断定时功能,一旦接收数据即开始数值计算和中值滤波处理,温度采集程序提供误差补偿,最后将计算结果显示在液晶显示屏上。程序处理流程如图8所示。
图8 系统主流程
4 实验校准
为了保证实验中数据采集的准确性,需要对该系统的准确性进行前期校准以改正设计中可能存在的误差。考虑该系统工作环境及相关因素,本次系统风速校准环境为:温度为23.5 ℃,湿度48 %RH,大气压强1 007.0 hPa;风向校准环境为:温度23.2 ℃,湿度49 %RH,大气压强1 007.0 hPa。表1、表2分别为风速、风向实验校准结果。
表1 风速实验校准 m/s
表2 风向校准结果
5 结束语
本文叙述了基于STM32为核心的风速风向仪设计,选择自主激发接收一体的风速风向仪,电流传输模式使得采集信号可以进行远距离的精准传输,较高的单片机采样频率保证了采样的准确性与及时性,精密电路设计及芯片选择较好地处理保存测量信息,同时也给软件设计带来简化。为了更好地增加测量的准确性,还需要进一步对电路产生的延迟进行进一步研究。