基于STM32单片机和GNSS平台的压力管道测量系统

2022-10-18 03:54陈鸿鹏威海市特种设备检验研究院山东威海264200
化工管理 2022年28期
关键词:绘制单片机管道

陈鸿鹏(威海市特种设备检验研究院,山东 威海 264200)

0 引言

随着工业规模化和精细化的不断发展,压力管道的数量也在不断增加,作为一类重要的特种设备,压力管道需要定期进行检验。根据TSG D0001—2009《压力管道安全技术监察规程—工业管道》规定[1],一般情况下,压力管道的检验人员在检验过程中需要审查压力管道设计、安装、使用的相关资料。实际检验过程中,部分压力管道使用单位的安装竣工资料由于保存不当图纸丢失以及检验人员对压力管道的相关资料存在怀疑时,需要对压力管道进行现场测量,重新绘制压力管道单线图。对于户外较为复杂或者长度较长的压力管道,激光测距仪、卷尺、罗盘等传统测量方法工作效率不高,检验人员的大量精力用在测量和绘制单线图的工作中来,由于传统测量操作不便、需要人工记录和分析数据等原因,已经不能完全满足检验工作高效、精确的要求。本文通过利用STM32单片机、GNSS差分定位和气压定高等,对户外压力管道的重要坐标点进行三维坐标的测量,自动记录和绘制压力管道单线图,可以实现管道关键测量点数据的准确、高速记录,提高压力管道检验的速度和效率。后期也可以利用地图软件SDK等二次开发,以直观形式复原压力管道的实际位置和分布。

1 系统整体结构

压力管道测量系统的硬件组成如图1所示。本系统主要由STM32F103单片机控制模块和GNSS双模接收模块、BMP280高度气压传感模块、TFT显示屏模块、SD卡记录模块及控制按钮6个部分组成,另外有1组RS232通讯接口方便接入PC机或其他终端。其中STM32F103控制模块作为程序控制单元,通过接收来自GNSS北斗接收机、BMP280高度气压计等传感器的数据,计算出被测测量点的坐标数据和相对高度数据,通过SD卡模块记录各测量点的数据,并通过TFT显示屏模块实时绘制管道走向的基本图像缩略图,便于检验人员现场参考。后期通过PC软件读取SD卡记录的坐标和标记信息,可以生成和导出压力管道的矢量图。

图1 系统硬件构成

2 系统硬件设计

2.1 STM32单片机

系统使用意法半导体STM32F103ZET6芯片,该芯片集成72MHz高性能ARM RISC内核,拥有两个I²C、三个 SPI、一个 SDIO、五个 USART、一个 USB和一个CAN,可在-40至+105 ℃的温度范围内工作,电源电压为2.0至3.6 V。利用该芯片的各种端口实现通讯、显示、输入输出和存储功能。

2.2 GNSS北斗接收机

由于普通民用级单点定位精度普遍在1~2 m之内,为进一步提高定位精度,采取使用RTK差分定位技术的定位模块。系统使用1颗国产BDP2620北斗、GPS双模定位模组作为定位接收机,芯片内置螺旋天线,串口波特率4 800~230 400 bps,通讯协议NMEA-0183,捕获追踪灵敏度不低于-165 dBm,数据刷新率1 Hz或5 Hz。RTK模式下单点定位精度0.1~0.15 m,采取串口通讯,可以满足管道单线图记录精度要求。

2.3 高度气压计

系统使用BMP280大气压强传感器模块作为高度数据来源,该模块采用I2C接口,相对绝对精度0.02 hPa(典型值),数据刷新率不低于20 Hz。

2.4 TFT显示屏

系统选取国产5英寸320×240分辨率TFT显示屏,显示屏采用8线SPI接口,由STM32单片机直接驱动,最高亮度不低于400 nit,基本满足户外显示亮度要求。

2.5 SD卡记录模块

SD卡记录模块型号CH376S,兼容5 V和3.3 V电平,采用8线SPI接口,SD卡文件采用FAT32格式。

2.6 数据通讯模块

