周 游,范屹帆,吳 寅
(南京林業大學 信息科學技術學院,江蘇 南京 210037)
活立木是指林地中生長的樹木,同時也包括不成林的散生木?;盍⒛镜臉鋭菔桥袛嗷盍⒛旧L狀況的綜合指標,樹勢的好壞反映了營養生長和生殖生長之間的關系,同時也體現著林業技術管理水平和林地種植試驗處理的效應。在科研和生產中,活立木樹勢的研究有著重要的理論和實際應用價值[1]。我國是世界上人工林保存面積最大的國家,這些森林資源給我國帶來巨大的經濟收益和生態效益,森林不僅提供人們正常生活所需的基礎資源,還在保護物種多樣性、生態多樣性及維護區域生態平衡等方面起著至關重要的作用[2]。
通過外觀判斷樹勢,方法簡便,經常使用于野外調查和林業生產實踐,但其準確性和時效性均較差。特別是當觀察到樹木的病癥病狀后,往往已經錯過了防治的最佳時期。
通過生理生化指標進行診斷,可以迅速發現樹木的異常變化。但由于測定儀器的專業化和測定手段的復雜性,阻礙了該方法在林業生產和野外調查的推廣。
因此,找到一種既簡便,又快速準確的評價樹木樹勢的方法,是擺在林業工作者面前的一個重要課題。而樹木電特性為快速高效診斷樹木樹勢提供了新的發展思路。
Piene等人[3]研究了落葉和健康香脂冷杉的電阻,發現落葉樹木的電阻值顯著高于健康樹木。宋蟄存、林迎忠等人[4]對細胞組織的生物電學特性進行了非常有價值的研究和分析。他們研究了不同細胞活性在不同木材含水率下的電學特性,并將細胞膜、細胞外液、細胞內液等效為一段電路進行了電路分析。他們認為細胞膜具有的雙重電學特性,即阻抗和電容二性,在不同的外界刺激下會得到不同的測量效果,當細胞死亡后,這種雙重電學特性就會消失。高保山、董燕南等人[5]通過對樹木極化電容和電阻特性的研究,并從熱力學角度對樹木的長勢進行了解釋,認為樹木生物電特性為客觀了解和掌握樹木現時的生長狀態和發展前景提供了科學的依據和辦法。研究指出樹木電阻與高生長量、直徑生長量、材積生長量、韌皮部含水率等多種因素成負相關,樹木長勢越好電阻越小,并從熱力學熵角度對此做出了解釋,最后指出樹體電容與電阻的關系,即電容越大,電阻越小。雖然文章著重進行理論推導缺乏試驗數據支持,但其電容與電阻成負相關的推論與Piene等的試驗結果一致。
因此對活立木的阻抗進行監測可以反映出活立木的健康狀態,方便林地管理者實時地判斷木材的好壞,以此作出相應養護方案,極大便利了對珍稀木種的監測保護。
為了節省測量的人力成本,實時性大規模地測量樹木的阻抗,引入了LoRa無線組網傳輸+傳感器的方案, LoRa無線通信技術傳輸距離較遠、功耗與成本較低,在錯綜復雜的林地環境中,也能有效布置監測節點,節省人力成本,同時,LoRa可以大規模組網,實時數據采集可供管理者第一時間做出應對方案。
本文結合STM32設計了一套基于LoRa的活立木阻抗測量系統,利用AD5933和SX1276芯片,使用卡爾曼濾波,對樹林中的活立木阻抗進行測量,可實現遠距離實時監測活立木的健康狀態,系統相較于目前國際先進的阻抗測試儀器TH2828S與德國IML-PD系列阻抗傳統儀,具有成本低、測量不需人力、節點安裝、維護簡單、測量實時性強等特點,同時也避免了人為手持設備測量時的操作不規范而導致的測量數據誤差。
基于LoRa的活立木健康監測系統的設計,首先通過阻抗測量模塊采集信號進行阻抗測量,對測得的模擬量轉換成數字量,并通過MCU進行預處理、濾波、遠程發送等工作,上位機遠程接收處理數據后得出實時活立木健康狀況。
經對比確定整體遠程測量系統的硬件的組成。選擇著名高性能模擬、混合信號和數字信號處理(DSP)集成電路(IC)設計、制造的公司亞德諾(ADI)的AD5933進行阻抗的測量,將測試得到的模擬量,通過MCU—STM32F103ZET6進行預處理,中值濾波后,再通過串口控制基于SX1276的LoRa模塊將阻抗測量信號發送到網關,網關接收數據到上位機,上位機處理數據,并通報實時狀態,系統設計的整體流程如圖1所示。

