管 越,段建民,冉旭輝
(北京工業大學 信息學部,北京 100124)
在我國城市化進程中,隨著基礎設施建設的不斷完善,市政、通信、交通等領域工程井蓋的防盜和異常預警成為一個突出問題。
現階段,井蓋的防盜和監控主要采取基于圖像處理的視頻監控方式[1-2]、機械鎖閉方式[3]、基于Zig-Bee和GPRS的局域基站式通信[4]等手段。視頻監控受限于監控覆蓋范圍,成像易受光線變化、惡劣天氣等影響;機械鎖閉手段沒有監管交互和狀態反饋環節,對于非法破拆無法監控;基于ZigBee和GPRS的局域網基站式通信方案,成本高,需要單獨配置基站。
井蓋位姿檢測普遍采用接觸式限位開關、加速度計或傾角檢測。現有的位姿檢測對于外力造成的大角度預期震動、小角度拖動開啟井蓋、垂直平穩打開井蓋等運動過程無法實現很好的區分,造成較高的誤報率和漏報率,而接觸式限位開關同樣存在可靠性差和使用壽命短的問題。
針對以上方案缺陷,文中通過對用電單元電源的實時控制降低功耗,同時NB-IoT相較于傳統GPRS模塊在通信環節功耗和信號穿透力也有很大優勢;通過對預期震動信號分析基于井蓋運動特性和慣導數據融合實現對井蓋位姿的精確監控。
井蓋監控器的硬件主要由電源分層管理單元、主控STM32單片機、慣性測量單元IMU(inertial measurement unit)傳感器、WH-NB73 NB-IoT 模塊、藍牙模塊、震動激活單元、人機交互單元等7個部分組成,如圖1所示。

圖1 井蓋監控器的硬件組成單元Fig.1 Hardware component unit of manhole cover monitor
主控MCU控制電源管理單元使能或失能各部分供電。由IIC讀取IMU加速度和角速度原始數據,通過四元數法和改進的基于PI控制器的互補濾波算法解算歐拉姿態角,經過坐標變換為慣導和井蓋運動特征識別提供數據。位姿解算結束通過串行AT指令發送至WH-NB73由TCP進行后臺數據庫數據注入。在井蓋布防階段,使用藍牙模塊與手機建立串行通信,獲取GPS信息和井蓋管理者信息。
1.2.1 功耗控制策略
系統功耗管理采用分層供電機制,如圖2所示。根據系統各單元工作時序和供電優先級,將所有模塊分成3個用電單元,并與之對應形成3個用電層。

圖2 電源分層管理機制Fig.2 Power layer management mechanism
第1層屬于不間斷供電層,主要維持MCU和RTC實時時鐘的工作。工作期間STM32處于正常模式,休眠階段STM32進入停機模式,芯片所有時鐘停止工作,HSI和HSE的振蕩器關閉,內部RTC實時時鐘保持工作,維持設備定期自動激活巡檢。當外部震動觸發MCU外部中斷,單片機從停機模式被喚醒,此時使能第2層供電進行位姿解算,若判斷井蓋位姿異常則使能第3層供電進行通信,通信結束即刻失能通訊層。若判斷位姿仍處于正常狀態,即刻失能檢測層供電并且MCU進入停機模式等待下一個工作循環。通過實時的用電管控,最大限度地降低了功耗。
1.2.2 激活休眠控制
井蓋激活單元由安裝于PCB四周的4個順時針排布的震動滾珠開關組成,當有外力震動井蓋,開關閉合觸發單片機外部中斷將系統喚醒。電源使能電路采用三極管構成的達林頓驅動電路。通過對鋰電池供電的開通關斷實現各模塊供電控制。電源控制電路如圖3所示,其中PB1為單片機控制引腳,通過此引腳輸出高低電平控制達林頓管開通關斷。
1.3.1 NB-IoT模塊及通信天線選型

圖3 電源控制電路Fig.3 Power control circuit
通信模塊選用WH-NB73-B8 NB-IoT通訊模塊部署GSM通信網絡。使用中國移動網絡進行通信,WH-NB73-B8工作頻段為B8頻段:中心頻率900 MHz,上行 880~915 MHz,下行 925~960 MHz。發射功率為23~-40 dBm,接收靈敏度為-115 dBm。
為進一步提高通信質量,增加了外接板狀印刷通信天線。天線為水平極化,天線增益為8 dBi,駐波比<1.8,阻抗為 50 Ω。
1.3.2 NB-IoT 模塊供電設計
WH-NB73-B8 模塊電壓輸入范圍為 3.1~4.2 V。模塊電源設計的難點主要在于Active模式下最大發射電流 268 mA(3.8 V),因此電源需要承載較大的瞬時涌流。同時,由于系統的長時間待機指標限制電池選型,系統供電電源要求需滿足短時間功率型要求,同時必須兼顧容量型特性。
為減少涌流造成的電源電壓突發性跌落,在模塊供電回路中增加續流電容,以維持瞬時高功率通信時的電壓穩定。
軟件流程圖如圖4所示。

