?目錄
?
1?主要內(nèi)容
基于密度聚類的數(shù)據(jù)預(yù)處理:
場(chǎng)景提取:
算法流程:
2?部分程序
3?程序結(jié)果
4 下載鏈接
1?主要內(nèi)容
該程序復(fù)現(xiàn)文章《氫能支撐的風(fēng)-燃?xì)怦詈系吞嘉⒕W(wǎng)容量?jī)?yōu)化配置研究》第三章內(nèi)容,實(shí)現(xiàn)的是基于DBSCAN密度聚類的風(fēng)電-負(fù)荷場(chǎng)景生成與削減模型,首先,采集風(fēng)電、電負(fù)荷歷史數(shù)據(jù)。然后,通過(guò)采用?DBSCAN 密度聚類的數(shù)據(jù)預(yù)處理消除異?;蛐「怕孰娯?fù)荷、風(fēng)電數(shù)據(jù)。之后,針對(duì)風(fēng)電波動(dòng)性與電負(fù)荷時(shí)序性、周期性特點(diǎn),將場(chǎng)景提取分為電負(fù)荷場(chǎng)景提取和風(fēng)電場(chǎng)景提取。該方法較傳統(tǒng)聚類和場(chǎng)景削減方法有更好的數(shù)據(jù)預(yù)處理過(guò)程,這樣就能消除異常數(shù)據(jù),得到更準(zhǔn)確的聚類結(jié)果。
基于密度聚類的數(shù)據(jù)預(yù)處理:
DBSCAN是基于一組鄰域來(lái)描述樣本集的緊密程度的算法。DBSCAN需要二個(gè)參 數(shù)值,掃描半徑(E)和最小包含點(diǎn)數(shù)(MinPts),用來(lái)描述鄰域的樣本分布緊密程度。其中,E描述了某一樣本的鄰域距離閾值,給定對(duì)象以E為半徑的區(qū)域被稱為該對(duì)象的 E鄰域。MinPts描述了某一樣本的距離為E的鄰域中樣本個(gè)數(shù)的閾值。如果給定對(duì)象E 鄰域內(nèi)的樣本點(diǎn)數(shù)大于等于MinPts,則稱該對(duì)象為核心對(duì)象。不屬于核心對(duì)象及核心對(duì) 象E鄰域內(nèi)的點(diǎn)為噪聲點(diǎn)。
場(chǎng)景提?。?/h3>
1.負(fù)荷采用改進(jìn)有序聚類方法進(jìn)行提取。
以天為單位的電負(fù)荷場(chǎng)景在時(shí)間上存在連續(xù)性,而連續(xù)的電負(fù)荷場(chǎng)景從向量的角度 分析又具有相似性,直到出現(xiàn)某一個(gè)突變點(diǎn),電負(fù)荷數(shù)據(jù)大小會(huì)發(fā)生大幅度變化,然后 電負(fù)荷數(shù)據(jù)變化又會(huì)開始穩(wěn)定。電負(fù)荷數(shù)據(jù)的這種周期性波動(dòng)與變化適 合通過(guò)有序聚類進(jìn)行分類。
2.風(fēng)電采用K-means聚類方法進(jìn)行提取。
算法流程:
2?部分程序
clc clear all %% 導(dǎo)入數(shù)據(jù) X=xlsread('風(fēng)電'); x0=X; y=xlsread('負(fù)荷數(shù)據(jù)'); figure; subplot(2,1,1); plot(X);xlabel('時(shí)間/h');ylabel('標(biāo)幺值');title('全年風(fēng)電數(shù)據(jù)');axis([1 8761 0 1]) subplot(2,1,2);hold on plot(y);xlabel('時(shí)間/h');ylabel('功率/KW');title('全年負(fù)荷用電數(shù)據(jù)');axis([1 8761 400 1100]); %% 變量設(shè)定 k = 3; Eps = 2; data = [X,y];Ti=1:8761; %% 準(zhǔn)備變量,輸出原始結(jié)果 [m,n] = size(data); data=[(1:m)',data]; %%增加一列表示序號(hào) n = n + 1; %%增加后列數(shù)+1 type = zeros(1,m); cluster_No = 1; visited = zeros(m,1); class = zeros(1,m)-2; ? figure(2); subplot(2,1,1); plot3(Ti,data(:,2),data(:,3),'.');axis([1,10000,0,1,0,2000]); xlabel('時(shí)間/h');ylabel('標(biāo)幺值');zlabel('功率/KW');%%繪制時(shí)間-風(fēng)電-負(fù)荷的三維圖 grid on %daspect([1 1 1]); %xlabel('x');ylabel('y'); title('原始輸入點(diǎn)'); hold on; %% 運(yùn)行DBSCAN算法 Kdtree = KDTreeSearcher(data(:,2:3)); %%使用訓(xùn)練數(shù)據(jù)(data)的m×n數(shù)字矩陣來(lái)生長(zhǎng)默認(rèn)的Kd樹(Mdl) for i = 1:m % 抽取一個(gè)未訪問(wèn)點(diǎn) if visited(i)==0 % 標(biāo)為訪問(wèn) visited(i) = 1; point_now = data(i,:); Idx_range = rangesearch(Kdtree, point_now(2:3), Eps); %%使用rangesearch進(jìn)行半徑搜索來(lái)搜索存儲(chǔ)的樹以找到查詢數(shù)據(jù)的所有相鄰點(diǎn) index = Idx_range{1}; if length(index) > k class(i) = cluster_No; while index if visited(index(1)) == 0 visited(index(1)) = 1; %% 標(biāo)為訪問(wèn) if class(index(1)) <= 0 class(index(1)) = cluster_No; end point_now = data(index(1),:); Idx_range = rangesearch(Kdtree, point_now(2:3), Eps); index_temp = Idx_range{1}; index(1) = []; if length(index_temp) > k index = [index, index_temp]; end else index(1) = []; end end cluster_No = cluster_No + 1; end end end %% DBSCAN聚類結(jié)果
3?程序結(jié)果
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-453252.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-453252.html
到了這里,關(guān)于基于DBSCAN密度聚類的風(fēng)電-負(fù)荷場(chǎng)景削減方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!