圖1 基于LoRa的活立木健康監測系統流程
系統的硬件設計分為數據采集端和數據接收端兩部分。數據采集端的硬件設計如圖2所示。該采集設備安裝在活立木樹干上,硬件設備主體由STM32F103微處理器、阻抗測量模塊、LoRa模塊和電源管理模塊組成。阻抗測量模塊用來采集活立木生長期間的阻抗值,LoRa用來收發這些數據。接收端的硬件設計如圖3所示。

圖2 數據采集端圖

圖3 數據接收端圖
LoRa網關接收到數據后,將數據發送給上位機的數據處理軟件,軟件經過相應的處理并最終顯示。
本設計選取MCU(STMicroelectronics公司的STM32103VET6芯片)作為核心控制單元。該芯片是基于32 bit的Cortex-M3的CPU。系統頻率最高可達72 MHz。
LoRa技術是一種以帶寬換靈敏度的擴頻調制技術[6],實驗選用470 MHz的LoRa信號,節點模塊采用SX1276芯片,網關采用SX1301芯片,均采用單片機spi進行驅動。由表1可知,LoRa相對于其他傳輸方式,最顯著的優點是靈敏度更高、傳輸距離更遠、信號更強,能夠更好地應用在環境復雜的混交林場景。節點的布局如圖4所示,采用星型網組網、一個主網關、多個采集結點,網絡拓撲簡單,便于集中控制,易于維護和安裝,任意采集節點的損壞不會影響其他采集結點,系統可靠性強。

表1 常用的無線傳感網絡對比

圖4 節點布局示意圖
阻抗(Impedance)是每個材料和物質與生俱來的一種屬性[7]。阻抗測量模塊以阻抗測試芯片AD5933為測量核心[8],AD5933芯片是一款精度較高的阻抗轉換芯片,片上集成12位,1 MSPS的ADC轉換器與頻率集成發生器。
利用頻率發生器產生的信號來激勵外部復阻抗,外部阻抗的響應信號由片上的模數轉換器進行采樣,然后由片上DSP進行離散傅里葉變化處理。離散傅里葉算法在每個頻率上返回一個實部(R)和一個虛部(i),利用返回的值計算得到阻抗值。
2.3.1 AD5933組成部分
芯片通過串行IIC接口與MCU連接,校準之后進行測量,可以得到各掃描頻點的阻抗幅度和相位。芯片的組成如圖5所示。

圖5 阻抗測量模塊
2.3.2 AD5933電路設計
如圖6所示,阻抗測量電路包括電源設計,系統時鐘設計和校準電路設計三部分。

