基于DSP-FPGA平台的ADCP高沙流量测量系统
2022-05-17彭东立章寿涛程信羲嵇正华
彭东立,章寿涛,程信羲,嵇正华
(江苏中海达海洋信息技术有限公司,江苏南京 211800)
0 引 言
声学多普勒流速剖面仪(Acoustic Dopplcr Currcnt Profilcr, ADCP)是基于多普勒效应原理进行河道流量测量的声学测量仪器,相比较于传统的涉水测量、转子流速仪测量,ADCP系统具有精度高、效率高、不扰动流场等优点,在水文行业得到了广泛应用[1]。ADCP系统通过换能器发射测量信号、接收反射的回波信号,在系统中进行一系列的信号处理计算,分别得到水体反射体和河床反射体的相对速度,从而完成河道流量的计算[2-3]。ADCP系统在精度、可靠性、功耗、成本、体积等方面具有严格要求,嵌入式系统具有的强大计算能力、硬件和软件结合、灵活编程面向特定功能等优点,满足ADCP系统的各类要求,已有许多研究基于自身的需求,实现了不同的ADCP系统,如:基于OMAP平台[4]、仅基于FPGA平台[5]、基于DSP与FPGA平台[6]等。
ADCP系统测量作业容易受到水文环境的影响。由ADCP测量原理可知,ADCP需要接收水体反射的信号进行测量作业。然而在大含沙量环境中,由于水体中含有大量的悬沙,使得ADCP系统发射的测量信号被吸收,信号强度快速衰减,ADCP系统无法接收获得有效的反射信号,无法完成测量作业[7]。上述各研究中实现的ADCP系统均未考虑大含沙环境下的测量问题。
本文选择使用TMS320C6748与Spartan-6平台的DSP与FPGA方法实现ADCP系统。该方法具有以下优势:首先DSP芯片具有主频高、接口多、功耗低、便于开发等优点,便于实现ADCP系统的控制、信号处理、外设扩展与通信、算法修改维护等功能,提高了ADCP设备的计算效率和测量精确度;其次FPGA芯片具有高带宽、并行结构、可重复编程等优点,便于完成控制信号的发射和采集,提高了数据的处理效率。最后,基于DSP芯片的接口扩展性与FPGA芯片的数据处理效率,可以扩展外设,完成大含沙水域测量作业。
1 ADCP系统测流方法
1.1 ADCP测流量原理
ADCP系统是通过各个换能器发射、接收水体或河床的回波信号,若ADCP与反射体分别以速度vr和vs相对运动,声源信号的频率为fs,回波信号的频率为fr,依据多普勒效应可得[8]:
式中:c是声波在介质中传播的速度;vs表示声源相对ADCP的速度,当声源朝向观测者运动时,vs取-号,反之取+号;vr表示观测者相对声源的速度,当观测者朝向声源运动时,vr取+号,反之取-号。由于每次收发信号时间短且船速远小于声速,因此可将式(1)近似为一般的多普勒径向测流公式:
通过解析不同反射体的回波信号,基于上述公式(2)进行计算,可得到水体、河床反射体相对ADCP系统的速度,再经过波束转换和纵倾横摇的修正后,即可得到水流速度V和船速Vb,上位机可基于测量数据进行流量计算。
与传统人工船测、涉水测量、缆道测量相同,ADCP系统也需要在整个断面上测量得多组垂线处的流速。对于ADCP系统而言,在较短的一个时间间隔(1 s)内就可以得到一组流速和船速的数据,且不会对流场产生干扰,因此可以在测量船安装ADCP设备进行走航测量,得到多个垂线流速和船速后再计算流量,测量过程如图1所示,图中各个单元格中的数字表示测得的流速结果。
图1 ADCP测量示意图Fig.1 Schematic diagram of ADCP measurement
在经过走航测量完整断面后,所有垂线的流速V和船速Vb信息后,再根据每个垂线处的水深H和船速Vb,可进行流量计算,过程具体如下:流量基本计算公式[9]为
式中:Q为流量,S为断面面积,u为微元流速矢量,ξ为测量船航迹的单位法线矢量,ds为微元面积。由积分定理可将ds表示为
式中:dz为微元垂向长度,z为垂向坐标,z=0对应河底,z=H对应水面;dt为时间微元;Vb为船速矢量,为航迹方向速度,可表示为
因此,式(3)可以重新表示为
式中:T为总航行时间;k为垂向单位矢量。在实际测量和计算中,时间微元dt和长度微元dz由是每个垂线的测量时间和单元格的大小,趋向于无穷小。因此式(6)可以转换为离散求和形式:
式中:m为单元格总数;Hi为单元格i的深度宽值;Δt为单元格i的测量时间;V为单元格的平均流速;Vb为单元格的当前船速;X表示速度北向分量;下角Y表示速度东向分量。
1.2 泥沙含量对作用距离的影响
由ADCP系统的工作原理可知,ADCP系统是通过接收水中浮游生物或其他悬浮物质的反射回波测量流速V、通过接收河床的反射回波得到测量船的船速Vb,因此测量水域水体的含沙量对ADCP的测量有较大的影响。对于ADCP系统而言,为了满足实际应用环境的需求,系统发射信号的强度有限;而且为了保证计算的精确度,系统对于接收到的回波信号强度具有一定的要求。
当测量水域的水体较为清澈,水体含沙量较小、悬浮物质较少时,水体反射的信号较少,导致ADCP接收到的对水反射回波信号强度低,且信号含有的频移信息少,无法通过信号处理计算出对应的水流速度,从而无法完成流量测量。当测量水域水体较为浑浊,水体含沙量较大时,水中泥沙对于ADCP发射信号能量的吸收大大增加,信号穿透力明显下降,导致ADCP无法接收到有效的河床反射回波信号,无法解算得到底跟踪数据,从而无法进行测量。
由于水域环境复杂,河床的底质不尽相同,且水体的含沙量难以精确测量,因此尚未有研究得出水体含沙量对ADCP测量的确切影响。对于底跟踪功能而言,由于对信号处理解算方法和精度的影响,水体含沙量的增加会导致ADCP的底跟踪作用距离会骤降,无法使用底跟踪功能;对于对流测量功能而言,依据粗略的估算公式可知[10],水中含沙量在3 kg·m-3左右时,ADCP的对流有效剖面的作用距离降低约50%,由此可粗略推算对流作用距离的计算公式为
式中:D为ADCP系统的实际对流剖面作用距离;Dmax为理论最大对流剖面作用距离;CS为水体的含沙量大小。
由上述论述可知,ADCP系统在含沙量较小的水域无法测量得到流速,在含沙量较大的水域无法测量得到底跟踪数据,因此限制了 ADCP系统的应用环境。
2 ADCP测量系统
2.1 ADCP系统
ADCP测量系统主要由上位机、信号处理、发射机、接收机和收发换能器等部分构成,协调完成测量所需的发射、接收、计算、处理及通信等功能。
ADCP系统使用的换能器是收发一体的水声换能器,在DSP的控制下,既可以进行测量信号的发射,也可以进行回波信号的接收,从而精简了系统的结构。
对于ADCP系统的发射机、接收机部分,主要用于完成测量信号的发射与接收功能。发射机先通过接收、解析DSP下发的配置参数信号,随后进行发射信号所需的PWM波的调制,再通过驱动电路将调制好的PWM波加载到换能器,实现特定的测量信号发射。在测量信号发射后,接收机进行对回波信号的采集,通过接收机上的ADC采样模块,实现多通道的高速数据采集功能,最后将接收到的数据传给DSP,进而实现下一步的分析计算。
2.2 DSP与FPGA平台系统
本文设计的ADCP系统是基于DSP-FPGA平台实现,其中 DSP使用的是 TMS320C6748芯片,FPGA使用的是Spartan-6 FPGA系列。此DSP芯片是一款低功耗定点/浮点运算芯片,最高主频可达到456 MHz,利用官方的Dsplib和Mathlib算法库可实现算法优化,提高运算速度。此外,该芯片采用361Balls的PBGA封装,该种封装体积小,占用面积小,脚间距适中,易布线。
ADCP系统DSP-FPGA平台构架示意图如图2所示。DSP-FPGA平台功能:DSP在ADCP系统中不仅需要实现与上位机、测深仪、GPS之间的交互,还需要完成与FPGA之间的交互。上位机下发参数控制DSP,DSP根据参数计算结果通过SPI控制FPGA,FPGA调制发射信号,并通过驱动功放电路将发射信号加载到换能器两端,实现声呐信号发射。发射结束后,FPGA控制ADC芯片进行多通道高速数据采集。利用高速并行uPP接口与DSP进行通信,将采集的声呐数据及各传感器数据批量上传给DSP。
图2 ADCP系统架构示意图Fig.2 Block diagram of ADCP system
DSP通过uPP接收到FPGA批量上传的数据后,结合外部辅助设备传输给DSP的相关数据一起进行数据的信号处理,最终将计算结果传输给上位机显示。
2.3 接口与外设
TMS320C6748中使用的有串行接口IIC、SPI、UART,并行口uPP,共享内存RAM,可定制接口PRU,增强型DMA控制器 EDMA3,以及外部存储器接口EMIFA和DDR2。
UART2使用基于EDMA3的串口,作为主串口用于上下位机的数据传输。UART2和UART3使用基于 PRU的串口收发控制,分别用来接收测深仪和GPS数据,能够大大减少CPU的中断响应,提高CPU的效率。IIC用于实现EEPROM的数据存储,EEPROM 可实现掉电数据保存的功能。EMIFA接口完成NANDFLASH的初始化,并进行NANDFLASH(8 bit)的 Bootload,该初始化驱动程序在 DSP的 Gcl文件中通过回调函数完成。DSP外扩DDR2进行初始化与调用,该部分功能在Gcl文件中完成初始化,并且在DSP的CMD文件中分配好相应的资源来访问 DDR2高速内存。自定义GPIO功能引脚可实现对 FPGA 的控制,实现FPGA的工作模式切换。DSP与FPGA之间使用SPI通信,并且通过SPI接口向FPGA传输控制参数命令。FPGA采集完数据后通过uPP告诉并行接口将数据传输给DSP。
3 ADCP高含沙量水域应用
3.1 高含沙量水域下对底替代
由1.2节的论述可知,ADCP测量环境受到水域泥沙含量的影响,当测量水域的泥沙含量较大时,ADCP系统可能无法获得底跟踪数据,从而无法完成测流量作业。由流量计算式(7)可知,在计算断面流量时,除了需要测量得到所有垂线上各个单元的流速外,还需要底跟踪数据参与计算,即各垂线处对应的水深H与走航船速Vb数据。为了在高含沙量水域使用 ADCP进行测流量作业,需要替代ADCP的对底测量功能,将流量计算需要的水深H和船速Vb参数通过其他设备测量得到,并输入至ADCP系统中,再代入式(7)完成流量计算。
高含沙量水域的水深H数据可以通过测深仪设备进行测量,由于测深仪设备发射的信号频率较低,因此信号具有更高的穿透性,在高含沙量水体中使用仍可接收到回波信号,通过信号处理、解算得到水深H′;而GPS设备通过卫星定位,发射、接收电磁波信号,得到实时、高精度的速度Vg和方向θ数据,常用的测深仪设备和 GPS设备如图3所示。
图3 测深仪和GPS设备Fig.3 Echo sounder and GPS equipment
在测得上述水深H′、船速Vg和方向θ后,还需要传输到ADCP系统内,从而完成流量的计算。在本文设计的ADCP系统中,DSP芯片上具有独立的 PRU模块,可以扩展外部接口,满足了水深和船速数据的输入条件;在程序方面中,还需要修改DSP程序中与船速Vb、水深H部分计算和存储相关部分,使用GPS测得的速度Vg× c osθ和Vg×sinθ替代底跟踪船速,使用测试仪测得的水深H′替代底跟踪水深H,然后再进行流量计算。因此在进行流量计算时,需要将式(7)转化为
此外,还需要修改DSP程序中解析保存水深和船速数据的部分,从而用于计算流量。最后,很重要的一点是需要同步得到3台设备的数据,从而保证流量计算的精度,因此DSP芯片需要对各数据时间匹配,即选择时间最相近的有效数据与ADCP测得的流速数据相匹配。
3.2 实际水域测试应用
为了验证本文所述ADCP系统的可行性与测量精度,在黄河流域济南泺口水文站附近进行流量测量测试试验。试验验证了在大含沙量水域,本文设计的ADCP系统可以使用外接辅助完成流量测量试验,扩展了ADCP系统的使用区域。
本次测量的水域为黄河济南段泺口水文站附近,断面最大深度约 10 m,测量时水体含沙量达15.5 kg·m-3,测试使用的是中心频率为 600 kHz的ADCP设备,设备最大对流剖面作用距离约80 m,依据式(8)可计算得出,在当前水域环境中,ADCP设备可测量的最大对流剖面深度D为
ADCP安装后的入水深度约1 m,其自身盲区约 1.6 m,由此可粗略计算得到,在当前水域中,ADCP设备流速剖面测量的最大作用距离为:Hr=D+1+ 1 .6=1 0.34 m> 1 0 m,由此可认为设备在当前水域可以测量的流速范围覆盖了河道断面的最大深度,满足测量条件。
然而,由式(10)估算得出的是在当前含沙量下ADCP系统的对流作用距离,对于 ADCP而言,对底测量的作用距离更加难以估算。由于对底测量需要在完成的接收信号中进行搜底的计算,对回波信号的信噪比要求更高;此外,在相同深度的测量上,对底测量的结果所需的精度要求比对流测量更高,对底测量也需要更高的信号强度和信噪比。由于大含沙量水体的河底一般为软质泥沙底,且底部回波是一个散射过程,从而导致底回波信号强度虽然大于对流回波强度,却仍不满足底跟踪的条件。因此在当前条件下,ADCP系统出现了在相同情况下可以进行对流测量,却无法进行对底测量、无法完成搜底功能的情况。
测量时将ADCP设备通过侧舷安装的方式安装在钢制测量船上,并将测深仪以同样的方式安装在ADCP设备的正前方,并尽量减小间距;同时,GPS设备的定位、定向天线安装在 ADCP系统的正上方,从而保证三个设备测量的垂线是一致的,实际安装如图4所示。
图4 测量试验仪器安装示意图Fig.4 Schematic diagram of equipment installation for flow measurement
本次试验首先不使用外接测深仪和 GPS设备进行测量,断面测试效果如图5所示,随后接入测深仪和GPS数据,断面效果如图6所示。由断面测试效果图对比可以看到,由于水域大含沙量的影响,在不使用外接设备辅助时,ADCP仅能在岸边水较浅处得到底跟踪数据,无法进行整个断面的测量;使用外接设备后,系统正常工作,可完成断面流量测量作业。
图5 仅使用ADCP系统测量断面图Fig.5 Result of flow measurement only by ADCP
图6 GPS和测深仪辅助ADCP测量效果Fig.6 Result of flow measurement by ADCP with Echo sounder and GPS equipment
在测量时间段内,本次试验使用ADCP系统配合外设共进行了4个半测回的测量,试验测得的结果如表1所示。在当日17时,泺口水文站官方测报的水文信息如表2所示,表中流量数据是水文站使用配备的转子流速仪设备测得的泺口站水域的实时数据;含沙量数据为水文站9月2日发布的最新测量结果。
表1 2020年9月2日16点测验结果Table 1 Flow measurement result at 16:00 on Sept. 2, 2020
表2 官方测报统计水文数据Table 2 Hydrological data by official statistics
由表2可知,ADCP走航测量的2个测回的4组流量测量相对误差分别为:0.19%、-0.56%、-1.54%、2.12%,最大相对误差为 2.12%,不仅满足测量规范要求,并且达到了较高的测量精度。由表1可知,9月 2日泺口水文站在 17点流量为3 980 m3·s-1,与 ADCP在16点之后测得平均流量4 020 m3·s-1的流量结果数据对比,流量相对误差为1.01%。
由上述试验结果分析可知,在本次测量的黄河泺口站附近水域,水体含沙量高,在仅使用ADCP设备进行测量时,无法得到有效的底跟踪数据,无法进行测量;在外接测深仪和GPS设备后,系统可以正常完成流量测量试验,且测试过程中系统状态稳定,验证了本文设计系统的稳定性和有效性。由ADCP设备多次测量的流量结果可知,设备流量测量自身相对误差的绝对均值为1.10%,且与水文站官方测报给出的流量数据的相对误差为1.01%,验证了本文设计的ADCP系统的测量精度和性能。
4 结 论
本文基于TMS320C6748与Spartan-6平台完成了ADCP系统的设计,并通过DSP芯片扩展了外设连接,将测深仪和GPS数据接入ADCP系统,克服了大含沙量的影响,扩展了测量功能。在含沙量为15.5 kg·m-3的黄河水域进行测试试验,流量测量自身相对误差的绝对均值为1.10%,与水文站官方测报给出的流量数据的相对误差为1.01%。由此验证了本文设计的ADCP系统及其连接外设辅助测量的方法,可以克服大含沙量的影响进行流量测量,且系统的稳定性好,流量测量精度满足测量规范的要求。