王碩禾,劉 旭,李蘇晨,張國駒
(1.石家莊鐵道大學電氣與電子工程學院,河北 石家莊 050000; 2.北京天誠同創電氣有限公司,北京 102600)
隨著物聯網技術的普及,當前低功耗廣域網LPWAN(Low-Power Wide-Area Network)技術被應用到各個領域。與傳統的WiFi、藍牙、ZigBee(紫峰)等技術相比,LPWAN具有成本低、功耗低、全覆蓋等優點。LPWAN技術主要分為2類:1類是工作于授權頻譜,以窄帶物聯網NB-IoT(Narrow Band Internet of Things)、LTE Cat-m(LTEUE-Category)技術為代表;另1類是以遠距離無線電LoRa(Long Range Radio)和SigFox技術為代表的工作于未授權頻譜下的低功耗廣域網技術[1]。LoRa技術是典型的LPWAN技術,具有功耗低、成本低、傳輸距離遠等特點。LoRa技術的應用廣泛,主要包括:農業上農作物生長環境的溫濕度測量;工業上快遞物流的跟蹤定位、機械設備的遠程控制;智慧城市中交通情況的監控以及信號燈的遠程控制;日常生活中水、電、煤氣等用量的遠程統計。
雖然LoRa技術具有廣闊的應用前景,且具有功耗低、成本低、傳輸距離遠等優點,但LoRa網絡系統的能耗問題依然是LoRa技術所面臨的迫切需要解決的關鍵問題。 在LoRa網絡中,LoRa系統的低功耗設計主要從軟件協議和硬件選型2方面著手。硬件方面,MCU采用ST公司推出的低功耗系列芯片STM32L053,射頻模塊芯片選用美國Semtech公司的SX1278射頻芯片[2],能夠實現比較低的能耗。軟件協議方面,根據香農定理,增大數據傳輸速率,能夠有效地降低能耗,延長電池使用壽命。改變傳輸速率的影響參數也會對傳輸時間、接收靈敏度、抗干擾性能等產生影響,從而影響功耗和傳輸距離,所以在實際應用中通過調節擴頻因子SF(Spreading Fctor)、擴頻調制帶寬BW(Band Width)以及編碼率CR(Coding Rate)的值,在數據傳輸速率、鏈路預算以及抗干擾性之間達到更好的平衡。