圖6 AD5933電路設計圖
(1) 電源設計
采用基準電壓源REF3033給AD5933供電,再分別通過兩個接地的電容實現輸入電源的濾波。REF3033輸出電壓3.3 V,精度±2%,輸出電流25 mA。REF3033 輸出電流較大,不僅提供ADC的基準電源,還提供DDS的模擬電源,以保證激勵、采樣信號的精度和降低信噪比。
(2) 系統時鐘
本阻抗測量儀選用16.384 MHz的外部晶振,作為AD5933的系統主時鐘MCLK,可獲得頻率為整數的測量點。AD5933完成一次A/D轉換需要16個時鐘周期,一次DFT運算需要1 024個A/D轉換結果,因此激勵信號頻率應選擇MCLK,16.384分頻的整數倍。如果激勵信號頻率滿足這個條件,那么在DFT變換中恰好有整數個激勵波形,不會發生頻譜泄漏,否則測量結果不準確。當MCLK為16.384 MHz時,激勵信號頻率可為1 kHz、2 kHz、3 kHz、…、100 kHz[9]。
(3) 校準電路
如圖7所示,為了優化設備測量時的測量精度,在反饋電阻后級根據待測阻抗值的范圍,設備選擇了阻值分別為100 Ω、1 kΩ、10 kΩ、33 kΩ、100 kΩ、1 MΩ、3.3 MΩ和 9.1 MΩ阻值的校準電阻,使用一個多路復用器 ADG1608來完成校準的功能。

圖7 校準電路設計圖
2.3.3 阻抗計算
① 幅度計算
每個頻率點的阻抗計算的第一個步驟就是計算這個頻率點的DFT幅度。DFT幅度的計算公式為:

(1)
式中,R為寄存器返回的實數的值,I為寄存器返回的虛數的值。
② 增益系數計算
增益系數通過測量已知的校準電阻后得到,計算公式為:

(2)
③ 阻抗計算
通過校準得來的增益系數和測量的該頻點的幅度,可以得到該頻點的阻抗值,計算公式為:

(3)
算法和軟件設計包括下位機和上位機的算法和軟件設計,主要包括測量時的量程切換算法和測量值的濾波算法設計和上位機顯示界面的設計。
如圖8所示,系統通過選擇不同反饋電阻實現不同量程切換。量程切換算法步驟如下:

圖8 自動量程切換算法流程
① 開啟通道 1,使反饋電阻的阻值最小,并向AD5933發出測量指令;
② 讀取AD5933測量的虛部i實部值R,計算對應的幅度值。
③ 計算幅度值A對應的量程區間K[10];
④ 開啟通道N,向AD5933發出測量指令;
⑤ 讀取AD5933的測量值,計算幅度值A;
⑥ 判斷A是否處于區間K,若是,結束量程切換,否則將K放置在與A對應的區間,返回步驟④。
均值濾波是一項空間域平滑技術,屬于典型的線性濾波算法[11]。每個通道采樣30次,經過節點單片機存儲并且通過均值濾波后發送給終端,濾波公式如下:

(4)
式中,i取1~32的任意常數。
為確保測量值的精確度,對同一個通道反復測量50次,并將測量的值通過上位機進行卡爾曼濾波算法進行校準,以此得到更精確的測量值。
3.3.1 卡爾曼算法建立
卡爾曼濾波是根據過去的信號,利用統計估計理論,使用線性最小均方誤差作為最優準則,預測將來某個時刻的值,從而預測下一個采樣時刻的數據[12]。由于只有一個變量,只需要一維的卡爾曼濾波即可??柭鼮V波分為預測過程和更新過程[13],預測過程的方程為:
(5)

更新方程如下:
(6)
式中,gk為卡爾曼增益系數,h為縮放系數,Zk為測量值,R是測量噪聲uk-1的平均值。
3.3.2 建立卡爾曼濾波算法模型
把樹木看成一個系統,阻抗值和前一時刻的阻抗值是相同的,所以A=1,沒有相關控制量,所以uk-1=0。因此得出:
x(k|k-1)=x(k-1|k-1),
P(k|k-1)=P(k-1|k-1)+Q,
(7)
因為測量值是AD5933直接得出的,所以跟阻抗直接對應,即h=1,因此得出:
x(k|k)=x(k|k-1)+gk(Zk-x(k|k-1)),
P(k|k)=(1-gk)P(k|k-1)。
(8)
3.4.1 通信協議設計
設計一套適用于系統的通信協議十分必要,通信協議的設計需要考慮上位機和下位機的處理能力,通信雙方的數據類型,還需考慮未來可能會新增的功能。本系統所設計的通信協議數據幀格式如表2所示。

