diff --git a/AssignXX.m b/AssignXX.m index 4d50403..4429fff 100644 --- a/AssignXX.m +++ b/AssignXX.m @@ -1,5 +1,5 @@ function [deltX,deltY]=AssignXX(XX,ContrlCount,Loadi,Balance,Busnum) -deltX=XX(1:Busnum*3*2); +deltX=XX(length(Loadi)*3+1:length(Loadi)*3+Busnum*3*2); t=0; deltX(t+(Balance-1)*3+1)=0; deltX(t+(Balance-1)*3+2)=0; @@ -8,6 +8,5 @@ t=Busnum*3; deltX(t+(Balance-1)*3+1)=0; deltX(t+(Balance-1)*3+2)=0; deltX(t+(Balance-1)*3+3)=0; -t=Busnum*3*2; -deltY=XX(t+1:end); +deltY=XX(length(Loadi)*3+Busnum*3*2+1:end); end \ No newline at end of file diff --git a/OPF.m b/OPF.m index 382e8ea..2e0d6ec 100644 --- a/OPF.m +++ b/OPF.m @@ -3,10 +3,10 @@ function [JMeasurement,AME_Volt,AME_VAngle,AME_PD,AME_QD,AME_mVolt,AME_mPD,AME_m tic clc clear -lineZ=readLineZ('feeder13\lineParameter.txt'); +lineZ=readLineZ('./../DistributionNetwork-Power2Current/modified-feeder69/lineParameter.txt'); [ fsY0, fsY1, fsY2,phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP ... phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ,setIJ,nodeNum,Balance,phaseABCY ... - cap]=dataRead(lineZ,'feeder13\data1.txt'); + cap]=dataRead(lineZ,'./../DistributionNetwork-Power2Current/modified-feeder69/data.txt'); % phaseASpotLoadP(phaseASpotLoadP==0)=0.002; % phaseBSpotLoadP(phaseBSpotLoadP==0)=0.002; % phaseCSpotLoadP(phaseCSpotLoadP==0)=0.002; @@ -275,7 +275,7 @@ wVolt=1./(abs(mVoltABCV*sigma/3).^2); wPD=1./(abs(mPD3P*sigma).^2); wQD=1./(abs(mQD3P*sigma).^2); wVolt(setdiff(1:length(wVolt),Loadi))=0;%只有负荷处才有电压量测。 -wVolt( noPQi3P)=0; +% wVolt( noPQi3P)=0; wPD(ismember( Loadi,noPQi3P))=1./(abs(mPD3P(ismember( Loadi,noPQi3P))*0.15).^2); wQD(ismember( Loadi,noPQi3P))=1./(abs(mQD3P(ismember( Loadi,noPQi3P))*0.15).^2); %% diff --git a/SolveIt.m b/SolveIt.m index e552455..f0ed4fe 100644 --- a/SolveIt.m +++ b/SolveIt.m @@ -3,20 +3,30 @@ function XX=SolveIt(ContrlCount,Balance,Busnum,Loadi,deltF,PD0,PD,QD0,QD,mVolt,V dP_x=-dH_dx(Loadi,:); dQ_x=-dH_dx(Loadi+Busnum*3,:); dV_x=[sparse(1:Busnum*3,1:Busnum*3,1,Busnum*3,Busnum*3),sparse(Busnum*3,Busnum*3)]; +dV_x=dV_x(Loadi,:); H=[dP_x;dQ_x;dV_x]; c=dH_dx(setdiff(1:Busnum*3,Loadi),:); c=[c;dH_dx(setdiff(1:Busnum*3,Loadi)+Busnum*3,:)]; +wVolt=wVolt(Loadi); aa=[H'*diag([wPD;wQD;wVolt])*H c' c zeros(size(c,1),size(c',2))]; +% wVolt(find(wVolt==0))=Inf; +% diag([wPD.^(-1);wQD.^(-1);wVolt.^(-1)]) +aa=[ + diag([wPD.^(-1);wQD.^(-1);wVolt.^(-1)]) H zeros(size(H,1),size(c',2)) + H' zeros(size(H',1),size(H,2)) c' + zeros(size(c,1),size(H',2)) c zeros(size(c,1),size(c',2)) + ]; % aa=H'*eye(length(H))*H; PD=-Mat_H(Loadi,:); QD=-Mat_H(Loadi+Busnum*3,:); deltZ=[(PD0-PD); (QD0-QD); - (mVolt-Volt); + (mVolt(Loadi)-Volt(Loadi)); ]; yy=[ - H'*diag([wPD;wQD;wVolt])*deltZ; + deltZ; + zeros(Busnum*6,1); -Mat_H(setdiff(1:Busnum*3,Loadi)); -Mat_H(setdiff(1:Busnum*3,Loadi)+Busnum*3); ]; @@ -24,32 +34,32 @@ yy=[ % H'*eye(length(H))*deltZ; % ]; %% 平衡节点电压不变 -t=0; +t=size(H,1); aa(t+(Balance-1)*3+1,:)=0; aa(t+(Balance-1)*3+2,:)=0; aa(t+(Balance-1)*3+3,:)=0; aa(:,t+(Balance-1)*3+1)=0; aa(:,t+(Balance-1)*3+2)=0; aa(:,t+(Balance-1)*3+3)=0; -aa=aa+sparse(t+(Balance-1)*3+1,t+(Balance-1)*3+1,ones(length(Balance),1),size(c,1)+2*Busnum*3,size(c,1)+2*Busnum*3); -aa=aa+sparse(t+(Balance-1)*3+2,t+(Balance-1)*3+2,ones(length(Balance),1),size(c,1)+2*Busnum*3,size(c,1)+2*Busnum*3); -aa=aa+sparse(t+(Balance-1)*3+3,t+(Balance-1)*3+3,ones(length(Balance),1),size(c,1)+2*Busnum*3,size(c,1)+2*Busnum*3); +aa=aa+sparse(t+(Balance-1)*3+1,t+(Balance-1)*3+1,ones(length(Balance),1),size(H,1)+size(c,1)+2*Busnum*3,size(H,1)+size(c,1)+2*Busnum*3); +aa=aa+sparse(t+(Balance-1)*3+2,t+(Balance-1)*3+2,ones(length(Balance),1),size(H,1)+size(c,1)+2*Busnum*3,size(H,1)+size(c,1)+2*Busnum*3); +aa=aa+sparse(t+(Balance-1)*3+3,t+(Balance-1)*3+3,ones(length(Balance),1),size(H,1)+size(c,1)+2*Busnum*3,size(H,1)+size(c,1)+2*Busnum*3); % aa=aa+sparse(t+(Balance-1)*3+1,t+(Balance-1)*3+1,ones(length(Balance),1),2*Busnum*3,2*Busnum*3); % aa=aa+sparse(t+(Balance-1)*3+2,t+(Balance-1)*3+2,ones(length(Balance),1),2*Busnum*3,2*Busnum*3); % aa=aa+sparse(t+(Balance-1)*3+3,t+(Balance-1)*3+3,ones(length(Balance),1),2*Busnum*3,2*Busnum*3); %% -t=Busnum*3; +t=size(H,1)+Busnum*3; aa(t+(Balance-1)*3+1,:)=0; aa(t+(Balance-1)*3+2,:)=0; aa(t+(Balance-1)*3+3,:)=0; aa(:,t+(Balance-1)*3+1)=0; aa(:,t+(Balance-1)*3+2)=0; aa(:,t+(Balance-1)*3+3)=0; -aa=aa+sparse(t+(Balance-1)*3+1,t+(Balance-1)*3+1,ones(length(Balance),1),size(c,1)+2*Busnum*3,size(c,1)+2*Busnum*3); -aa=aa+sparse(t+(Balance-1)*3+2,t+(Balance-1)*3+2,ones(length(Balance),1),size(c,1)+2*Busnum*3,size(c,1)+2*Busnum*3); -aa=aa+sparse(t+(Balance-1)*3+3,t+(Balance-1)*3+3,ones(length(Balance),1),size(c,1)+2*Busnum*3,size(c,1)+2*Busnum*3); +aa=aa+sparse(t+(Balance-1)*3+1,t+(Balance-1)*3+1,ones(length(Balance),1),size(H,1)+size(c,1)+2*Busnum*3,size(H,1)+size(c,1)+2*Busnum*3); +aa=aa+sparse(t+(Balance-1)*3+2,t+(Balance-1)*3+2,ones(length(Balance),1),size(H,1)+size(c,1)+2*Busnum*3,size(H,1)+size(c,1)+2*Busnum*3); +aa=aa+sparse(t+(Balance-1)*3+3,t+(Balance-1)*3+3,ones(length(Balance),1),size(H,1)+size(c,1)+2*Busnum*3,size(H,1)+size(c,1)+2*Busnum*3); % aa=aa+sparse(t+(Balance-1)*3+1,t+(Balance-1)*3+1,ones(length(Balance),1),2*Busnum*3,2*Busnum*3); % aa=aa+sparse(t+(Balance-1)*3+2,t+(Balance-1)*3+2,ones(length(Balance),1),2*Busnum*3,2*Busnum*3); % aa=aa+sparse(t+(Balance-1)*3+3,t+(Balance-1)*3+3,ones(length(Balance),1),2*Busnum*3,2*Busnum*3);