Figure 1 LoRa packet structure圖1 LoRa數據包結構
實現LoRa參數BW、SF、CR的最佳匹配是提高LoRa傳輸性能的重要途徑。本文采用基于線性加權的多目標遺傳算法,通過仿真分析和實際測量,以能量損耗最小、傳輸距離最遠、抗干擾性最強為優化目標,以影響因子BW、SF和CR構建的數據傳輸速率DR、傳輸時間T、接收靈敏度S為目標函數,同時充分考慮影響因子的取值、帶寬的大小、傳輸數據的長度等約束條件,經遺傳算法求出1組最優解。實驗結果表明,該方法具有有效性,可以達到功率損耗、傳輸距離、抗干擾性最優的結果。
LoRa技術是基于美國半導體Semtech公司2013年開發的SX127x系列芯片的一種兼顧低功耗和遠距離的無線通信技術[3]。LoRa技術主要工作于1 GHz以下的免費頻段,目前主要包括915 MHz,868 MHz,470 MHz和433 MHz等,其中我國主要工作于433 MHz,470 MHz頻段,歐美等國家主要工作于915 MHz和868 MHz頻段。LoRa技術可實現-148 dBm的接收靈敏度,比其他sub-GHz無線技術的接收靈敏度提高了20 dB甚至更多;可采用125 kHz,250 kHz,500 kHz等帶寬[4],數據傳輸速率為0.1~120 kbps,實際傳輸速率因傳輸帶寬、擴頻因子、編碼率等不同而存在差異,具體計算如式(1)和式(2)所示:
Rs=BW/2SF
(1)
DR=SF×Rs×4/(4+CR)
(2)
其中,Rs為LoRa的符號速率;SF為擴頻因子;BW為帶寬;CR為編碼率(信息率)。
由式(1)和式(2)可以看出,影響LoRa終端實際傳輸速率的因子是SF、BW和CR。用戶需根據實際需求選擇合適的影響因子值,決定數據的實際傳輸速率,其中SF的取值為6~12,BW的取值為7.8~500 kHz,常用傳輸帶寬為500 kHz,250 kHz,125 kHz ,CR的值為1~4。
LoRa的數據包結構如圖1所示,主要由前導碼(Preamble)、可選報頭(Header)、有效負載(Payload)3部分組成[5],LoRa數據包的傳輸時間由前導碼的傳輸時間和有效負載傳輸時間共同組成。
根據前面描述,由SF、BW可求出 LoRa的符號速率Rs,可得出發送單個符號所需要的時間:
(3)
前導碼的傳輸時間為:
Tpreamble=(npreamble+4.25)Tsym
(4)
其中,npreamble代表前導碼的有效長度,在數據傳輸前已設置好;Tsym表示發送每個前導碼符號所需要的時間。
有效負載的傳輸時間與所選擇的報頭類型相關,設置為顯式報頭模式,報頭中含有有效負載長度、前向糾錯碼率、是否使用CRC等相關信息;設置為隱式報頭模式,則需手動設置有效負載字節數、前向糾錯碼率和CRC等信息。有效負載符號數為:
PayloadSymbNb=
8+max(ceil((8PL-4SF+28+
16-20H)/(4(SF-2DE)))(CR+4),0)
(5)
其中,PL為有效負載的字節數。H表示選擇的報頭類型,H=0,表示顯式報頭模式。H=1,表示隱式報頭模式;DE表示數據傳輸過程中是否采用低速率優化,DE=1表示采用。DE=0表示不采用。max為最大值函數;ceil為取整函數。
有效負載的傳輸時間為:
Tpayload=PayloadSymbNb*Tsym
(6)
數據包的傳輸時間等于兩者之和,計算公式如式(7)所示:
Tpacket=Tpreamble+Tpayload
(7)
綜上所述,影響數據包的傳輸時間因子有BW、SF、CR、前導碼的長度、報頭類型、是否采用低速率優化等。在本文中,為尋求BW、SF、CR對整個系統的影響,先將前導碼長度、報頭類型、有效負載字節數等變量固定。
通信距離遠是LoRa無線通信模塊的重要優勢之一。模塊采用LoRa無線調制技術對信號進行獨有的處理,無線通信鏈路可以實現-148 dBm的靈敏度,相對于傳統的FSK模塊具有更強的穿透力和更遠的傳輸距離。對于無線技術而言,其接收靈敏度越低,穿透能力越強,傳輸距離越遠。無線接收器的靈敏度計算如式(8)所示:
S=-174+10 lgBW+NF+SNR
(8)
其中,NF為接收機噪聲系數,一般取值為10;SNR表示解調所需的信噪比,擴頻因子越大,信噪比越小,SNR的值與SF取值的關系如表1所示。

Table 1 Relationship between SNR and SF表1 SNR與SF的關系表
在設計中,-174為1 Hz帶寬內的熱噪聲引起的靈敏度衰減,只能通過改變接收器的溫度來改變數值;NF的取值對于給定的設備,取值為一定的,所以一般通過改變帶寬和信噪比的取值來改變接收靈敏度,從而改變實際傳輸距離。擴頻因子SF的取值對信噪比產生一定的影響,擴頻因子越大,信噪比越小,所以隨著傳輸距離的增加,必須增大SF并且減少BW的取值來確保合適的接收靈敏度,獲得可靠的通信。例如,接收靈敏度低至-148 dBm,輸出功率TxPOWER為+20 dBm,導致鏈路預算超過168 dB,鏈路預算(L)的計算如式(9)所示:
L=TxPOWER+|S|
(9)
其中,TxPOWER為輸出功率,S為當前狀態下的接收靈敏度。
遺傳算法(Genetic Algorithm)是借鑒生物界的優勝劣汰、適者生存的遺傳機制演化而來的一種全局化的隨機概率搜索算法。它是在20世紀70年代由美國Michigan大學的Holland教授及其學生和同事首先提出的,從代表問題可能存在的解集的某個種群開始,解集的每個種群都是由數個個體經過基因編碼組成,而每1個編碼的個體對應的是染色體帶有特征的實體[6]。染色體或個體作為遺傳物質基因的主要載體,是由多個基因組成的集合,決定了某些特征的外部表現。因此,首先需要將表現型映射到基因型即進行編碼,這樣就將解空間信息映射到了編碼空間,每個解對應1個編碼;初代種群產生之后,按照自然環境中的適者生存、優勝劣汰的選擇機制,逐代演化出越來越接近的解。在演化的每1代中,根據問題域中每個個體的適應度大小選擇不同的個體,并借助遺傳算子進行個體的組合交叉和變異,從而產生出代表新的解集的種群。這個求解過程與自然界的進化過程相似,后代的種群更加能夠適應于當前環境,最后1代種群中的最優個體通過解碼操作,可以作為問題的最優解[7]。利用遺傳算法求解問題的流程如圖2所示,其具體步驟為:

