PQ分解法计算大电网潮流程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
function PQ
%用PQ分解法计算大电网潮流
% %bus数组 1.节点编号 2.节点电压 3.节点电压角度 4.注入有功 5.注入无功 6.节点类型(1PQ 2PV 3平衡)
%line数组 1.始端节点编号 2.末端节点编号 3.电阻 4电抗 5电导G 6电纳B 7.变比
%打开数据文件
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+5i 12.917-38.75i -10+30i 0 -1.25+3.75i
% -1.667+5i -10+30i 12.917-38.75i -1.25+3.75i 0
% -2.5+7.5i 0 -1.25+3.75i 3.75-11.25i 0
% -5+15i -1.25+3.75i 0 0 6.25-18.75i];
%
% Y1=[10.834-32.5i -1.667+5i -1.667+5i -2.5+7.5i -5+15i
% -1.667+5i 12.917-38.75i -10+30i 0 -1.25+3.75i
% -1.667+5i -10+30i 12.917-38.75i -1.25+3.75i 0
% -2.5+7.5i 0 -1.25+3.75i 3.75-11.25i 0
% -5+15i -1.25+3.75i 0 0 6.25-18.75i];
%
% bus=[1 1 0 0.2 0.2 1
% 2 1 0 -0.45 -0.15 1
% 3 1 0 -0.4 -0.05 1
% 4 1 0 -0.6 -0.1 1
% 5 1.06 0 0 0 3];
%
% line=[5 2 1.25 -3.75 0 0 0
% 2 3 10 -30 0 0 0
% 3 4 1.25 -3.75 0 0 0
% 4 1 2.5 -7.5 0 0 0
% 1 2 1.667 -5 0 0 0
% 1 3 1.667 -5 0 0 0
% 1 5 5 -15 0 0 0];
%-------------------------------------------------------
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;%KP KQ用来判断有功、无功是否收敛
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);
while c<80
%求解P Q的不平衡量
for ii=1:nPQ+nPV
delta_P(ii)=bus(ii,4);
for jj=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;
if max(abs(error_P))>0.00001
delta_e=-(UP*B1)\error_P;
bus_e=bus_e+[delta_e;0];
c=c+1;
KQ=1;
else KP=0;
if KQ~=0
else
break
end
end
for ii=1:nPQ
delta_Q(ii)=bus(ii,5);
for jj=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;
if max(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;
else KQ=0;
if KP~=0
else
break
end
end