資源簡介
自己編寫的粒子群算法,用于計算電力系統的最優潮流,實力驗證。

代碼片段和文件信息
clear;
clc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%初始化%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%數據加載
n=input(‘請輸入要計算的節點系統(5):‘)
????load?Node5.txt;%節點數據
????load?Branch5.txt;%支路數據
????load?Generator5.txt;%發電機數據
????Node=Node5;
????Branch=Branch5;
????Generator=Generator5;
%節點數據處理
N=Node(:1);%節點號
Type=Node(:2);%節點類型
Uamp=Node(:3);%節點電壓幅值
Dlta=Node(:4);%節點電壓相角
Pd=Node(:5);%節點負荷有功
Qd=Node(:6);%節點負荷無功
Pg=Node(:7);%節點出力有功
Qg=Node(:8);%節點出力無功
Umax=Node(:9);%節點電壓幅值上限
Umin=Node(:10);%節點電壓幅值下限
Bc=Node(:11);%節點補償電容電納值
%支路數據處理
Nbr=Branch(:1);%支路號
Nl=Branch(:2);%支路首節點
Nr=Branch(:3);%支路末節點
R=Branch(:4);%支路電阻
X=Branch(:5);%支路電抗
Z=R+1i*X;%支路阻抗=支路電阻+支路電抗
Bn=Branch(:6);%支路對地電納
K=Branch(:7);%支路變壓器變比,0表示無變壓器
Ptmax=Branch(:8);%線路傳輸功率上限
%發電機數據處理
Ng=Generator(:1);%發電機序號
Nbus=Generator(:2);%所在母線號
Pumax=Generator(:3);%發電機有功出力上界
Qumax=Generator(:4);%發電機無功出力上界
Pumin=Generator(:5);%發電機有功出力下界
Qumin=Generator(:6);%發電機無功出力下界
a2=Generator(:7);%燃料耗費曲線二次系數
a1=Generator(:8);%燃料耗費曲線一次系數
a0=Generator(:9);%燃料耗費曲線常數項
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
n=length(N);%節點個數
ng=length(Ng);%發電機臺數
nbr=length(Nbr);%支路個數
x=zeros(2*(ng+n)1);%控制變量+狀態變量
x(1:ng)=Pg(Nbus);
x(ng+1:2*ng)=Qg(Nbus);
x((2*ng+2):2:2*(ng+n))=Uamp;
x((2*ng+1):2:2*(ng+n)-1)=Dlta;
l=0.8*ones(2*ng+n+nbr1);%松弛變量
u=1.1*ones(2*ng+n+nbr1);%松弛變量
w=-1.5*ones(2*ng+n+nbr1);%拉格朗日乘子
z=ones(2*ng+n+nbr1);%拉格朗日乘子
y=zeros(2*n1);%拉格朗日乘子
y(1:2:2*n-1)=1e-3;
y(2:2:2*n)=-1e-3;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%計算不等式約束的上下限%%%%%%%%%%%%%%%%%%%%%%%%
%gmin
gmin=zeros(2*ng+n+nbr1);
gmin(1:ng)=Pumin;
gmin(ng+1:2*ng)=Qumin;
gmin(2*ng+1:2*ng+n)=Umin;
gmin(2*ng+n+1:2*ng+n+nbr)=-Ptmax;??
%gmax
gmax=zeros(2*ng+n+nbr1);
gmax(1:ng)=Pumax;
gmax(ng+1:2*ng)=Qumax;
gmax(2*ng+1:2*ng+n)=Umax;
gmax(2*ng+n+1:2*ng+n+nbr)=Ptmax;????????
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%形成導納矩陣%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Y=zeros(nn);
%%%%%%%%%%%%%%%%%%%%計算非對角元素%%%%%%%%%%%%%%%%%%%%%
for?ii=1:nbr
????if?K(ii)==0%非變壓器支路
????????Y(Nl(ii)Nr(ii))=-1/Z(ii);
????????Y(Nr(ii)Nl(ii))=Y(Nl(ii)Nr(ii));
????else%變壓器支路
????????Y(Nl(ii)Nr(ii))=-1/Z(ii)/K(ii);
????????Y(Nr(ii)Nl(ii))=?Y(Nl(ii)Nr(ii));
????end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%計算對角元素%%%%%%%%%%%%%%%%%%%%%%
for?ii=1:n%將支路導納加入到對角元素中
????for?jj=1:nbr
????????if?K(jj)==0&&(Nl(jj)==ii||Nr(jj)==ii)%非變壓器支路
????????????????Y(iiii)=Y(iiii)+1/Z(jj);
????????else?if?K(jj)~=0&&(Nl(jj)==ii||Nr(jj)==ii)%變壓器支路
????????????????Y(iiii)=Y(iiii)+1/Z(jj)/K(jj);
????????????end
????????end
????end
end
for?ii=1:nbr%將對地電納加入到對角元素中
????if?K(ii)==0%非變壓器支路
????????Y(Nl(ii)Nl(ii))=Y(Nl(ii)Nl(ii))+1i*Bn(ii);
????????Y(Nr(ii)Nr(ii))=Y(Nr(ii)Nr(ii))+1i*Bn(ii);
????else%變壓器支路????????
????????Y(Nr(ii)Nr(ii))=Y(Nr(ii)Nr(ii))+(K(ii)-1)/K(ii)/Z(ii);
????????Y(Nl(ii)Nl(ii))=Y(Nl(ii)Nl(ii))+(1-K(ii))/K(ii)/K(ii)/Z(ii);
????end
end
fo
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????19852??2018-09-20?20:50??MATLAB最優潮流\mopf.m
?????目錄???????????0??2018-09-20?20:51??MATLAB最優潮流\
- 上一篇:小程序自定義分頁選擇組件
- 下一篇:利用遺傳算法解決電力系統最優潮流問題。
評論
共有 條評論