【有序充電】基于粒子群算法實現(xiàn)IEEE33環(huán)境下的多充電站電動汽車群有序充電優(yōu)化附Mat
?作者簡介:熱愛科研的Matlab仿真開發(fā)者,修心和技術(shù)同步精進,
代碼獲取、論文復現(xiàn)及科研仿真合作可私信。
??個人主頁:Matlab科研工作室
??個人信條:格物致知。
更多Matlab完整代碼及仿真定制內(nèi)容點擊??
智能優(yōu)化算法?? ? ??神經(jīng)網(wǎng)絡預測?? ? ??雷達通信?? ? ?無線傳感器?? ? ? ?電力系統(tǒng)
信號處理?? ? ? ? ? ? ?圖像處理?? ? ? ? ? ? ??路徑規(guī)劃?? ? ??元胞自動機?? ? ? ?無人機
?? 內(nèi)容介紹
隨著電動汽車的普及,如何高效地進行充電成為了一個亟待解決的問題。在多充電站的情況下,如何實現(xiàn)電動汽車的有序充電,提高充電效率,降低充電成本,成為了一個重要的研究方向。本文將介紹基于粒子群算法實現(xiàn)IEEE33環(huán)境下的多充電站電動汽車群有序充電優(yōu)化算法流程。
1.問題描述
考慮在IEEE33環(huán)境下,有多個充電站和多輛電動汽車。每個充電站都有一定數(shù)量的充電樁,每個充電樁的充電速度不同。每輛電動汽車都有一個充電需求,需要在規(guī)定時間內(nèi)完成充電。同時,每個充電站的電力供應有限,需要在保證充電效率的前提下,合理分配電力資源。因此,需要設(shè)計一個有序充電方案,使得每輛電動汽車都能在規(guī)定時間內(nèi)完成充電,同時最大化充電效率,最小化充電成本。
2.粒子群算法
粒子群算法是一種群體智能算法,模擬鳥群或魚群等生物的集體行為,通過模擬群體的協(xié)作和競爭,尋找最優(yōu)解。粒子群算法的基本思想是將每個解看作一個粒子,通過不斷迭代,逐步接近最優(yōu)解。粒子群算法具有收斂速度快、易于實現(xiàn)等特點,適用于解決復雜的優(yōu)化問題。
3.算法流程
(1)初始化粒子群,包括每輛電動汽車的充電需求、每個充電站的充電樁數(shù)量和充電速度等信息。
(2)計算每個充電站的電力供應情況,并根據(jù)充電樁的充電速度和電動汽車的充電需求,確定每輛電動汽車的充電站和充電樁。
(3)根據(jù)每個充電站的電力供應情況,計算每輛電動汽車的充電時間和充電成本。
(4)根據(jù)充電時間和充電成本,更新每個粒子的適應度。
(5)根據(jù)粒子的適應度,更新粒子的速度和位置。
(6)重復步驟(2)-(5),直到達到預設(shè)迭代次數(shù)或達到最優(yōu)解。
4.實驗結(jié)果
通過對IEEE33環(huán)境下的多充電站電動汽車群有序充電優(yōu)化算法進行實驗,得到了如下結(jié)果:
(1)在充電效率和充電成本方面,粒子群算法優(yōu)于其他算法。
(2)隨著粒子數(shù)的增加,算法的收斂速度更快,但計算時間也會增加。
(3)在充電樁數(shù)量和充電速度等參數(shù)的變化下,算法的性能表現(xiàn)穩(wěn)定。
5.總結(jié)
本文介紹了基于粒子群算法實現(xiàn)IEEE33環(huán)境下的多充電站電動汽車群有序充電優(yōu)化算法流程。該算法具有收斂速度快、易于實現(xiàn)等特點,在充電效率和充電成本方面優(yōu)于其他算法。未來可以進一步優(yōu)化算法,提高算法的性能表現(xiàn)。
?? 部分代碼
%相關(guān)原始數(shù)據(jù)格式說明如下:
%n——節(jié)點個數(shù);n1——支路條數(shù);isb——平衡節(jié)點號;H——PQ節(jié)點個數(shù)(為后面形成PVU存儲PV節(jié)點初始電壓用);pr——誤差精度。
%B1——支路參數(shù)矩陣,其中第一列和第二列是起始節(jié)點編號和終點節(jié)點編號,第三列、第四列、第五列、第六列分別為:支路電阻、電抗、變壓器變比、電納。(不考慮電導)
%B2——節(jié)點參數(shù)矩陣,其中第一列和第二列為節(jié)點編號和節(jié)點類型;第三列到第六列分別為:注入有功、注入無功、電壓幅值、電壓相位。
%節(jié)點類型分類如下:“0”為平衡節(jié)點,“1”為PQ,“2”為PV節(jié)點;“3”為PQ(V)節(jié)點,“4”為PI節(jié)點。
function ?[Ploss ,V_amp]=powerflow(car_1,car_2,car_3,P_flex)
n=33 ; ? ? ?
n=33 ; ? ? ?
n1=32;
isb=1;
H=32; ? ? ? ? ? ? ? ?%%%%%%%%%%%%%18節(jié)點加DG ? ?PQV處理
pr=0.01;
v_amp=0;
B1=[1 2 0.00922 0.0047i 1 0;
? ?2 3 0.00493 0.02511i 1 0;
? ?3 4 0.0366 0.01864i 1 0;
? ?4 5 0.03811 0.01941i 1 0;
? ?5 6 0.0819 0.0707i 1 0;
? ?6 7 0.01872 0.06188i 1 0;
? ?7 8 0.07114 0.02351i 1 0;
? ?8 9 0.103 0.074i 1 0;
? ?9 10 0.1044 0.074i 1 0;
? ?10 11 0.01966 0.0065i 1 0;
? ?11 12 0.03744 0.01238i 1 0;
? ?12 13 0.1468 0.1155i 1 0;
? ?13 14 0.05416 0.07129i 1 0;
? ?14 15 0.05910 0.0526i 1 0;
? ?15 16 0.07463 0.05450i 1 0;
? ?16 17 0.1289 0.1721i 1 0;
? ?17 18 0.0732 0.0574i 1 0;
? ?2 19 0.0164 0.01565i 1 0;
? ?19 20 0.15042 0.13554i 1 0;
? ?20 21 0.04095 0.04784i 1 0;
? ?21 22 0.07089 0.09373i 1 0;
? ?3 23 0.04512 0.03083i 1 0;
? ?23 24 0.08980 0.07091i 1 0;
? ?24 25 0.08960 0.07011i 1 0;
? ?6 26 0.0203 0.01034i 1 0;
? ?26 27 0.02842 0.01447i 1 0;
? ?27 28 0.1059 0.09337i 1 0;
? ?28 29 0.08042 0.07006i 1 0;
? ?29 30 0.05075 0.02585i 1 0;
? ?30 31 0.09744 0.0963i 1 0;
? ?31 32 0.03105 0.03619i 1 0;
? ?32 33 0.03410 0.05302i 1 0];
B2=[1 0 0 0 1.05 0;
? ?2 1 -0.01 -0.006 1 0;
? ?3 1 -0.009 -0.004 1 0;
? ?4 1 -0.012 -0.008 1 0;
? ?5 1 -0.006 -0.003 1 0;
? ?6 1 -0.006 -0.002 1 0;
? ?7 1 -0.02 -0.01 1 0;
? ?8 1 -0.02 -0.01 1 0;
? ?9 1 -0.006 -0.002 1 0;
? ?10 1 -0.006 -0.0035 1 0;
? ?11 1 -0.0045 -0.003 1 0;
? ?12 1 -0.006 -0.0035 1 0;
? ?13 1 -0.006 -0.0035 1 0;
? ?14 1 -0.012 -0.008 1 0;
? ?15 1 -0.006 -0.001 1 0;
? ?16 1 -0.006 -0.002 1 0;
? ?17 1 -0.006 -0.002 1 0;
? ?18 1 -0.009 -0.004 1 0;
? ?19 1 -0.009 -0.004 1 0;
? ?20 1 -0.009 -0.004 1 0;
? ?21 1 -0.009 -0.004 1 0;
? ?22 1 -0.009 -0.004 1 0;
? ?23 1 -0.009 -0.005 1 0;
? ?24 1 -0.042 -0.02 1 0;
? ?25 1 -0.042 -0.02 1 0;
? ?26 1 -0.006 -0.0025 1 0;
? ?27 1 -0.006 -0.0025 1 0;
? ?28 1 -0.006 -0.002 1 0;
? ?29 1 -0.012 -0.007 1 0;
? ?30 1 -0.02 -0.06 1 0;
? ?31 1 -0.015 -0.007 1 0;
? ?32 1 -0.021 -0.01 1 0;
? ?33 1 -0.006 -0.004 1 0];
for i=1:33
? ?B2(i,3)= ?B2(i,3)*P_flex; %負荷時變系數(shù)
? ?B2(i,4)= ?B2(i,4)*P_flex;
end
global position
B2(position(1),3)=B2(position(1),3)-car_1/10000; ?%電動汽車接入
B2(position(1),4)=B2(position(1),4)-0.484*car_1/10000; ?%功率因素為0.9
B2(position(2),3)=B2(position(2),3)-car_2/10000; ?%電動汽車接入
B2(position(2),4)=B2(position(2),4)-0.484*car_2/10000; ?%功率因素為0.9
B2(position(3),3)=B2(position(3),3)-car_3/10000; ?%電動汽車接入
B2(position(3),4)=B2(position(3),4)-0.484*car_3/10000; ?%功率因素為0.9
Y=zeros(n); ? ? ? ? ? ? ? %zeros就是生成一個全0的矩陣
Times=1; ? ? ? ? ? ? ? ? ?%置迭代次數(shù)為初始值
for i=1:n1
? ? ? ?p=B1(i,1);
? ? ? ?q=B1(i,2);
? ? ? ?Y(p,q)=Y(p,q)-1/((B1(i,3)+B1(i,4))*B1(i,5));
? ? ? ?Y(q,p)=Y(p,q);
? ? ? ?Y(p,p)=Y(p,p)+1/(B1(i,3)+B1(i,4))+0.5*B1(i,6);%
? ? ? ?Y(q,q)=Y(q,q)+1/((B1(i,3)+B1(i,4))*B1(i,5)^2)+0.5*B1(i,6);%高壓側(cè)阻抗乘以變比平方 ?輸入時注意低壓側(cè)在前
end
%disp('節(jié)點導納矩陣:') ;
Y;
G=real(Y);
B=imag(Y);
OrgS=zeros(2*n-2,1);
DetaS=zeros(2*n-2,1); ? %將OrgS、DetaS初始化
%創(chuàng)建OrgS,用于存儲初始功率參數(shù)
Q=0;
PQV=0;
x=1.655; ? ? ? ? %%%x1=6.7,x2=9.85,x=x1+x2;其中x1為定子漏抗,x2為轉(zhuǎn)子漏抗
xp=18.8; ? ? ? ? %%%xc=,xm=,xp=xc*xm/(xc-xm);其中xc為機端并聯(lián)電容器電抗,xm為激磁電抗
h=0;
for i=1:n ? ?%對PQ(V)節(jié)點的處理
? ?h=h+1;
? ?if i~=isb&&B2(i,2)==3 ?
? ? ? ? Q(i)=-(B2(i,5))^2/xp+(-(B2(i,5))^2+sqrt((B2(i,5))^4-4*(B2(i,3))^2*x^2))/2*x;
? ? ? ? B2(i,4)=Q(i);
? ? ? ? B2(i,2)=1;
? ? ? ? PQV=h;
? ?end ?
end
? ? ? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ig=0.01;
Q=0;
PI=0;
h=0;
for i=1:n ? ?%對PI節(jié)點的處理
? ?h=h+1;
? ?if i~=isb&&B2(i,2)==4 ?
? ? ? ? Q(i)=sqrt(Ig^2*((B2(i,5))^2)-B(i,3)^2); ? ? ? ?%e=B2(i,5),f=0,e^2+f^2=B2(i,5))^2,其中e和f為光伏發(fā)電系統(tǒng)接入節(jié)點電壓的實部和虛部
? ? ? ? B2(i,4)=Q(i);
? ? ? ? B2(i,2)=1;
? ? ? ? PI=h;
? ?end ?
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
h=0;
j=0;
for i=1:n ? ? ? ? ? ?%對PQ節(jié)點的處理
? ?if i~=isb&&B2(i,2)==1 ?
? ? ? ?h=h+1;
? ? ? ?for j=1:n
? ? ? ? ? ?OrgS(2*h-1,1)=OrgS(2*h-1,1)+B2(i,5)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))+B2(i,6)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5)); ? %Pi 書P57頁11-45
? ? ? ? ? ?OrgS(2*h,1)=OrgS(2*h,1)+B2(i,6)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))-B2(i,5)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5)); ? ? ? %Qi ?同上
? ? ? ?end
? ?end
end
for i=1:n ? ? ? ? ? %對PV節(jié)點的處理
? ?if i~=isb&&B2(i,2)==2
? ? ? ?h=h+1;
? ? ? ?for j=1:n
? ? ? ? ? ?OrgS(2*h-1,1)=OrgS(2*h-1,1)+ B2(i,5)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))+B2(i,6)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5)); %同上
? ? ? ? ? ?OrgS(2*h,1)=OrgS(2*h,1)+ B2(i,6)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))-B2(i,5)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5)); ? ?%同上
? ? ? ?end
? ?end
end
OrgS;
%創(chuàng)建PVU 用于存儲PV節(jié)點的初始電壓
PVU=zeros(n-H-1,2);
t=0;
for i=1:n
? ?if B2(i,2)==2
? ? ? ?t=t+1;
? ? ? ?PVU(t,1)=B2(i,5);
? ? ? ?PVU(t,2)=B2(i,6);
? ?end
end
%disp('PV節(jié)點初始值:電壓、相位ei、fi:') ? ;
PVU;
%創(chuàng)建DetaS,用于存儲有功功率、無功功率和電壓幅值的不平衡量 書p58 11-46和11-47
h=0;
for i=1:n ? ? ? ? ? %對PQ節(jié)點的處理
? ?if i~=isb&&B2(i,2)==1
? ? ? ?h=h+1;
? ? ? ?DetaS(2*h-1,1)=B2(i,3)-OrgS(2*h-1,1);
? ? ? ?DetaS(2*h,1)=B2(i,4)-OrgS(2*h,1);
? ?end
end
t=0;
for i=1:n ? ? ? ? ? %對PV節(jié)點的處理
? ?if i~=isb&&B2(i,2)==2
? ? ? ?h=h+1;
? ? ? ?t=t+1;
? ? ? ?DetaS(2*h-1,1)=B2(i,3)-OrgS(2*h-1,1);
? ? ? ?DetaS(2*h,1)=PVU(t,1)^2+PVU(t,2)^2-B2(i,5)^2-B2(i,6)^2;
? ?end
end
%disp('P、Q、V不平衡量:') ?;
DetaS;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%創(chuàng)建I,用于存儲節(jié)點電流參數(shù)(計算雅克比矩陣用 具體見紙板公式推導)
I=zeros(n-1,1);
h=0;
for i=1:n
? if i~=isb
? ? ? ?h=h+1;
? ? ? ?I(h,1)=(OrgS(2*h-1,1)-OrgS(2*h,1)*sqrt(-1))/conj(B2(i,5)+B2(i,6)*sqrt(-1)); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ?end ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
end
I;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%創(chuàng)建Jacbi(雅可比矩陣) ? ? 各元素是書中各元素求法乘個-1 所以△W=J△V
Jacbi=zeros(2*n-2);
h=0;
k=0;
for i=1:n ? ? ? %對PQ節(jié)點的處理
? ?if B2(i,2)==1
? ? ? ?h=h+1;
? ? ? ?for j=1:n
? ? ? ? ? ?if j~=isb
? ? ? ? ? ? ? ?k=k+1;
? ? ? ? ? ? ? ?if i==j ? ? %對角元素的處理
? ? ? ? ? ? ? ? ? ?Jacbi(2*h-1,2*k-1)=-B(i,j)*B2(i,5)+G(i,j)*B2(i,6)+imag(I(h,1)); ? ? ?
? ? ? ? ? ? ? ? ? ?Jacbi(2*h-1,2*k)=G(i,j)*B2(i,5)+B(i,j)*B2(i,6)+real(I(h,1));
? ? ? ? ? ? ? ? ? ?Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k)+2*real(I(h,1));
? ? ? ? ? ? ? ? ? ?Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1)-2*imag(I(h,1));
? ? ? ? ? ? ? ?else ? ? ? ?%非對角元素的處理
? ? ? ? ? ? ? ? ? ?Jacbi(2*h-1,2*k-1)=-B(i,j)*B2(i,5)+G(i,j)*B2(i,6);
? ? ? ? ? ? ? ? ? ?Jacbi(2*h-1,2*k)=G(i,j)*B2(i,5)+B(i,j)*B2(i,6);
? ? ? ? ? ? ? ? ? ?Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k);
? ? ? ? ? ? ? ? ? ?Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1);
? ? ? ? ? ? ? ?end
? ? ? ? ? ? ? ?if k==(n-1) %將用于內(nèi)循環(huán)的指針置于初始值,以確保雅可比矩陣換行
? ? ? ? ? ? ? ? ? ?k=0;
? ? ? ? ? ? ? ?end
? ? ? ? ? ?end
? ? ? ?end
? ?end
end
k=0;
for i=1:n ? ? ? %對PV節(jié)點的處理
? ?if B2(i,2)==2
? ? ? ?h=h+1;
? ? ? ?for j=1:n
? ? ? ? ? ?if j~=isb
? ? ? ? ? ? ? ?k=k+1;
? ? ? ? ? ? ? ?if i==j ? ? %對角元素的處理
? ? ? ? ? ? ? ? ? ?Jacbi(2*h-1,2*k-1)= -B(i,j)*B2(i,5)+G(i,j)*B2(i,6)+imag(I(h,1));
? ? ? ? ? ? ? ? ? ?Jacbi(2*h-1,2*k)= G(i,j)*B2(i,5)+B(i,j)*B2(i,6)+real(I(h,1));
? ? ? ? ? ? ? ? ? ?Jacbi(2*h,2*k-1)=2*B2(i,6);
? ? ? ? ? ? ? ? ? ?Jacbi(2*h,2*k)=2*B2(i,5);
? ? ? ? ? ? ? ?else ? ? ? ?%非對角元素的處理
? ? ? ? ? ? ? ? ? ?Jacbi(2*h-1,2*k-1)= -B(i,j)*B2(i,5)+G(i,j)*B2(i,6);
? ? ? ? ? ? ? ? ? ?Jacbi(2*h-1,2*k)= G(i,j)*B2(i,5)+B(i,j)*B2(i,6);
? ? ? ? ? ? ? ? ? ?Jacbi(2*h,2*k-1)=0;
? ? ? ? ? ? ? ? ? ?Jacbi(2*h,2*k)=0;
? ? ? ? ? ? ? ?end
? ? ? ? ? ? ? ?if k==(n-1) ? ? %將用于內(nèi)循環(huán)的指針置于初始值,以確保雅可比矩陣換行
? ? ? ? ? ? ? ? ? ?k=0;
? ? ? ? ? ? ? ?end
? ? ? ? ? ?end
? ? ? ?end
? ?end
end
%disp('雅克比矩陣為:') ?;
Jacbi; %列參數(shù)跟書上的相反 ? 這里面第一列是對電壓相位的偏導 第二列是對幅值的偏導
%求解修正方程,獲取節(jié)點電壓的不平衡量
DetaU=zeros(2*n-2,1);
DetaU=Jacbi\DetaS; ? ? ?
%disp('求解修正方程得:') ?;
DetaU;
%修正節(jié)點電壓
j=0;
for i=1:n ? ? ? %對PQ節(jié)點處理
? ?if B2(i,2)==1
? ? ? ?j=j+1;
? ? ? ?B2(i,5)=B2(i,5)+DetaU(2*j,1);
? ? ? ?B2(i,6)=B2(i,6)+DetaU(2*j-1,1);
? ?end
end
for i=1:n ? ? ? %對PV節(jié)點的處理
? ?if B2(i,2)==2
? ? ? ?j=j+1;
? ? ? B2(i,5)=B2(i,5)+DetaU(2*j,1);
? ? ? B2(i,6)=B2(i,6)+DetaU(2*j-1,1);
? ?end
end
for i=1:n ? ? ? ? ? ?%對PQ(V)節(jié)點的處理
? ?if i==PQV
? ? ? B2(i,2)=3;
? ?end
end
for i=1:n ? ? ? ? ? ?%對PI節(jié)點的處理
? ?if i==PI
? ? ? B2(i,2)=4;
? ?end
end
%disp('修正后的B2陣:') ?;
B2;
%開始循環(huán)**********************************************************************
while max(abs(DetaU))>pr%先取絕對值在找出最大值來與誤差精度比較
for i=1:n ? ? ? ? ? ?%對PQ(V)節(jié)點的處理
? ?if i~=isb&&B2(i,2)==3 ?
? ? ? ? Q(i)=-(B2(i,5))^2/xp+(-(B2(i,5))^2+sqrt((B2(i,5))^4-4*(B2(i,3))^2*x^2))/2*x;
? ? ? ? B2(i,4)=Q(i);
? ?end
? ?if B2(i,2)==3
? ? ? B2(i,2)=1;
? ?end
end
for i=1:n ? ?%對PI節(jié)點的處理
? ?if i~=isb&&B2(i,2)==4 ?
? ? ? ? Q(i)=sqrt(Ig^2*((B2(i,5))^2)-B(i,3)^2); ? ? ?
? ? ? ? ?B2(i,4)=Q(i);
? ?end
? ?if B2(i,2)==4
? ? ? B2(i,2)=1;
? ?end
end
OrgS=zeros(2*n-2,1); ? ? ? ?
h=0;
j=0;
for i=1:n ? ? ? ? ? ?%對PQ節(jié)點的處理
? ?if i~=isb&&B2(i,2)==1 ?
? ? ? ?h=h+1;
? ? ? ?for j=1:n
? ? ? ? ? ?OrgS(2*h-1,1)=OrgS(2*h-1,1)+B2(i,5)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))+B2(i,6)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5)); ? ? ? ? %Pi
? ? ? ? ? ?OrgS(2*h,1)=OrgS(2*h,1)+B2(i,6)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))-B2(i,5)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5)); ? ? ? ? ? ?%Qi
? ? ? ?end
? ?end
end
for i=1:n ? ? ? ? ? %對PV節(jié)點的處理
? ?if i~=isb&&B2(i,2)==2
? ? ? ?h=h+1;
? ? ? ?for j=1:n
? ? ? ? ? ?OrgS(2*h-1,1)=OrgS(2*h-1,1)+ B2(i,5)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))+B2(i,6)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5));
? ? ? ? ? ?OrgS(2*h,1)=OrgS(2*h,1)+ B2(i,6)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))-B2(i,5)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5));
? ? ? ?end
? ?end
end
%disp('修正后的迭代計算PQ、PV節(jié)點參數(shù):') ;
OrgS;
%創(chuàng)建DetaS
h=0;
for i=1:n ? ? ? ? ? %對PQ節(jié)點的處理
? ?if i~=isb&&B2(i,2)==1
? ? ? ?h=h+1;
? ? ? ?DetaS(2*h-1,1)=B2(i,3)-OrgS(2*h-1,1);
? ? ? ?DetaS(2*h,1)=B2(i,4)-OrgS(2*h,1);
? ?end
end
t=0;
for i=1:n ? ? ? ? ? %對PV節(jié)點的處理
? ?if i~=isb&&B2(i,2)==2
? ? ? ?h=h+1;
? ? ? ?t=t+1;
? ? ? ?DetaS(2*h-1,1)=B2(i,3)-OrgS(2*h-1,1);
? ? ? ?DetaS(2*h,1)=PVU(t,1)^2+PVU(t,2)^2-B2(i,5)^2-B2(i,6)^2;
? ?end
end
%disp('修正后的迭代計算PQ、PV節(jié)點不平衡量:') ;
DetaS;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%創(chuàng)建I
I=zeros(n-1,1);
h=0;
for i=1:n
? ?if i~=isb
? ? ? ?h=h+1;
? ? ? ?I(h,1)=(OrgS(2*h-1,1)-OrgS(2*h,1)*sqrt(-1))/conj(B2(i,5)+B2(i,6)*sqrt(-1)); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ?end ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
end
I;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%創(chuàng)建Jacbi
Jacbi=zeros(2*n-2);
h=0;
k=0;
for i=1:n ? ? ? %對PQ節(jié)點的處理
? ?if B2(i,2)==1
? ? ? ?h=h+1;
? ? ? ?for j=1:n
? ? ? ? ? ?if j~=isb
? ? ? ? ? ? ? ?k=k+1;
? ? ? ? ? ? ? ?if i==j ? ? %對角元素的處理
? ? ? ? ? ? ? ? ? ?Jacbi(2*h-1,2*k-1)=-B(i,j)*B2(i,5)+G(i,j)*B2(i,6)+imag(I(h,1)); ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?Jacbi(2*h-1,2*k)=G(i,j)*B2(i,5)+B(i,j)*B2(i,6)+real(I(h,1));
? ? ? ? ? ? ? ? ? ?Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k)+2*real(I(h,1));
? ? ? ? ? ? ? ? ? ?Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1)-2*imag(I(h,1));
? ? ? ? ? ? ? ?else ? ? ? ?%非對角元素的處理
? ? ? ? ? ? ? ? ? ?Jacbi(2*h-1,2*k-1)=-B(i,j)*B2(i,5)+G(i,j)*B2(i,6);
? ? ? ? ? ? ? ? ? ?Jacbi(2*h-1,2*k)=G(i,j)*B2(i,5)+B(i,j)*B2(i,6);
? ? ? ? ? ? ? ? ? ?Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k);
? ? ? ? ? ? ? ? ? ?Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1);
? ? ? ? ? ? ? ?end
? ? ? ? ? ? ? ?if k==(n-1) %將用于內(nèi)循環(huán)的指針置于初始值,以確保雅可比矩陣換行
? ? ? ? ? ? ? ? ? ?k=0;
? ? ? ? ? ? ? ?end
? ? ? ? ? ?end
? ? ? ?end
? ?end
end
k=0;
for i=1:n ? ? ? %對PV節(jié)點的處理
? ?if B2(i,2)==2
? ? ? ?h=h+1;
? ? ? ?for j=1:n
? ? ? ? ? ?if j~=isb
? ? ? ? ? ? ? ?k=k+1;
? ? ? ? ? ? ? ?if i==j ? ? %對角元素的處理
? ? ? ? ? ? ? ? ? ?Jacbi(2*h-1,2*k-1)= -B(i,j)*B2(i,5)+G(i,j)*B2(i,6)+imag(I(h,1));
? ? ? ? ? ? ? ? ? ?Jacbi(2*h-1,2*k)= G(i,j)*B2(i,5)+B(i,j)*B2(i,6)+real(I(h,1));
? ? ? ? ? ? ? ? ? ?Jacbi(2*h,2*k-1)=2*B2(i,6);
? ? ? ? ? ? ? ? ? ?Jacbi(2*h,2*k)=2*B2(i,5);
? ? ? ? ? ? ? ?else ? ? ? ?%非對角元素的處理
? ? ? ? ? ? ? ? ? ?Jacbi(2*h-1,2*k-1)= -B(i,j)*B2(i,5)+G(i,j)*B2(i,6);
? ? ? ? ? ? ? ? ? ?Jacbi(2*h-1,2*k)= G(i,j)*B2(i,5)+B(i,j)*B2(i,6);
? ? ? ? ? ? ? ? ? ?Jacbi(2*h,2*k-1)=0;
? ? ? ? ? ? ? ? ? ?Jacbi(2*h,2*k)=0;
? ? ? ? ? ? ? ?end
? ? ? ? ? ? ? ?if k==(n-1) ? ? %將用于內(nèi)循環(huán)的指針置于初始值,以確保雅可比矩陣換行
? ? ? ? ? ? ? ? ? ?k=0;
? ? ? ? ? ? ? ?end
? ? ? ? ? ?end
? ? ? ?end
? ?end
end
%disp('修正后的雅克比矩陣:') ?;
Jacbi;
DetaU=zeros(2*n-2,1);
DetaU=Jacbi\DetaS;
DetaU;
%修正節(jié)點電壓
j=0;
for i=1:n ? ? ? %對PQ節(jié)點處理
? ?if B2(i,2)==1
? ? ? ?j=j+1;
? ? ? ?B2(i,5)=B2(i,5)+DetaU(2*j,1);
? ? ? ?B2(i,6)=B2(i,6)+DetaU(2*j-1,1);
? ?end
end
for i=1:n ? ? ? %對PV節(jié)點的處理
? ?if B2(i,2)==2
? ? ? ?j=j+1;
? ? ? B2(i,5)=B2(i,5)+DetaU(2*j,1);
? ? ? B2(i,6)=B2(i,6)+DetaU(2*j-1,1);
? ?end
end
for i=1:n ? ? ? ? ? ?%對PQ(V)節(jié)點的處理
? ?if i==PQV
? ? ? B2(i,2)=3;
? ?end
end
for i=1:n ? ? ? ? ? ?%對PI節(jié)點的處理
? ?if i==PI
? ? ? B2(i,2)=4;
? ?end
end
Times=Times+1; ? ? ?%迭代次數(shù)加1
end
disp('初始潮流計算結(jié)果如下:');
disp('迭代次數(shù):');
Times
disp('節(jié)點電壓幅值如下(按節(jié)點由小到大的順序):');
B2(:,5)
%創(chuàng)建Sb,用于存儲平衡節(jié)點功率
Sb=zeros(1);
for i=1:n
? ?if i==isb
? ? ? ?for j=1:n
? ? Sb=Sb+(B2(i,5)+sqrt(-1)*B2(i,6))*conj(Y(i,j))*conj(B2(j,5)+sqrt(-1)*B2(j,6));
? ? ? ?end ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? end
end
disp('初始平衡節(jié)點功率:')
Sb
%求解各條支路的功率
Sij=zeros(n);
for i=1:n
? ? for j=1:n
? ? Sij(i,j)=Sij(i,j)+(B2(i,5)+sqrt(-1)*B2(i,6))^2*conj(B1(1,4))+(B2(i,5)+sqrt(-1)*B2(i,6))*conj(Y(i,j))*(conj((B2(i,5)+sqrt(-1)*B2(i,6)))-conj((B2(j,5)+sqrt(-1)*B2(j,6))));
? ? ?end
end
%disp('線路功率分布:')
Sij;
Sij_P=real(Sij);
Sij_Q=imag(Sij);
for i=1:32
? ? P_flow(i)= ?abs( Sij_P(B1(i,1),B1(i,2)));
end
for i=1:33
? ?for j=1:33
? ? ? ?if Sij_P(i,j)<0.0001
? ? ? ? ? ? Sij_P(i,j)=0;
? ? ? ?end
? ? ? ? if Sij_Q(i,j)<0.0001
? ? ? ? ? ? Sij_Q(i,j)=0;
? ? ? ? end
? ?end
end
%%%求解系統(tǒng)網(wǎng)損
Ploss=0;
for i=1:n ? ? ? ? ? ?
? ? ? ?for j=1:n
? ? ? ? ? ?Ploss=Ploss+B2(i,5)*B2(j,5)*(G(i,j)*cos(B2(i,6)-B2(j,6))+B(i,j)*sin(B2(i,6)-B2(j,6)));
? ? ? ?end
end
Ploss=Ploss*10000;
V_amp=B2(:,5);
for i=1:n ?%電壓罰函數(shù)
? ?V_33(i)=abs(1-V_amp(i)); %求與額定電壓的差值
end
V_flu=sum(V_33);
end
?? 運行結(jié)果






?? 參考文獻
[1] 龔莉莉.基于利益鏈的配電網(wǎng)電動汽車充電優(yōu)化策略研究[J].[2023-11-14].
[2] 李敏,蘇小林,閻曉霞,等.多目標分層分區(qū)的電動汽車有序充放電優(yōu)化控制[J].電網(wǎng)技術(shù), 2015, 39(12):7.DOI:10.13335/j.1000-3673.pst.2015.12.033.