PQ分解法计算大电网潮流程序.docx

上传人:b****3 文档编号:2362403 上传时间:2022-10-29 格式:DOCX 页数:13 大小:17.01KB
下载 相关 举报
PQ分解法计算大电网潮流程序.docx_第1页
第1页 / 共13页
PQ分解法计算大电网潮流程序.docx_第2页
第2页 / 共13页
PQ分解法计算大电网潮流程序.docx_第3页
第3页 / 共13页
PQ分解法计算大电网潮流程序.docx_第4页
第4页 / 共13页
PQ分解法计算大电网潮流程序.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

PQ分解法计算大电网潮流程序.docx

《PQ分解法计算大电网潮流程序.docx》由会员分享,可在线阅读,更多相关《PQ分解法计算大电网潮流程序.docx(13页珍藏版)》请在冰豆网上搜索。

PQ分解法计算大电网潮流程序.docx

functionPQ

%用PQ分解法计算大电网潮流

%%bus数组1.节点编号2.节点电压3.节点电压角度4.注入有功5.注入无功6.节点类型(1PQ2PV3平衡)

%line数组1.始端节点编号2.末端节点编号3.电阻4电抗5电导G6电纳B7.变比

%打开数据文件

clear

clc

bus=load('ieee14bus.txt');

line=load('ieee14line.txt');

linenum(:

[1,2])=line(:

[1,2]);

[nb,~]=size(bus);

[nl,~]=size(line);

%nodenum=[(1:

nb)'bus(:

1)];

%带入子函数数据处理

[bus,line,nPQ,nPV,nSW,nodenum]=change1_busline(bus,line);%对节点重新编号

Y=admittance(bus,line,1);%生成节点导纳矩阵

Y1=admittance(bus,line,2);%生成化简条件3的矩阵B1

Y2=admittance(bus,line,3);%生成化简条件3的矩阵B2

%-----------------------------------------------------

%%临时添加的测试数据

%nPQ=4;nPV=0;nSW=1;nb=5;

%Y=[10.834-32.5i-1.667+5i-1.667+5i-2.5+7.5i-5+15i

%-1.667+5i12.917-38.75i-10+30i0-1.25+3.75i

%-1.667+5i-10+30i12.917-38.75i-1.25+3.75i0

%-2.5+7.5i0-1.25+3.75i3.75-11.25i0

%-5+15i-1.25+3.75i006.25-18.75i];

%

%Y1=[10.834-32.5i-1.667+5i-1.667+5i-2.5+7.5i-5+15i

%-1.667+5i12.917-38.75i-10+30i0-1.25+3.75i

%-1.667+5i-10+30i12.917-38.75i-1.25+3.75i0

%-2.5+7.5i0-1.25+3.75i3.75-11.25i0

%-5+15i-1.25+3.75i006.25-18.75i];

%

%bus=[1100.20.21

%210-0.45-0.151

%310-0.4-0.051

%410-0.6-0.11

%51.060003];

%

%line=[521.25-3.75000

%2310-30000

%341.25-3.75000

%412.5-7.5000

%121.667-5000

%131.667-5000

%155-15000];

%-------------------------------------------------------

bus_PV0=bus((nPQ+1):

end,2)';%1.05*ones(1,nPV+nSW);

bus_U=[ones(1,nPQ)bus_PV0]';%电压幅值

bus_e=zeros(nb,1);%电压角度

delta_P=zeros(nPQ+nPV,1);

delta_Q=zeros(nPQ,1);

%delta_e=zeros(nb-1,1);

%delta_U=zeros(nPQ,1);

c=0;KP=1;KQ=1;%KPKQ用来判断有功、无功是否收敛

G=real(Y);B=imag(Y);B10=imag(Y1);B20=imag(Y2);%矩阵B0是进行化简三后的节点导纳矩阵虚部

%形成解耦潮流的系数矩阵B1和B2

B1=B10(1:

nb-1,1:

nb-1);

B2=B20(1:

nPQ,1:

nPQ);

whilec<80

%求解PQ的不平衡量

forii=1:

nPQ+nPV

delta_P(ii)=bus(ii,4);

forjj=1:

nb

