李小坤,劉光宇,俞瑋捷,俞武嘉
(杭州電子科技大學 自動化學院,浙江 杭州 310000)
近幾年,光伏發(fā)電受到中國和歐洲國家歡迎[1]。光伏系統(tǒng),尤其是直流側“光伏陣列”,必須在惡劣的室外條件下運行,導致功率不穩(wěn)定,降低效率和盈利能力[2,3]。然而,對于一個現(xiàn)場太陽能發(fā)電廠來說,很難辨別正在進行的是哪種運行模式,因此,需要對光伏系統(tǒng)在不同工況下的性能進行觀察和分析。
光伏系統(tǒng)故障診斷方法主要分為兩類:傳統(tǒng)的閾值方法和基于機器學習的方法[2]。傳統(tǒng)的閾值方法通過分析電流和電壓[4]等電氣指標來實現(xiàn)[5],但是成本很高。近幾年,人工智能中的一些方法被廣泛應用于故障診斷領域,如神經(jīng)網(wǎng)絡用于估計變工況下的功率輸出[6]和識別故障類型,屬于監(jiān)督學習方法,需要在測量變量和實際工作條件的映射上精確標注。事實上,監(jiān)督學習對太陽能行業(yè)來說并不是很有用,不僅因為標記不同工作條件的成本很高,而且太陽能系統(tǒng)太復雜無法正確標記。
本文假設太陽能系統(tǒng)的時間序列電流和電壓可以通過時間序列聚類方法得到一些統(tǒng)計聚類,這些聚類具有一定的物理意義。為了支持這一假設,首先使用DTW[7]算法對太陽能電站產(chǎn)生的時間序列數(shù)據(jù)進行處理,然后使用DBSCAN算法對處理后數(shù)據(jù)的相似性進行聚類[8~10]。最后,通過數(shù)據(jù)分析發(fā)現(xiàn)集群的物理含義。研究結果有助于在光伏發(fā)電系統(tǒng)在工作條件不明確的情況下采用智能技術進行監(jiān)測、預測和故障診斷。
定義時間序列為X(t)∈m,并且X(t)={x1(t),x2(t),…,xm(t)}是關于獨立變量t的有序實數(shù)值數(shù)據(jù)序列。時間序列聚類是為所有變量在相同的時間間隔內提供一定的相似性度量,將時間序列X(t)劃分為一組聚類C={C1,C2,…,Ck}。在這里并且i≠j。
在光伏領域,光強以外的高維時間序列數(shù)據(jù)如何聚類,時間序列聚類是否具有明確的物理意義,目前還沒有研究。假設當使用適當?shù)木垲惙椒〞r,太陽能發(fā)電系統(tǒng)在未知工作條件下會產(chǎn)生不同的電流和電壓的時間序列序集。在接下來的研究中,研究了太陽能系統(tǒng)的時間序列聚類,然后發(fā)現(xiàn)了時間序列數(shù)據(jù)的任何實質性的物理含義。
DBSCAN是基于密度的聚類算法的先驅,是科學文獻中最重要、最流行的聚類算法之一。該算法能夠發(fā)現(xiàn)非凸形狀的類簇。DBSCAN只有兩個參數(shù):ε(Eps)和MinPts,其中ε是掃描半徑,MinPts是一個點的鄰域內所包含的最少點的個數(shù)。
DBSCAN算法中概念的定義:1)點p的ε鄰域:Nε(p)表示樣本集中與p的距離不大于ε的樣本,即Nε(p)={q|q∈D,dp,q≤ε},其中,dp,q是點p與點q之間的歐幾里得距離。2)核心點:如果|Nε(p)|≥MinPts,則p為核心點。3)密度直達:如果q∈Nε(p),p是一個核心點,則稱q由p密度直達。4)邊界點:如果q是由核心點p密度直達,并且|Nε(q)| DBSCAN算法的核心思想是以核心對象為中心的小稠密區(qū)域構成一個大稠密區(qū)域。首先,數(shù)據(jù)集D中的所有對象都被標記“unvisted”。DBSCAN隨機選取一個未訪問的點p,標記p為“visted”,如果點p的ε鄰域中至少有MinPts個對象,則創(chuàng)建一個p作為核心對象的新簇C。然后,DBSCAN反復地尋找這個核心對象密度可達的對象添加到新簇C中。當沒有新的點可以被添加到新簇C中時,這一過程結束。重復以上過程直到不存在“unvisted”對象,則DBSCAN產(chǎn)生的簇集合為C={C1,C2,…,Cn}。DBSCAN算法的偽代碼如下: 輸入:樣本集D和鄰域參數(shù)(ε,MinPts) 輸出:基于密度的簇的集合C={C1,C2,…,Cn} 方法: 1)標記所有對象為unvisited; 2)do; 3)隨機選擇一個unvisited對象p; 4)標記p為visited; 5)ifp的ε鄰域至少有MinPts個對象; 6)創(chuàng)建一個新簇C,并把p添加到C; 7)令N為p的ε鄰域中對象的集合; 8)forN中每一個點q; 9)ifq是unvisited 10)標記q為visited; 11)ifq的ε鄰域至少有MinPts個點,將這些點添加到N; 12)ifq還不是任何簇的成員,將q添加到C; 13)end for; 14)輸出C; 15)else 標記p為噪聲; 16)until沒有標記為unvisited的對象。 提出了一種時序DBSCAN方法,作為DTW和DBSCAN的結合處理時間序列X(t)的聚類方法。首先,使用動態(tài)時間扭曲作為相似性度量方法提取X(t)的特征。然后,將DBSCAN方法應用與這些特征生成X(t)的時間序列簇。換句話說,由于DTW算法,DBSCAN方法將用于新的時間序列XDTW(t)劃分為K個簇,每個簇由時間序列X(t)的特定分區(qū)組成。 本文設計并搭建了一個小型光伏電站,表1列出了光伏電站4種工作條件。兩個光伏組件之間的電線連接斷開,模擬開路故障。光伏陣列由一塊布遮擋,模擬樹木或建筑物的遮陽效果。類似地,部分遮陽被用于模擬光伏組件的樹葉或沉積物堵塞。 表1 實驗中的條件 從光伏電站中選擇8個屬性從早上8點到下午1點采集實驗數(shù)據(jù),8個屬性分別為光伏陣列的總輸出電壓Vpv,光伏陣列的總輸出電流Ipv,逆變器電壓Vinv,逆變器電Iinv,負載電壓Vload,負載電流Iload,環(huán)境溫度T和輻照度G。 時間序列變量X(t)∈1 791×8從室外實驗中獲得,圖1展示了未知工況下的原始數(shù)據(jù)。 圖1 未知工作條件下太陽能系統(tǒng)的原始數(shù)據(jù) 分別采用DBSCAN算法和時序DBSCAN方法對原始數(shù)據(jù)進行聚類,后者具有一個輔助步驟,以動態(tài)時間翹曲的方式處理時間序列,而普通DBSCAN算法不考慮獨立的時間變量。 在實驗中,聚類任務不知道原始數(shù)據(jù)中隱含了多少工作條件,因此,必須確定最佳聚類個數(shù)K。如果存在一個特定的K,使得DB最小,則K是最佳聚類個數(shù)。DBSCAN有兩個參數(shù),調整參數(shù)可以得到不同的聚類結果。設定算法的閾值MinPts=9,時序DBSCAN的Eps范圍為0~0.2,DBSCAN的Eps范圍為0~4。聚類結果如圖2所示。 圖2 K值的確定 觀察圖2可以發(fā)現(xiàn),時序DBSCAN算法在K=3時DB最小,K=3是最佳聚類個數(shù)。而DBSCAN算法在K=4時DB最小,K=4是最佳聚類個數(shù)。 此時再用外部指標來確定最優(yōu)聚類個數(shù)。從表2和表3中可以發(fā)現(xiàn)K=3時相對較優(yōu),而且時序DBSCAN算法比DBSCAN算法在辨別噪聲方面明顯更好。 表2 時序DBSCAN聚類結果 表3 DBSCAN聚類結果 不可否認,實驗中未知的工作條件是為了測試所提出的聚類思想而故意設計的。但是,在聚類過程中沒有使用任何與原始數(shù)據(jù)相關聯(lián)的標簽,所以這些簇完全是由數(shù)學公式推導出來的。在后續(xù)中,撤銷這些“未知”條件的先驗知識,發(fā)現(xiàn)實際物理現(xiàn)象和簇之間的一些自然聯(lián)系。 表4和表5是聚類算法簇與人工標記簇之間的比較結果。無論K為多少,開路故障C2與整體遮陽C3和局部遮陽C4都幾乎完全分離,因此,可以通過選擇不同的K準確地識別出電氣故障。然而,無論K為多少,整體遮擋和局部遮擋都不能夠清晰地分辨出,且往往會把整體遮陽和局部遮陽分為同一類。而隨著K的增加,會把正常條件C1分裂為多個簇,可能是環(huán)境變化的屬性欺騙了聚類算法。 表4 以百分比表示的基于時序DBSCAN方法聚類的物理含義 表5 以百分比表示的DBSCAN方法聚類的物理含義 綜上所述,開路故障更容易與其他條件分離,正常條件是最容易混淆的條件,而局部遮陽和整體遮陽分為一類,可能是因為基本的物理原理是開路故障是一種電氣故障,而其他條件都會受到太陽輻射變化的影響。 建成的太陽能電站能夠在正常工作、局部遮陽、整體遮陽、開路故障等不同的運行條件下工作,采集室外實驗中的時間序列電流和電壓數(shù)據(jù)進行聚類。實驗結果表明:未知的工作條件與電壓和電流的聚類有物理聯(lián)系,而太陽能發(fā)電系統(tǒng)的未知工作條件是否與電流和電壓的時間序列簇相關,從而使每個簇具有明確的物理含義,這是一個有待解決的問題。2.2 時序DBSCAN方法
3 實 驗
4 實驗結果與分析
4.1 原始數(shù)據(jù)
4.2 聚類結果
4.3 聚類的物理含義
5 結 論