吳雅琴 師蘭蘭
(中國礦業大學(北京)機電與信息工程學院 北京 100083)
2015年的“8·12”天津爆炸事件和2019年3月30日的四川涼山事件背后消防人員的傷亡數據,時刻警醒著我們保障消防人員生命安全的迫切性和重要性。大部分的火災現場是居民住宅區域,由于建筑物的復雜結構和各種家具的布局,信號在傳播過程中很容易產生多徑效應,使得需要點對點直視的全球導航衛星系統(Global Navigation Satellite System,GNSS)不適用于消防員的室內定位[1]。另外由于火災現場的煙霧濃度大和無電源,現場監控技術不能滿足消防人員的室內定位需求。因此針對火災現場高溫、多灰塵、煙氣濃厚的環境,需要研究保障消防人員生命安全的定位技術,以期實現在火災現場對人員的快速精確定位。
常見的室內定位算法有基于接收信號強度指示(RSSI)、到達時間(TOA)、到達時間差(TDOA)、到達角度(AOA)以及行人航位推算算法(PDR)等。由于消防現場的室內布局不同,因此為室內環境建立指紋數據庫的RSSI指紋定位算法,并不適用于消防現場的室內定位。另外,由于建筑物的多徑效應、信號的衰減以及消防現場室內環境中其他不確定因素,其他基于RSSI的損耗模型或者基于AOA的定位算法也不適用于消防現場的室內定位。還有一些需要部署很多參考節點的局域網定位技術也不適用于消防現場。本文選用可以適用于任何場景的改進PDR算法與不需要大量部署節點的低功耗廣域網LoRa通信技術,實現消防現場的室內精確定位。
LoRa技術于2009年由法國的一個初創公司開發,2011年被美國Semtech公司收購,2015年被LoRa聯盟標準化,開始在全球范圍內推廣。LoRa運行在全球免費頻段上,通過在物理層應用基于擴頻的調制技術和在數據鏈路層應用LoRaWAN協議實現低功耗廣域網通信,具有低功耗、遠距離、較強的抗干擾性和穿透性等特性。
LoRa調制[2]通過結合擴頻調制和向前糾錯編碼技術(Forward Error Correction,FEC)對傳輸信號進行調制,它具有遠距離傳輸和高魯棒性的特性。在LoRa調制中影響信號傳輸性能的主要參數有:擴頻因子(Spreading Factor,SF)、帶寬(Bandwidth,BW)、糾錯編碼率(Coding rate,CR)。
(1)擴頻因子。傳統的擴頻因子是指將1個數據比特劃分為SF個碼片,LoRa中的擴頻因子是指將SF個數據比特用2SF個碼片表示,一個碼元用SF個數據比特表示,則碼元速率RS與碼片速率RC的關系為:
(1)
由式(1)可知,當擴頻因子增大時,傳輸數據量加大,因此傳輸數據速率降低。不同的芯片擴頻因子的范圍不同,利用不同的擴頻因子調制的信號正交,可以在同一信道上實現同時傳輸多個信號。
(2) 帶寬。LoRa調制中的帶寬指的是雙邊帶帶寬,并且碼片速率與帶寬一樣,已知傳輸一個碼元需要2SF個碼片,因此傳輸一個碼元的時間TS可以表示為:
(2)
則比特率(數據率)Rb表示為:
(3)
(3) 糾錯編碼率。糾錯編碼定義了向前糾錯碼中的冗余信息數量,取值范圍在0~4之間,當其為0時表示沒有用到向前糾錯碼,LoRa調制定義了4/5、4/6、4/7、4/8四種糾錯編碼率,提高了信號傳輸的魯棒性,但也增加了不必要的開銷。它對傳輸數據速率REFC的影響表示為:
REFC=Rb×CR
(4)
LoRa調制的數據包包括四個部分:前導碼,可選報頭,負載,可選循環冗余校驗(Cyclic Redundancy Check,CRC)。數據包結構如圖1所示。

圖1 數據包結構圖
LoRaWAN[3]相當于OSI七層模型中的數據鏈路層,它定義了通信協議和系統框架。LoRaWAN的模型如圖2所示。

