張慧穎,王 凱,于海越,牟 昊
(吉林化工學(xué)院 信息與控制工程學(xué)院,吉林 132022)
21世紀(jì)以來,隨著智能通信與無線網(wǎng)絡(luò)的發(fā)展,全球定位系統(tǒng)(global positioning system,GPS)廣泛應(yīng)用于室外定位服務(wù),并具有很高的定位精度[1]。室內(nèi)電子設(shè)備存在電磁干擾GPS在室內(nèi)無法實(shí)現(xiàn)高精度定位[2]。室內(nèi)可見光定位圖像傳感器的定位系統(tǒng),利用幾何成像實(shí)現(xiàn)定位功能,但存在設(shè)備復(fù)雜、定位速度慢的問題[3]。目前依托于發(fā)光二極管(light-emithing diode,LED)燈作為發(fā)射端的可見光通信(visible light communication,VLC)技術(shù)[4],在室內(nèi)定位中有更高的抗干擾性。現(xiàn)有的室內(nèi)定位距離計算的方法包括信號強(qiáng)度指示(received signal strength indication,RSSI)[5]、通過到達(dá)角度(angle of arrival,AOA)[6]、到達(dá)時間差(time difference of arrival,TDOA)[7]計算距離。參考文獻(xiàn)[8]中將AOA和RSSI相結(jié)合提出一種室內(nèi)混合定位算法,誤差在10cm左右,但混合兩種算法復(fù)雜度和成本都比較高。參考文獻(xiàn)[9]中將PSO和BAS兩種算法結(jié)合起來大大降低定位的復(fù)雜性,但定位的精度有待提高。參考文獻(xiàn)[10]中針對傳統(tǒng)的PSO算法進(jìn)行優(yōu)化,測試點(diǎn)的平均定位誤差大約為5cm。參考文獻(xiàn)[11]中使用3個LED燈兼顧室內(nèi)照明的同時進(jìn)行室內(nèi)定位,但定位誤差低于10cm定位精度還有待提高。參考文獻(xiàn)[12]中將RSSI/TDOA兩種定位技術(shù)混合進(jìn)行定位,定位精度有提高,但存在定位過程復(fù)雜、速度較慢的缺點(diǎn)。由于傳統(tǒng)黃金正弦算法存在易陷入局部最優(yōu),定位精度低的問題。
本文中提出基于自適應(yīng)Levy飛行的變異機(jī)制改進(jìn)黃金正弦算法,根據(jù)RSSI通過朗伯模型得到未知節(jié)點(diǎn)與參考節(jié)點(diǎn)的距離,改進(jìn)后的黃金正弦算法對目標(biāo)位置不斷尋優(yōu)進(jìn)行精確定位。仿真結(jié)果表明,改進(jìn)黃金正弦定位算法與其它定位算法相比定位速度更快、精度更高。
LED燈將接收到的電信號轉(zhuǎn)化為光信號進(jìn)行傳輸,光電二極管(photo diode,PD)將接收到的光信號轉(zhuǎn)化為電信號,使用空間角度和光強(qiáng)度的關(guān)系表示朗伯光源的光強(qiáng)分布[13-14]。參考文獻(xiàn)[15]中通過計算得出光信號反射次數(shù)為3次~10次時對系統(tǒng)的影響可以忽略不計,由于室內(nèi)情況復(fù)雜漫反射為主要反射源,大部分反射信號需3次及以上反射才能被PD接收端接收。因此本文中只考慮直射鏈路,對反射信號忽略不計。
在10m×10m×3m的室內(nèi)空間中設(shè)置9盞LED燈作為信號發(fā)射器,將其呈等間隔對稱分布安裝在距離地面3m的天花板上。將PD作為接收器安裝在移動端上。LED發(fā)射器和接收器定位系統(tǒng)模型如圖1所示。
Fig.1 Indoor visible light positioning model
接收光功率Pr與發(fā)射端功率Pt的關(guān)系為:
Pr=H(0)Pt
(1)
式中,H(0)為信道增益,信道增益可以表示為[16]:
H(0)=
(2)
式中,A為PD的面積;d為LED到PD的相對距離;φ為發(fā)散角;ψ為接收角;ψmax為PD最大視場角;f(ψ)為PD的光濾波器增益;g(ψ)為聚光器增益。將(1)式和(2)式聯(lián)立即可推導(dǎo)出LED與PD間的距離d;l為朗伯散射系數(shù),朗伯系數(shù)大小由LED燈的半功率角ψ1/2決定:
(3)
LED發(fā)光強(qiáng)度模型如下[17-18]:
Iθ=I0coslψ
(4)
式中,Iθ為發(fā)射角θ的發(fā)光強(qiáng)度;I0為垂直于發(fā)光面的發(fā)光強(qiáng)度。
RSSI定位是根據(jù)PD接收到來自多個發(fā)射器發(fā)出的光源信號強(qiáng)度得到歐氏距離,利用三邊法求解出目標(biāo)位置的對應(yīng)坐標(biāo)點(diǎn)。已知參考點(diǎn)與待測節(jié)點(diǎn)坐標(biāo),代入三邊定位算法公式可計算出3個圓心到達(dá)待測點(diǎn)的距離d。由于室內(nèi)充斥著電磁的干擾,三邊測距法計算3個圓不會理想地交于一點(diǎn),因此通過黃金正弦算法尋找最優(yōu)解。
黃金正弦算法(golden sine algorithm,Gold-SA)是一種新型元啟發(fā)式算法[19-20]。黃金正弦算法是在正弦函數(shù)上沿著同一搜索路線,將單位圓上的每一個點(diǎn)訪問一遍,當(dāng)位置更新時加入黃金分割率進(jìn)而去縮小解的范圍,使得區(qū)域范圍更小,進(jìn)而可以提升算法搜索速度。Gold-SA算法在更新個體位置時,引入黃金分割率,分別設(shè)系數(shù)x1和x2,將系數(shù)加入到位置更新公式中,縮小搜索空間使得尋優(yōu)速度更快,黃金分割系數(shù)x1和x2為:
(5)
黃金正弦算法中結(jié)合黃金分割率的系數(shù),在搜索空間中尋找最優(yōu)解,其位置更新公式為[21]:
(6)
本文作者提出將Levy飛行變異機(jī)制結(jié)合自適移動因子改進(jìn)黃金正弦算法,對位置更新公式進(jìn)行變異,提高算法種群的多樣性,能夠快速跳出局部最優(yōu)。Levy飛行機(jī)制的核心是短距離游走和長距離跳躍交替變化,當(dāng)處于短距離游走時種群的多樣性將會提高,處于長距離跳躍時種群搜索具有方向的多樣性,搜索更為詳細(xì)[22-23]。L為Levy飛行的移動步長參數(shù),計算公式為:
(7)
式中,λ為縮放因子,參考文獻(xiàn)[24]中建議取λ=1.5;Γ(λ)為標(biāo)準(zhǔn)的伽瑪函數(shù);s為移動步長;s0為起始步長,即s>>s0>0為s→∞。
在黃金正弦算法全局搜索中引入Levy飛行變異機(jī)制幫助算法跳出局部最優(yōu),但Levy飛行變異機(jī)制無法滿足算法需要較高的收斂速度。本文中提出Levy飛行機(jī)制結(jié)合自適應(yīng)移動因子對黃金正弦算法位置更新公式改進(jìn),進(jìn)而提高算法的收斂速度。自適應(yīng)移動因子α的公式為:
(8)
式中,j為當(dāng)前的迭代次數(shù);q=1+j/M,M為最大迭代次數(shù)。
使用Levy飛行變異機(jī)制結(jié)合自適應(yīng)移動因子對Gold-SA位置更新公式進(jìn)行變異,變異后的位置更新公式為:
αL(m,n)×(xbest-xi)
(9)
式中,L(m,n)是關(guān)于多個未知量下的步長參數(shù)的矩陣,其中m表示控制常數(shù),n為未知量個數(shù),取m=1.5,n=3;xbest表示每次迭代最優(yōu)解矩陣;xi表示當(dāng)前迭代得出的解的矩陣。
基于Levy變異機(jī)制改進(jìn)Gold-SA算法實(shí)現(xiàn)室內(nèi)可見光定位的流程如下:(1)PD接收器接收LED光信號,計算出LED與PD間的距離d;(2)設(shè)計初始種群個體數(shù)為N,最大迭代次數(shù)M,空間維數(shù)D的初始種群;(3)計算每個個體的適應(yīng)度的值Pbest,并將最優(yōu)個體對應(yīng)的適應(yīng)度值存入xbest;(4)根據(jù)(9)式更新個體的位置;(5)更新個體,比較個體的適應(yīng)度值取出最佳適應(yīng)度值個體作為下一次迭代的解;(6)判斷是否已經(jīng)達(dá)到設(shè)置迭代次數(shù),若達(dá)到則結(jié)束,若未達(dá)到則轉(zhuǎn)向第(4)步;(7)得到全局最優(yōu)解。
選取體積為10m×10m×3m的室內(nèi)空間作為仿真測試空間,設(shè)置9盞LED燈按照3×3的網(wǎng)格排列方式排布。在室內(nèi)隨機(jī)放置一個待測點(diǎn),分別選取最小二乘(least square mathod,LMS)的RSSI定位算法、PSO的RSSI定位算法、Gold-SA的RSSI定位算法和改進(jìn)的Gold-SA的RSSI定位算法,比較各算法定位產(chǎn)生的定位誤差。設(shè)置PD有效接收面積為1cm2。仿真參量表如表1所示。
Table 1 Simulation parameters
Fig.2 Algorithm error comparison
在3維空間中分別選取LSM定位算法、PSO定位算法、Gold-SA定位算法、改進(jìn)后的Gold-SA定位算法進(jìn)行仿真分析,仿真結(jié)果如圖2所示。
圖2a中采用LMS定位算法時,定位誤差為2.5924m,由于室內(nèi)環(huán)境復(fù)雜充滿電磁干擾,導(dǎo)致精度低不能做到精確定位。由圖2b和圖2c看出,基于PSO的定位算法誤差為5.9993cm,基于Gold-SA的定位算法誤差為5.9866cm,雖然上述兩種算法相比于LMS算法精度提高很多,但仍存在收斂速度慢的缺點(diǎn)。改進(jìn)Gold-SA定位算法如圖2d所示,定位算法誤差為1.4703mm,相比PSO算法和未改進(jìn)的Gold-SA算法,改進(jìn)后Gold-SA算法的定位精度分別提升97.54%和95.52%。Levy變異機(jī)制增加算法搜索空間的多樣性,自適應(yīng)移動因子有效地避免群智能算法收斂早熟的缺點(diǎn)提高算法收斂速度,使算法誤差明顯減小,實(shí)現(xiàn)精確定位。在仿真參量不變的情況下對4個目標(biāo)點(diǎn)進(jìn)行同時定位,多目標(biāo)仿真結(jié)果如圖3所示。
Fig.3 Multi-target positioning error of the improved Gold-SA algorithm
由圖3可以看出,采用改進(jìn)Gold-SA算法對4個目標(biāo)點(diǎn)同時定位,定位誤差分別為1.170cm,1.243cm,1.197cm,1.470cm,平均定位誤差為1.270cm。由圖3仿真分析可知,改進(jìn)后的Gold-SA定位算法可應(yīng)用在多目標(biāo)定位過程。
分別對PSO算法、Gold-SA算法和改進(jìn)后的Gold-SA算法進(jìn)行單目標(biāo)迭代速度的分析,設(shè)置迭代數(shù)為200次,初始種群數(shù)量為20,采用3×3網(wǎng)格型LED燈源排布方案,在保證使用最少LED燈源且定位精度較高的前提下分析算法收斂速度,仿真結(jié)果如圖4所示。
Fig.4 Convergence speed comparison chart
由圖4可直觀看出:采用Levy飛行變異機(jī)制結(jié)合自適應(yīng)移動因子改進(jìn)的Gold-SA算法收斂速度大幅度提升。改進(jìn)后的Gold-SA算法經(jīng)過40次迭代后就快速收斂到最低適應(yīng)度值?;赑SO的RSSI定位算法110次迭代后收斂到最低適應(yīng)度值,Gold-SA算法經(jīng)過200次迭代后還未達(dá)到最低適應(yīng)度值。因此,說明改進(jìn)后的算法在快速定位方面更具有優(yōu)勢。
選取改進(jìn)Gold-SA算法、未改進(jìn)的Gold-SA算法及PSO算法,在定位誤差為0cm~2cm區(qū)間內(nèi)仿真分析3種定位算法單目標(biāo)定位時間,結(jié)果如圖5所示。
Fig.5 Comparison and analysis of positioning time
由圖5中明顯看出:3種算法在相同定位區(qū)間內(nèi),改進(jìn)后的算法定位誤差在0cm~2cm的范圍內(nèi)定位時間均比未改進(jìn)的Gold-SA算法和PSO算法短,由此說明改進(jìn)的Gold-SA算法可實(shí)現(xiàn)快速定位。當(dāng)定位誤差為0.2cm時,改進(jìn)的Gold-SA定位時間為3.3s比傳統(tǒng)Gold-SA算法快0.5s,比PSO算法快0.9s;定位誤差為0.6cm時,改進(jìn)后的算法定位時間為2.2s比傳統(tǒng)Gold-SA快0.8s,比PSO算法快1.6s;定位誤差為1.5cm時,改進(jìn)后的算法定位時間為2.4s比傳統(tǒng)Gold-SA算法快0.6s,比PSO算法快1s。由此可以說明改進(jìn)后的Gold-SA算法相比于其它兩種算法所需要的定位時間更短,改進(jìn)后的Gold-SA算法整體優(yōu)于未改進(jìn)的Gold-SA算法和PSO算法。
為進(jìn)一步驗(yàn)證改進(jìn)后的黃金正弦算法優(yōu)越性,分別對改進(jìn)的Gold-SA算法、Gold-SA算法和PSO算法分別進(jìn)行200次單目標(biāo)定位誤差計算。采用直方圖更直觀地觀測定位算法的誤差分布,如圖6所示。
Fig.6 Positioning error histogram
由圖6可看出:與Gold-SA算法和PSO算法相比,改進(jìn)后的Gold-SA算法誤差大多集中在0cm~2cm范圍內(nèi),當(dāng)誤差大于2cm時,誤差點(diǎn)個數(shù)呈大幅下降趨勢,在6cm~8cm范圍內(nèi)沒有誤差點(diǎn)分布。Gold-SA算法誤差集中在2cm~4cm范圍內(nèi),PSO算法誤差主要分布在2cm~4cm,4cm~6cm范圍內(nèi)。改進(jìn)后的Gold-SA算法相較與Gold-SA算法和PSO算法定位性能分別提高64.3%和68.9%。因此,改進(jìn)后的算法相比于其它兩種算法定位誤差更小、定位效果更好。本文中對改進(jìn)Gold-SA算法進(jìn)行80次的誤差計算,依然采用在10m×10m×3m的室內(nèi)空間中3×3網(wǎng)格型LED燈源排布方案,誤差折線圖如圖7所示。
Fig.7 Error line chart of the improved algorithm
圖7中對改進(jìn)的Gold-SA算法對單目標(biāo)進(jìn)行80次誤差計算,經(jīng)過多次仿真可以得出改進(jìn)后的算法誤差穩(wěn)定在0cm~1cm區(qū)間內(nèi),最小誤差可達(dá)1.4703mm。
由以上仿真綜合分析可知,相比于PSO算法、Gold-SA算法和LMS算法,改進(jìn)的Gold-SA算法具有收斂速度快、誤差小趨于穩(wěn)定等優(yōu)點(diǎn),改進(jìn)后的Gold-SA算法相比PSO算法和Gold-SA算法定位性能更具優(yōu)越性,滿足室內(nèi)高精度快速定位要求。
提出了一種基于黃金正弦算法融合自適應(yīng)Levy飛行變異機(jī)制的室內(nèi)可見光定位方法。在保證光強(qiáng)平坦性且不影響照明效果的前提下,采用3×3網(wǎng)格型LED燈源排布方案,設(shè)計RSSI結(jié)合改進(jìn)Gold-SA算法實(shí)現(xiàn)室內(nèi)精確定位。在傳統(tǒng)黃金正弦的基礎(chǔ)上引入變異機(jī)制和自適應(yīng)移動因子后大大提高搜索空間的多樣性,改善算法存在的收斂速度慢、易陷入局部最優(yōu)等缺陷。在10m×10m×3m的室內(nèi)空間中經(jīng)過多次仿真:改進(jìn)的Gold-SA算法定位誤差最小可達(dá)1.4703mm,平均誤差1cm左右。算法在迭代40次~80次之間可收斂到最低適應(yīng)度值。本文中提出的改進(jìn)黃金正弦定位算法具有定位精度高、定位速度快等優(yōu)點(diǎn),且能夠?qū)崿F(xiàn)多目標(biāo)同時定位。因此,本文中的定位方法更適合大型室內(nèi)場所精確、快速定位。