delta_P(ii)=delta_P(ii)-bus_U(ii)*bus_U(jj)*(G(ii,jj)*cos(bus_e(ii)-bus_e(jj))+B(ii,jj)*sin(bus_e(ii)-bus_e(jj)));

end

end

UP=diag(bus_U(1:

(nb-1)));%U矩阵利用各节点电压形成对角阵,来计算修正方程,对角线上的元素与bus_U列元素一一对应

error_P=UP\delta_P;

ifmax(abs(error_P))>0.00001

delta_e=-(UP*B1)\error_P;

bus_e=bus_e+[delta_e;0];

c=c+1;

KQ=1;

elseKP=0;

ifKQ~=0

else

break

end

end

forii=1:

nPQ

delta_Q(ii)=bus(ii,5);

forjj=1:

nb

delta_Q(ii)=delta_Q(ii)-bus_U(ii)*bus_U(jj)*(G(ii,jj)*sin(bus_e(ii)-bus_e(jj))-B(ii,jj)*cos(bus_e(ii)-bus_e(jj)));

end

end

UQ=diag(bus_U(1:

(nb-nPV-nSW)));

error_Q=UQ\delta_Q;

ifmax(abs(error_Q))>0.00001

delta_U=-B2\error_Q;

bus_U=bus_U+[delta_U;zeros((nPV+nSW),1)];

c=c+1;

KP=1;

elseKQ=0;

ifKP~=0

else

break

end

end

end

%至此得到收敛的节点电压值

%----------------------------------------------

%--------------------------------------------

%对计算结果进行数据处理

%将节点结果用原节点编号表示

bus_Ue=zeros(nb,3);

bus_Ue(:

[1,2,3])=[nodenum(:

2)bus_Ubus_e/pi*180];

forii=1:

nb

forjj=ii+1:

nb

ifbus_Ue(ii,1)>bus_Ue(jj,1)

t=bus_Ue(ii,:

);

bus_Ue(ii,:

)=bus_Ue(jj,:

);

bus_Ue(jj,:

)=t;

end

end

end

%r_U是收敛的电压表达成复数的形式

r_U=zeros(nb,1);

fork=1:

nb

r_U(k)=bus_U(k)*(cos(bus_e(k))+1i*sin(bus_e(k)));

end

%计算平衡节点功率

SW_S=0;

SW_S=SW_S+r_U(nb)*conj(Y(nb,:

))*conj(r_U);

%计算各支路功率Sij

line_S=zeros(nb,nb);line_S0=zeros(nb,nb);

forii=1:

nb

forjj=1:

nb

line_S(ii,jj)=r_U(ii)*(conj(r_U(ii))*conj(Y(ii,ii))+(conj(r_U(ii))-conj(r_U(jj)))*conj(Y(ii,jj)));

end

end

%------------------------------------------

%把线路结果还原成原节点编号对应的结果

forii=1:

nb

forjj=1:

nb

line_S0(nodenum(ii,2),nodenum(jj,2))=line_S(ii,jj);

end

end

line_P=real(line_S0);line_Q=imag(line_S0);

%计算各支路损耗

delta_S=zeros(nl,1);

fork=1:

nl

a=linenum(k,1);b=linenum(k,2);

delta_S(k)=line_S0(a,b)+line_S(b,a);

end

%计算网络总损耗

S0=sum(delta_S);

%-------------------------------------------------

%将计算结果输入指定文件

fid=fopen('C:

\Users\lr\Desktop\matlab练习\训练题\大电网潮流计算\ieee14_out.txt','wt');

fprintf(fid,'节点号\t节点电压幅值\t节点电压角度\n');

fork=1:

nb

fprintf(fid,'%d\t%f\t%f\n',k,bus_Ue(k,1),bus_Ue(k,2));

end

fprintf(fid,'支路首端\t支路末端\t支路有功\t支路无功\t支路损耗\n');

fork=1:

nl

fprintf(fid,'%d\t\t%d\t\t%f\t%f\t%f\n',linenum(k,1),linenum(k,2),line_P(linenum(k,1),linenum(k,2)),line_Q(linenum(k,1),linenum(k,2)),delta_S(k));

end

fprintf(fid,'平衡节点功率=%f\n',SW_S);

fprintf(fid,'网络总损耗=%f\n',S0);

fclose(fid);

end

functi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 商业计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1