圖4 軟件流程Fig.4 Software flow chart
2.1.1 捷聯矩陣與四元數
四元數法在姿態解算中具有良好的計算性能,使用四元數進行計算可以避免歐拉角的萬向鎖和方向余弦矩陣計算量大的問題[5]。結合這一優點,針對井蓋運動過程中可能出現角度變化超過這一特定環境,采用四元數進行姿態解算。
四元數是簡單的超復數 (hypercomplex number);由 1 個實數 λ0與 3 個虛數單位 i,j,k 組成。其表達式為

且對規范化的四元數,有

2個坐標系的相對轉動可以由四元數唯一地表示。文中定義井蓋使用載體坐標系(b系),選取游動方位系統作為導航坐標系(n系);經過3次旋轉(歐拉轉動順序為偏航角ψ→俯仰角θ→橫滾角φ),由方向余弦和四元數所表示的載體坐標系相對于導航坐標系的變換矩陣[6]為

2.1.2 四元數微分方程
四元數的運動學微分方程[6]為

其中


式中:T為IMU采樣周期。對式(6)在定時周期內進行迭代更新,即可得到四元數進而解算得到捷聯矩陣,由式(3)四元數矩陣與之對應的方向余弦矩陣的等價關系,即可單值求解出3個歐拉角。其求解公式[6]為

由于初始狀態無磁力計得到實際航向角,在此初始航向角設置為0。
2.1.3 基于PI控制器的互補濾波
由于低成本慣性測量單元本身固有的缺陷,導致其陀螺儀模組在靜態過程中測量噪聲和零點漂移現象明顯;加速度計模組在動態過程中存在較大的測量噪聲。為了減小測量誤差,采用互補濾波方法對加速度計和陀螺儀數據進行融合。
n系下垂直向下的單位向量[0 0 1]T,經過式(3)旋轉矩陣Cnb坐標變換,得到載體坐標系下其與加速度計測量值等價,因此做向量積,得到的誤差矩陣為

使用PI控制器建立反饋補償,其運算過程為

式中:ω′(t)為補償后的角速度;kp,ki為比例積分增益;ΔT為系統采樣周期。
2.2.1 井蓋運動行為分析
在現階段,我國使用的圓形工程井蓋主要有兩類:一類是井蓋一端與井圈通過轉軸連接,另一類井蓋與井圈之間無連接。兩類井蓋由于機械安裝特性的差別其開啟運動過程也不同。就無固定井蓋而言,井蓋開啟或者出現震動表現為俯仰角或橫滾角出現區別于靜止狀態的明顯變化,垂直打開或移動過程中存在沿天軸位移和沿導航坐標系xOy平面的矢量位移;一端固定式井蓋,開啟過程主要存在沿旋轉軸的角度持續變化。開啟過程結束,角度維持在 80~100°范圍內。
對于車輛、行人等正常的碾壓造成的預期震動信號而言,普遍表現為信號的加速度和角度均值強度弱,周期短,時間窗內震動信號時間與時間窗比值ts/T較開啟信號小。
2.2.2 導航位置計算
當捷聯矩陣Cnb求解得到后,理論上將載體坐標系下加速度計測得的加速度比力fb進行坐標變換減去重力后,經過二次積分即可得到導航坐標系下井蓋位移xn。但是,由于測量噪聲和零點漂移的存在,經過積分得到的位移數據的誤差隨時間累加,經過一段時間后數據便發散不可用。
為控制數據發散速度在每次監控器安裝就位后,對2000幀IMU數據求取期望,通過均值補償對IMU進行簡單標定。引入巴特沃斯帶通濾波器通過調節通帶寬度,對經過坐標變換的加速度比力進行濾波,控制加速度的低頻零漂和高頻噪聲。對濾波后的加速度進行一次積分得到速度vn。
同理,使用帶通濾波器對速度進行濾波后進行積分,得到導航坐標系下井蓋位移xn。其整個過程如圖5所示。

