From 7652f913ea1e3fbfc688d9198cd4eeb9a8285c95 Mon Sep 17 00:00:00 2001 From: "dmy@lab" Date: Thu, 2 Apr 2015 22:42:17 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=8A=A0=E4=BA=86=E7=BB=9F=E8=AE=A1=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=202.=E7=94=A8=E4=BA=86=E6=96=B0=E7=AE=97=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CalPGQG.m | 2 +- OPF.m | 53 ++++++++++++++++++------------------ feeder13/data - 副本.txt | 18 ++++++------ feeder13/data1.txt | 46 +++++++++++++++++++++++++++---- feeder13/data1三相不平衡.txt | 14 ++++++++++ func_deltG.m | 10 +++---- test.m | 32 ++++++++++++---------- 7 files changed, 114 insertions(+), 61 deletions(-) create mode 100644 feeder13/data1三相不平衡.txt diff --git a/CalPGQG.m b/CalPGQG.m index c195647..5e69e08 100644 --- a/CalPGQG.m +++ b/CalPGQG.m @@ -1,5 +1,5 @@ function [ output_args ] = CalPGQG(Balance,phaseABCY,VoltpABC,phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP,phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ ) -%%FortiscueõѹǺ󣬷ƸɹʣǷ͸Ĺһ¡ +%PGQG busNum=size(phaseABCY,1)/3; VoltpA=VoltpABC(1,:); VoltpB=VoltpABC(2,:); diff --git a/OPF.m b/OPF.m index 52ecb73..02c3358 100644 --- a/OPF.m +++ b/OPF.m @@ -1,5 +1,5 @@ -function [JMeasurement,SEMeasurement,SEMeasurementNOPQ,SEMeasurementM,SEMeasurementNOPQM]=OPF() +function [JMeasurement,AME_Volt,AME_VAngle,AME_PD,AME_QD,AME_mVolt,AME_mPD,AME_mQD,isConverged]=OPF() tic clc clear @@ -137,7 +137,7 @@ fprintf(' busNum=length(nodeNum); Busnum=busNum; -PQi=setxor(nodeNum,Balance); +% PQi=setxor(nodeNum,Balance); QGi=[Balance]; % fprintf('ʼţٷ\n'); [r,c,GB]=find(phaseABCY); @@ -146,10 +146,10 @@ Yangle=angle(GB); Vp3=sparse(ones(busNum*3,1));%ѹֵ Vp3(2:3:end)=Vp3(2:3:end)*exp(1j*-120/180*pi); Vp3(3:3:end)=Vp3(3:3:end)*exp(1j*+120/180*pi); -PQi3P=zeros(length(PQi)*3,1); -PQi3P(1:3:end)=(PQi-1)*3+1; -PQi3P(2:3:end)=(PQi-1)*3+2; -PQi3P(3:3:end)=(PQi-1)*3+3; +PQi3P=zeros(length(Loadi)*3,1); +PQi3P(1:3:end)=(Loadi-1)*3+1; +PQi3P(2:3:end)=(Loadi-1)*3+2; +PQi3P(3:3:end)=(Loadi-1)*3+3; Loadi=PQi3P; PD3P=sparse(Busnum*3,1); QD3P=sparse(Busnum*3,1); @@ -194,10 +194,10 @@ rVoltABCV(1:3:end)=abs(VoltpABC(1,:)); rVoltABCV(2:3:end)=abs(VoltpABC(2,:)); rVoltABCV(3:3:end)=abs(VoltpABC(3,:)); %ѹ -% rVoltABCA=zeros(busNum*3,1); -% rVoltABCA(1:3:end)=angle(VoltpABC(1,:)); -% rVoltABCA(2:3:end)=angle(VoltpABC(2,:)); -% rVoltABCA(3:3:end)=angle(VoltpABC(3,:)); +rVoltABCA=zeros(busNum*3,1); +rVoltABCA(1:3:end)=angle(VoltpABC(1,:)); +rVoltABCA(2:3:end)=angle(VoltpABC(2,:)); +rVoltABCA(3:3:end)=angle(VoltpABC(3,:)); %ฺ rPD3P=zeros(busNum*3,1); rPD3P(1:3:end)=phaseASpotLoadP; @@ -221,11 +221,11 @@ mQD3P=rPD3P.*QD3PSigma; wVolt=1./(abs(mVoltABCV*sigma).^2); wPD=1./(abs(mPD3P*sigma).^2); wQD=1./(abs(mQD3P*sigma).^2); -wVolt(5)=0; -wPD(5)=0; -wQD(5)=0; +% wVolt(5)=0; +% wPD(5)=0; +% wQD(5)=0; %% -RestraintCount=size(Loadi,1)*2; %Լ,ſQD +RestraintCount=size(Loadi,1)*2; %Լ Init_Z=sparse(ones(1,RestraintCount)); Init_W=sparse(-1*ones(1,RestraintCount)); Init_L=1*sparse(ones(1,RestraintCount)); @@ -234,7 +234,7 @@ Init_Y=sparse(1,2*Busnum*3);% Gap=(Init_L*Init_Z'-Init_U*Init_W'); KK=0; ContrlCount=size(Loadi,1)*2+Busnum*6; -kmax=900; +kmax=20; %% Precision=1e-5; CenterA=0.1; @@ -292,20 +292,19 @@ end JMeasurement=sum(((mVoltABCV-Volt)./mVoltABCV./sigma).^2)+sum(((mPD3P-PD3P)./mPD3P./sigma).^2)+sum(((mQD3P-QD3P)./mQD3P./sigma).^2); %ͳ % +Busnum=busNum; mCount=Busnum*3+length(Loadi)*3*2; % -%PDQD -SEMeasurement=sum(((rVoltABCV-Volt)./mVoltABCV./sigma).^2)+sum(((rPD3P-PD3P)./mPD3P./sigma).^2)+sum(((rQD3P-QD3P)./mQD3P./sigma).^2); -SEMeasurement=(SEMeasurement/mCount)^.5; -%ûPDQD -SEMeasurementNOPQ=sum(((rVoltABCV-Volt)./mVoltABCV./sigma).^2); -SEMeasurementNOPQ=(SEMeasurementNOPQ/mCount)^.5; -% -SEMeasurementM=sum(((rVoltABCV-mVoltABCV)./mVoltABCV./sigma).^2)+sum(((rPD3P-mPD3P)./mPD3P./sigma).^2)+sum(((rQD3P-mQD3P)./mQD3P./sigma).^2); -SEMeasurementM=(SEMeasurementM/mCount)^.5; -%ûPDQD -SEMeasurementNOPQM=sum(((rVoltABCV-mVoltABCV)./mVoltABCV./sigma).^2); -SEMeasurementNOPQM=(SEMeasurementNOPQM/mCount)^.5; +AME_Volt=sum(sum(abs( abs(rVoltABCV)-abs(Volt)))); +AME_VAngle=sum(sum(abs( rVoltABCA-UAngel))); +AME_PD=sum(sum(abs(rPD3P-PD3P))); +AME_QD=sum(sum(abs(rQD3P-QD3P))); +%ֵ +AME_mVolt=sum(sum(abs( mVoltABCV-rVoltABCV))); +AME_mPD=sum(sum(abs(rPD3P-mPD3P))); +AME_mQD=sum(sum(abs(rQD3P-mQD3P))); +%Ϣ +isConverged=1; fprintf('%d\n',KK); toc end diff --git a/feeder13/data - 副本.txt b/feeder13/data - 副本.txt index 372bbe6..fed6b5d 100644 --- a/feeder13/data - 副本.txt +++ b/feeder13/data - 副本.txt @@ -1,16 +1,16 @@ 650 0 -603 632 645 500 +600 632 645 500 602 632 633 500 --1 633 634 0 -603 645 646 300 +601 633 634 0 +600 645 646 300 601 650 632 2000 -607 684 652 800 +602 684 652 800 601 632 671 2000 -604 671 684 300 -601 671 680 1000 --2 671 692 0 -605 684 611 300 -606 692 675 500 +600 671 684 300 +602 671 680 1000 +600 671 692 0 +602 684 611 300 +601 692 675 500 0 diff --git a/feeder13/data1.txt b/feeder13/data1.txt index a873457..e7c35c7 100644 --- a/feeder13/data1.txt +++ b/feeder13/data1.txt @@ -1,14 +1,50 @@ 650 4.16 0 +600 632 645 500 +602 632 633 500 +601 633 634 600 +600 645 646 300 601 650 632 2000 -602 632 631 1800 -602 631 630 1700 +602 684 652 800 +601 632 671 2000 +600 671 684 300 +602 671 680 1000 +600 671 692 300 +602 684 611 300 +601 692 675 500 0 632 0 0 0 0 -630 80 70 60 50 40 30 -631 40 10 11 50 30 30 -632 120 120 120 110 90 90 +634 160 110 120 90 120 90 +645 123 102 170 125 133 110 +646 172 150 230 132 211 160 +652 128 86 30 10 80 70 +675 85 10 68 60 20 12 +611 52 42 85 60 70 40 +0 +600 632 645 500 +602 632 633 500 +601 633 634 600 +600 645 646 300 +601 650 632 2000 +602 684 652 800 +601 632 671 2000 +600 671 684 300 +602 671 680 1000 +600 671 692 300 +602 684 611 300 +601 692 675 500 +0 +632 0 0 0 +0 +634 160 110 120 90 120 90 +645 123 102 170 125 133 110 +646 172 150 230 132 0 211 160 +652 128 86 30 10 80 70 +671 385 220 385 220 385 220 +675 485 190 68 60 290 212 +692 142 140 153 121 170 151 +611 156 142 185 60 170 80 0 diff --git a/feeder13/data1三相不平衡.txt b/feeder13/data1三相不平衡.txt new file mode 100644 index 0000000..843b67a --- /dev/null +++ b/feeder13/data1三相不平衡.txt @@ -0,0 +1,14 @@ +650 4.16 +0 +601 650 632 2000 +602 632 631 1800 +602 631 630 1700 +0 +632 0 0 0 +0 +630 90 70 80 40 30 10 +631 40 10 60 30 100 80 +632 12 12 120 120 11 11 +0 + + diff --git a/func_deltG.m b/func_deltG.m index 7caf84b..862016b 100644 --- a/func_deltG.m +++ b/func_deltG.m @@ -8,18 +8,18 @@ sizeLoadi=size(Loadi,1); %% dg3_dPD=sparse(1:size(Loadi,1),1:size(Loadi,1),ones(size(Loadi,1),1),size(Loadi,1),size(Loadi,1)); dg4_dPD=sparse(size(Loadi,1),length(Loadi)); -dg5_dPD=sparse(size(Loadi,1),Busnum*3); +% dg5_dPD=sparse(size(Loadi,1),Busnum*3); %% dg3_dQD=sparse(length(Loadi),length(Loadi)); dg4_dQD=sparse(1:size(Loadi,1),1:size(Loadi,1),ones(size(Loadi,1),1),size(Loadi,1),size(Loadi,1)); -dg5_dQD=sparse(size(Loadi,1),Busnum*3); +% dg5_dQD=sparse(size(Loadi,1),Busnum*3); %% dg3_dx=sparse(2*Busnum*3,sizeLoadi); dg4_dx=sparse(2*Busnum*3,length(Loadi)); -dg5_dx=[sparse(1:Busnum*3,1:Busnum*3,zeros(Busnum*3,1),Busnum*3,Busnum*3); - sparse(Busnum*3,Busnum*3); - ]; +% dg5_dx=[sparse(1:Busnum*3,1:Busnum*3,zeros(Busnum*3,1),Busnum*3,Busnum*3); +% sparse(Busnum*3,Busnum*3); +% ]; %% % deltG=[dg3_dPD,dg4_dPD,dg5_dPD; diff --git a/test.m b/test.m index 380621f..8d2f7a5 100644 --- a/test.m +++ b/test.m @@ -1,22 +1,26 @@ close all clear clc +AME_VoltSum=0; +AME_VAngleSum=0; JMeasurementSum=0; -SEMeasurementSum=0; -SEMeasurementNOPQSum=0; -SEMeasurementMSum=0; -SEMeasurementNOPQMSum=0; +AME_PDSum=0; +AME_QDSum=0; N=1000; for I=1:N - [JMeasurement,SEMeasurement,SEMeasurementNOPQ,SEMeasurementM,SEMeasurementNOPQM]=OPF(); - JMeasurementSum=JMeasurement+JMeasurementSum; - SEMeasurementSum=SEMeasurement+SEMeasurementSum; - SEMeasurementNOPQSum=SEMeasurementNOPQ+SEMeasurementNOPQSum; - SEMeasurementMSum=SEMeasurementMSum+SEMeasurementM; - SEMeasurementNOPQMSum=SEMeasurementNOPQMSum+SEMeasurementNOPQM; + [JMeasurement,AME_Volt,AME_VAngle,AME_PD,AME_QD,AME_mVolt,AME_mPD,AME_mQD,isConverged]=OPF(); + if isConverged==0 + I=I-1; + continue + end +% [JMeasurement]=run(); + AME_VoltSum=AME_VoltSum+AME_Volt; + AME_VAngleSum=AME_VAngleSum+AME_VAngle; + AME_PDSum=AME_PDSum+AME_PD; + AME_QDSum=AME_QDSum+AME_QD; end JMeasurementSum=JMeasurementSum/N; -SEMeasurementSum=SEMeasurementSum/N; -SEMeasurementNOPQSum=SEMeasurementNOPQSum/N; -SEMeasurementMSum=SEMeasurementMSum/N; -SEMeasurementNOPQMSum=SEMeasurementNOPQMSum/N; \ No newline at end of file +AME_VoltSum=AME_VoltSum/N; +AME_VAngleSum=AME_VAngleSum/N; +AME_PDSum=AME_PDSum/N; +AME_QDSum=AME_QDSum/N;