配电网重构知识及matlab实现(2)
?
上一篇配電網重構文章解決了如何利用基本環方法實現配電網重構,解決了智能算法求解配電網重構的斷開線路組合難題,大大提高了重構運算效率,但是對于環網檢測和孤島判斷并沒有深入分析,這篇文章主要通過配電網分層方法、環島檢測和孤島判斷進一步深入分析。
一、分層方法和孤島、環網檢測
首先根據支路參數矩陣很方便求取節點關聯矩陣,假設配電網節點數量為N,那么該節點關聯矩陣維度為N*N,定義該節點中元素值:
通過節點關聯矩陣,很容易復原一個配電網絡的拓撲結構,在這里可以采用兩個矩陣來分層確定網絡狀態,設節點分層矩陣為LN,上層節點矩陣為UN。
分層矩陣LN就是按照從平衡節點到末梢節點的順序逐步確定配電網絡層次結構,UN矩陣為1*N的矩陣,是每個節點上層節點信息。
具體詳細實例可以參見文章《分布式電源優化配置與配電網重構》(關萬琳),同時實例更能清楚掌握配電網分層步驟和理論方法。
將一個配電網絡從初始節點至末梢節點逐步分層后,就得到了每個節點對應的上層節點,也就是上層節點矩陣UN。
當上層節點矩陣UN除平衡節點外,其余節點對應的上層節點均不為0,一般來說,UN矩陣除第一個元素為0外,其余元素均不為0就說明沒有形成孤島,只要有一個元素為0就說明網絡是存在孤島的,這就是孤島檢測方法。
以33節點為例,假設利用基本環方法得到的配網系統斷開線路變量Swarm=[4,12,9,7,26](這個變量之前被留言私信詢問多次),則得到網絡節點關聯矩陣為:
上層節點矩陣為:
?因為UN矩陣中第567列元素為0,所以可以得到該網絡存在孤島,也就是存在不可行解,在智能算法計算中可以通過罰函數的形式避免此類問題出現。
結合上一篇所講,環網檢測方法即通過判定斷開開關不存在重復線路,也就是每個環網斷開不同的開關,配電網就不存在環網。
二、不可行解判斷步驟
?三、matlab程序實例
%該為智能算法程序計算子函數,加入不可行解判斷程序(在指定節點處加入DG) b=32; k=1; n=33; LL=5; %聯絡開關數 z Sb=10; %MW Vb=12.66; %KV Zb=Vb^2/Sb; %ohm check=1; checkhl=1; checkgd=1; H=[ 2 3 4 5 6 7 33 20 19 18 0 0 0 0 0 0 0 0 0 0 09 10 11 12 13 14 34 0 0 0 0 0 0 0 0 0 0 0 0 0 02 3 4 5 6 7 8 9 10 11 35 21 20 19 18 0 0 0 0 0 06 7 8 9 10 11 12 13 14 15 16 17 36 32 31 30 29 28 27 26 253 4 5 25 26 27 28 37 24 23 22 0 0 0 0 0 0 0 0 0 0];%由函數matrixH生成for i1=1:LLa(1,i1)=H(i1,Swarm1(1,i1));end % NodeM(:,2)=NodeM(:,2)+SDG; %1、判斷是否形成環路,F為支路環路關聯矩陣(行表示回路,列表示斷開開關,若任意兩行相同,則表示形成了環路) F=zeros(5); for i1=1:LL %回路for i2=1:LL %斷開開關if max(a(1,i2)==H(i1,:))F(i1,i2)=1;endend end for i1=1:LL-1for i2=i1+1:LLif min(F(:,i1)==F(:,i2))checkhl=0; %disp('出現環路')%出現環路時guan=10000;endend end for i1=1:LL %按照斷開開關矩陣,剔除Z矩陣中的斷開支路j=i1-1;for i2=1:b+LL-jif BranchM(i2,1)==a(1,i1)BranchM(i2,:)=[];breakendend end NodeN=zeros(n); %節點-節點關聯矩陣A for i1=1:bNodeN(BranchM(i1,2),BranchM(i1,3))=1;NodeN(BranchM(i1,3),BranchM(i1,2))=1; endLayerM=[1]; %節點分層矩陣,電源節點號記“1” NU=zeros(1,n); %上層節點矩陣(有33列的行矩陣)while(checkhl==1)%以下用循環求取矩陣LayerM和NUwhile(checkgd==1)h=1; while(min(NU(2:33)~=0)==0) %NU矩陣的2-最后都有上層節點了,表示循環結束了 m=max(find(LayerM(:,h))); %m為矩陣LayerM第h列非零元素的個數k=1; for i1=1:m g=LayerM(i1,h); %LayerM的第i1行第h列元素ss=find(NodeN(g,:)==1);for i2=1:length(ss)if LayerM~=ss(1,i2) %排除相同節點LayerM(k,h+1)=ss(1,i2);NU(1,ss(1,i2))=g;k=k+1; %k表示第h層含有的節點數endend end h=h+1; %h表示網絡分層的層數 if length(LayerM(1,:))==h-1 %如果網絡分層矩陣沒有搜索到下層節點,說明形成了斷點,后邊網絡形成了孤島,與電源節點沒有連通回路checkgd=0; %disp('形成孤島')guan=10000;check=0;break %結束循環end end if min(NU(2:33)~=0) %若解可行,已經計算完LayerM,則讓其跳出最外層while循環checkgd=0;%disp('可行解')end endwhile(check==1) BranchM(:,4)=BranchM(:,4)/Zb; %阻抗標幺化 NodeM(:,2)=NodeM(:,2)/Sb; %功率標幺化 %下面進行分層前推回代法潮流計算 V=ones(n,1); %節點電壓 J=zeros(n,1); %支路電流 k=1; %記錄迭代次數 V0=zeros(n,1); t=0; while(max(abs(V-V0))>1e-3) %判斷收斂性(收斂精度設為1e-6) V0=V; %記錄上一次迭代的電壓值 %1、回代求支路電流矩陣J I=conj(NodeM(:,2)./V); %節點注入電流 for i1=h:-1:2ss=find(LayerM(:,i1)~=0);for i2=1:length(ss)if min(LayerM(i2,i1)==NU)J(LayerM(i2,i1))=I(LayerM(i2,i1));elsesumJ=0;gx=find(NU==LayerM(i2,i1)); %求得節點LayerM(i2,i1)的下層節點矩陣(大小不定)for i3=1:length(gx)sumJ=sumJ+J(gx(1,i3));endJ(LayerM(i2,i1))=I(LayerM(i2,i1))+sumJ;endend end %2、前推求節點電壓矩陣V Z=zeros(n,1); %支路阻抗 for i1=2:hss=find(LayerM(:,i1)~=0);for i2=1:length(ss)m1=NU(1,LayerM(i2,i1)); %首節點 n1=LayerM(i2,i1); %尾節點for i3=1:b %從BranchM中搜尋得到各支路阻抗矩陣if (BranchM(i3,2)==m1&&BranchM(i3,3)==n1)||(BranchM(i3,2)==n1&&BranchM(i3,3)==m1)Z(n1,1)=BranchM(i3,4);endendV(n1,1)=V(m1,1)-Z(n1,1)*J(n1,1);end end k=k+1; %迭代次數k if k>20guan=10000;break end end %% Vby=abs(V); V=V*Vb; %反標幺 Vm=abs(V); %節點電壓幅值 %———————————————————————————————— %節點電壓上下限約束(排除a=[7 9 2 12 3];這種狀況) %if min(Vm)<Vb*0.9||min(Vm)>Vb%guan=10000; %end %———————————————————————————————— Va=angle(V); %節點電壓弧度 %下面計算有功網損fploss Sloss=zeros(n,1); Z=zeros(n,1); %支路阻抗for i1=2:h %!!!此for循環程序段是為了搜尋網絡各支路的首末節點與支路阻抗,應對網絡拓撲變化,造成的潮流流向變化ss=find(LayerM(:,i1)~=0);for i2=1:length(ss)m1=NU(1,LayerM(i2,i1)); %首節點 n1=LayerM(i2,i1); %尾節點for i3=1:b %從BranchM中搜尋得到各支路阻抗矩陣if (BranchM(i3,2)==m1&&BranchM(i3,3)==n1)||(BranchM(i3,2)==n1&&BranchM(i3,3)==m1)Z(n1,1)=BranchM(i3,4);endendSloss(n1)=(abs(V(m1)-V(n1)))^2/conj(Z(n1,1)*Zb)*1000; %各支路的功率損耗(單位為kW)end end Ploss=real(Sloss); %有功損耗 Qloss=imag(Sloss); %無功損耗 fPloss=sum(Ploss); %系統的總有功損耗 guan=fPloss; check=0; end checkhl=0;end if k>20guan=10000; end?(因篇幅所限,部分參數未展出,即為IEEE33網絡節點和支路參數)
完整粒子群算法的重構程序代碼鏈接:
考慮分布式電源的配電網重構優化程序matlab_基于分布式電源的配電網重構優化程序-Matlab文檔類資源-CSDN下載配網重構中,很重要的一個約束條件為配網應隨時保持開環、輻射的狀態:配電網系統是屬于閉環設計但是開環基于分布式電源的配電網重構優化程序更多下載資源、學習資料請訪問CSDN下載頻道.https://download.csdn.net/download/zhangxd212489/73526211
總結
以上是生活随笔為你收集整理的配电网重构知识及matlab实现(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 收藏备用 | 提高效率的建筑工地技巧
- 下一篇: 解决adb连接不上模拟器