魏文涵 楊 江 范 濤 楊厚麗
(1.湖北省地震局地震預警湖北省重點實驗室,湖北武漢 430071;2.武漢地震科學儀器研究院有限公司,湖北武漢 430071)
隨著我國經濟建設的飛速發展以及城市化進程的快速推進,截至2020年我國燃氣管網的總里程已接近10 萬km。國外發達國家的部分城市已經建立了燃氣管網地震緊急處置系統,緊急處置技術較為成熟,并在強地震中起到了減災作用,如在1995年的日本阪神大地震中,大阪煤氣公司的地震緊急自動處置系統由于自動關閉裝置運行良好,有效減輕了因煤氣泄漏引發的次生災害。目前國內較多城市燃氣管網應用了SCADA、GIS、GSM和GPRS系統,基于以上研究,中國地震局工程力學研究所研制的全機械式地震觸發閥門,地震觸發閥門設定閾值為8度,在1~5 Hz的地震頻率下觸發關閉,能夠避免外界非地震震動的誤觸發。但這種全機械式地震觸發閥門也存在一定的不足,比如觸發閾值單一且不方便調整、無法實現遠程控制、地震中缺乏具體振動數據不利于震后評估、體積大安裝維護麻煩等問題。
區別于傳統的地震監測設備和工程力學研究所研制的全機械式地震觸發閥門,采用智能數字化加速度傳感器進行加速度測量,地震燃氣開關平時處于休眠狀態,小振動情況下自動喚醒同時進行振動數據識別及采集,實現振動高采樣實時監測。在振動超過設定閾值時自動切斷燃氣閥開關,有效提升了報警可靠性。利用通信模塊通過MQTT協議完整的記錄并傳輸地震數據至MQTT服務器云端,為震后分析評估提供數據支撐。
系統硬件框架主要分為主控模塊、加速度傳感器模塊、通信模塊、供電模塊。系統以ADuCM3029為主控芯片,通過軟件對傳感器的采樣頻率、振動閾值等參數進行配置,實現對傳感器的控制;將采集的數據通過UART串口以設定的通信協議數據傳輸格式將數據傳輸到MQTT云端服務器。傳感器模塊在主控芯片控制下采集三軸加速度,將加速度測量值通過SPI串口傳入主控芯片。利用通信模塊SIM7020通過MQTT協議連入MQTT服務器云端,并將主控芯片中的加速度測量值存儲至云端服務器。通過發布/訂閱的方式,用戶可以獲取存儲在云端的數據,實現與遠程終端的數據交互。
主控芯片選擇的是ADI公司所生產的ADuCM3029芯片。ADuCM3029采用Cortex-M3內核,由內部振蕩器提供高達26 MHz的時鐘源,在運行內核或調用外設時可以通過軟件配置選擇使用外部晶振或內部振蕩器,對需要特定時鐘的外設保證合適的頻率,為應用帶來了高度的靈活性。256 kB的嵌入式閃存用于存儲程序,64 kB的SRAM,LFCSP封裝具有44個可編程GPIO引腳、3個SPI接口、1個UART、1個I2C總線、2個RTC,具有豐富的外設。
主控模塊主要負責傳感器數據的讀取,與通信模塊數據交互。SPI通信接口與加速度傳感器ADXL362進行數據的傳輸;UART串口與通信模塊連接;引腳47與51作為外部中斷信號,控制芯片與傳感器的模式切換。
在數據采樣方面,ADXL362與使用周期采樣實現低功耗的加速度傳感器不同,沒有通過欠采樣混疊輸入信號,采用全數據速率對傳感器的帶寬進行采樣。ADXL362一般提供12位輸出分辨率,在較低分辨率的情況下,提供8位輸出分辨率實現高效的單字節傳輸。ADXL362量程選擇±2 g時,加速度測量誤差小于5%,非線性度誤差小于1%,測量頻帶0.1~20 Hz,選擇低噪聲工作模式(典型值為175 μg/Hz),等效動態范圍約為60 dB,滿足加速度測量需求。
ADXL362加速度傳感器通過SPI和ADuCM3029連接,ADuCM3029作為主機時,ADXL362提供的INT1和INT2引腳通過與主控芯片的外部中斷引腳相連作為外部中斷信號。
通信模塊的性能對于系統的功耗具有較大影響,同時對于所在網絡信號強度的需求、網絡附著所需時間、數據傳輸質量等因素有較大影響,選用SIMCom公司設計的面向NBIoT領域的通信模塊SIM7020。
(1)主控模塊進行初始化操作,配置系統時鐘,初始化GPIO口并完成引腳復用映射;初始化SPI、設置喚醒中斷;配置傳感器參數,包括運動閾值、靜止閾值、測量模式、采樣率等,系統進入休眠模式。
(2)系統進入休眠檢測模式,ADXL362以6 Hz采樣率進行振動檢測,有連續測量值超過設定的靜止閾值時,喚醒主控模塊ADuCM3029,系統進入運動檢測模式,傳感器以100 Hz采樣率進行振動檢測。
(3)主控模塊ADuCM3029喚醒后,開始振動數據采集及數據處理,對下級電路發送信號開啟通信模塊,根據設定的服務端地址參數,主動與服務器發起連接。
(4)振動數據超過報警閾值,主控模塊ADuCM3029給下級電路發送信號,控制閥門控制開關,電容迅速放電,關斷燃氣閥門。通信模塊向服務器發送監測數據,數據類型包括報警信息、實時振動數據采集、加速度峰值數據、設備狀態信息等。
系統采用主控芯片ADuCM3029為ADI公司生產,前期開發環境采用官方推薦的CrossCore Ebedded Studio(CCES)軟件開發環境,后期為了增加程序可移植性,采用Keil公司開發的Keil MDK5軟件開發平臺進行開發。
傳感器ADXL362的SPI通信首先進行驅動的移植,包括系統時鐘、GPIO、SPI串口通信、TMR定時器、Interrupt外部中斷等。初始化完成后再開始調用SPI通信的庫函數,在ADI_InitPinmux()函數將GPIO上引腳分別完成復用映射,保證傳感器和核心板之間能夠實現數據傳輸。
物聯網中通信十分常用,無論是近距離無線傳輸技術還是移動通信技術,都影響物聯網的發展。在物聯網協議中常用的如MQTT、CoAP、HTTP等協議,根據通信場景和數據傳輸的特點,選擇合適的通信協議尤為重要。
MQTT的基礎協議是基于TCP協議,CoAP的基礎協議是基于UDP協議,考慮對數據傳輸的穩定性需求以及數據可靠性要求較高,MQTT通信協議更有優勢。相比于其他物聯網技術,MQTT的優勢在于代碼數量較少且需要的帶寬也比較有限,更利于系統的實現。
系統初始化完成之后,對通信模塊進行初始化操作,使SIM7020設備入網,供后續傳輸數據使用。通信模塊主要通過UART串口與MCU進行通信,方式主要是通過發送AT指令的形式操作一條完整的AT指令。發送主要包括發送和響應兩部分組成,過程為MCU向SIM7020發送AT指令,通信模塊會立即發送一個響應消息給MCU,響應主要為了確認上條指令發送給設備后是否正確接收,若正確則執行響應操作,若失敗則返回錯誤信息給MCU。
通過使用Eclipse Mosquitto實現MQTT協議版本的開源消息代理,編寫程序實現SIM7020與MQTT代理服務器的連接,從服務器接收到SUBACK確認后,程序進入循環等待由傳感器產生的中斷。
傳感器ADXL362任意一軸上的加速度大于設定的閾值時產生中斷,之后程序將發布由傳感器采集的X、Y、Z軸上的加速度數值,通過訂閱此主題可以查閱相關信息,根據設定的IP地址和端口號連接上MQTT云服務器。
(1)加速度測量誤差。
燃氣開關的采樣率為100 Hz,振動參考頻率范圍為1~20 Hz,振動參考幅度的有效值宜選擇為5 m/s2,計算加速度測量值與標稱值的相對誤差最大值作為測試結果,加速度測量誤差測試結果要求<5%(0.1~20 Hz)。
分別測量X軸向與Y軸向加速度值,采樣率為100 Hz時,X軸加速度測量誤差結果分別為0.686%、1.222%、0.520%、0.890%,Y軸加速度測量誤差結果分別為0.306%、1.012%、1.529%、1.395%,均滿足小于5%的結果要求。
(2)線性度誤差測試結果。
測試信號頻率選擇10 Hz,對燃氣開關樣機輸入輸出兩組數據進行線性擬合,計算線性擬合最大偏差,取最大偏差與輸出滿刻度值之比作為最終線性度誤差。線性度誤差測試結果要求<1%。
X軸線性度誤差測試結果為線性擬合a為1.001 4,線性擬合b為6.656 5,最大偏差值4.094,線性度誤差為0.21%,滿足測試結果要求。
Y軸線性度誤差測試結果為線性擬合a為1.003 3,線性擬合b為-7.619 7,最大偏差值14.915,線性度誤差為0.76%,滿足測試結果要求。
(3)幅頻特性測試結果。
在檢測到超過閾值的小振動時,加速度傳感器采樣率為100 Hz的監控狀態下,振動參考頻率范圍為1~41 Hz,振動參考幅度的有效值宜選擇為5 m/s2。
測試可知,采樣率為100 Hz時,高頻截止頻率為40 Hz的信號噪聲為-2.855 dB,41 Hz的信號噪聲為-3.719 dB,滿足-3 dB的要求。
本文以ADuCM3029為核心芯片,通過傳感器ADXL362采集實時振動數據,并根據設定振動閾值產生中斷實現自動喚醒功能。以通信模塊SIM7020作為物聯網通信模塊進行數據傳輸,基于MQTT協議實現查閱上傳到服務器的數據,長時間測試未發現數據丟包狀況,數據傳輸穩定。通過振動臺模擬振動觸發試驗,人為觸發方式檢測在小振動情況下,系統能夠正常喚醒;在振動較大的情況下燃氣閥門能夠正常關斷。通過振動臺測試加速度測量誤差、線性度誤差、高頻截止頻率測試結果均滿足要求,為防災減災工作提供了一種新的解決方案。