彭東立,章壽濤,程信羲,嵇正華
(江蘇中海達海洋信息技術有限公司,江蘇南京 211800)
聲學多普勒流速剖面儀(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芯片的數據處理效率,可以擴展外設,完成大含沙水域測量作業。
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表示速度東向分量。
由ADCP系統的工作原理可知,ADCP系統是通過接收水中浮游生物或其他懸浮物質的反射回波測量流速V、通過接收河床的反射回波得到測量船的船速Vb,因此測量水域水體的含沙量對ADCP的測量有較大的影響。對于ADCP系統而言,為了滿足實際應用環境的需求,系統發射信號的強度有限;而且為了保證計算的精確度,系統對于接收到的回波信號強度具有一定的要求。
當測量水域的水體較為清澈,水體含沙量較小、懸浮物質較少時,水體反射的信號較少,導致ADCP接收到的對水反射回波信號強度低,且信號含有的頻移信息少,無法通過信號處理計算出對應的水流速度,從而無法完成流量測量。當測量水域水體較為渾濁,水體含沙量較大時,水中泥沙對于ADCP發射信號能量的吸收大大增加,信號穿透力明顯下降,導致ADCP無法接收到有效的河床反射回波信號,無法解算得到底跟蹤數據,從而無法進行測量。
由于水域環境復雜,河床的底質不盡相同,且水體的含沙量難以精確測量,因此尚未有研究得出水體含沙量對ADCP測量的確切影響。對于底跟蹤功能而言,由于對信號處理解算方法和精度的影響,水體含沙量的增加會導致ADCP的底跟蹤作用距離會驟降,無法使用底跟蹤功能;對于對流測量功能而言,依據粗略的估算公式可知[10],水中含沙量在3 kg·m-3左右時,ADCP的對流有效剖面的作用距離降低約50%,由此可粗略推算對流作用距離的計算公式為

式中:D為ADCP系統的實際對流剖面作用距離;Dmax為理論最大對流剖面作用距離;CS為水體的含沙量大小。
由上述論述可知,ADCP系統在含沙量較小的水域無法測量得到流速,在含沙量較大的水域無法測量得到底跟蹤數據,因此限制了 ADCP系統的應用環境。
ADCP測量系統主要由上位機、信號處理、發射機、接收機和收發換能器等部分構成,協調完成測量所需的發射、接收、計算、處理及通信等功能。
ADCP系統使用的換能器是收發一體的水聲換能器,在DSP的控制下,既可以進行測量信號的發射,也可以進行回波信號的接收,從而精簡了系統的結構。
對于ADCP系統的發射機、接收機部分,主要用于完成測量信號的發射與接收功能。發射機先通過接收、解析DSP下發的配置參數信號,隨后進行發射信號所需的PWM波的調制,再通過驅動電路將調制好的PWM波加載到換能器,實現特定的測量信號發射。在測量信號發射后,接收機進行對回波信號的采集,通過接收機上的ADC采樣模塊,實現多通道的高速數據采集功能,最后將接收到的數據傳給DSP,進而實現下一步的分析計算。
本文設計的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的相關數據一起進行數據的信號處理,最終將計算結果傳輸給上位機顯示。
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。
由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測得的流速數據相匹配。
為了驗證本文所述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系統的測量精度和性能。
本文基于TMS320C6748與Spartan-6平臺完成了ADCP系統的設計,并通過DSP芯片擴展了外設連接,將測深儀和GPS數據接入ADCP系統,克服了大含沙量的影響,擴展了測量功能。在含沙量為15.5 kg·m-3的黃河水域進行測試試驗,流量測量自身相對誤差的絕對均值為1.10%,與水文站官方測報給出的流量數據的相對誤差為1.01%。由此驗證了本文設計的ADCP系統及其連接外設輔助測量的方法,可以克服大含沙量的影響進行流量測量,且系統的穩定性好,流量測量精度滿足測量規范的要求。