Figure 2 Solution process of genetic algorithm 圖2 遺傳算法求解過程
(1)根據實際問題描述建立數學模型,確定決策變量以及約束條件。
(2)對參數進行編碼,將實際參數轉換成遺傳空間的由基因按一定結構組成的染色體或個體,即將表現型映射到基因型。
(3)初始化群體,設置進化代數計數器t=0,設置最大進化代數T,隨機生成M個個體作為初始群體P(0)。
(4)計算適應度值,然后根據適應度值的大小來判斷群體中的個體的優劣程度。
(5)停止條件判斷:若t=T,則將進化過程中所得到的具有最大適應度的個體作為最優解輸出,終止計算;否則進行遺傳操作。
(6)遺傳操作主要包括3個主要的遺傳算子:選擇、交叉和變異。
①選擇運算:選擇的目的是把優化的個體直接遺傳到下1代或通過配對交叉產生新的個體再遺傳到下1代。選擇操作是建立在群體中個體的適應度評估基礎上的。
②交叉運算:遺傳算法中起核心作用的就是交叉算子。
③變異運算:對群體中個體串的某些基因上的基因值作變動。
(7)產生新1代群體,群體P(t)經過選擇、交叉、變異運算之后得到下1代群體P(t+1),并返回重新計算適應度值。
由上述遺傳算法的描述及求解過程可以看出,遺傳算法直接對實際參數進行操作,沒有太多的數學知識要求;遺傳算法是進行全局搜索,不依賴于初始條件,不與求解空間有緊密關系,對解域無可微或連續的要求。所以,本文采用遺傳算法對LoRa的數據傳輸進行多目標優化,達到傳輸速率大、傳輸時間短的目標,從而使電池壽命最長,傳輸距離最遠。
3.2.1 目標函數確定
在LoRa無線傳輸的系統中,低功耗、遠距離、魯棒性3個特性相互矛盾,但是從工程應用角度出發,需要LoRa無線傳輸系統兼備系統功耗低、傳輸距離短、系統穩定性好的特點,因此,如何優化設計匹配參數,實現LoRa系統的整體性能最優,是本文的優化目標。系統的能耗主要與數據的傳輸速率以及空中傳輸時間有關,傳輸速率越大,空中傳輸時間越短,功耗越小;最遠傳輸距離主要由鏈路預算決定;數據傳輸的魯棒性主要由編碼率決定,編碼率越大,魯棒性越強。
LoRa終端的功率能量損耗實際與數據傳輸速率、空中傳輸時間有關:
Q=fQ(DR,Tpacket)
(10)
在數據傳輸過程中,數據的傳輸速率越大,傳輸過程的能量損耗越小;但空中傳輸時間越長,即數據傳輸得越慢,能量損耗越大。
LoRa的數據傳輸的最遠距離由鏈路預算來評估:
D=fD(L)
(11)
傳輸距離的影響因素較多,主要與數據傳輸速率、接收靈敏度、電源電壓、天線增益、天線高度、發射功率等有關,本文主要考慮傳輸速率、接收靈敏度對傳輸距離的影響,所以取電源電壓為固定值,天線增益為5 Dbi,發射功率為20 dbm。
數據傳輸的魯棒性的近似函數為:
R=fR(CR)
(12)
本文運用線性加權法將多目標優化問題轉化為單目標優化問題,但由于各個目標函數的評價標準不同,需首先將多目標進行歸一化處理,然后用加權求和將其轉換成單一目標函數。歸一化就是采用除以基值的方法將有量綱目標函數轉換為無量綱目標函數,每個目標函數的取值除以基準值再乘加權系數,然后再求和即可得到新的目標函數:
maxD=maxfD(L)
maxQ=minfQ(DR,Tpacket)
maxR=maxfR(CR)
新目標函數:
確定上述優化函數中的參數SF、BW、CR為優化參數,約束條件為:
3.2.2 個體編碼
(1)確定編碼方法。
對參數進行編碼,即將變量轉換成二進制串,長度由計算所要求的精度決定[8]。例如,變量的約束區間為[a1,b1],要求精度到小數點后2位,也就是每個變量應該至少被分成(b1-a1)*102個部分。對于1個變量的二進制串位數(用mj表示),用以下公式計算:
2mj-1<(bj-aj)*202≤2mj-1
(13)
(2)確定解碼方法。
從二進制串返回變量的實際值用以下公式計算:
(14)
其中,decimal(substring)代表變量的十進制數值。
不妨設要求精度為小數點后2位,則目標函數中的3個變量SF、BW和CR可以轉換為下面的二進制串:
因為SF的取值為6~12的整數,所以用4位無符號二進制整數來表示,則SF的二進制串位數m1=4;
而BW可由式(15)得出:
(500-7.8)*100=49220,
215<49220≤216
(15)
則二進制串位數m2=16。
CR的取值為1~4的整數,用3位無符號二進制整數來表示,則CR的二進制串位數m3=3。
m=m1+m2+m3=4+16+3=23
這樣,1個染色體串的二進制位數為23位,如圖3所示。

