盧 怡
(宜昌測試技術研究所 湖北 宜昌 443003)
近年來,隨著世界各國對水下生態保護的意識逐漸加強[1],以及海洋國防的不斷發展[2],水下發聲器成為當下研究的熱點問題。但在以往的水下發聲器的研究或者研發設計中,科研工作者往往忽視了對于水下發聲器在線監測和控制系統的研究[3-4]。例如,為保證水電站水下設施的安全,解決人類與水下物種間的相互干擾等問題,保護生態可持續發展,陳凱驊等[5]利用發聲器開發一套水下發聲系統,由于水下環境特殊,有時人們無法通過肉眼來直接觀察水下發生器的實時深度、是否正常工作等信息,這時需要對水下發生器進行實時測控,但陳凱驊等人沒有對水下發聲器在線測控系統進行研發、設計。綜合以往人們對水下發聲器的研究,目前亟需一種水下發聲器在線監控和控制系統,使用戶不僅可以實時觀測水下發聲器的工作狀況、深度等信息,還可以控制實時水下發生器的聲源頻帶等信息。
本文以澳大利亞科學家曾經研發一款自供能發聲器為研究背景,它是一款活塞式發聲器,由水擊渦輪提供動力,其工作原理是:在被拖曳的過程中,其尾部的葉輪受入射水流驅動而旋轉,經由傳動軸傳動后驅動發電機和液壓系統工作,發電機則為內部控制系統供電或給內置電池充電,液壓系統驅動聲輻射模塊產生寬帶頻譜聲場,這款活塞式發聲器具有以下的特點:(1)具有低頻驅動能力強、頻譜控制特性好的優點;(2)靠水動渦輪提供動力,無需外部能量輸入和控制,可以便捷地裝配在各種類型的船只上。
本文為這款自供能發聲器設計并實現了一種在線的監測和控制系統,并對硬件系統設計、通信協議設計、軟件系統設計進行了詳細闡述,該系統可實現數據的雙向數據通信,具有聲信號控制、液壓監測和控制、發聲器葉輪轉速監測、電源系統監測、深度監測、扭矩監測等功能。
在線測控系統包括計算機(personal computer,PC)測控平臺、通信線纜、控制器域網(controller area network,CAN)總線、串行通信接口232(RS232)、CAN轉RS232 轉換器、RS232 轉CAN 轉換器。自供能發聲器包括DSP 控制板、液壓聲源系統、數據采集系統、電源系統等,在線測控系統主要是通過對自供能發聲器的DSP 控制板、電源系統等系統進行監測或控制,進而實現對自供能發聲器的測控。圖1 為測控系統硬件平臺設計圖。
為了詳細闡明硬件平臺設計和測控系統功能實現原理,在圖2 中畫出了測控系統與自供能發聲器中DSP 控制板、液壓聲源系統、數據采集系統、電源系統等系統的數據流關系。
在線測控系統中的PC 機測控平臺搭載了一款配套研發的動態可視化軟件,可以實時接收和發送數據,用于控制設備的啟動、停止、工作狀態等,也可以監測每個設備的工作情況,具體為聲信號(或聲源)控制、液壓監測和控制、發聲器葉輪轉速監測、電源系統監測、水下深度監測、扭矩監測等功能。
在線測控系統實現聲信號(或聲源)控制,主要是通過控制數字信號處理(digital signal processing,DSP)控制板來實現的。DSP 控制板是自供能發聲器數字信號處理中心,PC 機測控平臺可以實時控制DSP 控制板的工作啟動和停止,并且實時控制DSP 控制板輸出信號,PC 機測控平臺向DSP 控制板發送指定增益系數,DSP 控制板生成的特定噪聲波形,波形被其內部功率放大器放大至指定的倍數,然后將數模轉換(Digital-to-analog conversion,D/A)電壓模擬信號輸出給液壓系統,引起液壓系統內部油缸驅動剛性活塞敲擊膜板的位置發生變化,進而使得聲信號發生變化,從而實現聲信號(或聲源)控制的供能。
有時液壓系統會出現壓力過大的情況,會影響自供能發聲器的工作性能,此時,需要在線測控系統對液壓系統的壓力進行監測和控制。在線測控系統接收自供能發聲器的液壓系統,并在PC 機測控平臺進行解析、顯示,實現對液壓系統的壓力監測。在線測控系統控制液壓系統,是通過PC 機測控平臺向液壓系統發送的控制信號實現的,在線測控系統可以控制溢流比例閥的開啟、關閉、開度信號,開度信號可以控制液壓系統的溢流比例閥打開的程度,進而調節液壓系統的液體壓強。
在線測控系統實現發聲器葉輪轉速監測、電源系統監測、水下深度監測等功能,主要是通過接收自供能發聲器的轉速、電源電壓、水下深度、扭矩等數據,并將數據在PC 機測控平臺進行解析、顯示實現的。PC 機測控平臺實時接收數據采集系統的數據,比如自供能發聲器實時的轉速、電源系統的電壓、深度、扭矩大小等信息,并將數據進行解析,利用配套的動態可視化軟件進行顯示,用戶通過觀測軟件界面,就可以了解自供能發聲器的實時工作狀況。值得一提的是,自供能發聲器的發電情況無法從傳感器的數據直接知曉,需要利用在線測控系統提供的數據計算得出,發電功率的計算公式為:
由于整個自供能發聲器系統工作時,需要實時監測和控制的設備較多,通信數據種類多、數量大,數據傳輸距離遠等,RS232 這種簡單的一對一串行通信模式已經遠遠不能滿足通信要求,所以本系統采用了基于CAN 總線的數據傳輸協議,但是由于PC 機測控平臺和各設備的接口只集成了RS232 串行總線接口,所以通信又采用了CAN 總線數據轉RS232 串口數據、RS232 串口數據轉CAN 總線數據的網關。
CAN總線是一種支持雙向串行多節點通信的現場總線[6-7],是目前使用最為廣泛的現場總線之一,由德國BOSCH 公司開發。CAN 總線采用差分信號傳輸,抗干擾能力強,最高傳輸速率可達1 Mbps,最大通信距離可達10 km[8-9],可以大大降低信息傳輸延時,適用于對通信時序較為嚴格的控制系統[10]。發聲器工作時,設備的監測和控制只能由電子操作遠程完成,多個設備的實時監測和控制使得通信較為復雜,此外系統的功能決定了必須使用“一主一從”的點對點通信模式。因此,本系統的通信機制須盡可能精細,一方面要實現對設備“一主一從”的點對點控制要求,另一方面盡量降低系統的復雜性。由于CAN 總線具有可靠性高、實時性強、支持分布式通信等特點,所以本系統采用的是基于CAN 總線的通信協議。
在線測控系統的通信采用的是主-從通信模式,主設備為PC 機測控平臺,從設備主要為發聲器,主設備通過CAN總線與從設備相連。PC 測控平臺首先通過CAN 總線與發聲器建立邏輯連接,設備連接成功后,PC 測控平臺可以控制和監測與發聲器的工作情況。本系統使用的是CAN 2.0 B 傳輸協議,數據幀為11 個字節,前3 個字節為信息部分,第1 個字節表示數據位長度,第2 字節和第3 個字節表示報文識別碼;后8 個字節為數據幀的實際數據部分,即為有效字節,稱為數據位。在PC 機測控平臺發送的數據中,第1 個字節和第2 個字節表示報文的起始地址,第3 個字節表示控制的模塊地址,第4 個字節表示功能代碼,第5 個和第6 個字節表示設定的數據,第7 個字節和第8 個字節表示報文結束。在PC 機測控平臺接收的數據中,第1 個字節表示功能代碼,最后1 個字節表示報文結束,第2 個字節和第3 個字節表示工況類型1,第4 個字節和第5 個字節表示工況類型2,第6個字節和第7 個字節表示工況類型3。這樣的通信協議設計,可以實現主控端向網絡的每一個設備發送控制信息報文,也可以保證網絡中的每一個設備都可以主動發送工況報文,設備之間不存在通信干擾,避免網絡沖突,從而達到“一主一從”的點對點通信效果。
傳統型測控軟件往往具有以下3 個問題:(1)系統通信中斷、系統設備異常時無法提供警示;(2)多以文本方式顯示,當數據超限時無法及時警示用戶;(3)對需要高頻次顯示的數據無法以波形方式實時顯示,影響用戶決策。
為解決上述問題,本文設計的系統軟件考慮了通信中斷警示和通信控制、重要設備控制、自動報警、可視化模塊動態顯示數據等功能。由于Microsoft Visual C++ 6.0占用的系統資源少,打開工程和編譯運行的速度都比較快,本文將其作為開發平臺,開發語言使用C++。
由于發聲器通常是在水下工作,水下環境往往變幻莫測,可能因不可預知的情況,通信中斷或者停止,為及時發現這一狀況,在軟件界面設計時使用了微軟基礎類(microsoft foundation classes,MFC)中的“iRotationDisplayX”控件。系統軟件實現了串口通信中斷警示功能的大致思路為,將是否存在自供能發聲器的監測數據從串口輸入作為圖標旋轉依據。具體思維為:設置圖標每次旋轉角度為a,在t 時刻圖標的角度為b;如果在t+1 時刻,存在監測數據從串口輸入,那么此時圖標的角度為b+a。這樣用戶可以通過觀察圖標是否旋轉,從而判斷此時通信是否正常連接。
此外,在以往的測控軟件設計中,一般會設置特定的數據通信的串口,當系統測控軟件移植到其他電腦上時,往往需要程序開發人員在源代碼上修改串口編號,不便于通信配置。基于以上考慮,在系統軟件的研發過程中,增加串口選擇功能,用戶可以直接根據設備的實際情況,選擇數據接收和發送的串口,大大簡化通信配置的流程,節省通信配置的時間。
DSP 控制板和液壓系統是本系統中的重要控制對象,直接關乎聲源的頻譜帶寬。基于實際控制需要,在系統測控軟件界面上設計了以下操作功能:DSP 控制板啟動信號輸出、停止信號輸出、信號增益設置;液壓系統的開關閥開啟、開關閥關閉、溢流閥開度設置。DSP 控制板和液壓系統為精細設備,有特定的性能參數,為避免用戶操作失誤,增加操作錯誤警示窗口彈出功能,協助用戶使用軟件,例如,溢流閥開度設置的警示窗口彈出功能程序設計為:
if(0<=(GetDlgItemInt(IDC_EDIT_FLOODVALVE))&&(Ge tDlgItemInt(IDC_EDIT_FLOODVALVE))<=85)
m_pPort->WriteStringDataToPort(m_uiPort,(char*)chSend,8);
else MessageBox("溢流閥設置輸入有誤!","提示信息",MB_OK);
為了讓用戶直觀知悉系統實時工況數據、是否存在報警等,將文本控件派生于CLable 類,對默認的控件顏色、控件文本顏色、控件文本字體進行了改寫,實現彩色文本顯示,以控件顏色為例,數據正常時用控件文本顏色為藍色進行顯示,快到臨界值時用控件文本顏色為紅色進行顯示,數據超限時用控件文本顏色為紅色進行顯示,這樣當數據異常時可以及時警示用戶。另外,在發聲器工作時,用戶往往會根據數據變化趨勢實施操控,所以使用了MFC中的“iPlotX”控件,對工況數據進行可視化動態波形顯示。由于有的工況數據數位不一致,如果將所有數據都以1 ∶1 在同一個示波器上顯示,那么用戶不方便觀察數據變化趨勢,所以在示波器顯示時進行比例顯示,系統壓力P、壓力A、壓力B 和系統流量、拖體深度是1 ∶1 顯示,而轉速是以實際數據的1/10 進行顯示。
為了驗證發聲器在線測控系統的功能,開展了湖上試驗,圖3 為某次試驗時發聲器測控系統軟件的主界面。試驗時,可以在通信控制和通信指示根據設備的實際情況選擇數據接收和發送的串口,在串口通信狀態指示區觀察通信連接情況;在重要設備控制區,可以設置DSP 控制板的信號輸出啟動和停止、輸出信號增益,可以設置液壓系統的開關閥開啟和關閉、溢流閥開度,在界面的顯示區域能夠實現各類工況數據的實時接收以及顯示,采集的設備工況以數據或示波器圖像形式進行動態顯示。
本文主要對自供能發聲器的監測和控制進行了研究,提出了一種在線測控系統,并詳細介紹了系統的硬件平臺設計、通信協議設計、系統軟件設計,具有聲信號控制、液壓監測和控制、發聲器葉輪轉速監測、電源監測、深度監測、扭矩監測功能,配套的動態可視化軟件可實現通信中斷警示、通信控制、重要設備控制、自動報警、可視化模塊動態顯示數據等。最后,通過湖上試驗對系統的基本功能以及可靠性進行了測試,測試結果充分驗證了本系統設計的正確性。