圖2 LoRaWAN模型圖
LoRaWAN根據下行鏈路的通信延遲將節點分為三種工作模式:雙向終端設備(Class A)、預定接收時隙的雙向終端設備(Class B)、最大接收時隙的終端設備(Class C)[4]。
Class A工作模式是默認的工作模式,由于只要終端節點發起上行傳輸,短時間內兩個下行通信就會觸發,其余時間進入低功耗睡眠模式,所以Class A工作模式的功耗最低。Class B工作模式需要額外開啟一個ping窗口,實現在規定時延內的下行通信,這雖然加大了功耗,但電池依然可供長期使用。Class C工作模式除了上行傳輸時間都可以接收到網關節點下行傳輸的數據,所以Class C工作模式極大地減小了時延,但與此同時增加了功耗。
本文結合消防現場需要,將慣性傳感器收集的數據快速傳輸到網絡服務器,因此在消防現場工作的時候選擇Class C工作模式,當工作完畢使終端節點進入休眠模式,減少不必要的消耗。
本文選用SX1280 LoRa芯片、STM32F103微處理模塊以及JY-901模塊實現終端節點的通信,其中JY-901集成了加速度計、氣壓計、陀螺儀等測量器件,滿足PDR算法中數據的收集。終端節點的結構如圖3所示。

圖3 終端節點結構圖
(1) 實驗環境。本文的測試環境有兩個:場景一為學校的教學樓,一共7層,地上6層,地下一層記為-1層,長85米,最寬處為55米,形狀不規則,其平面圖如圖4所示;場景二為學校的科技樓,一共9層,地上8層,地下一層,長50米,寬18米,是一個規則的矩形,其平面圖如圖5所示。

圖4 場景一室內平面圖

圖5 場景二室內平面圖
(2) 實驗驗證。主要設備包括網關節點、終端節點和筆記本電腦,對終端節點分別設置不同的擴頻因子、帶寬以及糾錯編碼率。在場景二中,網關節點的位置保持不變,放在距科技樓中心50米處,模仿消防車距離發生火災的現場的距離,網關節點距離地面高2米處,模仿消防車的高度,因為需要把網關節點放在消防車上。終端節點分別在場景二內部的1、3、5、7、9層的走廊南邊的第一個教室中心,北邊的第一個教室中心以及中間教室的走廊上分別發送數據,一共15個點,但每層的三個向網關節點的每個點發送100個數據,統計這幾層發送300個數據包成功的概率。
帶寬、擴頻因子與傳輸速率之間的關系如圖6所示。可以看出,帶寬越高,數據傳輸速率越高;擴頻因子越多,數據傳輸速率越慢;同理CR越大,數據傳輸速率越慢。

圖6 帶寬、擴頻因子與傳輸速率之間的關系
帶寬與丟包率的關系如圖7所示。可以看出,帶寬越高,丟包率越高,同時實驗也驗證擴頻因子越大,丟包率越低;編碼率越低,丟包率越低。

圖7 帶寬與丟包率的關系
因此在通信的過程中,考慮折中的方案,既保證丟包率低,也保證數據傳輸速率高,雖然帶寬、擴頻因子和CR對丟包率有影響但上升的趨勢緩慢平穩。由圖6可以看出,高帶寬、低擴頻因子對數據傳輸速率的影響比較突出,因此本文初始設定的擴頻因子SF為5,帶寬BW為812 kHz,糾錯編碼率CR為4/5,保證通信的可靠性。
本文結合消防現場的溫度,是否有電等不確定性因素和消防人員經過統一訓練的特性,提出一種新的算法進行樓層判定。將改進自適應算法和零點穿越算法結合用于步頻檢測;選用消防人員的經驗公式估計步長;對四元數表示的坐標系卡爾曼濾波估計航向,實現水平定位。該算法本質上是對原有PDR算法的改進,進而對火災救援現場人員進行定位。
利用氣壓計收集的數據結合氣壓測高原理進行樓層的判定是常用的樓層判定方法,但這種方法的前提是局部區域內氣壓穩定。由于消防現場溫度具有多變性,本文提出一種結合參考點氣壓值和運動趨勢的方法,進行樓層判定,其流程如圖8所示。