圖5 位姿估計過程Fig.5 Position and pose estimation process block
2.2.3 位姿估計算法
位姿估計算法由歐拉角變化的時間窗占比、導航位移、預期震動信號的處理3部分組成,通過邏輯運算實現井蓋位姿估計。
1)歐拉角變化的時間窗占比(如圖6所示)主要用于區分一端安裝轉軸類井蓋,通過設置閾值,對超過閾值角度的時刻累加與時間窗求比值。有:

2)導航位移 當監控器震動激活后開始進行慣性導航位移解算,解算過程中判斷導航坐標系下三軸加速度狀態和姿態角p(k),當合加速度處于0范圍內并且p(k)處于穩定狀態結束導航解算。判斷井蓋x,y方向的合位移是否超出xmax=50 cm(閾值)的范圍,以此作為井蓋打開依據,如圖7所示。即

式中:x為位移,cm;xn為井蓋在x,y方向的合位移;xn,x,xn,y分別為 n 系下井蓋 x,y 方向的位移;xmax為判斷井蓋移動的閾值。

圖7 井蓋導航位移Fig.7 Manhole cover navigation displacement
3)預期震動信號會產生三軸加速度,從而導致井蓋位移漂移,由于慣導無零速校正,對于特殊情況下震動信號強度過大可能使位移誤差超過閾值,因此需要對預期震動信號進行處理。由圖8可知,預期震動信號在時間窗內的主要特征是其震動頻次低,時間窗占比ts/T較小。因此采用與2相同的方法求取沿xOy平面的加速度合力。在時間窗內對加速度合力大于0的時刻進行累加,得到預期震動信號時間ts。通過將預期震動信號時間窗占比與閾值ε比較,得到井蓋開啟判斷條件s3為

式中:ts/T為預期震動信號時間窗占比;ε為判斷井蓋移動的時間窗占比閾值,在此ε=0.55。
井蓋位姿檢測算法由這3個條件進行邏輯運算得到,其表達式為


圖8 預期震動信號Fig.8 Expected vibration signal
試驗測試包括3部分,即系統不同狀態下功耗(以工作電流表示)、不同場景下信號強度、井蓋開啟或震動檢測。測試對象為北京工業大學校園內井蓋。
1)系統不同狀態功耗試驗(蜂鳴器未工作),具體的工作電流見表1。

表1 系統不同狀態工作電流 mATab.1 System working current in different states
以48 h自動激活1次上報系統狀態,每次激活檢測層位姿解算時間3000 ms,TCP通訊時間5000 ms計算系統待機時間。
每48 h的功耗W48h為
W48h=0.0522 mA×48 h+0.31 mA×(3÷3600)h+140.4 mA×(5÷3600)h=2.7 mA·h
系統待機時間Td(假設其他未知因素造成的誤差時間為2 a)為
Td=(4400 mA·h)÷(2.7 mA·h)×2÷365 d-2 a=6.93 a
2)通過HWNB-73的AT指令,發送AT+CSQ讀取當前信號質量分別于室內不同位置 (實驗室、樓梯間、地下一層)、空曠的室外不同位置、3個井蓋下測取數據,見表2。

表2 不同環境下信號RSSI值(模塊返回整數類型)Tab.2 Signal RSSI values in different environments
3)在試驗場景中,選取3個井蓋進行試驗。井蓋1——市政井蓋,為一端固定的轉軸類井蓋;井蓋2——雨水井蓋,為無固定井蓋且井蓋較為松動;井蓋3——通信井蓋,為無固定井蓋,井蓋與井圈比較緊密。
隨機選取的試驗數據見表3。由表可知,這3個條件能夠準確區分兩類井蓋的開啟與震動動作信號。

表3 不同井蓋檢測數據Tab.3 Different manhole cover test data
基于NB-IoT窄帶互聯網和慣性導航技術設計的井蓋監控器達到了預期性能指標,通過對不同用電層的實時管控降低了功耗,以預期震動信號在時間窗內特征結合井蓋運動過程的歐拉姿態角和導航位移數據提出了井蓋位姿檢測算法。但是,由于慣導過程沒有校正環節,僅通過帶通濾波器對誤差累計進行抑制,較長時間后導航數據仍會發散,因此在較短的時間窗內慣導數據才可用。
目前所設計產品已經進入集中測試階段,尚未投入商業應用。下一步為了實現慣導數據校正,可以考慮通過超聲波或激光傳感器測量零速狀態對加速度計進行零速校正,達到更精確的位置估計。