本發(fā)明屬于光伏發(fā)電預(yù)測技術(shù)領(lǐng)域,具體涉及一種基于Matlab和Matlab GUI平臺(tái),采用BP神經(jīng)網(wǎng)絡(luò)的光伏電站發(fā)電功率預(yù)測研究系統(tǒng)。
背景技術(shù):
目前,隨著傳統(tǒng)化石能源的不斷耗竭以及人類生存環(huán)境的惡化,可持續(xù)、清潔能源的開發(fā)和利用受到人類越來越多的重視,其中太陽能光伏發(fā)電已作為我國和其它許多國家重點(diǎn)研究和建設(shè)的新型能源發(fā)電方式。
國家發(fā)展改革委和國家能源局印發(fā)的《關(guān)于有序放開發(fā)用電計(jì)劃的實(shí)施意見》提出“建立優(yōu)先發(fā)電制度。優(yōu)先安排風(fēng)能、太陽能、生物質(zhì)能等可再生能源保障性發(fā)電,優(yōu)先發(fā)電容量通過充分安排發(fā)電量計(jì)劃并嚴(yán)格執(zhí)行予以保障”。這說明國家正在逐步放開常規(guī)火電等傳統(tǒng)化石能源的發(fā)電計(jì)劃,在發(fā)電計(jì)劃和調(diào)度中將優(yōu)先安排可再生能源發(fā)電,并將加強(qiáng)可再生能源電力外送消納,提高跨省跨區(qū)送受電中可再生能源電量比例。發(fā)電計(jì)劃和調(diào)度的安排,就將用到光伏發(fā)電預(yù)測技術(shù)。然而,光伏發(fā)電受太陽輻射、溫度等各種環(huán)境因素的影響,輸出功率具有較大的隨機(jī)性和波動(dòng)性,預(yù)測難度較大。
目前,人工智能神經(jīng)網(wǎng)絡(luò)以其良好的適用性和較高的準(zhǔn)確度被越來越廣泛地應(yīng)用在光伏發(fā)電預(yù)測領(lǐng)域。這種研究多依靠具有強(qiáng)大數(shù)據(jù)處理和科學(xué)計(jì)算能力的Matlab軟件,但仍大多停留在研究層面。在研究層面上,科研人員需要面對(duì)繁瑣的代碼修改、反復(fù)的數(shù)據(jù)導(dǎo)入導(dǎo)出、不斷的與Windows系統(tǒng)交互以及較難的商業(yè)應(yīng)用推廣等問題。
Matlab軟件自帶人工智能神經(jīng)網(wǎng)絡(luò)工具箱nntool,該工具箱結(jié)合Matlab編程可以實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測模型的建立、訓(xùn)練和預(yù)測,但該工具箱存在以下問題:使用語言為英語、數(shù)據(jù)的導(dǎo)入和導(dǎo)出處理需要代碼編程、訓(xùn)練評(píng)估指標(biāo)太少且多不實(shí)用等。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于,針對(duì)上述存在的問題且有別于Matlab軟件自帶人工智能神經(jīng)網(wǎng)絡(luò)工具箱nntool,提供一種利用Matlab軟件及其圖形用戶界面(Graphical User Interface,GUI),靈活組合BP神經(jīng)網(wǎng)絡(luò)內(nèi)部算法和結(jié)構(gòu),以及高效便捷地交互Windows系統(tǒng),從而實(shí)現(xiàn)光伏電站發(fā)電功率預(yù)測的研究系統(tǒng)。
為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:
一種基于Matlab的光伏發(fā)電預(yù)測研究系統(tǒng),包括數(shù)據(jù)導(dǎo)入和導(dǎo)出單元、BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練和預(yù)測單元、訓(xùn)練效果綜合評(píng)估單元,其中:
數(shù)據(jù)導(dǎo)入和導(dǎo)出單元,用于導(dǎo)入氣象環(huán)境數(shù)據(jù)和同期相應(yīng)的光伏發(fā)電功率數(shù)據(jù),導(dǎo)出光伏發(fā)電功率預(yù)測值;使用Matlab函數(shù)uigetfile()來獲取需要導(dǎo)入的和需要導(dǎo)出的目標(biāo)Excel表格的文件路徑和文件名,然后分別使用函數(shù)xlsread()和函數(shù)xlswrite()來分別讀取目標(biāo)表格內(nèi)的數(shù)據(jù)和寫入數(shù)據(jù)到目標(biāo)表格;在BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練期間,導(dǎo)入氣象環(huán)境數(shù)據(jù)來作為BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練的輸入向量,導(dǎo)入同期相應(yīng)的光伏發(fā)電功率數(shù)據(jù)來作為BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練的輸出向量;在經(jīng)BP神經(jīng)網(wǎng)絡(luò)多次訓(xùn)練和參考訓(xùn)練效果綜合評(píng)估,確定理想的BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型后,導(dǎo)入未來時(shí)刻的氣象環(huán)境數(shù)據(jù)到BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型,則可預(yù)測輸出光伏發(fā)電功率預(yù)測值,之后導(dǎo)出光伏發(fā)電功率預(yù)測值到目標(biāo)表格。
BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練和預(yù)測單元,用于進(jìn)行BP神經(jīng)網(wǎng)絡(luò)光伏發(fā)電功率預(yù)測模型的建立、訓(xùn)練和預(yù)測;訓(xùn)練和預(yù)測前,使用函數(shù)newff()建立BP神經(jīng)網(wǎng)絡(luò)光伏發(fā)電功率預(yù)測模型,需要設(shè)置輸入-隱含層函數(shù)、隱含-輸出層函數(shù)、訓(xùn)練算法、歸一化區(qū)間、隱含層個(gè)數(shù)、學(xué)習(xí)速率、最小目標(biāo)誤差和最大訓(xùn)練次數(shù);在Matlab環(huán)境中,輸入-隱含層函數(shù)和隱含-輸出層函數(shù)均可選tansig、logsig和purelin,均使用Matlab GUI中的listbox實(shí)現(xiàn);訓(xùn)練算法可選LM反向傳播算法trainlm、擬牛頓反向傳播算法trainbfg、彈性反向傳播算法trainrp和梯度下降反向傳播算法traingd,使用Matlab GUI中的listbox實(shí)現(xiàn);歸一化區(qū)間可選[-1,1]和[0,1],使用Matlab GUI中的radiobutton實(shí)現(xiàn);隱含層個(gè)數(shù)為大于0的整數(shù),使用Matlab GUI中的edit實(shí)現(xiàn);學(xué)習(xí)速率為0到1之間的小數(shù),使用Matlab GUI中的edit實(shí)現(xiàn);最小目標(biāo)誤差為接近于0但大于0的小數(shù),使用Matlab GUI中的edit實(shí)現(xiàn);最大訓(xùn)練次數(shù)為大于0的整數(shù),使用Matlab GUI中的edit實(shí)現(xiàn);建立BP神經(jīng)網(wǎng)絡(luò)光伏發(fā)電功率預(yù)測模型后,使用函數(shù)train()進(jìn)行模型的訓(xùn)練,在訓(xùn)練過程中可以調(diào)節(jié)影響訓(xùn)練效果的輸入-隱含層函數(shù)、隱含-輸出層函數(shù)、訓(xùn)練算法、歸一化區(qū)間、隱含層個(gè)數(shù)、學(xué)習(xí)速率、最小目標(biāo)誤差和最大訓(xùn)練次數(shù),在訓(xùn)練達(dá)到預(yù)期目標(biāo)后,訓(xùn)練結(jié)束,且作為最終預(yù)測模型使用函數(shù)sim()來預(yù)測未來光伏發(fā)電功率。
訓(xùn)練效果綜合評(píng)估單元,用來實(shí)時(shí)反映BP神經(jīng)網(wǎng)絡(luò)的綜合訓(xùn)練效果,為預(yù)測模型的確定提供參考;綜合評(píng)估的參數(shù)有:最大百分誤差、最小百分誤差、平均百分誤差和耗時(shí),使用Matlab GUI中的edit顯示;綜合評(píng)估的圖示有:訓(xùn)練擬合圖、樣本誤差圖和樣本百分誤差圖,使用Matlab GUI中的axes顯示;百分誤差具體采用下式(1):
ei=|Xfi-Xri|/Xri·100% (1)
其中,i表示第i個(gè)樣本,Xfi為第i個(gè)樣本對(duì)應(yīng)的預(yù)測值,Xri為第i個(gè)樣本對(duì)應(yīng)的實(shí)際值;最大百分誤差、最小百分誤差和平均百分誤差分別是所有樣本所對(duì)應(yīng)的百分誤差中的最大值、最小值和平均值;耗時(shí)是指從BP神經(jīng)網(wǎng)絡(luò)光伏發(fā)電功率預(yù)測模型建立之后一次訓(xùn)練開始到本次訓(xùn)練結(jié)束所用的時(shí)間;訓(xùn)練擬合圖顯示訓(xùn)練期間樣本預(yù)測值擬合曲線和所對(duì)應(yīng)的實(shí)際值擬合曲線之間的對(duì)比;樣本誤差圖顯示訓(xùn)練期間樣本預(yù)測值和所對(duì)應(yīng)的實(shí)際值之間的差值,具體為預(yù)測值減去實(shí)際值;樣本百分誤差圖顯示訓(xùn)練期間樣本預(yù)測值和所對(duì)應(yīng)的實(shí)際值之間的百分誤差。
本發(fā)明采用的以上技術(shù)方案與現(xiàn)有技術(shù)相比,可達(dá)到以下技術(shù)效果:
(1)基于Matlab GUI開發(fā),中文語言環(huán)境,可以方便直接的調(diào)用Matlab軟件自身函數(shù)、靈活的設(shè)計(jì)用戶操作界面和實(shí)現(xiàn)快捷地交互Windows系統(tǒng);
(2)深入到BP神經(jīng)網(wǎng)絡(luò)的內(nèi)部,靈活的設(shè)置輸入-隱含層函數(shù)、隱含-輸出層函數(shù)、訓(xùn)練算法、歸一化區(qū)間、隱含層個(gè)數(shù)、學(xué)習(xí)速率、最小目標(biāo)誤差和最大訓(xùn)練次數(shù),使得預(yù)測模型實(shí)現(xiàn)預(yù)測功能的主要參數(shù)和影響預(yù)測模型預(yù)測效果的主要因素清晰明朗;
(3)實(shí)現(xiàn)了集訓(xùn)練數(shù)據(jù)導(dǎo)入、模型訓(xùn)練、性能評(píng)估、模型預(yù)測以及預(yù)測結(jié)果導(dǎo)出等功能于一體,既能滿足科學(xué)研究的需要,也具有商業(yè)應(yīng)用的價(jià)值。
附圖說明
圖1是本發(fā)明的一種基于Matlab的光伏發(fā)電預(yù)測研究系統(tǒng)總體框架示意圖;
圖2是本發(fā)明的一種基于Matlab的光伏發(fā)電預(yù)測研究系統(tǒng)功能結(jié)構(gòu)圖;
圖3是本發(fā)明的一種基于Matlab的光伏發(fā)電預(yù)測研究系統(tǒng)流程圖;
圖4是本發(fā)明中的預(yù)測模型所使用的訓(xùn)練數(shù)據(jù)輸入曲線圖;
圖5是本發(fā)明中的預(yù)測模型所使用的訓(xùn)練數(shù)據(jù)輸出曲線圖;
圖6是本發(fā)明中的預(yù)測模型訓(xùn)練擬合圖;
圖7是本發(fā)明中的預(yù)測模型樣本誤差圖;
圖8是本發(fā)明中的預(yù)測模型樣本百分誤差圖;
圖9是本發(fā)明中的預(yù)測模型所使用的預(yù)測數(shù)據(jù)輸入曲線圖;
圖10是本發(fā)明中的預(yù)測模型預(yù)測擬合圖;
圖11是本發(fā)明中的預(yù)測模型預(yù)測樣本誤差圖;
圖12是本發(fā)明中的預(yù)測模型預(yù)測樣本百分誤差圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作詳細(xì)說明,需要說明的是,該具體實(shí)施例只用來解釋本發(fā)明,而非對(duì)本發(fā)明范圍的限定。
圖1是本發(fā)明的一種基于Matlab的光伏發(fā)電預(yù)測研究系統(tǒng)總體框架示意圖,如圖1所示,一種基于Matlab的光伏發(fā)電預(yù)測研究系統(tǒng)具體包含:數(shù)據(jù)導(dǎo)入和導(dǎo)出單元、BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練和預(yù)測單元、訓(xùn)練效果綜合評(píng)估單元。
其中,數(shù)據(jù)導(dǎo)入和導(dǎo)出單元,用于導(dǎo)入氣象環(huán)境數(shù)據(jù)和同期相應(yīng)的光伏發(fā)電功率數(shù)據(jù),導(dǎo)出光伏發(fā)電功率預(yù)測值;使用Matlab函數(shù)uigetfile()來獲取需要導(dǎo)入的和需要導(dǎo)出的目標(biāo)Excel表格的文件路徑和文件名,然后分別使用函數(shù)xlsread()和函數(shù)xlswrite()來分別讀取目標(biāo)表格內(nèi)的數(shù)據(jù)和寫入數(shù)據(jù)到目標(biāo)表格;在BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練期間,導(dǎo)入氣象環(huán)境數(shù)據(jù)來作為BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練的輸入向量,導(dǎo)入同期相應(yīng)的光伏發(fā)電功率數(shù)據(jù)來作為BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練的輸出向量;在經(jīng)BP神經(jīng)網(wǎng)絡(luò)多次訓(xùn)練和參考訓(xùn)練效果綜合評(píng)估,確定理想的BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型后,導(dǎo)入未來時(shí)刻的氣象環(huán)境數(shù)據(jù)到BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型,則可預(yù)測輸出光伏發(fā)電功率預(yù)測值,之后導(dǎo)出光伏發(fā)電功率預(yù)測值到目標(biāo)表格。
BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練和預(yù)測單元,用于進(jìn)行BP神經(jīng)網(wǎng)絡(luò)光伏發(fā)電功率預(yù)測模型的建立、訓(xùn)練和預(yù)測;訓(xùn)練和預(yù)測前,使用函數(shù)newff()建立BP神經(jīng)網(wǎng)絡(luò)光伏發(fā)電功率預(yù)測模型,需要設(shè)置輸入-隱含層函數(shù)、隱含-輸出層函數(shù)、訓(xùn)練算法、歸一化區(qū)間、隱含層個(gè)數(shù)、學(xué)習(xí)速率、最小目標(biāo)誤差和最大訓(xùn)練次數(shù);在Matlab環(huán)境中,輸入-隱含層函數(shù)和隱含-輸出層函數(shù)均可選tansig、logsig和purelin,均使用Matlab GUI中的listbox實(shí)現(xiàn);訓(xùn)練算法可選LM反向傳播算法trainlm、擬牛頓反向傳播算法trainbfg、彈性反向傳播算法trainrp和梯度下降反向傳播算法traingd,使用Matlab GUI中的listbox實(shí)現(xiàn);歸一化區(qū)間可選[-1,1]和[0,1],使用Matlab GUI中的radiobutton實(shí)現(xiàn);隱含層個(gè)數(shù)為大于0的整數(shù),使用Matlab GUI中的edit實(shí)現(xiàn);學(xué)習(xí)速率為0到1之間的小數(shù),使用Matlab GUI中的edit實(shí)現(xiàn);最小目標(biāo)誤差為接近于0但大于0的小數(shù),使用Matlab GUI中的edit實(shí)現(xiàn);最大訓(xùn)練次數(shù)為大于0的整數(shù),使用Matlab GUI中的edit實(shí)現(xiàn);建立BP神經(jīng)網(wǎng)絡(luò)光伏發(fā)電功率預(yù)測模型后,使用函數(shù)train()進(jìn)行模型的訓(xùn)練,在訓(xùn)練過程中可以調(diào)節(jié)影響訓(xùn)練效果的輸入-隱含層函數(shù)、隱含-輸出層函數(shù)、訓(xùn)練算法、歸一化區(qū)間、隱含層個(gè)數(shù)、學(xué)習(xí)速率、最小目標(biāo)誤差和最大訓(xùn)練次數(shù),在訓(xùn)練達(dá)到預(yù)期目標(biāo)后,訓(xùn)練結(jié)束,且作為最終預(yù)測模型使用函數(shù)sim()來預(yù)測未來光伏發(fā)電功率。
訓(xùn)練效果綜合評(píng)估單元,用來實(shí)時(shí)反映BP神經(jīng)網(wǎng)絡(luò)的綜合訓(xùn)練效果,為預(yù)測模型的確定提供參考;綜合評(píng)估的參數(shù)有:最大百分誤差、最小百分誤差、平均百分誤差和耗時(shí),使用Matlab GUI中的edit顯示;綜合評(píng)估的圖示有:訓(xùn)練擬合圖、樣本誤差圖和樣本百分誤差圖,使用Matlab GUI中的axes顯示;百分誤差具體采用下式(1):
ei=|Xfi-Xri|/Xri·100% (1)
其中,i表示第i個(gè)樣本,Xfi為第i個(gè)樣本對(duì)應(yīng)的預(yù)測值,Xri為第i個(gè)樣本對(duì)應(yīng)的實(shí)際值;最大百分誤差、最小百分誤差和平均百分誤差分別是所有樣本所對(duì)應(yīng)的百分誤差中的最大值、最小值和平均值;耗時(shí)是指從BP神經(jīng)網(wǎng)絡(luò)光伏發(fā)電功率預(yù)測模型建立之后一次訓(xùn)練開始到本次訓(xùn)練結(jié)束所用的時(shí)間;訓(xùn)練擬合圖顯示訓(xùn)練期間樣本預(yù)測值擬合曲線和所對(duì)應(yīng)的實(shí)際值擬合曲線之間的對(duì)比;樣本誤差圖顯示訓(xùn)練期間樣本預(yù)測值和所對(duì)應(yīng)的實(shí)際值之間的差值,具體為預(yù)測值減去實(shí)際值;樣本百分誤差圖顯示訓(xùn)練期間樣本預(yù)測值和所對(duì)應(yīng)的實(shí)際值之間的百分誤差。
圖2是本發(fā)明的一種基于Matlab的光伏發(fā)電預(yù)測研究系統(tǒng)功能結(jié)構(gòu)圖,數(shù)據(jù)導(dǎo)入和導(dǎo)出單元,包含圖2中“導(dǎo)入訓(xùn)練數(shù)據(jù)”、“導(dǎo)入預(yù)測數(shù)據(jù)”和“導(dǎo)出預(yù)測結(jié)果”;BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練和預(yù)測單元,包含圖2中的“BP神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置”、“模型訓(xùn)練”和“模型預(yù)測”;訓(xùn)練效果綜合評(píng)估單元,包含圖2中的“訓(xùn)練效果綜合評(píng)估”及其“評(píng)估參數(shù)”和“評(píng)估圖示”。
圖3是本發(fā)明的一種基于Matlab的光伏發(fā)電預(yù)測研究系統(tǒng)流程圖,一次完整的光伏發(fā)電預(yù)測研究過程包含以下步驟:1)Matab GUI環(huán)境中打開光伏發(fā)電預(yù)測研究系統(tǒng);2)使用數(shù)據(jù)導(dǎo)入和導(dǎo)出單元導(dǎo)入訓(xùn)練數(shù)據(jù);3)使用BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練和預(yù)測單元進(jìn)行BP神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置,從而建立預(yù)測模型;4)使用BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練和預(yù)測單元進(jìn)行模型訓(xùn)練;5)結(jié)合訓(xùn)練效果綜合評(píng)估單元,分析訓(xùn)練效果;6)從中選擇出訓(xùn)練效果滿意的預(yù)測模型;7)使用數(shù)據(jù)導(dǎo)入和導(dǎo)出單元導(dǎo)入預(yù)測數(shù)據(jù);8)使用BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練和預(yù)測單元進(jìn)行模型預(yù)測;9)使用數(shù)據(jù)導(dǎo)入和導(dǎo)出單元導(dǎo)出預(yù)測結(jié)果;10)光伏發(fā)電預(yù)測研究系統(tǒng)運(yùn)行結(jié)束。
下面以一次具體的預(yù)測研究過程來作為實(shí)施例,對(duì)本發(fā)明的一種基于Matlab的光伏發(fā)電預(yù)測研究系統(tǒng)的主要實(shí)施過程做進(jìn)一步的說明:
本實(shí)施例中,訓(xùn)練數(shù)據(jù)來自光伏電站小型氣象采集系統(tǒng)和光伏電站監(jiān)控系統(tǒng),兩系統(tǒng)每間隔1分鐘采集一次太陽輻射量(W/m2)、溫度(℃)和相應(yīng)的光伏發(fā)電功率(kW)。BP神經(jīng)網(wǎng)絡(luò)光伏發(fā)電功率預(yù)測模型建立太陽輻射量、溫度和相應(yīng)的光伏發(fā)電功率之間的關(guān)系,即太陽輻射量和溫度作為預(yù)測模型的輸入,相應(yīng)的光伏發(fā)電功率作為預(yù)測模型的輸出。具體選擇某一天當(dāng)天11:01到當(dāng)天15:30共270組數(shù)據(jù)作為訓(xùn)練樣本,預(yù)測模型所使用的訓(xùn)練數(shù)據(jù)輸入和輸出曲線圖分別如圖4和圖5所示。預(yù)測模型將對(duì)預(yù)測時(shí)期為當(dāng)天15:31到當(dāng)天15:40內(nèi)的每1分鐘的光伏發(fā)電功率進(jìn)行預(yù)測。
使用數(shù)據(jù)導(dǎo)入和導(dǎo)出單元將太陽輻射量、溫度和相應(yīng)的光伏發(fā)電功率導(dǎo)入到光伏發(fā)電預(yù)測研究系統(tǒng)中。接下來,使用BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練和預(yù)測單元,進(jìn)行BP神經(jīng)網(wǎng)絡(luò)光伏發(fā)電功率預(yù)測模型的建立,需要設(shè)置輸入-隱含層函數(shù)、隱含-輸出層函數(shù)、訓(xùn)練算法、歸一化區(qū)間、隱含層個(gè)數(shù)、學(xué)習(xí)速率、最小目標(biāo)誤差和最大訓(xùn)練次數(shù)。
在Matlab環(huán)境中,輸入-隱含層函數(shù)可選tansig、logsig和purelin,隱含-輸出層函數(shù)也可選tansig、logsig和purelin,訓(xùn)練算法可選LM反向傳播算法trainlm、擬牛頓反向傳播算法trainbfg、彈性反向傳播算法trainrp和梯度下降反向傳播算法traingd,歸一化區(qū)間可選[-1,1]和[0,1],隱含層個(gè)數(shù)為大于0的整數(shù),學(xué)習(xí)速率為0到1之間的小數(shù),最小目標(biāo)誤差為接近于0但大于0的小數(shù),最大訓(xùn)練次數(shù)為大于0的整數(shù)。
tansig、logsig和purelin函數(shù)公式分別如下式(2)-(4)所示:
purelin(x)=f(x)=x (4)
LM反向傳播算法trainlm指Matlab Levenberg-Marquardt backpropagation神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法,其根據(jù)Levenberg-Marquardt optimization來更新神經(jīng)網(wǎng)絡(luò)的權(quán)值和偏置。擬牛頓反向傳播算法trainbfg指Matlab BFGS quasi-Newton backpropagation神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法,其根據(jù)BFGS quasi-Newton method來更新神經(jīng)網(wǎng)絡(luò)的權(quán)值和偏置。彈性反向傳播算法trainrp指Matlab Resilient backpropagation神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法,其根據(jù)resilient backpropagation algorithm來更新神經(jīng)網(wǎng)絡(luò)的權(quán)值和偏置。梯度下降反向傳播算法traingd指Matlab Gradient descent backpropagation神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法,其根據(jù)gradient descent method來更新神經(jīng)網(wǎng)絡(luò)的權(quán)值和偏置。
歸一化區(qū)間[-1,1]和[0,1]使用的公式分別如下式(5)(6)所示:
式(5)(6)中,xi表示第i個(gè)樣本值,xmax和xmin分別表示所有xi中的最大值和最小值,yi表示歸一化后的xi。
隱含層個(gè)數(shù)指隱含層節(jié)點(diǎn)個(gè)數(shù),節(jié)點(diǎn)個(gè)數(shù)需要根據(jù)神經(jīng)網(wǎng)絡(luò)的設(shè)置情況和輸入輸出單元數(shù)來確定,目前還沒有確定的解析式直接算出隱含層節(jié)點(diǎn)個(gè)數(shù),因而需要根據(jù)經(jīng)驗(yàn)和反復(fù)試驗(yàn)來確定。
本實(shí)施例中,預(yù)測研究系統(tǒng)在Matlab GUI環(huán)境中開發(fā)實(shí)現(xiàn),輸入-隱含層函數(shù)和隱含-輸出層函數(shù)均使用listbox實(shí)現(xiàn),訓(xùn)練算法使用listbox實(shí)現(xiàn),歸一化區(qū)間使用radiobutton實(shí)現(xiàn),隱含層個(gè)數(shù)使用edit實(shí)現(xiàn),學(xué)習(xí)速率使用edit實(shí)現(xiàn),最小目標(biāo)誤差使用edit實(shí)現(xiàn),最大訓(xùn)練次數(shù)使用edit實(shí)現(xiàn)。預(yù)測研究系統(tǒng)運(yùn)行時(shí),BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練和預(yù)測單元的建立以及訓(xùn)練過程中的參數(shù)調(diào)整都可以高效便捷地在研究系統(tǒng)內(nèi)進(jìn)行操作,具體為:listbox和radiobutton使用鼠標(biāo)單擊選取,edit使用鍵盤鍵入數(shù)值。BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練和預(yù)測單元最終的參數(shù)設(shè)置如表1所示。
表1
表1所示只是本實(shí)施例用來說明本發(fā)明的預(yù)測研究系統(tǒng)訓(xùn)練和預(yù)測的多種參數(shù)設(shè)置組合情況中的一種,而非對(duì)參數(shù)設(shè)置的限定。輸入-隱含層函數(shù)除logsig之外也可選tansig或purelin,隱含-輸出層函數(shù)除purelin之外也可選tansig或logsig,訓(xùn)練算法除trainlm之外也可選trainbfg、trainrp或traingd,歸一化區(qū)間除[0,1]之外也可選[-1,1]。參數(shù)設(shè)置的最終確定與研究對(duì)象有關(guān),訓(xùn)練和預(yù)測效果的好壞決定了參數(shù)設(shè)置情況,相同研究對(duì)象下取效果最好的參數(shù)設(shè)置組合。
本實(shí)施例中,預(yù)測模型建立和訓(xùn)練后,訓(xùn)練效果綜合評(píng)估單元顯示的訓(xùn)練效果如表2和圖6-8所示。表2中數(shù)字保留4位有效數(shù)字。
表2
分析表2和圖6-8可知,預(yù)測模型訓(xùn)練結(jié)果曲線和實(shí)際曲線具有很高的似合度,訓(xùn)練能夠緊跟實(shí)際發(fā)電功率曲線的變化趨勢,樣本最小百分誤差值接近于0,最大百分誤差為個(gè)位數(shù),平均百分誤差不大于1%,耗時(shí)在數(shù)秒之內(nèi)。此次具有該訓(xùn)練效果的模型可以作為最終的預(yù)測模型來對(duì)預(yù)測時(shí)期的光伏發(fā)電功率進(jìn)行預(yù)測。
接下來使用數(shù)據(jù)導(dǎo)入和導(dǎo)出單元將預(yù)測時(shí)期內(nèi)的太陽輻射量和溫度導(dǎo)入到光伏發(fā)電預(yù)測研究系統(tǒng)中。預(yù)測時(shí)期內(nèi)的太陽輻射量和溫度,即預(yù)測模型所使用的預(yù)測數(shù)據(jù)輸入曲線圖如圖9所示。
將預(yù)測時(shí)期內(nèi)的太陽輻射量和溫度作為輸入向量,輸入到最終的預(yù)測模型中進(jìn)行預(yù)測,預(yù)測結(jié)果如表3所示,表3中數(shù)字保留4位有效數(shù)字。平均百分誤差為4.672%。
表3
圖10是本發(fā)明中的預(yù)測模型預(yù)測擬合圖,顯示預(yù)測時(shí)期內(nèi)預(yù)測值曲線和實(shí)際值曲線擬合情況;圖11是本發(fā)明中的預(yù)測模型預(yù)測樣本誤差圖,顯示預(yù)測時(shí)期內(nèi)預(yù)測值和實(shí)際值之間的差值,具體為預(yù)測值減去實(shí)際值;圖12是本發(fā)明中的預(yù)測模型預(yù)測樣本百分誤差圖,顯示預(yù)測時(shí)期內(nèi)預(yù)測值和實(shí)際值之間的百分誤差。
分析表3、圖10-圖12可知,隨著時(shí)間推移樣本預(yù)測誤差逐漸增大,但預(yù)測百分誤差仍在工程要求的精度內(nèi)(一般為15%)。
還要說明的是,凡在本發(fā)明的思想和原理內(nèi)做的任何輕易想到的修改、改進(jìn)或替換等,均應(yīng)包含在本發(fā)明的保護(hù)范圍內(nèi)。