圖8 樓層判定流程圖
首先在每層距樓梯口3 m左右的范圍內底端放置一個終端節點作為氣壓測量參考節點,假設判定消防人員在L層活動,采取n個樣點。如果該樣點是波峰,且波峰減去前一個波峰值的絕對值,超過一定的閾值,則根據該樣點的氣壓值和L層的氣壓值對比,判斷他是在上樓梯還是在下樓梯,當其變小時則為上樓梯,當其變大時則為下樓梯。如果該樣點的波峰減去前一個波峰值的絕對值,沒有超過一定的閾值,則通過其是否進行過上下樓梯的活動和參考節點的氣壓值對比,進而判斷他所在的樓層。如果該樣點不是波峰,則取下一個樣點。
利用加速度的輸出波形進行步頻檢測,常用的方法有自相關法、零點穿越法、Stance Phase檢測法、峰值檢測法、動態閾值波峰檢測法、自適應峰值檢測法等[5-8]。
本文采用了對自適應波峰改進與零點穿越法相結合的步頻檢測,首先通過低通濾波對Z軸的波形進行濾波,研究表明行人運動的加速度在減去重力加速度后,行人行走時的加速度絕對值一般都在0.2~1 g之間,當行人跑步時加速度的絕對值一般都在1~3 g之間。假設超過0.2~3 g這個范圍的都是非正常狀態,跑步的頻率不超過5 Hz,本文的采樣頻率設置為50 Hz。在滑動窗口內,采取n個樣點,當樣點為波峰時,它的樣點值大于閾值,判斷它與上一個滿足條件的波峰值時刻last-u-t之間是否有波谷last-d-t,如果有波谷則穿越過一個零點,相當于半步完成,k時刻成為上一個last-u-t,如果沒有波谷,則與上一個波峰值last-u-v比較大小,選取絕對值大的為上一時刻的波峰。同樣的判斷適用于波谷,其流程如圖9所示。

圖9 步頻檢測流程圖
步長估計是通過對加速度、行人、環境中的某些特征信息的統計,分析這些特征與步長之間的相關性,進而估計步長。常用的估計模型有四類:常數模型,線性模型,非線性模型以及人工智能步長估計模型。其中常見的非線性模型有以下幾種[9-11]:
(1) 利用滑動窗口內n個采樣點中加速度的最大值和最小值與步長之間的非線性模型有:
(5)
(6)
式中:k為回歸訓練系數。
(2) 利用加速度的數據與步長之間的非線性模型為:
(7)
由于消防人員經過統一的訓練,他們的步長有一定的規律,但并不完全一致,如在訓練時正步的標準是75 cm。本文采用的是文獻[12]提出的消防人員步行的經驗公式:
(8)
可以看出,文獻[12]采用的是非線性模型的一種。通過分析消防人員的步行的特征值,確定參數k=0.98。
航向坐標常用的表示方法有歐拉角法、方向余弦法和四元數,歐拉角法存在奇異性問題,方向余弦法計算比較復雜,因此本文選用的是計算簡單的四元數表示法,通過對四元數表示的坐標系進行卡爾曼濾波,實現航向估計。
假設橫滾角θ、俯仰角φ和航向角φ,則用四元數表示載體坐標系向航向坐標系的轉換公式為:
(9)
式中:?表示復數相乘。
四元數的更新形式為[13]:
(10)
式中:Δω是三個載體坐標軸在k-1時刻到k時刻的角度變化量的積分。對其泰勒式展開,并保留一項為:
(11)
則狀態方程為:
(12)
式中:Xk為k時刻的狀態量;Φk為k-1時刻的狀態量向k時刻的狀態量的轉移矩陣;γ為狀態估計中的噪聲。
觀測方程為:
Zk=I4Xk+β
(13)
式中:β為觀測時的噪聲向量。初始狀態向量X1=[1 0 0 0],初始狀態的協方差P1=I4,狀態噪聲γ為0.04I4,β為0.000 4I4。最后通過經典卡爾曼濾波的求解過程對其求解。
對上述的通過氣壓計判定的樓層、加速度計估計的步長和步頻、陀螺儀估計的航向,通過擴展卡爾曼濾波實現這些數據的融合,實現定位。其整個流程如圖10所示。

圖10 融合定位流程圖
狀態量X=[xyLQF],其中:x、y分別是導航坐標系中的x、y坐標,L表示步長,Q表示航向,F表示樓層。則狀態方程表達式為:
(14)
其觀測量Z=[LQF],則觀測方程表達式為:
(15)
求解流程如下:

(16)
(17)
(18)

(19)

(20)
為了驗證算法的改進效果,每天在場景一和場景二中,按照不同的行走路線,偶爾變換行走狀態,靠著墻行走并記錄,對比沒有經過卡爾曼濾波的PDR算法定位誤差與經過卡爾曼濾波后的PDR算法定位誤差。如圖11所示,可以看出融合后的定位精度更高,并且最終的定位精度可以達到1.5 m左右。

圖11 定位精度對比
由于火災現場的影響因素較多,存在很大的不確定性,使得基于大量參考節點或者特征值的算法并不適用于火災現場的定位。本文結合低功耗遠距離傳輸的LoRa通信技術與改進的PDR定位算法,實現了火災救援現場消防人員的精確定位,實驗結果驗證了該方法的可行性。