張慧穎,王 凱,于海越,牟 昊
(吉林化工學院 信息與控制工程學院,吉林 132022)
21世紀以來,隨著智能通信與無線網絡的發展,全球定位系統(global positioning system,GPS)廣泛應用于室外定位服務,并具有很高的定位精度[1]。室內電子設備存在電磁干擾GPS在室內無法實現高精度定位[2]。室內可見光定位圖像傳感器的定位系統,利用幾何成像實現定位功能,但存在設備復雜、定位速度慢的問題[3]。目前依托于發光二極管(light-emithing diode,LED)燈作為發射端的可見光通信(visible light communication,VLC)技術[4],在室內定位中有更高的抗干擾性。現有的室內定位距離計算的方法包括信號強度指示(received signal strength indication,RSSI)[5]、通過到達角度(angle of arrival,AOA)[6]、到達時間差(time difference of arrival,TDOA)[7]計算距離。參考文獻[8]中將AOA和RSSI相結合提出一種室內混合定位算法,誤差在10cm左右,但混合兩種算法復雜度和成本都比較高。參考文獻[9]中將PSO和BAS兩種算法結合起來大大降低定位的復雜性,但定位的精度有待提高。參考文獻[10]中針對傳統的PSO算法進行優化,測試點的平均定位誤差大約為5cm。參考文獻[11]中使用3個LED燈兼顧室內照明的同時進行室內定位,但定位誤差低于10cm定位精度還有待提高。參考文獻[12]中將RSSI/TDOA兩種定位技術混合進行定位,定位精度有提高,但存在定位過程復雜、速度較慢的缺點。由于傳統黃金正弦算法存在易陷入局部最優,定位精度低的問題。
本文中提出基于自適應Levy飛行的變異機制改進黃金正弦算法,根據RSSI通過朗伯模型得到未知節點與參考節點的距離,改進后的黃金正弦算法對目標位置不斷尋優進行精確定位。仿真結果表明,改進黃金正弦定位算法與其它定位算法相比定位速度更快、精度更高。
LED燈將接收到的電信號轉化為光信號進行傳輸,光電二極管(photo diode,PD)將接收到的光信號轉化為電信號,使用空間角度和光強度的關系表示朗伯光源的光強分布[13-14]。參考文獻[15]中通過計算得出光信號反射次數為3次~10次時對系統的影響可以忽略不計,由于室內情況復雜漫反射為主要反射源,大部分反射信號需3次及以上反射才能被PD接收端接收。因此本文中只考慮直射鏈路,對反射信號忽略不計。
在10m×10m×3m的室內空間中設置9盞LED燈作為信號發射器,將其呈等間隔對稱分布安裝在距離地面3m的天花板上。將PD作為接收器安裝在移動端上。LED發射器和接收器定位系統模型如圖1所示。

Fig.1 Indoor visible light positioning model
接收光功率Pr與發射端功率Pt的關系為:
Pr=H(0)Pt
(1)
式中,H(0)為信道增益,信道增益可以表示為[16]:
H(0)=

(2)
式中,A為PD的面積;d為LED到PD的相對距離;φ為發散角;ψ為接收角;ψmax為PD最大視場角;f(ψ)為PD的光濾波器增益;g(ψ)為聚光器增益。將(1)式和(2)式聯立即可推導出LED與PD間的距離d;l為朗伯散射系數,朗伯系數大小由LED燈的半功率角ψ1/2決定:

(3)
LED發光強度模型如下[17-18]:
Iθ=I0coslψ
(4)
式中,Iθ為發射角θ的發光強度;I0為垂直于發光面的發光強度。
RSSI定位是根據PD接收到來自多個發射器發出的光源信號強度得到歐氏距離,利用三邊法求解出目標位置的對應坐標點。已知參考點與待測節點坐標,代入三邊定位算法公式可計算出3個圓心到達待測點的距離d。由于室內充斥著電磁的干擾,三邊測距法計算3個圓不會理想地交于一點,因此通過黃金正弦算法尋找最優解。
黃金正弦算法(golden sine algorithm,Gold-SA)是一種新型元啟發式算法[19-20]。黃金正弦算法是在正弦函數上沿著同一搜索路線,將單位圓上的每一個點訪問一遍,當位置更新時加入黃金分割率進而去縮小解的范圍,使得區域范圍更小,進而可以提升算法搜索速度。Gold-SA算法在更新個體位置時,引入黃金分割率,分別設系數x1和x2,將系數加入到位置更新公式中,縮小搜索空間使得尋優速度更快,黃金分割系數x1和x2為:

