于文滔,楊 芳
(廣東電網(wǎng)有限責(zé)任公司清遠(yuǎn)供電局,廣東 清遠(yuǎn) 511500)
社會(huì)經(jīng)濟(jì)的高速發(fā)展和人們對(duì)木材需求量的不斷增長(zhǎng),促使人們大量推廣種植速生經(jīng)濟(jì)林。目前,在南方地區(qū)的架空輸電線下出現(xiàn)了大面積超高樹(shù)木,如速生桉、濕地松、竹子等[1]。在一些山區(qū),輸電線路經(jīng)過(guò)的區(qū)域山路十分陡峭,植被繁雜,基本無(wú)路可走。大部分輸電線路分布在山區(qū)且跨越大片樹(shù)林,造成巡視相對(duì)困難。據(jù)電網(wǎng)公司調(diào)查統(tǒng)計(jì),由高桿植物造成的安全隱患占所有安全隱患的近一半,可見(jiàn)超高植物是影響線路安全運(yùn)行的原因之一。
山林的經(jīng)營(yíng)權(quán)利是確定的,有些當(dāng)?shù)剞r(nóng)民會(huì)在高壓架空線下方種植大面積的高桿速生樹(shù)種,由于巡線和樹(shù)障處理不及時(shí),高桿樹(shù)木與導(dǎo)線的距離不足會(huì)造成樹(shù)閃等輸電故障。若栽種的樹(shù)種是桉樹(shù),因?yàn)殍駱?shù)的生長(zhǎng)速度極快,成材的桉樹(shù)能夠到達(dá)30 m,將致使大部分線路都無(wú)法滿足安全距離,即使將線路設(shè)計(jì)為高跨式。當(dāng)前設(shè)計(jì)線路時(shí)需考慮樹(shù)木最終的高度一般為20 m,否則無(wú)法滿足線路所需的安全距離。當(dāng)高桿植物生長(zhǎng)到與導(dǎo)線之間的距離小于安全距離時(shí),會(huì)導(dǎo)致導(dǎo)線對(duì)植物放電而引發(fā)跳閘事故。如果人距離桉樹(shù)較近,甚至?xí)?duì)人造成傷害。
本文以速生桉樹(shù)樹(shù)高為研究對(duì)象,建立桉樹(shù)樹(shù)高的BP網(wǎng)絡(luò)模型。人們?yōu)榱丝刂屏址置芏群途S護(hù)地力,獲得更高的經(jīng)濟(jì)效益,一般會(huì)對(duì)桉樹(shù)的胸徑和樹(shù)高的生長(zhǎng)規(guī)律進(jìn)行專(zhuān)門(mén)研究[2]。當(dāng)前對(duì)桉樹(shù)生長(zhǎng)規(guī)律的研究主要是建立胸徑、樹(shù)高以及林分密度等因素之間關(guān)系的回歸方程,而基于人工智能模型技術(shù)的桉樹(shù)生長(zhǎng)規(guī)律研究相對(duì)較少。總結(jié)起來(lái),樹(shù)高預(yù)測(cè)的方法主要有傳統(tǒng)的建模和人工智能算法。傳統(tǒng)建模需要了解樹(shù)木的各種生長(zhǎng)情況,不斷調(diào)整模型的各類(lèi)參數(shù),實(shí)踐相對(duì)麻煩;人工智能如BP神經(jīng)網(wǎng)絡(luò)模型方法不需要了解內(nèi)部生長(zhǎng)規(guī)律,只需要有歷史數(shù)據(jù)便可以構(gòu)建一個(gè)非線性模型,用于得到未來(lái)某一時(shí)刻的預(yù)測(cè)輸出值。BP神經(jīng)網(wǎng)絡(luò)是一種經(jīng)典的人工神經(jīng)網(wǎng)絡(luò)形式,于1986年由Runelhart等人首次提出,之后被不斷改進(jìn)并廣泛應(yīng)用于各個(gè)領(lǐng)域。近年來(lái),BP神經(jīng)網(wǎng)絡(luò)在電力系統(tǒng)和林業(yè)領(lǐng)域開(kāi)始有大量應(yīng)用,如解決電力系統(tǒng)中的預(yù)測(cè)問(wèn)題,但在解決電力系統(tǒng)與林業(yè)之間的矛盾領(lǐng)域少有研究。使用BP神經(jīng)網(wǎng)絡(luò)的一大優(yōu)點(diǎn)是,不需要深入了解樹(shù)木生長(zhǎng)的內(nèi)部規(guī)律就可以建立相對(duì)較復(fù)雜的非線性模型。目前,在國(guó)內(nèi)林業(yè)研究領(lǐng)域中使用BP神經(jīng)網(wǎng)絡(luò)大多是用于建立文獻(xiàn)[3-7]所述的林分生長(zhǎng)模型,而很少有報(bào)道使用BP神經(jīng)網(wǎng)絡(luò)研究速生桉的生長(zhǎng)模型。文獻(xiàn)[8]開(kāi)發(fā)了樹(shù)木生長(zhǎng)高度的簡(jiǎn)單數(shù)學(xué)模型,并應(yīng)用于所研發(fā)的輸電通道樹(shù)木隱患點(diǎn)預(yù)警平臺(tái)。但是,該模型只能粗略模擬樹(shù)高生長(zhǎng)情況,不能通過(guò)已有參數(shù)進(jìn)行自主學(xué)習(xí),使得其精度不夠。本文以架空輸電線路下方的人工桉樹(shù)為研究對(duì)象,研究建立其高度與樹(shù)齡和種植密度的BP神經(jīng)網(wǎng)絡(luò)模型,一方面為分析模擬和預(yù)測(cè)樹(shù)木在各階段的生長(zhǎng)高度提供參考,另一方面為建立具有樹(shù)高預(yù)測(cè)功能的架空輸電線路樹(shù)障隱患智能預(yù)警平臺(tái)打下理論基礎(chǔ)。
實(shí)驗(yàn)使用的數(shù)據(jù)集來(lái)源于廣東電網(wǎng)公司清遠(yuǎn)供電局的架空輸電線路樹(shù)障管理系統(tǒng)。該系統(tǒng)記錄了每個(gè)樹(shù)障點(diǎn)對(duì)應(yīng)的樹(shù)木生長(zhǎng)數(shù)據(jù),包括樹(shù)種、樹(shù)齡、樹(shù)高、氣象參數(shù)和地理位置等。清遠(yuǎn)供電局管轄的架空輸電線路有500 kV、220 kV、110 kV和35 kV電壓等級(jí),共157條線路,樹(shù)障點(diǎn)隨機(jī)分布在廣東省清遠(yuǎn)市的各個(gè)位置。使用管理系統(tǒng)數(shù)據(jù)庫(kù)中記錄的運(yùn)行數(shù)據(jù),數(shù)據(jù)包括樹(shù)高、樹(shù)種、地理位置以及對(duì)應(yīng)位置的氣溫、降雨量等氣象因子共1 000條數(shù)據(jù),然后進(jìn)行校驗(yàn)、剔除、歸一化等預(yù)處理后用于訓(xùn)練和測(cè)試。
將數(shù)據(jù)集內(nèi)的每條數(shù)據(jù)歸一化到(0,1),即將不同表征的數(shù)據(jù)規(guī)約到相同的尺度內(nèi),以消除數(shù)據(jù)之間的量綱影響。
本文關(guān)注的是桉樹(shù)樹(shù)高,系統(tǒng)記錄的1~7 a桉樹(shù)生長(zhǎng)高度如表1所示??梢钥闯?,桉樹(shù)的高度符合實(shí)際生長(zhǎng)情況?;趪?guó)內(nèi)相關(guān)權(quán)威實(shí)測(cè)統(tǒng)計(jì)數(shù)據(jù),樹(shù)高的整個(gè)生長(zhǎng)過(guò)程是先加快后減慢,大致呈“S”形增長(zhǎng)。
表1 部分研究數(shù)據(jù)
BP神經(jīng)網(wǎng)絡(luò)由非線性的變換單元組成。它處理信息的過(guò)程由網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)、神經(jīng)元中的激活函數(shù)、連接權(quán)值以及閾值共同決定。通過(guò)計(jì)算公式反向傳遞網(wǎng)絡(luò)輸出值與實(shí)際值之間的誤差,不斷調(diào)整網(wǎng)絡(luò)權(quán)值和閾值,直到整個(gè)網(wǎng)絡(luò)的誤差平方和達(dá)到最小。
如圖1所示,在神經(jīng)元的結(jié)構(gòu)模型中,X1、X2、…、Xn是每一個(gè)神經(jīng)元的輸入量,y是每個(gè)神經(jīng)元的輸出量(也作為下一層神經(jīng)元的輸入量),W1、W2、…、Wn是權(quán)值,b是閾值,f是傳遞函數(shù)。
經(jīng)典的BP神經(jīng)網(wǎng)絡(luò)由3層結(jié)構(gòu)組成,分別是輸入層、隱含層以及輸出層,其中隱含層可以有多層。從理論上來(lái)說(shuō),單一隱含層的BP神經(jīng)網(wǎng)絡(luò)可以無(wú)限擬合任何一條連續(xù)的非線性曲線。
圖1 BP神經(jīng)網(wǎng)絡(luò)神經(jīng)元結(jié)構(gòu)模型
這里采用Python語(yǔ)言進(jìn)行編程建模,并實(shí)現(xiàn)對(duì)模型的訓(xùn)練、測(cè)試和回歸分析。這主要是基于以下考慮:一是Python具有豐富和強(qiáng)大的庫(kù),應(yīng)用十分廣泛;二是能夠與其他編程語(yǔ)言的功能模塊結(jié)合使用,因此常被稱為膠水語(yǔ)言;三是容易將建好的預(yù)測(cè)模塊與其他應(yīng)用程序或者網(wǎng)站結(jié)合,以便將預(yù)測(cè)理論、方法應(yīng)用到實(shí)際生產(chǎn)?;赑ython 3.4軟件平臺(tái)建立單隱層BP神經(jīng)網(wǎng)絡(luò)樹(shù)高預(yù)測(cè)模型,以估測(cè)尾巨桉樹(shù)高。該模型有2個(gè)輸入節(jié)點(diǎn),2個(gè)隱層節(jié)點(diǎn),1個(gè)輸出節(jié)點(diǎn),拓?fù)浣Y(jié)構(gòu)如圖2所示。
圖2 BP網(wǎng)絡(luò)預(yù)測(cè)模型拓?fù)浣Y(jié)構(gòu)
查閱文獻(xiàn)可知,若要確定任意一個(gè)3層的BP神經(jīng)網(wǎng)絡(luò)隱含層的節(jié)點(diǎn)數(shù),可以使用公式。式中,S表示隱層節(jié)點(diǎn)數(shù),j、k分別表示輸入層和輸出層的節(jié)點(diǎn)數(shù);l取1~10之間的整數(shù)。
訓(xùn)練網(wǎng)絡(luò)前,應(yīng)該先對(duì)數(shù)據(jù)進(jìn)行前期處理。這里先對(duì)輸入層的變量林分密度采取歸一化處理,以使網(wǎng)絡(luò)以更快的速度收斂,同時(shí)可以提高訓(xùn)練和預(yù)測(cè)的精度。本研究將數(shù)據(jù)歸一化到[-1,1],按照標(biāo)準(zhǔn)i=(2(xi-xmid))/(xmin-xmax)進(jìn)行歸一化。其中,xmid表示數(shù)據(jù)的中間值,xmax和xmin分別表示待歸一化數(shù)據(jù)列表中的最大值和最小值,xi和i分別表示數(shù)據(jù)歸一化前和歸一化后的值。
研究中,選擇桉樹(shù)的林分年齡A和林分密度N作為BP神經(jīng)網(wǎng)絡(luò)的輸入變量,選擇樹(shù)高總生長(zhǎng)量H作為網(wǎng)絡(luò)的輸出變量,即H=f(A,N)。從經(jīng)濟(jì)性看,速生桉的砍伐年齡一般在7年左右,因此使用前5年的生長(zhǎng)數(shù)據(jù)作為訓(xùn)練樣本,后2年的數(shù)據(jù)作為測(cè)試樣本,用于預(yù)測(cè)速生桉生長(zhǎng)高度隨樹(shù)齡增長(zhǎng)的變化情況。用logsig函數(shù)Y=1/(1+e-x)作為隱層神經(jīng)元的激活函數(shù),其中X、Y分別表示網(wǎng)絡(luò)的輸入和輸出;使用purelin函數(shù)Y=aX+b當(dāng)作輸出層的激活函數(shù),其中X、Y分別表示網(wǎng)絡(luò)的輸入和輸出。然后,使用隨機(jī)梯度下降法作為模型的訓(xùn)練算法,模型精度評(píng)價(jià)采用決定系數(shù)R2和均方誤差MSE。當(dāng)R2越大,MSE越小時(shí),模型擬合精度越高。
其中:n為樣本數(shù),分別表示桉樹(shù)樹(shù)高的真實(shí)值、真實(shí)值的平均值和預(yù)測(cè)模型的輸出值即預(yù)測(cè)值。
通過(guò)控制變量法對(duì)比設(shè)置不同網(wǎng)絡(luò)參數(shù)下的訓(xùn)練效果,最終將模型的隱含層節(jié)點(diǎn)數(shù)設(shè)置為2,神經(jīng)元數(shù)設(shè)置為2,學(xué)習(xí)率設(shè)為0.05,訓(xùn)練代數(shù)設(shè)置為2 000代,目標(biāo)精度設(shè)置為0.01,訓(xùn)練的Python程序見(jiàn)附錄,訓(xùn)練的誤差變化如圖3所示。可以看出,當(dāng)?shù)竭_(dá)最大迭代次數(shù)時(shí),已基本達(dá)到目標(biāo)精度。
圖3 訓(xùn)練誤差變化曲線
模型用前5年的桉樹(shù)樹(shù)高和其影響因素實(shí)際值作為網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù),使用后2年對(duì)應(yīng)的數(shù)據(jù)作為測(cè)試,檢驗(yàn)所建模型的預(yù)測(cè)效果。當(dāng)樣本較少時(shí),選取一組重復(fù)試驗(yàn)值加入訓(xùn)練,以此增強(qiáng)模型的泛化能力。訓(xùn)練和測(cè)試、分析平臺(tái)選擇Python 3.4,結(jié)合numpy、matplotlib、sklearn、pybrain等工具庫(kù),使用Python語(yǔ)言編程實(shí)現(xiàn)方式實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)的構(gòu)建。桉樹(shù)樹(shù)高BP人工神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練結(jié)果、模型仿真輸出和實(shí)際值對(duì)照如表2所示。
經(jīng)過(guò)上面的模擬結(jié)果易得出結(jié)論,建立的BP網(wǎng)絡(luò)模型對(duì)樹(shù)高的平均預(yù)測(cè)精度為96.6%。從數(shù)據(jù)表面看,桉樹(shù)的樹(shù)高生長(zhǎng)速度是隨樹(shù)齡的增大先加快后減慢,直到生長(zhǎng)趨于停止,呈現(xiàn)“S”型增長(zhǎng)。結(jié)果符合速生桉人工林的生長(zhǎng)規(guī)律,即先快后慢的生長(zhǎng)規(guī)律。表3是經(jīng)過(guò)訓(xùn)練后的樹(shù)高BP神經(jīng)網(wǎng)絡(luò)的各項(xiàng)主要參數(shù)。
表2 BP網(wǎng)絡(luò)訓(xùn)練結(jié)果
表3 網(wǎng)絡(luò)主要參數(shù)
在Python 3.4平臺(tái)中對(duì)建立的桉樹(shù)人工林樹(shù)高BP網(wǎng)絡(luò)模型進(jìn)行回歸分析,以充分說(shuō)明所建立的樹(shù)高模型是合理、可行的。為了檢驗(yàn)?zāi)P偷臄M合效果,可以使用樹(shù)高實(shí)際值和網(wǎng)絡(luò)模型的輸出值建立回歸方程。結(jié)果表明,建立的桉樹(shù)樹(shù)高BP神經(jīng)網(wǎng)絡(luò)模型對(duì)應(yīng)的回歸方程的斜率約為1,表明建立的網(wǎng)絡(luò)的預(yù)測(cè)值與真實(shí)值的擬合效果良好,所以建立的網(wǎng)絡(luò)效果是理想的。圖4是建立的網(wǎng)絡(luò)的仿真輸出和實(shí)際輸出的對(duì)比。
圖4 仿真輸出與實(shí)際輸出對(duì)比
通過(guò)研究分析,樹(shù)高預(yù)測(cè)使用Python語(yǔ)言編寫(xiě)實(shí)現(xiàn),預(yù)警系統(tǒng)通過(guò)調(diào)用預(yù)測(cè)模塊實(shí)現(xiàn)樹(shù)高和弧垂的預(yù)測(cè),從而進(jìn)一步求得樹(shù)線凈空距離的預(yù)測(cè)值,然后根據(jù)該預(yù)測(cè)值對(duì)比運(yùn)行規(guī)程[9]要求的距離發(fā)出預(yù)警信息。當(dāng)數(shù)據(jù)庫(kù)中存儲(chǔ)的樹(shù)木生長(zhǎng)信息有了較大的更新,數(shù)據(jù)精度有提高時(shí),樹(shù)木生長(zhǎng)模型可自動(dòng)進(jìn)行重新訓(xùn)練,從而進(jìn)一步提高預(yù)測(cè)精度。預(yù)測(cè)預(yù)警系統(tǒng)實(shí)現(xiàn)流程,如圖5所示。
圖5 預(yù)測(cè)預(yù)警系統(tǒng)實(shí)現(xiàn)流程
本文以桉樹(shù)樹(shù)齡和林分密度作為輸入變量,以桉樹(shù)樹(shù)高作為輸出變量,收集了桉樹(shù)連續(xù)7年的生長(zhǎng)數(shù)據(jù),用前5年的數(shù)據(jù)做為訓(xùn)練樣本,后2年的數(shù)據(jù)作為測(cè)試樣本,通過(guò)大量的訓(xùn)練、調(diào)整和優(yōu)選,最終確定建立了2個(gè)輸入、2個(gè)隱層節(jié)點(diǎn)、1個(gè)輸出的尾巨桉樹(shù)高曲線BP神經(jīng)網(wǎng)絡(luò)。結(jié)果表明,BP神經(jīng)網(wǎng)絡(luò)樹(shù)高曲線模型在建模樣本擬合效果和檢驗(yàn)樣本預(yù)測(cè)效果方面表現(xiàn)出色。
此外,也可以使用傳統(tǒng)的數(shù)學(xué)函數(shù)對(duì)樹(shù)高曲線進(jìn)行建模,但只是單一簡(jiǎn)單的非線性函數(shù),與神經(jīng)網(wǎng)絡(luò)模型相比,只是神經(jīng)網(wǎng)絡(luò)中的一個(gè)神經(jīng)元,不能代替其他類(lèi)型的函數(shù)。使用傳統(tǒng)數(shù)學(xué)函數(shù)建立的樹(shù)高曲線模型無(wú)法脫離函數(shù)原來(lái)表示的曲線,而神經(jīng)網(wǎng)絡(luò)綜合了諸多簡(jiǎn)單的非線性函數(shù),它的特點(diǎn)是高度非線性和分布式。
結(jié)果表明,用BP神經(jīng)網(wǎng)絡(luò)方法建立非線性模型預(yù)測(cè)樹(shù)木的生長(zhǎng)高度是可以實(shí)現(xiàn)的,結(jié)果能夠理想反映訓(xùn)練數(shù)據(jù)的情況,相對(duì)誤差不大。當(dāng)前的高壓輸電系統(tǒng)中,樹(shù)閃引起的跳閘事故屢屢發(fā)生,若可以及時(shí)發(fā)現(xiàn)并處理架空線下的樹(shù)木隱患,將有效減少輸電線路故障。這需要一個(gè)功能強(qiáng)大的自動(dòng)管理平臺(tái),用于記錄和管理線路下方的樹(shù)木生長(zhǎng)情況,提早作出預(yù)警,而目前尚沒(méi)有一個(gè)有效的樹(shù)障管理、預(yù)警平臺(tái)。Python是一種流行的編程語(yǔ)言,可以建立跨平臺(tái)的應(yīng)用程序。因此,可以用Python語(yǔ)言建立一個(gè)樹(shù)障管理平臺(tái),方便巡線人員將調(diào)查結(jié)果記錄在系統(tǒng)中。記錄的數(shù)據(jù)包括線路下方樹(shù)木的分布情況、樹(shù)種、樹(shù)高、樹(shù)齡等,方便管理和查閱。同時(shí),平臺(tái)可根據(jù)記錄的歷史數(shù)據(jù),預(yù)測(cè)未來(lái)某時(shí)刻某線路下方的樹(shù)障隱患情況。當(dāng)預(yù)測(cè)輸出樹(shù)高超過(guò)安全高度時(shí),自動(dòng)發(fā)出預(yù)警信號(hào),提醒運(yùn)維人員及時(shí)清除樹(shù)障隱患,防患于未然。用Python語(yǔ)言編寫(xiě)的預(yù)測(cè)程序方便管理平臺(tái)進(jìn)行直接調(diào)用,這樣可以將理論與實(shí)際應(yīng)用緊緊聯(lián)系起來(lái),而用MATLAB編寫(xiě)的程序沒(méi)有這種實(shí)用性,因此本文的建模和分析都采用Python進(jìn)行編程。
本研究有待改進(jìn)的地方如下:
(1)樣本數(shù)據(jù)過(guò)少,樹(shù)齡跨度大,希望獲取樹(shù)木生長(zhǎng)情況的月度數(shù)據(jù),以得到更精確的模型;
(2)除了樹(shù)齡和林分密度,影響樹(shù)木生長(zhǎng)高度的因素還有降雨量、氣溫、光照強(qiáng)度和土壤肥力等,應(yīng)該將這些因素考慮在內(nèi)作為BP網(wǎng)絡(luò)輸入,以達(dá)到更好的預(yù)測(cè)精度。
因此,后續(xù)研究將不斷改進(jìn)、完善相關(guān)算法,以期將本研究應(yīng)用于實(shí)際生產(chǎn)和生活。