表2 通信協議數據幀格式
3.4.2 主程序設計
主程序設計分別為從機程序和主機程序。從機MCU通過IIC總線讀取AD5933的數據,通過運算得到阻抗值,再均值濾波后通過SX1267發送給網關,從機端的程序流程圖如圖9(a)所示,網關獲取數據后發送給主機,主機軟件獲取后通過卡爾曼濾波得到最終的阻抗值,主機端的程序流程如圖9(b)所示。

(a) 從機軟件運行流程
3.4.3 上位機App設計
使用Matlab 2022a的AppDesigner進行界面的開發,無需再設計界面接口;它旨在順應Web的潮流,以更加簡便的操作來設計更加美觀的圖形用戶接口 (Graphical User Interface, GUI)[14],開發主要工作在預設組件屬性編輯及調試回調函數;App完成效果可視化,設計過程中可在線調試,易用性優于GUI。實現效果如圖10所示。

圖10 上位機App界面
將設備捆綁在樹干上,阻抗測量探頭透過樹皮插入木質部,將設備高度調至1.5~2 m的高度,實驗表明,此高度范圍傳輸數據的無線電波損耗,RSSI的值最低,更有利于信號的傳播[15]。通過上位機發送測量指令,每個設備最多可以測量32個通道,最少可以測量8個通道,選擇需要測量的通道數,發送測試指令,通過LoRa傳輸給采集節點,節點接收到指令,開始解析指令,并進行相應地測量操作,待測量結束,節點通過LoRa自動返回數據給終端節點。
在林中每隔5 m,選取一個采集節點,一共選擇20棵長勢不同的活立木,按照上述的措施安裝好設備,組網成功后,通過上位機挨個選取樹木,進行測量并記錄下測量結果。與此同時,利用專業阻抗測量設備TH2828S在相同的位置進行測量,得到相應的阻抗值。
將基于LoRa的阻抗測量設備測得的不同活立木的阻抗值,與專業阻抗測量設備TH2828S測量的值進行比較。TH2828S是采用當前國際先進的自動平衡電橋原理研制成功的新一代阻抗測試儀器,其基本測量精度可達0.05%,其卓越的性能可以實現商業標準和特殊標準,如iec和mil標準的各種測試。比較二者之間的誤差值,得到的結果如表3所示。

表3 阻抗測量結果
對數據進行誤差分析得到圖11,圖中描述了基于LoRa的阻抗測量設備測得的值與TH2828S測得的值之間的誤差。每個數據點有一個阻抗測量儀測試值和TH2828S測試值,兩組值之間距離即為誤差值,圖像表明,阻抗值越小,測量的誤差就越小,整體的誤差范圍在合理區間,保持在0.5%以內,即本系統測試精度可達到(0.05±0.000 25)%。

圖11 數據誤差分析
本系統利用AD5933測得活立木的阻抗數據,采用LoRa對數據進行遠程的收發,通過卡爾曼濾波算法對數據進行濾波處理,并在上位機App上實時顯示。通過對活立木阻抗進行有效的實時監測,對提高林業生產環節中樹木長勢的健康監測效率具有實際應用價值。相較于市場主流的活立木阻抗測試儀,阻抗測量結果精度較高,誤差范圍控制在0.5%內;增加了遠程操作和實時數據傳輸的功能,設備更加小巧輕便,采集數據收發實時性較強,收發過程基本無丟包,穩定性高,使用覆蓋范圍可達2 km,效果良好,且系統成本較為低廉,可以廣泛應用于林業物聯網監測系統中,有效地節省人力、物力成本。下一步將利用算法把活立木阻抗和活立木的健康狀態進行結合計算參數指標。