(5)

黃金正弦算法中結合黃金分割率的系數,在搜索空間中尋找最優解,其位置更新公式為[21]:

(6)

本文作者提出將Levy飛行變異機制結合自適移動因子改進黃金正弦算法,對位置更新公式進行變異,提高算法種群的多樣性,能夠快速跳出局部最優。Levy飛行機制的核心是短距離游走和長距離跳躍交替變化,當處于短距離游走時種群的多樣性將會提高,處于長距離跳躍時種群搜索具有方向的多樣性,搜索更為詳細[22-23]。L為Levy飛行的移動步長參數,計算公式為:

(7)
式中,λ為縮放因子,參考文獻[24]中建議取λ=1.5;Γ(λ)為標準的伽瑪函數;s為移動步長;s0為起始步長,即s>>s0>0為s→∞。
在黃金正弦算法全局搜索中引入Levy飛行變異機制幫助算法跳出局部最優,但Levy飛行變異機制無法滿足算法需要較高的收斂速度。本文中提出Levy飛行機制結合自適應移動因子對黃金正弦算法位置更新公式改進,進而提高算法的收斂速度。自適應移動因子α的公式為:

(8)
式中,j為當前的迭代次數;q=1+j/M,M為最大迭代次數。
使用Levy飛行變異機制結合自適應移動因子對Gold-SA位置更新公式進行變異,變異后的位置更新公式為:
αL(m,n)×(xbest-xi)
(9)
式中,L(m,n)是關于多個未知量下的步長參數的矩陣,其中m表示控制常數,n為未知量個數,取m=1.5,n=3;xbest表示每次迭代最優解矩陣;xi表示當前迭代得出的解的矩陣。
基于Levy變異機制改進Gold-SA算法實現室內可見光定位的流程如下:(1)PD接收器接收LED光信號,計算出LED與PD間的距離d;(2)設計初始種群個體數為N,最大迭代次數M,空間維數D的初始種群;(3)計算每個個體的適應度的值Pbest,并將最優個體對應的適應度值存入xbest;(4)根據(9)式更新個體的位置;(5)更新個體,比較個體的適應度值取出最佳適應度值個體作為下一次迭代的解;(6)判斷是否已經達到設置迭代次數,若達到則結束,若未達到則轉向第(4)步;(7)得到全局最優解。
選取體積為10m×10m×3m的室內空間作為仿真測試空間,設置9盞LED燈按照3×3的網格排列方式排布。在室內隨機放置一個待測點,分別選取最小二乘(least square mathod,LMS)的RSSI定位算法、PSO的RSSI定位算法、Gold-SA的RSSI定位算法和改進的Gold-SA的RSSI定位算法,比較各算法定位產生的定位誤差。設置PD有效接收面積為1cm2。仿真參量表如表1所示。

Table 1 Simulation parameters

Fig.2 Algorithm error comparison
在3維空間中分別選取LSM定位算法、PSO定位算法、Gold-SA定位算法、改進后的Gold-SA定位算法進行仿真分析,仿真結果如圖2所示。
圖2a中采用LMS定位算法時,定位誤差為2.5924m,由于室內環境復雜充滿電磁干擾,導致精度低不能做到精確定位。由圖2b和圖2c看出,基于PSO的定位算法誤差為5.9993cm,基于Gold-SA的定位算法誤差為5.9866cm,雖然上述兩種算法相比于LMS算法精度提高很多,但仍存在收斂速度慢的缺點。改進Gold-SA定位算法如圖2d所示,定位算法誤差為1.4703mm,相比PSO算法和未改進的Gold-SA算法,改進后Gold-SA算法的定位精度分別提升97.54%和95.52%。Levy變異機制增加算法搜索空間的多樣性,自適應移動因子有效地避免群智能算法收斂早熟的缺點提高算法收斂速度,使算法誤差明顯減小,實現精確定位。在仿真參量不變的情況下對4個目標點進行同時定位,多目標仿真結果如圖3所示。

Fig.3 Multi-target positioning error of the improved Gold-SA algorithm
由圖3可以看出,采用改進Gold-SA算法對4個目標點同時定位,定位誤差分別為1.170cm,1.243cm,1.197cm,1.470cm,平均定位誤差為1.270cm。由圖3仿真分析可知,改進后的Gold-SA定位算法可應用在多目標定位過程。
分別對PSO算法、Gold-SA算法和改進后的Gold-SA算法進行單目標迭代速度的分析,設置迭代數為200次,初始種群數量為20,采用3×3網格型LED燈源排布方案,在保證使用最少LED燈源且定位精度較高的前提下分析算法收斂速度,仿真結果如圖4所示。