系统采用串口接口实现RS232协议,采用DB25型连接接头,可以方便接入PC或者其他终端,通讯使用接收、发送、接地三条线,实现全双工通信,默认传送速率9 600 bps。另外有一条USB通讯接口,主要用于上机位,实现程序上传、调试等功能。

2.7 供电

电源采取4.2 V的锂电池模块供电,锂电池自带保护电路,外置AC/DC USB Tpye-C充电接口。内部使用DC/DC升降压电路实现3.3 V和5 V电压的输出。

将GNSS北斗接收机接入串口通讯接口,高度计接入I2C接口,SD卡模块和显示屏模块分别接入SPI接口,接好控制按钮等其他辅助电路。

3 数据的处理

系统的数据处理流程如图2所示,主要分为数据输入、处理和输出三个部分。

图2 数据处理流程

3.1 GNSS定位数据的处理

GNSS定位芯片首次通电后进行冷启动,开始搜索卫星信号,同时利用协议输出未定位的信号。卫星锁定一定数量卫星信号后将开始输出定位信息,通过协议传送至单片机,单片机将数据转换为经度和维度的二维坐标数值,生成坐标数组。根据两点坐标数值的不同,通过以下公式计算出两点间的距离:

根据地球直径,计算出两测量点的距离,使用以下公式计算:

其中R1为1经度的实际距离,取111 712.691 506 410 557 299 843 014 128 73 m;R2为1维度的实际距离,取R2为102 834.742 580 260 897 860 136 774 762 85 m。

然后使用勾股定理计算出两点间的实际距离Ds。

因GNSS定位模块在RTK高精度模式下的刷新率为1 Hz,考虑到实际现场测定效率,不采取其他滤波算法,采取取样3次取平均值的方式缩小系统误差。

3.2 高度数据的处理

卫星定位也能提供高度数据,但数据大多为椭球高度,与实际海拔高度存在一定误差。故采用气压高度计的方法获取各测量点的高度。以首次测量点的高度值作为基准高度,所有测量点的海拔高度利用以下海拔-大气压高度公式[2]计算:

式中:P0取标准大气压101.325 kPa。

对气压传感数据,在20 Hz采样过程中,发现仍有部分数值偏离较大,出现数据抖动情况,故采取卡尔曼滤波算法以提高数据稳定性。在不考虑其他因素影响下,可以建立单模型的一阶卡尔曼滤波,主要算法如下:

上一个最优值对应的协方差:

式中:P(k|k-1)为根据上一测量值预测的协方差;P(k-1|k-1)为上一次计算的最优值;Q为过程误差。

卡尔曼增益:

式中:R为测量误差。

计算出本次结果对应的协方差:

计算出本次数值的最优解:

式中:X(k|k-1)为根据上一测量值预测的结果;X(k-1|k-1)为上一次计算的最优解;Z(k)为实际测量值。

根据以上滤波算法进行编程上机测试,在封闭容器内通入压缩空气逐步加压,模拟不同气压值下的状态并读取传感器的数值,如图3所示。测试发现传感器读数在实际值附近呈现随机抖动分布。经过卡尔曼算法滤波后,计算数据有很好的跟随性和平滑性,能够有效过滤掉数据中偏离较大的值,提高了数据的稳定性和有效性。在实际操作中需要根据数据的特性确定起始的Q值和R值,其中Q值过大,动态响应较快,但收敛速度变慢,R值过大,收敛速度变快,但动态响应变慢。所以要针对数据采样频率和数据离散特性,通过实验获取最为符合的设定值,以获得最符合的动态响应和数据收敛。一阶卡尔曼滤波是对离散型数据的实际值进行收敛式的计算预测,收敛速度和数据量及离散特性紧密相关,计算时要尽可能使用原始采集数据,以避免数据在经过处理后增大系统误差从而偏离实际数值。

图3 气压传感器的卡尔曼滤波

3.3 数据记录

系统使用串口命令对SD卡记录模块进行操作,SD卡使用FAT32文件格式,在目录下利用命令建立pipeline+建立时间.txt文件,将坐标点的相关信息以数组的形式写入文件,数据格式为编号+坐标+大气压强+时间+测量点类型,具体如下:

