这个版本是只有电压幅值和相角为变量,包含0注入约束。
Signed-off-by: dmy@lab <dmy@lab.lab>
This commit is contained in:
parent
ad81ecb6cc
commit
1714aed115
15
AssignXX.m
15
AssignXX.m
|
|
@ -1,18 +1,13 @@
|
|||
function [deltX,deltY]=AssignXX(XX,ContrlCount,Loadi,Balance,Busnum)
|
||||
% deltX=XX(1:14);
|
||||
% deltY=XX(15:24);
|
||||
% deltZ=XX(25:38);
|
||||
% deltW=XX(39:52);
|
||||
% deltL=XX(53:66);
|
||||
% deltU=XX(67:80);
|
||||
deltX=XX(1:ContrlCount);
|
||||
t=size(Loadi,1)*2;
|
||||
deltX=XX(1:Busnum*3*2);
|
||||
t=0;
|
||||
deltX(t+(Balance-1)*3+1)=0;
|
||||
deltX(t+(Balance-1)*3+2)=0;
|
||||
deltX(t+(Balance-1)*3+3)=0;
|
||||
t=size(Loadi,1)*2+Busnum*3;
|
||||
t=Busnum*3;
|
||||
deltX(t+(Balance-1)*3+1)=0;
|
||||
deltX(t+(Balance-1)*3+2)=0;
|
||||
deltX(t+(Balance-1)*3+3)=0;
|
||||
deltY=XX(ContrlCount+1:end);
|
||||
t=Busnum*3*2;
|
||||
deltY=XX(t+1:end);
|
||||
end
|
||||
6
FormH.m
6
FormH.m
|
|
@ -6,8 +6,10 @@ function Mat_H=FormH(Busnum,Volt,PG,PD,QG,QD,Y,UAngel,r,c,Angle,Loadi)
|
|||
%%
|
||||
%PD(Loadi)=QD(Loadi)./tan(acos(0.98));
|
||||
AngleIJ=sparse(r,c,UAngel(r)-UAngel(c)-Angle,Busnum*3,Busnum*3);
|
||||
dP=PG-sparse(Loadi,1,PD,Busnum*3,1)-diag(Volt)*Y.*cos(AngleIJ)*Volt;
|
||||
dQ=QG-sparse(Loadi,1,QD,Busnum*3,1)-diag(Volt)*Y.*sin(AngleIJ)*Volt;
|
||||
% dP=-sparse(Loadi,1,PD,Busnum*3,1)-diag(Volt)*Y.*cos(AngleIJ)*Volt;
|
||||
% dQ=-sparse(Loadi,1,QD,Busnum*3,1)-diag(Volt)*Y.*sin(AngleIJ)*Volt;
|
||||
dP=diag(Volt)*Y.*cos(AngleIJ)*Volt;
|
||||
dQ=diag(Volt)*Y.*sin(AngleIJ)*Volt;
|
||||
|
||||
Mat_H=[dP;dQ;];
|
||||
Mat_H=sparse(Mat_H);
|
||||
|
|
|
|||
|
|
@ -1,12 +1,9 @@
|
|||
function [Init_Y,PG,QG,Volt,UAngel,PD,QD]=Modification(Init_Y,deltX,deltY,PG,QG,Volt,UAngel,ContrlCount,Balance,Busnum,PD,QD,Loadi)
|
||||
Init_Y=Init_Y+deltY';
|
||||
Init_Y=Init_Y+deltY;
|
||||
t=deltX(1:size(Loadi,1)*2);
|
||||
PD=PD+t(1:length(Loadi));
|
||||
QD=QD+t(length(Loadi)+1:length(Loadi)*2);
|
||||
t=deltX(size(Loadi,1)*2+1:ContrlCount)';
|
||||
t(Busnum*3+(Balance-1)*3+1)=0;
|
||||
t(Busnum*3+(Balance-1)*3+2)=0;
|
||||
t(Busnum*3+(Balance-1)*3+3)=0;
|
||||
t=deltX(1:Busnum*3*2)';
|
||||
%Volt=Volt+AlphaP*t(2:2:2*Busnum);暂时改一下20111227
|
||||
%UAngel=UAngel+AlphaP*t(1:2:2*Busnum);暂时改一下20111227
|
||||
% balVolt=Volt( (Balance-1)*3+1 );
|
||||
|
|
@ -14,5 +11,8 @@ Volt=Volt+t(1:Busnum*3)';
|
|||
Volt( (Balance-1)*3+1 )=1;
|
||||
Volt( (Balance-1)*3+2 )=1;
|
||||
Volt( (Balance-1)*3+3 )=1;
|
||||
t(Busnum*3+(Balance-1)*3+1)=0;
|
||||
t(Busnum*3+(Balance-1)*3+2)=0;
|
||||
t(Busnum*3+(Balance-1)*3+3)=0;
|
||||
UAngel=UAngel+t(Busnum*3+1:2*Busnum*3)';
|
||||
end
|
||||
93
OPF.m
93
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('./../DistributionNetwork-Power2Current/modified-feeder69\lineParameter.txt');
|
||||
lineZ=readLineZ('feeder13\lineParameter.txt');
|
||||
[ fsY0, fsY1, fsY2,phaseASpotLoadP,phaseBSpotLoadP,phaseCSpotLoadP ...
|
||||
phaseASpotLoadQ,phaseBSpotLoadQ,phaseCSpotLoadQ,setIJ,nodeNum,Balance,phaseABCY ...
|
||||
cap]=dataRead(lineZ,'./../DistributionNetwork-Power2Current/modified-feeder69\data-ijÏàû¸ººÉ.txt');
|
||||
cap]=dataRead(lineZ,'feeder13\data1.txt');
|
||||
% phaseASpotLoadP(phaseASpotLoadP==0)=0.002;
|
||||
% phaseBSpotLoadP(phaseBSpotLoadP==0)=0.002;
|
||||
% phaseCSpotLoadP(phaseCSpotLoadP==0)=0.002;
|
||||
|
|
@ -15,36 +15,36 @@ lineZ=readLineZ('./../DistributionNetwork-Power2Current/modified-feeder69\linePa
|
|||
% phaseCSpotLoadQ(phaseCSpotLoadQ==0)=0.002;
|
||||
|
||||
%负荷不平衡
|
||||
for I=1:length(phaseASpotLoadP)
|
||||
roll=mod(round(rand()*10),3);
|
||||
if roll==0
|
||||
phaseBSpotLoadP(I)=phaseBSpotLoadP(I)+phaseASpotLoadP(I)*.45;
|
||||
phaseCSpotLoadP(I)=phaseCSpotLoadP(I)+phaseASpotLoadP(I)*.45;
|
||||
phaseASpotLoadP(I)=phaseASpotLoadP(I)*.10;
|
||||
|
||||
phaseBSpotLoadQ(I)=phaseBSpotLoadQ(I)+phaseASpotLoadQ(I)*.45;
|
||||
phaseCSpotLoadQ(I)=phaseCSpotLoadQ(I)+phaseASpotLoadQ(I)*.45;
|
||||
phaseASpotLoadQ(I)=phaseASpotLoadQ(I)*.10;
|
||||
end
|
||||
if roll==1
|
||||
phaseASpotLoadP(I)=phaseASpotLoadP(I)+phaseBSpotLoadP(I)*.45;
|
||||
phaseCSpotLoadP(I)=phaseCSpotLoadP(I)+phaseBSpotLoadP(I)*.45;
|
||||
phaseBSpotLoadP(I)=phaseBSpotLoadP(I)*.10;
|
||||
|
||||
phaseASpotLoadQ(I)=phaseASpotLoadQ(I)+phaseBSpotLoadQ(I)*.45;
|
||||
phaseCSpotLoadQ(I)=phaseCSpotLoadQ(I)+phaseBSpotLoadQ(I)*.45;
|
||||
phaseBSpotLoadQ(I)=phaseBSpotLoadQ(I)*.10;
|
||||
end
|
||||
if roll==2
|
||||
phaseASpotLoadP(I)=phaseASpotLoadP(I)+phaseCSpotLoadP(I)*.45;
|
||||
phaseBSpotLoadP(I)=phaseBSpotLoadP(I)+phaseCSpotLoadP(I)*.45;
|
||||
phaseCSpotLoadP(I)=phaseCSpotLoadP(I)*.10;
|
||||
|
||||
phaseASpotLoadQ(I)=phaseASpotLoadQ(I)+phaseCSpotLoadQ(I)*.45;
|
||||
phaseBSpotLoadQ(I)=phaseBSpotLoadQ(I)+phaseCSpotLoadQ(I)*.45;
|
||||
phaseCSpotLoadQ(I)=phaseCSpotLoadQ(I)*.10;
|
||||
end
|
||||
end
|
||||
% for I=1:length(phaseASpotLoadP)
|
||||
% roll=mod(round(rand()*10),3);
|
||||
% if roll==0
|
||||
% phaseBSpotLoadP(I)=phaseBSpotLoadP(I)+phaseASpotLoadP(I)*.45;
|
||||
% phaseCSpotLoadP(I)=phaseCSpotLoadP(I)+phaseASpotLoadP(I)*.45;
|
||||
% phaseASpotLoadP(I)=phaseASpotLoadP(I)*.10;
|
||||
%
|
||||
% phaseBSpotLoadQ(I)=phaseBSpotLoadQ(I)+phaseASpotLoadQ(I)*.45;
|
||||
% phaseCSpotLoadQ(I)=phaseCSpotLoadQ(I)+phaseASpotLoadQ(I)*.45;
|
||||
% phaseASpotLoadQ(I)=phaseASpotLoadQ(I)*.10;
|
||||
% end
|
||||
% if roll==1
|
||||
% phaseASpotLoadP(I)=phaseASpotLoadP(I)+phaseBSpotLoadP(I)*.45;
|
||||
% phaseCSpotLoadP(I)=phaseCSpotLoadP(I)+phaseBSpotLoadP(I)*.45;
|
||||
% phaseBSpotLoadP(I)=phaseBSpotLoadP(I)*.10;
|
||||
%
|
||||
% phaseASpotLoadQ(I)=phaseASpotLoadQ(I)+phaseBSpotLoadQ(I)*.45;
|
||||
% phaseCSpotLoadQ(I)=phaseCSpotLoadQ(I)+phaseBSpotLoadQ(I)*.45;
|
||||
% phaseBSpotLoadQ(I)=phaseBSpotLoadQ(I)*.10;
|
||||
% end
|
||||
% if roll==2
|
||||
% phaseASpotLoadP(I)=phaseASpotLoadP(I)+phaseCSpotLoadP(I)*.45;
|
||||
% phaseBSpotLoadP(I)=phaseBSpotLoadP(I)+phaseCSpotLoadP(I)*.45;
|
||||
% phaseCSpotLoadP(I)=phaseCSpotLoadP(I)*.10;
|
||||
%
|
||||
% phaseASpotLoadQ(I)=phaseASpotLoadQ(I)+phaseCSpotLoadQ(I)*.45;
|
||||
% phaseBSpotLoadQ(I)=phaseBSpotLoadQ(I)+phaseCSpotLoadQ(I)*.45;
|
||||
% phaseCSpotLoadQ(I)=phaseCSpotLoadQ(I)*.10;
|
||||
% end
|
||||
% end
|
||||
|
||||
|
||||
%% 潮流计算begin
|
||||
|
|
@ -143,7 +143,6 @@ while(k<=kmax+10 && maxD> EPS)
|
|||
%Vf2=fsY2\If2;
|
||||
Vf2=fsY2Q*(fsY2U\(fsY2L\(fsY2P*(fsY2R\If2))));
|
||||
fprintf('迭代时间%f\n',toc);
|
||||
|
||||
%
|
||||
end
|
||||
FortiscueToc=toc;
|
||||
|
|
@ -181,14 +180,22 @@ 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;
|
||||
%把发电机也作为负荷
|
||||
Loadi=[Loadi;(Balance-1)*3+1;(Balance-1)*3+2;(Balance-1)*3+3];
|
||||
PD3P=sparse(Busnum*3,1);
|
||||
QD3P=sparse(Busnum*3,1);
|
||||
PD3P(1:3:end)=phaseASpotLoadP*0.9;
|
||||
PD3P(2:3:end)=phaseBSpotLoadP*0.9;
|
||||
PD3P(3:3:end)=phaseCSpotLoadP*0.9;
|
||||
QD3P(1:3:end)=phaseASpotLoadQ*0.9;
|
||||
QD3P(2:3:end)=phaseBSpotLoadQ*0.9;
|
||||
QD3P(3:3:end)=phaseCSpotLoadQ*0.9;
|
||||
phaseASpotLoadP(Balance)=-real(PGQG((Balance-1)*3+1));
|
||||
phaseBSpotLoadP(Balance)=-real(PGQG((Balance-1)*3+2));
|
||||
phaseCSpotLoadP(Balance)=-real(PGQG((Balance-1)*3+3));
|
||||
phaseASpotLoadQ(Balance)=-imag(PGQG((Balance-1)*3+1));
|
||||
phaseBSpotLoadQ(Balance)=-imag(PGQG((Balance-1)*3+2));
|
||||
phaseCSpotLoadQ(Balance)=-imag(PGQG((Balance-1)*3+3));
|
||||
% PD3P(1:3:end)=phaseASpotLoadP*0.9;
|
||||
% PD3P(2:3:end)=phaseBSpotLoadP*0.9;
|
||||
% PD3P(3:3:end)=phaseCSpotLoadP*0.9;
|
||||
% QD3P(1:3:end)=phaseASpotLoadQ*0.9;
|
||||
% QD3P(2:3:end)=phaseBSpotLoadQ*0.9;
|
||||
% QD3P(3:3:end)=phaseCSpotLoadQ*0.9;
|
||||
PD3P=PD3P(Loadi);
|
||||
QD3P=QD3P(Loadi);
|
||||
QGi3P=zeros(length(QGi)*3,1);
|
||||
|
|
@ -274,7 +281,7 @@ wQD(ismember( Loadi,noPQi3P))=1./(abs(mQD3P(ismember( Loadi,noPQi3P))*0.15).^2);
|
|||
%%
|
||||
% RestraintCount=size(Loadi,1)*2+length(rVoltABCV); %约束条件数
|
||||
% RestraintCount=size(Loadi,1)*2; %约束条件数
|
||||
Init_Y=sparse(1,2*Busnum*3);%Óëѧ½ãÒ»ÖÂ
|
||||
Init_Y=sparse(length(setdiff(1:Busnum*3,Loadi))*2,1);%与学姐一致
|
||||
KK=0;
|
||||
ContrlCount=size(Loadi,1)*2+Busnum*6;
|
||||
kmax=200;
|
||||
|
|
@ -294,7 +301,7 @@ while(maxD>Precision)
|
|||
end
|
||||
%% 开始计算OPF
|
||||
%% 形成等式约束的雅克比
|
||||
deltH=func_deltH(Busnum,Volt,Y,UAngel,r,c,Yangle,Loadi);
|
||||
dH_dx = jacobian_M(Busnum,Volt,Y,Yangle,UAngel,r,c); %形成雅克比矩阵
|
||||
%% 形成不等式约束的雅克比
|
||||
%% 开始构建ddg
|
||||
%% 开始构建deltF
|
||||
|
|
@ -303,7 +310,7 @@ while(maxD>Precision)
|
|||
Mat_H=FormH(Busnum,Volt,PG3P,PD3P,QG3P,QD3P,Y,UAngel,r,c,Yangle,Loadi);
|
||||
%% 开始解方程
|
||||
% fprintf('迭代次数 %d Gap %f\n',KK+1,plotGap(KK+1));
|
||||
XX=SolveIt(deltH,ContrlCount,Balance,Busnum,Loadi,deltF,mPD3P,PD3P,mQD3P,QD3P,mVoltABCV,Volt,Mat_H,wVolt,wPD,wQD);
|
||||
XX=SolveIt(ContrlCount,Balance,Busnum,Loadi,deltF,mPD3P,PD3P,mQD3P,QD3P,mVoltABCV,Volt,Mat_H,wVolt,wPD,wQD,dH_dx);
|
||||
%%取各分量
|
||||
[deltX,deltY]=AssignXX(XX,ContrlCount,Loadi,Balance,Busnum);
|
||||
[Init_Y,PG,QG,Volt,UAngel,PD3P,QD3P]=Modification(Init_Y,deltX,deltY,PG,QG,Volt,UAngel,ContrlCount,Balance,Busnum,PD3P,QD3P,Loadi);
|
||||
|
|
@ -313,6 +320,8 @@ while(maxD>Precision)
|
|||
end
|
||||
totalTime=toc
|
||||
(rVoltABCV-Volt)./rVoltABCV*100;
|
||||
PD3P=-Mat_H(Loadi);
|
||||
QD3P=-Mat_H(Loadi+Busnum*3);
|
||||
%% 计算统计量
|
||||
%目标函数均值
|
||||
JMeasurement=sum(((mVoltABCV-Volt)./mVoltABCV./sigma).^2)+sum(((mPD3P-PD3P)./mPD3P./sigma).^2)+sum(((mQD3P-QD3P)./mQD3P./sigma).^2);
|
||||
|
|
|
|||
67
SolveIt.m
67
SolveIt.m
|
|
@ -1,59 +1,66 @@
|
|||
function XX=SolveIt(deltH,ContrlCount,Balance,Busnum,Loadi,deltF,PD0,PD,QD0,QD,mVolt,Volt,Mat_H,wVolt,wPD,wQD)
|
||||
% LxComa=FormLxComa(Lx);%Lx=deltF-deltH*Init_Y';
|
||||
% Lx=LxComa;
|
||||
% H=-deltdeltF+ddh;
|
||||
% aa=[
|
||||
% H,deltH;
|
||||
% deltH',zeros(size(Init_Y,2));
|
||||
% ];
|
||||
aa=[
|
||||
deltF'*diag([wPD ;wQD ;wVolt])*deltF deltH'
|
||||
deltH zeros(size(deltH,1),size(deltH',2))
|
||||
];
|
||||
% yy=[Lx;-Ly];
|
||||
% t3=2*wPD.*(PD-PD0);
|
||||
% t4=2*wQD.*(QD-QD0);
|
||||
% t5=2*wVolt.*(Volt-mVolt);
|
||||
function XX=SolveIt(ContrlCount,Balance,Busnum,Loadi,deltF,PD0,PD,QD0,QD,mVolt,Volt,Mat_H,wVolt,wPD,wQD,dH_dx)
|
||||
% dH_dx
|
||||
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)];
|
||||
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,:)];
|
||||
aa=[H'*diag([wPD;wQD;wVolt])*H c'
|
||||
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);
|
||||
];
|
||||
yy=[
|
||||
deltF'*diag([wPD; wQD; wVolt])*deltZ;
|
||||
-Mat_H ;
|
||||
H'*diag([wPD;wQD;wVolt])*deltZ;
|
||||
-Mat_H(setdiff(1:Busnum*3,Loadi));
|
||||
-Mat_H(setdiff(1:Busnum*3,Loadi)+Busnum*3);
|
||||
];
|
||||
% yy=[
|
||||
% H'*eye(length(H))*deltZ;
|
||||
% ];
|
||||
%% 平衡节点电压不变
|
||||
t=size(Loadi,1)*2;
|
||||
t=0;
|
||||
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(t+Balance,t+Balance)=1;
|
||||
aa=aa+sparse(t+(Balance-1)*3+1,t+(Balance-1)*3+1,ones(length(Balance),1),ContrlCount+2*Busnum*3,ContrlCount+2*Busnum*3);
|
||||
aa=aa+sparse(t+(Balance-1)*3+2,t+(Balance-1)*3+2,ones(length(Balance),1),ContrlCount+2*Busnum*3,ContrlCount+2*Busnum*3);
|
||||
aa=aa+sparse(t+(Balance-1)*3+3,t+(Balance-1)*3+3,ones(length(Balance),1),ContrlCount+2*Busnum*3,ContrlCount+2*Busnum*3);
|
||||
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),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=size(Loadi,1)*2+Busnum*3;
|
||||
t=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(t+Balance,t+Balance)=1;
|
||||
aa=aa+sparse(t+(Balance-1)*3+1,t+(Balance-1)*3+1,ones(length(Balance),1),ContrlCount+2*Busnum*3,ContrlCount+2*Busnum*3);
|
||||
aa=aa+sparse(t+(Balance-1)*3+2,t+(Balance-1)*3+2,ones(length(Balance),1),ContrlCount+2*Busnum*3,ContrlCount+2*Busnum*3);
|
||||
aa=aa+sparse(t+(Balance-1)*3+3,t+(Balance-1)*3+3,ones(length(Balance),1),ContrlCount+2*Busnum*3,ContrlCount+2*Busnum*3);
|
||||
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),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);
|
||||
%%
|
||||
dxdy=aa\yy;
|
||||
%% KLU
|
||||
%spy(aa)
|
||||
%dxdy = klu(aa,'\',full(yy));
|
||||
%%
|
||||
dX=dxdy(1:ContrlCount);
|
||||
dY=dxdy(ContrlCount+1:end);
|
||||
dX=dxdy(1:Busnum*3*2);
|
||||
dY=dxdy(Busnum*3*2+1:end);
|
||||
XX=[
|
||||
dX;
|
||||
dY;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,60 @@
|
|||
650 4.16
|
||||
0
|
||||
600 632 645 50
|
||||
602 632 633 50
|
||||
601 633 634 60
|
||||
600 645 646 30
|
||||
601 650 632 200
|
||||
602 684 652 80
|
||||
601 632 671 200
|
||||
600 671 684 30
|
||||
600 671 692 30
|
||||
602 684 611 30
|
||||
601 692 675 50
|
||||
0
|
||||
692 0 0 0
|
||||
0
|
||||
684 120 90 120 90 160 110
|
||||
633 120 90 120 90 160 110
|
||||
632 120 90 120 90 160 110
|
||||
634 120 90 120 90 160 110
|
||||
645 40 30 50 40 60 50
|
||||
646 100 50 70 40 60 40
|
||||
652 20 10 60 30 40 40
|
||||
671 385 220 385 220 385 220
|
||||
675 68 60 290 212 285 190
|
||||
692 260 200 40 40 70 40
|
||||
611 80 20 60 40 30 20
|
||||
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
|
||||
634 160 110 120 90 120 90
|
||||
645 123 102 170 125 133 110
|
||||
646 17 15 23 13 21 16
|
||||
652 128 86 30 10 80 70
|
||||
675 85 10 68 60 20 12
|
||||
611 52 42 85 60 70 40
|
||||
680 12 4 10 6 7 4
|
||||
|
||||
17
jacobian_M.m
17
jacobian_M.m
|
|
@ -8,13 +8,12 @@ function [Jacob]=jacobian_M3(Busnum,Volt,Y,Angle,UAngel,r,c)
|
|||
%% 分别求雅克比矩阵的子阵H,L,N,J及有功无功分量P,Q
|
||||
AngleIJ=UAngel(r)-UAngel(c)-Angle;
|
||||
mat_AngleIJ=sparse(r,c,AngleIJ,Busnum*3,Busnum*3);
|
||||
mat_IvAngleIJ=mat_AngleIJ';
|
||||
H=sparse(1:Busnum*3,1:Busnum*3,Volt,Busnum*3,Busnum*3)*Y.*sin(mat_IvAngleIJ)*sparse(1:Busnum*3,1:Busnum*3,Volt,Busnum*3,Busnum*3)-sparse(1:Busnum*3,1:Busnum*3,Y.*sin(mat_AngleIJ)*Volt,Busnum*3,Busnum*3)*sparse(1:Busnum*3,1:Busnum*3,Volt,Busnum*3,Busnum*3);
|
||||
N=-sparse(1:Busnum*3,1:Busnum*3,Volt,Busnum*3,Busnum*3)*Y.*cos(mat_IvAngleIJ)*sparse(1:Busnum*3,1:Busnum*3,Volt,Busnum*3,Busnum*3)+sparse(1:Busnum*3,1:Busnum*3,Y.*cos(mat_AngleIJ)*Volt,Busnum*3,Busnum*3)*sparse(1:Busnum*3,1:Busnum*3,Volt,Busnum*3,Busnum*3);
|
||||
J=sparse(1:Busnum*3,1:Busnum*3,Y.*cos(mat_AngleIJ)*Volt,Busnum*3,Busnum*3)+Y.*cos(mat_IvAngleIJ)*sparse(1:Busnum*3,1:Busnum*3,Volt,Busnum*3,Busnum*3);
|
||||
L=sparse(1:Busnum*3,1:Busnum*3,Y.*sin(mat_AngleIJ)*Volt,Busnum*3,Busnum*3)+Y.*sin(mat_IvAngleIJ)*sparse(1:Busnum*3,1:Busnum*3,Volt,Busnum*3,Busnum*3);
|
||||
t1=[J,L;
|
||||
H,N;
|
||||
]';
|
||||
Jacob=-t1;
|
||||
H=sparse(1:Busnum*3,1:Busnum*3,Volt,Busnum*3,Busnum*3)*Y.*sin(mat_AngleIJ)*sparse(1:Busnum*3,1:Busnum*3,Volt,Busnum*3,Busnum*3)-sparse(1:Busnum*3,1:Busnum*3,Y.*sin(mat_AngleIJ)*Volt,Busnum*3,Busnum*3)*sparse(1:Busnum*3,1:Busnum*3,Volt,Busnum*3,Busnum*3);
|
||||
N=-sparse(1:Busnum*3,1:Busnum*3,Volt,Busnum*3,Busnum*3)*Y.*cos(mat_AngleIJ)*sparse(1:Busnum*3,1:Busnum*3,Volt,Busnum*3,Busnum*3)+sparse(1:Busnum*3,1:Busnum*3,Y.*cos(mat_AngleIJ)*Volt,Busnum*3,Busnum*3)*sparse(1:Busnum*3,1:Busnum*3,Volt,Busnum*3,Busnum*3);
|
||||
J=sparse(1:Busnum*3,1:Busnum*3,Y.*cos(mat_AngleIJ)*Volt,Busnum*3,Busnum*3)+Y.*cos(mat_AngleIJ)*sparse(1:Busnum*3,1:Busnum*3,Volt,Busnum*3,Busnum*3);
|
||||
L=sparse(1:Busnum*3,1:Busnum*3,Y.*sin(mat_AngleIJ)*Volt,Busnum*3,Busnum*3)+Y.*sin(mat_AngleIJ)*sparse(1:Busnum*3,1:Busnum*3,Volt,Busnum*3,Busnum*3);
|
||||
t1=[J,H;
|
||||
L,N;
|
||||
];
|
||||
Jacob=t1;
|
||||
end
|
||||
Loading…
Reference in New Issue