何建強(qiáng),張玉萍,滕志軍
(1.商洛學(xué)院,陜西 商洛 726000;2.商洛市人工智能研究中心,陜西 商洛 726000;3.北京四方繼保自動(dòng)化股份有限公司,北京 100085;4.東北電力大學(xué) 現(xiàn)代電力系統(tǒng)仿真控制與綠色電能新技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,吉林 吉林 132012)
風(fēng)能作為一種可再利用的、清潔的新型替代能源,能夠優(yōu)化能源結(jié)構(gòu),增強(qiáng)能源供應(yīng)能力,保障能源安全可靠。由于風(fēng)具有隨機(jī)性、間歇性和不可控性,導(dǎo)致風(fēng)電具有間斷性,致使風(fēng)電并網(wǎng)會(huì)增加電力系統(tǒng)運(yùn)行的不穩(wěn)定性,極大地影響電網(wǎng)的供電質(zhì)量。因此,科學(xué)、準(zhǔn)確的預(yù)測(cè)風(fēng)電場(chǎng)的輸出功率能夠平衡大規(guī)模風(fēng)電對(duì)電網(wǎng)的影響,促進(jìn)風(fēng)電健康持續(xù)地發(fā)展。文獻(xiàn)[2]和文獻(xiàn)[3]闡述了由于風(fēng)電的間斷性,致使風(fēng)電功率預(yù)測(cè)大多主要集中于短期預(yù)測(cè)。目前短期預(yù)測(cè)技術(shù)被廣泛研究和應(yīng)用,主要研究方法有物理法、統(tǒng)計(jì)方法、機(jī)器學(xué)習(xí)法和空間相關(guān)性法。文獻(xiàn)[4]對(duì)風(fēng)電功率預(yù)測(cè)的物理方法和統(tǒng)計(jì)方法進(jìn)行了綜述。物理預(yù)測(cè)方法由于受風(fēng)電場(chǎng)所處環(huán)境地形和地貌以及周圍大氣環(huán)境的影響比較大,所以預(yù)測(cè)精度往往相對(duì)低。統(tǒng)計(jì)方法建模相對(duì)簡(jiǎn)單、計(jì)算速度快、預(yù)測(cè)成本低,但是輸入的預(yù)測(cè)參數(shù)單一,不斷地?cái)U(kuò)大預(yù)測(cè)時(shí)間尺度會(huì)降低預(yù)測(cè)精度。文獻(xiàn)[5-7]對(duì)卡爾曼濾波法、時(shí)間序列法、最小二乘法、灰色預(yù)測(cè)法等常用的統(tǒng)計(jì)方法在風(fēng)電功率預(yù)測(cè)中的應(yīng)用進(jìn)行研究,但都存在易陷入局部最優(yōu)的缺點(diǎn)。機(jī)器學(xué)習(xí)方法預(yù)測(cè)精度相對(duì)較高,但預(yù)測(cè)模型比較復(fù)雜,建模相對(duì)困難,而且樣本訓(xùn)練需要大量歷史數(shù)據(jù)的支持,訓(xùn)練速度慢。常用的方法有小波分析法,BP神經(jīng)網(wǎng)絡(luò)法、SVM等方法。文獻(xiàn)[8]提出的人工神經(jīng)網(wǎng)絡(luò)法是風(fēng)電功率短期預(yù)測(cè)當(dāng)中最常用的預(yù)測(cè)方法,具有非線性映射、自學(xué)習(xí)、容錯(cuò)性和泛化能力強(qiáng)等優(yōu)點(diǎn)。但單一的預(yù)測(cè)方法具有不足之處,為克服單一方法預(yù)測(cè)的不足,組合預(yù)測(cè)法成為近年來風(fēng)電功率預(yù)測(cè)研究的熱點(diǎn),它是將一些統(tǒng)計(jì)方法和學(xué)習(xí)方法相結(jié)合,提高預(yù)測(cè)精度。文獻(xiàn)[9-12]提出了空間相關(guān)法,將其作為繼物理模型、統(tǒng)計(jì)學(xué)之后的第3種模型,它是一種通過鄰近風(fēng)電場(chǎng)氣象信息對(duì)目標(biāo)風(fēng)電場(chǎng)進(jìn)行預(yù)測(cè)的方法。文獻(xiàn)[13]結(jié)合空間相關(guān)性的方法,建立了預(yù)測(cè)模型,解決了風(fēng)速突變?cè)斐深A(yù)測(cè)精度低的問題。但由于風(fēng)速時(shí)變性較強(qiáng),預(yù)測(cè)的最大誤差很難控制,有時(shí)預(yù)測(cè)可能完全失效。
為解決單一模型在風(fēng)電功率預(yù)測(cè)中的局限性,本文針對(duì)文獻(xiàn)[14]中提出的KNN算法在短期風(fēng)電功率預(yù)測(cè)中的不足,提出了基于K-means和改進(jìn)KNN算法的風(fēng)電功率預(yù)測(cè),該算法針對(duì)大量的歷史樣本集和預(yù)測(cè)樣本集,建模簡(jiǎn)單,運(yùn)算速度快,預(yù)測(cè)準(zhǔn)確率高。以吉林省某風(fēng)電場(chǎng)365天的實(shí)際數(shù)據(jù)為樣本,對(duì)本文預(yù)測(cè)方法的優(yōu)越性進(jìn)行了分析驗(yàn)證。
K
個(gè)樣本相似或最鄰近,而且這K
個(gè)最鄰近的樣本大多數(shù)是同一個(gè)類別,那么此樣本也被標(biāo)記為該類別。重點(diǎn)強(qiáng)調(diào)的是特征空間中的每個(gè)樣本必須已被正確分類。KNN算法在本質(zhì)上采用的是投票分類決策機(jī)制,通過最鄰近樣本的類別決策待分類樣本的類別,決策前需要遍歷整個(gè)樣本空間,決策時(shí)只依靠最近鄰的少數(shù)樣本。KNN算法的優(yōu)點(diǎn)是適合類域交叉或者大量重疊的待分類樣本集。本文利用樣本回歸特性對(duì)樣本進(jìn)行功率預(yù)測(cè),即對(duì)于一個(gè)預(yù)測(cè)樣本,首先獲取樣本的K
個(gè)最鄰近已分類樣本,然后計(jì)算其屬性的平均值,將該平均值作為預(yù)測(cè)樣本的屬性值。K
值進(jìn)行預(yù)測(cè)時(shí),每個(gè)樣本對(duì)應(yīng)每個(gè)不同的K
值都要遍歷一次特征空間,那么隨著特征空間的擴(kuò)大,就會(huì)成倍的增加運(yùn)算量,也就會(huì)成倍的降低運(yùn)算速度。同時(shí)在分類過程中,如果特征空間樣本類別不平衡時(shí),一部分樣本容量較大,另一部分樣本容量較小,隨著K
值的逐漸增大,選取樣本的誤判率就會(huì)增大,針對(duì)這一情況本文對(duì)KNN算法進(jìn)行了改進(jìn)。改進(jìn)策略是:同一個(gè)預(yù)測(cè)樣本,在同一個(gè)特征空間中,針對(duì)不同的K
值,只需要遍歷一次整體樣本空間。首先提取預(yù)測(cè)樣本的最大K
值,此時(shí)遍歷整體樣本空間,提取K
個(gè)最相似的樣本,重點(diǎn)是要對(duì)選取的K
個(gè)樣本按相似程度的從高到低進(jìn)行排列,并且將這K
個(gè)相似樣本保存到相似隊(duì)列中。這樣如果預(yù)測(cè)樣本想提取K
-1個(gè)相似樣本的話,就不需要再遍歷整體特征空間了,只需要從相似隊(duì)列中提取前K
-1個(gè)樣本即可。這種改進(jìn)策略是通過增加存儲(chǔ)空間來加快預(yù)算速度。因?yàn)閷?duì)于現(xiàn)在的計(jì)算機(jī)來說,存儲(chǔ)空間越來越大。假設(shè)一個(gè)風(fēng)電場(chǎng)有100臺(tái)風(fēng)機(jī),每分鐘記錄一項(xiàng)風(fēng)機(jī)的運(yùn)行狀態(tài),運(yùn)行狀態(tài)中包括20個(gè)屬性,那么10年的記錄也只有38.5 G。所以存儲(chǔ)空間不是風(fēng)電功率預(yù)測(cè)的壓力。因此,利用存儲(chǔ)空間換取高效的預(yù)測(cè)空間是值得的。改進(jìn)的KNN算法包括兩個(gè)過程,第一個(gè)過程是計(jì)算預(yù)測(cè)樣本選取最多近鄰樣本時(shí)對(duì)應(yīng)的K
值,同時(shí)對(duì)獲取的相似樣本集合從高到低按照相似程度排序,并存至優(yōu)先級(jí)隊(duì)列中;第二個(gè)過程是當(dāng)K
值減小時(shí),從已存儲(chǔ)的優(yōu)先級(jí)隊(duì)列中直接獲取相似樣本集,根據(jù)相似距離決定相似權(quán)重,從而用訓(xùn)練樣本的加權(quán)功率值來計(jì)算預(yù)測(cè)樣本的功率值。獲取最長優(yōu)先級(jí)隊(duì)列的核心步驟如下。第一步:確定最近鄰樣本個(gè)數(shù)最多時(shí)對(duì)應(yīng)的K
值,給出已知類別的訓(xùn)練樣本集(或者叫做特征空間)D
;第二步:設(shè)每一個(gè)預(yù)測(cè)樣本為z
=(x
′,y
′),開始執(zhí)行for循環(huán)forz
=(x
′,y
′);第三步:計(jì)算z
與每個(gè)訓(xùn)練樣本(x
,y
)∈D
間的相似距離d
(x
′,x
′);第四步:選擇與預(yù)測(cè)樣本z
最相似的K
個(gè)訓(xùn)練樣本D
?D
,同時(shí)記錄這K
個(gè)樣本與z
的相似距離;第五步:按照與z
相似程度對(duì)D
從高到低排序,將結(jié)果存至優(yōu)先級(jí)隊(duì)列PriorityQueue中;第六步:end for;//結(jié)束for循環(huán),并保存好本次預(yù)測(cè)的優(yōu)先級(jí)隊(duì)列。
本文通過相似歷史數(shù)據(jù)建立模型,實(shí)現(xiàn)風(fēng)電功率的預(yù)測(cè)。將風(fēng)向、風(fēng)速和風(fēng)機(jī)變槳角度這3個(gè)參數(shù)作為輸入?yún)?shù),選取不受時(shí)間序列影響而且樣本集合的相似度比較高的數(shù)據(jù)作為樣本數(shù)據(jù)。在輸入?yún)?shù)后會(huì)自動(dòng)尋找與之相似的樣本數(shù)據(jù)集合,并匹配對(duì)應(yīng)的風(fēng)電功率數(shù)據(jù),以此來對(duì)未來的輸出功率進(jìn)行推算,預(yù)測(cè)模型框架如圖1所示。最后,通過吉林省某風(fēng)電場(chǎng)實(shí)際數(shù)據(jù)來對(duì)預(yù)測(cè)模型的有效性和預(yù)測(cè)準(zhǔn)確度進(jìn)行檢驗(yàn)。
圖1 預(yù)測(cè)模型框架圖
由于本文所提改進(jìn)的KNN算法通過相似歷史數(shù)據(jù)進(jìn)行預(yù)測(cè)時(shí)采用的數(shù)據(jù)分類方法與K-means聚類算法思想一致,因此在對(duì)歷史樣本進(jìn)行分類時(shí)采用K-means算法,該方法在增加選中相似樣本概率的同時(shí),也保障了預(yù)測(cè)的準(zhǔn)確性。該算法進(jìn)行歷史樣本分類的過程如下。
Input:N
//為區(qū)別改進(jìn)KNN中的K
,此處用N
表示劃分子類的個(gè)數(shù);{Y
}//
歷史樣本集,其中包含j
個(gè)對(duì)象。Outout:N
個(gè)子類。具體執(zhí)行流程如下。
第一步:從歷史樣本集{Y
}中隨機(jī)選擇N
個(gè)樣本作為初始分類的中心。第二步:比較新讀取樣本對(duì)象和各個(gè)類中對(duì)象的均值,然后將其分配至最相似的類中。
第三步:對(duì)每個(gè)類的中心進(jìn)行更新,重新對(duì)每個(gè)類中對(duì)象的均值進(jìn)行計(jì)算。
第四步:until每個(gè)類的中心不再變化結(jié)束。
其中:{Y
}表示歷史樣本集合,其中每個(gè)樣本均包含風(fēng)向、風(fēng)速和風(fēng)機(jī)變槳角度3個(gè)維度;N
為將要?jiǎng)澐肿宇惖膫€(gè)數(shù)。以吉林省某風(fēng)電場(chǎng)2019年2月的歷史數(shù)據(jù)為例,每隔一分鐘記錄一次風(fēng)電機(jī)組的運(yùn)行狀態(tài),一共29天,每臺(tái)機(jī)組的歷史樣本數(shù)量為41 760條。以其中某一臺(tái)的風(fēng)機(jī)的歷史樣本記錄為例,利用Clementine軟件中的K-means聚類模型得出的聚類結(jié)果如2圖所示。
圖2 某臺(tái)風(fēng)機(jī)的歷史數(shù)據(jù)聚類結(jié)果
n
(k
)提高為n
(k
)。改進(jìn)KNN的算法流程如圖3所示。圖3 改進(jìn)KNN算法流程
算法的具體執(zhí)行過程如下:
1)初始化預(yù)測(cè)樣本X
和K
值的集合。2)獲取最大K
值,賦于K
,K
僅搜索K
對(duì)應(yīng)的相似歷史樣本集合。3)選取相似度計(jì)算公式。
本文在計(jì)算預(yù)測(cè)樣本和歷史樣本的相似度時(shí),選用適用于數(shù)值型數(shù)據(jù)的歐氏距離和曼哈頓距離計(jì)算公式,分別如公式(1)和公式(2)所示。
(1)
(2)
式中,X
和Y
分別表示第i
個(gè)預(yù)測(cè)樣本和第j
個(gè)歷史樣本。風(fēng)向、風(fēng)速和風(fēng)機(jī)變槳角度為每個(gè)樣本3個(gè)維度,z
為維數(shù)。4)獲取最大優(yōu)先級(jí)隊(duì)列PQ(X
,K
)。在歷史樣本中隨機(jī)選取K
個(gè)樣本,按相似距離大排序,生成優(yōu)先級(jí)隊(duì)列PQ(X
,K
)。遍歷歷史樣本集,并計(jì)算其與預(yù)測(cè)樣本的相似距離。若相似距離比PQ(X
,K
)中最后一個(gè)樣本的相似距離大,則繼續(xù)遍歷下一個(gè)歷史樣本,否則移除PQ(X
,K
)中最后元素,將當(dāng)前遍歷樣本值放入PQ(X
,K
)尾部,并按照相似程度重新自動(dòng)排序,遍歷完所有歷史樣本,得到最終PQ(X
,K
)。5)其余K
值,從最終PQ(X
,K
)中提取對(duì)應(yīng)的相似樣本優(yōu)先級(jí)子隊(duì)列。如K
=K
時(shí),提取PQ(X
,K
)中前m
個(gè)歷史樣本,作為K
的PQ(X
,K
)。6)計(jì)算PQ(X
,K
)中多數(shù)類別所有樣本輸出功率的平均值,將其作為預(yù)測(cè)樣本X
的預(yù)測(cè)值。計(jì)算公式如公式(3)所示:(3)
式中,powerpr
(X
,K
)表示預(yù)測(cè)樣本X
選取K
個(gè)相似樣本的功率值;表示樣本類別是C
的第j
個(gè)相似歷史樣本,z
表示類型編號(hào)。AVG()為計(jì)算多數(shù)類樣本功率的加權(quán)平均值。7)計(jì)算所有K
值下X
對(duì)應(yīng)的預(yù)測(cè)值,結(jié)束預(yù)測(cè)。最終功率預(yù)測(cè)值對(duì)應(yīng)K
值選取時(shí),要根據(jù)不同風(fēng)機(jī)運(yùn)轉(zhuǎn)情況通過實(shí)驗(yàn)數(shù)據(jù)來進(jìn)行確定最佳K
值。圖4 風(fēng)電功率預(yù)測(cè)系統(tǒng)架構(gòu)圖
圖5 系統(tǒng)整體功能模塊
本文采用C/S架構(gòu)設(shè)計(jì)風(fēng)電功率預(yù)測(cè)系統(tǒng),將預(yù)測(cè)模型轉(zhuǎn)換為計(jì)算機(jī)可以完成的功能,保障風(fēng)電功率預(yù)測(cè)的高效性、穩(wěn)定性和安全性。風(fēng)電功率預(yù)測(cè)系統(tǒng)整體架構(gòu)分為3層,依次為基礎(chǔ)數(shù)據(jù)層、功能服務(wù)層和用戶層。每一層之間是相互獨(dú)立且具有一定的聯(lián)系,風(fēng)電功率預(yù)測(cè)系統(tǒng)架構(gòu)圖如圖4所示。
4.1.1 基礎(chǔ)數(shù)據(jù)層
基礎(chǔ)數(shù)據(jù)層又包括3部分。第一部分是風(fēng)電實(shí)時(shí)數(shù)據(jù)的采集與整理;第二部分是數(shù)據(jù)存儲(chǔ),將整理完畢的實(shí)時(shí)數(shù)據(jù),存儲(chǔ)于數(shù)據(jù)庫中,可以永久性的使用,并定期維護(hù);第三部分建立數(shù)據(jù)訪問接口。
4.1.2 功能服務(wù)層
功能服務(wù)層主要是指風(fēng)電功率預(yù)測(cè)系統(tǒng)需要完成的功能應(yīng)用。本系統(tǒng)的應(yīng)用服務(wù)主要有基礎(chǔ)數(shù)據(jù)更新模塊、實(shí)時(shí)數(shù)據(jù)展現(xiàn)模塊、風(fēng)電數(shù)據(jù)清洗模塊、風(fēng)電功率預(yù)測(cè)模塊、預(yù)測(cè)誤差分析模塊、用戶管理模塊、系統(tǒng)設(shè)置模塊、輔助模塊等。
4.1.3 用戶層
用戶層是與用戶直接相關(guān)的部分。用戶層是用戶與系統(tǒng)進(jìn)行交互的終端。用戶可以輸入相關(guān)數(shù)據(jù)或者點(diǎn)擊相關(guān)操作,實(shí)現(xiàn)需要的功能。
采用java語言實(shí)現(xiàn)風(fēng)電功率預(yù)測(cè)系統(tǒng)的整體功能,選用關(guān)系型數(shù)據(jù)庫MySQL作為數(shù)據(jù)庫管理系統(tǒng)。系統(tǒng)主要包括用戶管理模塊、核心模塊和系統(tǒng)設(shè)置模塊。系統(tǒng)整體功能模塊圖如圖5所示。
用戶管理模塊主要包括用戶注冊(cè)模塊、用戶登錄模塊、信息修改模塊等。用戶注冊(cè)模塊主要是新用戶在使用系統(tǒng)前進(jìn)行用戶注冊(cè)。為了確定用戶賬號(hào)的安全性,系統(tǒng)引入MD5加密技術(shù),對(duì)用戶的密碼以及密碼修改提示答案采用密文的形式存儲(chǔ)。這樣可以防止非法用戶的入侵,保障系統(tǒng)的安全性。用戶登錄模塊是任何一個(gè)軟件系統(tǒng)的基礎(chǔ)模塊。該系統(tǒng)的用戶登錄模塊需要用戶通過多方面的認(rèn)證合格,才可以進(jìn)入系統(tǒng)。主要包括權(quán)限認(rèn)證、崗位認(rèn)證、用戶名、密碼、驗(yàn)證碼等合法驗(yàn)證。
用戶修改模塊主要方便用戶對(duì)自身基本信息的更新。
系統(tǒng)設(shè)置模塊包括系統(tǒng)用戶權(quán)限管理、系統(tǒng)數(shù)據(jù)備份、系統(tǒng)數(shù)據(jù)還原。用戶權(quán)限管理模塊主要是根據(jù)風(fēng)電功率預(yù)測(cè)系統(tǒng)中用戶的崗位類別、職稱類別等判定用戶的角色,并按照一定的安全策略為每種角色設(shè)置相應(yīng)的權(quán)限。每個(gè)用戶只可以訪問自身權(quán)限范圍內(nèi)的內(nèi)容。本系統(tǒng)的權(quán)限設(shè)置管理主要包括功能級(jí)權(quán)限管理和數(shù)據(jù)級(jí)權(quán)限管理。數(shù)據(jù)備份模塊是系統(tǒng)容災(zāi)方案的一種。本系統(tǒng)考慮到電力系統(tǒng)屬于專用網(wǎng)、風(fēng)電數(shù)據(jù)的存儲(chǔ)量大、不易恢復(fù)等特性,采用數(shù)據(jù)庫備份方案。數(shù)據(jù)庫備份即在備份機(jī)上創(chuàng)建數(shù)據(jù)庫的拷貝版本,定期更新備份。系統(tǒng)數(shù)據(jù)恢復(fù)模塊是指將丟失的或者異常數(shù)據(jù)恢復(fù)到正常的狀態(tài)。本系統(tǒng)主要應(yīng)用版本恢復(fù)將系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)恢復(fù)到前一個(gè)備份版本,使數(shù)據(jù)恢復(fù)正常。
核心模塊的主要功能為風(fēng)電實(shí)時(shí)數(shù)據(jù)存儲(chǔ)、實(shí)時(shí)數(shù)據(jù)查詢、實(shí)時(shí)數(shù)據(jù)處理、風(fēng)電訓(xùn)練樣本分類、風(fēng)電功率預(yù)測(cè)、誤差分析和歷史預(yù)測(cè)結(jié)果查詢。該模塊的UML活動(dòng)圖如圖6所示。
圖6 風(fēng)電功率預(yù)測(cè)系統(tǒng)UML活動(dòng)圖
風(fēng)電實(shí)時(shí)數(shù)據(jù)存儲(chǔ)模塊主要用于獲取風(fēng)電場(chǎng)的實(shí)時(shí)數(shù)據(jù)。通過I/O讀取程序,獲取已經(jīng)存儲(chǔ)于記事本的風(fēng)電功率實(shí)時(shí)采集數(shù)據(jù)。按照每一行為一個(gè)記錄的方式,將獲取的數(shù)據(jù)存入已經(jīng)創(chuàng)建好的MySQL數(shù)據(jù)庫,作為風(fēng)電功率預(yù)測(cè)的數(shù)據(jù)源。
風(fēng)電實(shí)時(shí)數(shù)據(jù)顯示模塊主要協(xié)助用戶根據(jù)自己的意愿選擇要瀏覽的風(fēng)電數(shù)據(jù)。用戶可以按照時(shí)間段模式進(jìn)行預(yù)覽。風(fēng)電實(shí)時(shí)數(shù)據(jù)處理模塊主要是清洗那些由于采集、傳輸和記錄過程中導(dǎo)致的異常數(shù)據(jù)、缺省數(shù)據(jù)或者記錄不完整的數(shù)據(jù)。利用相鄰時(shí)間點(diǎn)數(shù)據(jù)的加權(quán)平均值修補(bǔ)缺省值和更正不完善的數(shù)據(jù)。
風(fēng)電訓(xùn)練樣本分類模塊是由于預(yù)測(cè)模型需要輸入具有確定類別的風(fēng)電訓(xùn)練樣本。該模塊主要是將K-means聚類算法用java語言實(shí)現(xiàn)。
風(fēng)電功率預(yù)測(cè)模塊是系統(tǒng)的核心模塊。該模塊同樣也是利用java語言實(shí)現(xiàn)預(yù)測(cè)算法的過程。該模塊留有輸入、輸出兩個(gè)接口。輸入接口主要是輸入訓(xùn)練樣本和預(yù)測(cè)樣本。輸出接口就是輸出風(fēng)電功率的預(yù)測(cè)結(jié)果。
歷史預(yù)測(cè)結(jié)果查詢模塊可以查詢預(yù)測(cè)完畢的結(jié)果。一般用戶可以通過預(yù)測(cè)時(shí)間段查詢預(yù)測(cè)結(jié)果,也可以根據(jù)預(yù)測(cè)誤差率或者準(zhǔn)確率來查詢預(yù)測(cè)結(jié)果。
K
值的集合為[1,100],分別利用曼哈頓距離和歐氏距離尋找相似樣本。不同K
值下兩種距離計(jì)算方法的預(yù)測(cè)結(jié)果對(duì)比如7和圖8所示。圖7 不同K值下曼哈頓距離計(jì)算方法的預(yù)測(cè)結(jié)果
圖8 不同K值下歐氏距離計(jì)算方法的預(yù)測(cè)結(jié)果
由圖7和圖8可以看出,當(dāng)K
=48時(shí),曼哈頓距離計(jì)算方法預(yù)測(cè)結(jié)果最好,平均絕對(duì)誤差最低。當(dāng)K
=50時(shí),歐氏距離計(jì)算方法預(yù)測(cè)結(jié)果較好,預(yù)測(cè)誤差也遠(yuǎn)低于國家規(guī)定范圍。預(yù)測(cè)功率與實(shí)際功率值的對(duì)比結(jié)果分別如圖9和圖10所示。從圖7和圖8的預(yù)測(cè)誤差率中可以看出,預(yù)測(cè)誤差隨著K
值的增加逐漸降低,增加到一定值后,隨著K
值的增加又逐漸升高。其與K
值的變化關(guān)系如圖11所示。通過大量的實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)K
值在45~55時(shí),預(yù)測(cè)準(zhǔn)確率最高。圖9 K=48時(shí)未來24小時(shí)功率預(yù)測(cè)值與實(shí)際值對(duì)比
圖10 K=50時(shí)未來24小時(shí)功率預(yù)測(cè)值與實(shí)際值對(duì)比
圖11 預(yù)測(cè)誤差與K值的關(guān)系
本文將預(yù)測(cè)結(jié)果和文獻(xiàn)[17-18]中的預(yù)測(cè)結(jié)果按照誤差分析方法進(jìn)行了對(duì)比,預(yù)測(cè)誤差對(duì)比結(jié)果如表1所示。從對(duì)比結(jié)果中可以看出采用本文的方法,平均絕對(duì)誤差和均方根誤差預(yù)測(cè)誤差率分別最大下降1.08和0.48個(gè)百分點(diǎn)。在相同的條件下,本文的方法在預(yù)測(cè)時(shí)間最大提高了5.45個(gè)百分點(diǎn)??梢?,本文的預(yù)測(cè)方法提高了預(yù)測(cè)準(zhǔn)確度。
表1 預(yù)測(cè)誤差對(duì)比
改進(jìn)的KNN預(yù)測(cè)模型在預(yù)測(cè)過程中不斷地剔除訓(xùn)練樣本中異常的或者影響預(yù)測(cè)準(zhǔn)確度的樣本,從而修正預(yù)測(cè)模型,使得預(yù)測(cè)模型的預(yù)測(cè)準(zhǔn)確率不斷自動(dòng)地提升。因此,實(shí)驗(yàn)數(shù)據(jù)表明在對(duì)20臺(tái)風(fēng)機(jī)功率的預(yù)測(cè)中,誤差率越來越低,每臺(tái)風(fēng)機(jī)的平均誤差都小于15%,滿足目前風(fēng)電功率預(yù)測(cè)系統(tǒng)的要求。
K
值,仍是下一步需要重點(diǎn)研究的內(nèi)容。