记录完成后,可以方便拷贝留存。

4 程序的设计

4.1 现场测量的流程

压力管道现场测定坐标流程如图4所示,主要包含了资料确认、现场关键点测量和数据记录等步骤。

图4 管道单线图绘制流程

4.2 测量点类型的确认

如图5所示,如果不对关键点进行类型的标记,相邻测量点的连线绘制将有多种不同结果,无法根据测量点准确绘制管道走向。为避免此类问题,在经过点进行标记时,设定测量点类型为单点、连接点、三通、焊口。实际检验过程中由检验人员确定测量点的类型,此时管道的走向具有唯一性。为减少输入复杂性,该数据的编号由系统自动赋值。

4.3 坐标系的变换及绘制

压力管道单线图能够一目了然地了解整个管线系统的空间走向和位置,绘制时可以采用倾斜投影的方法,以X轴表示南北方向,Y轴表示东西方向,Z轴表示高度方向。单线图上标记管道走向、焊口编号和管道材质代号等基本信息。

Z轴方向采用以首个测定点高度作为Z=0的基准高度,其他测定点根据动态缩放比例线性缩放。

X轴方向,程序使用冒泡法遍历测定点的经度坐标,选取经度最小值的测定点作为X=0基准,其他测定点的X、Y轴坐标参照下列公式计算:

式中:Y(k-1)为上一个测量点的坐标;Y(k)为目前测量点的坐标。

以第一个测定点向经度增大方向(东)寻找最近的相连测定点,重复上面计算,直到计算结束,所有管道的坐标完成转换。

PC端软件采用C++语言开发,相关算法与显示屏显示算法基本一致,增加BMP格式的图像导出功能。

4.4 确定缩放比例

程序设置Xs[xmin,xmax]和Ys[ymin,ymax]共2个数组,记录所测数据的极值,利用以下公式计算出各方向上显示屏合理的缩放比例:

式中:Xp为显示屏在X方向上的分辨率;Xk为预留空白边界大小。

同样计算出Sy,两者以最大者作为最终缩放比例,保证在管道测定中,管道单线图能够随着测量的进行合理缩放。

5 系统测试及分析

将各硬件设备按照设计进行连接,程序写入单片机,开机测试正常通电后,到某管道使用地点进行实地测量。经过测试,该系统自通电至GNSS定位精度达到要求,共计使用28 s。现场测量计算数据如图所示,包含常见管道的上下以及水平方向的常见走向,测试中共定位压力管道管段6段,管道测定长度与实际测定长度统计如表1所示。

表1 系统实际测试数据

由此可以看出,相关测定点的标记在水平方向上精度较高,误差均不高于0.2 m;垂直方向精度误差均小于0.2 m,符合压力管道检验单线图绘制的要求,各个测量点标记基本准确,图像绘制符合实际走向。

导出pipeline20220204081215.txt文件至PC端,导入到单线图生成软件,实际绘制图像如图5所示。

图5 电脑端绘制管道单线图

生成的管道单线图草图可以导出为图像文件,方便用于检验报告中。

6 结语

本文设计的压力管道单线图辅助测量绘制系统,通过使用较为常见的STM32单片机和北斗定位模块、高度计等模块,实现了对压力管道各测量点坐标较为精确的记录,通过坐标变换,可以实时显示压力管道的缩略图。经过实际测试,各传感器工作正常,测量点获取快速准确,图形绘制符合管道的基本走向,数据记录完整有效,是提高压力管道检验工作效率的有效方式。后期可以采取更高分辨率和尺寸的显示屏提高显示观感,增加手动缩放功能以满足对细节查看的需求,也可以利用加速度计、GNSS数据和高度计的融合计算,进一步提高坐标数据的精确度。

猜你喜欢
绘制单片机管道
基于单片机的智能平衡小车设计
Painting ski maps 绘制滑雪地图
绘制童话
中俄东线天然气管道开通
绘制世界地图
大宝小神探·奇异的森林管道
神秘的不速之客
C8051F020与80C51单片机的异同点
俄欧天然气管道示意图
中缅油气管道示意图