Fig.4 Convergence speed comparison chart
由圖4可直觀看出:采用Levy飛行變異機制結合自適應移動因子改進的Gold-SA算法收斂速度大幅度提升。改進后的Gold-SA算法經過40次迭代后就快速收斂到最低適應度值。基于PSO的RSSI定位算法110次迭代后收斂到最低適應度值,Gold-SA算法經過200次迭代后還未達到最低適應度值。因此,說明改進后的算法在快速定位方面更具有優勢。
選取改進Gold-SA算法、未改進的Gold-SA算法及PSO算法,在定位誤差為0cm~2cm區間內仿真分析3種定位算法單目標定位時間,結果如圖5所示。

Fig.5 Comparison and analysis of positioning time
由圖5中明顯看出:3種算法在相同定位區間內,改進后的算法定位誤差在0cm~2cm的范圍內定位時間均比未改進的Gold-SA算法和PSO算法短,由此說明改進的Gold-SA算法可實現快速定位。當定位誤差為0.2cm時,改進的Gold-SA定位時間為3.3s比傳統Gold-SA算法快0.5s,比PSO算法快0.9s;定位誤差為0.6cm時,改進后的算法定位時間為2.2s比傳統Gold-SA快0.8s,比PSO算法快1.6s;定位誤差為1.5cm時,改進后的算法定位時間為2.4s比傳統Gold-SA算法快0.6s,比PSO算法快1s。由此可以說明改進后的Gold-SA算法相比于其它兩種算法所需要的定位時間更短,改進后的Gold-SA算法整體優于未改進的Gold-SA算法和PSO算法。
為進一步驗證改進后的黃金正弦算法優越性,分別對改進的Gold-SA算法、Gold-SA算法和PSO算法分別進行200次單目標定位誤差計算。采用直方圖更直觀地觀測定位算法的誤差分布,如圖6所示。

Fig.6 Positioning error histogram
由圖6可看出:與Gold-SA算法和PSO算法相比,改進后的Gold-SA算法誤差大多集中在0cm~2cm范圍內,當誤差大于2cm時,誤差點個數呈大幅下降趨勢,在6cm~8cm范圍內沒有誤差點分布。Gold-SA算法誤差集中在2cm~4cm范圍內,PSO算法誤差主要分布在2cm~4cm,4cm~6cm范圍內。改進后的Gold-SA算法相較與Gold-SA算法和PSO算法定位性能分別提高64.3%和68.9%。因此,改進后的算法相比于其它兩種算法定位誤差更小、定位效果更好。本文中對改進Gold-SA算法進行80次的誤差計算,依然采用在10m×10m×3m的室內空間中3×3網格型LED燈源排布方案,誤差折線圖如圖7所示。

Fig.7 Error line chart of the improved algorithm
圖7中對改進的Gold-SA算法對單目標進行80次誤差計算,經過多次仿真可以得出改進后的算法誤差穩定在0cm~1cm區間內,最小誤差可達1.4703mm。
由以上仿真綜合分析可知,相比于PSO算法、Gold-SA算法和LMS算法,改進的Gold-SA算法具有收斂速度快、誤差小趨于穩定等優點,改進后的Gold-SA算法相比PSO算法和Gold-SA算法定位性能更具優越性,滿足室內高精度快速定位要求。
提出了一種基于黃金正弦算法融合自適應Levy飛行變異機制的室內可見光定位方法。在保證光強平坦性且不影響照明效果的前提下,采用3×3網格型LED燈源排布方案,設計RSSI結合改進Gold-SA算法實現室內精確定位。在傳統黃金正弦的基礎上引入變異機制和自適應移動因子后大大提高搜索空間的多樣性,改善算法存在的收斂速度慢、易陷入局部最優等缺陷。在10m×10m×3m的室內空間中經過多次仿真:改進的Gold-SA算法定位誤差最小可達1.4703mm,平均誤差1cm左右。算法在迭代40次~80次之間可收斂到最低適應度值。本文中提出的改進黃金正弦定位算法具有定位精度高、定位速度快等優點,且能夠實現多目標同時定位。因此,本文中的定位方法更適合大型室內場所精確、快速定位。