Figure 3 A binary string of chromosomes圖3 1個染色體的二進制串
對應變量SF、BW和CR的十進制是實數值,如表2所示。

Table 2 Binary representation and decimal representation relationship of a chromosome表2 染色體的二進制表示與十進制表示關系
染色體的表現型和基因型之間可由式(16)描述,通過編碼和解碼自由轉換[9]。
SF=6,
CR=4
(16)
然后按照圖1遺傳算法的流程,對LoRa參數進行優化選擇。設置初始種群大小為100,字符串長度為23,交叉概率為0.9,變異概率為0.5,遺傳代數為3 000代。
為驗證遺傳算法的有效性,本節利用Matlab,按照上述遺傳算法的設置對目標函數進行仿真,參數設置為:種群內個體數目N=100;染色體節點數N_chrom=7;迭代次數iter=3000;變異概率mut=0.5;交叉概率acr=0.9。
綜合考慮數據傳輸的能耗、傳輸距離、傳輸的魯棒性,經過多次運行,改變各個目標函數的權重系數,目標函數變化如圖4所示,其中圖4a為傳輸距離基準值為3 000 m的目標函數變化圖;圖4b為傳輸距離基準值為5 000 m的目標函數變化圖;圖4c為傳輸距離基準值為10 000 m的目標函數變化圖。從圖4中可以看出,本文所采用的線性加權的多目標遺傳算法在第500代左右就開始得到很好的收斂效果。各方案的參數優化對比值如表3所示。

Figure 4 Fitness curve圖4 適應度曲線
Table 3 Comparison of optimization results
表3 優化結果對比表

序號SFBWCR系統能耗/J傳輸距離/m魯棒性(0~1)1830.5041.083 0000.91優化結果299.5444.705 0000.933117.26313.610 0000.75未優化結果4650010.845000.155127.8417.9011 0000.98
由表3可以看出本文所采用的多目標優化方法的可行性,在3個目標函數之間存在相互制約關系的情況下,3種方案的數據傳輸的能耗、最遠傳輸距離、傳輸的魯棒性得到了相應的平衡。在優化結果中,分別以3 000 m,5 000 m,10 000 m為優化目標的基準值,得到了相應的參數值,實現了能耗與傳輸距離以及魯棒性的平衡;未優化結果明顯表明了系統能耗與傳輸距離的矛盾性。在實際應用中,用戶可以在滿足傳輸距離要求的情況下,通過適當地增加數據傳輸速率來降低系統能耗,必要時可通過犧牲系統的魯棒性來降低能耗[10]。
本文將遺傳算法用于LoRa無線傳輸的多目標尋優,通過全局搜索,對影響因子SF、BW、CR組成的染色體進行選擇、交叉、變異,達到傳播優秀基因的目的,尋找出LoRa傳輸過程中的能耗、傳輸距離和魯棒性的最優解。仿真以及測試結果表明,本文所采用的線性加權多目標遺傳算法在尋優、穩定性等方面具有較強的優勢,可用于LoRa終端的傳輸尋優,在滿足傳輸距離要求的情況下,減少了數據傳輸過程中的功率損耗,增強了系統的魯棒性。