收敛了
原因是Mat_G=FormG(SEVmf1,SEPD,SEQD,Loadi);写成了Mat_G=FormG(SEVaf1,SEPD,SEQD); Signed-off-by: dugg@lab-desk <dugg@lab-desk>
This commit is contained in:
parent
6c6b8f19fb
commit
e8e988ad20
|
|
@ -1,4 +1,4 @@
|
||||||
function [deltZ,deltL,deltW,deltU,deltX,deltY]=AssignXX1(XX,ContrlCount,RestraintCount,Busnum)
|
function [deltZ,deltL,deltW,deltU,deltX,deltY]=AssignXX(XX,ContrlCount,RestraintCount,Busnum)
|
||||||
deltX=XX(1:ContrlCount);
|
deltX=XX(1:ContrlCount);
|
||||||
k1=ContrlCount+2*Busnum;
|
k1=ContrlCount+2*Busnum;
|
||||||
deltY=XX(ContrlCount+1:k1);
|
deltY=XX(ContrlCount+1:k1);
|
||||||
|
|
@ -12,6 +12,5 @@ k2=k1;
|
||||||
k1=k2+RestraintCount;
|
k1=k2+RestraintCount;
|
||||||
deltL=XX(k2+1:k1);
|
deltL=XX(k2+1:k1);
|
||||||
k2=k1;
|
k2=k1;
|
||||||
k1=k2+RestraintCount;
|
deltU=XX(k2+1:end);
|
||||||
deltU=XX(k2+1:k1);
|
|
||||||
end
|
end
|
||||||
|
|
@ -3,7 +3,7 @@ tdeltLinx=find(deltL<0);
|
||||||
tdeltUinx=find(deltU<0);
|
tdeltUinx=find(deltU<0);
|
||||||
t1=-Init_L(tdeltLinx)./deltL(tdeltLinx);
|
t1=-Init_L(tdeltLinx)./deltL(tdeltLinx);
|
||||||
t2=-Init_U(tdeltUinx)./deltU(tdeltUinx);
|
t2=-Init_U(tdeltUinx)./deltU(tdeltUinx);
|
||||||
t3=[t1,t2];
|
t3=[t1;t2];
|
||||||
t4=min(t3);
|
t4=min(t3);
|
||||||
AlphaP=0.9995*min([t4 1]);
|
AlphaP=0.9995*min([t4 1]);
|
||||||
end
|
end
|
||||||
6
FormG.m
6
FormG.m
|
|
@ -1,7 +1,7 @@
|
||||||
function Mat_G=FormG(Volt,PD,QD)
|
function Mat_G=FormG(Volt,PD,QD,Loadi)
|
||||||
Mat_G=[
|
Mat_G=[
|
||||||
sparse(PD);
|
PD(Loadi);
|
||||||
sparse(QD);
|
QD(Loadi);
|
||||||
Volt;
|
Volt;
|
||||||
];
|
];
|
||||||
end
|
end
|
||||||
6
FormLw.m
6
FormLw.m
|
|
@ -1,7 +1,7 @@
|
||||||
function Lw=FormLw(Mat_G,Init_U,Busnum,Loadi)
|
function Lw=FormLw(Mat_G,Init_U,Busnum,Loadi)
|
||||||
VoltU=sparse(1.1*ones(Busnum,1));
|
VoltU=sparse(1.2*ones(Busnum,1));
|
||||||
PDU=sparse(1.5*ones(length(Loadi),1));
|
PDU=sparse(2*ones(length(Loadi),1));
|
||||||
QDU=sparse(1.5*ones(length(Loadi),1));
|
QDU=sparse(2*ones(length(Loadi),1));
|
||||||
t1=[PDU;
|
t1=[PDU;
|
||||||
QDU;
|
QDU;
|
||||||
VoltU];
|
VoltU];
|
||||||
|
|
|
||||||
6
FormLz.m
6
FormLz.m
|
|
@ -1,7 +1,7 @@
|
||||||
function Lz=FormLz(Mat_G,Init_L,Busnum,Loadi)
|
function Lz=FormLz(Mat_G,Init_L,Busnum,Loadi)
|
||||||
VoltL=sparse(0.9*ones(Busnum,1));
|
VoltL=sparse(0.8*ones(Busnum,1));
|
||||||
PDL=sparse(0*ones(length(Loadi),1));
|
PDL=sparse(-2*ones(length(Loadi),1));
|
||||||
QDL=sparse(0*ones(length(Loadi),1));
|
QDL=sparse(-2*ones(length(Loadi),1));
|
||||||
t1=[PDL;
|
t1=[PDL;
|
||||||
QDL;
|
QDL;
|
||||||
VoltL
|
VoltL
|
||||||
|
|
|
||||||
|
|
@ -2,4 +2,5 @@ function deltdeltF=func_deltdeltF(SEPD,ContrlCount)
|
||||||
deltdeltF=[
|
deltdeltF=[
|
||||||
0*zeros(ContrlCount);
|
0*zeros(ContrlCount);
|
||||||
];
|
];
|
||||||
|
deltdeltF=0;
|
||||||
end
|
end
|
||||||
15
run.m
15
run.m
|
|
@ -171,6 +171,7 @@ fprintf('
|
||||||
% VoltpC=Vp3m(3:3:end).*exp(1j*Vp3a(3:3:end));
|
% VoltpC=Vp3m(3:3:end).*exp(1j*Vp3a(3:3:end));
|
||||||
%% 用牛顿法求解end
|
%% 用牛顿法求解end
|
||||||
%% 开始进入状态估计
|
%% 开始进入状态估计
|
||||||
|
clear PD QD PG QG;
|
||||||
%状态量
|
%状态量
|
||||||
SEVoltpA=sparse(ones(busNum,1));
|
SEVoltpA=sparse(ones(busNum,1));
|
||||||
SEVoltpB=sparse(ones(busNum,1)).*exp(1j*-120/180*pi);
|
SEVoltpB=sparse(ones(busNum,1)).*exp(1j*-120/180*pi);
|
||||||
|
|
@ -184,8 +185,8 @@ SEphaseCSpotLoadQ=zeros(length(phaseCSpotLoadQ),1);
|
||||||
%
|
%
|
||||||
SEVmf1=sparse(ones(busNum,1));
|
SEVmf1=sparse(ones(busNum,1));
|
||||||
SEVaf1=sparse(zeros(busNum,1));
|
SEVaf1=sparse(zeros(busNum,1));
|
||||||
SEPD=sparse(length(Loadi),1);
|
SEPD=sparse(zeros(busNum,1));
|
||||||
SEQD=sparse(length(Loadi),1);
|
SEQD=sparse(zeros(busNum,1));
|
||||||
KK=0;
|
KK=0;
|
||||||
plotGap=zeros(1,60);
|
plotGap=zeros(1,60);
|
||||||
%初始化
|
%初始化
|
||||||
|
|
@ -201,9 +202,11 @@ Init_Y=sparse(2*busNum,1);%
|
||||||
Gap=(Init_L'*Init_Z-Init_U'*Init_W);
|
Gap=(Init_L'*Init_Z-Init_U'*Init_W);
|
||||||
PG=sparse(busNum,1);
|
PG=sparse(busNum,1);
|
||||||
PG(Balance)=0.1105;
|
PG(Balance)=0.1105;
|
||||||
QD=sparse(busNum,1);
|
QG=sparse(busNum,1);
|
||||||
QG(Balance)=0.0984;
|
QG(Balance)=0.0984;
|
||||||
while Gap>1e-5 && KK<60
|
SEPD(2)=0.1105;
|
||||||
|
SEQD(2)=0.0984;
|
||||||
|
while Gap>1e-5 && KK<20
|
||||||
KK=KK+1;
|
KK=KK+1;
|
||||||
Init_u=Gap/2/RestraintCount*CenterA;
|
Init_u=Gap/2/RestraintCount*CenterA;
|
||||||
deltH=func_deltH(busNum,SEVmf1,fsY1amp,SEVaf1,r,c,fsY1ang,Loadi);
|
deltH=func_deltH(busNum,SEVmf1,fsY1amp,SEVaf1,r,c,fsY1ang,Loadi);
|
||||||
|
|
@ -216,7 +219,7 @@ while Gap>1e-5 && KK<60
|
||||||
deltF=func_deltF(SEPD,ContrlCount);
|
deltF=func_deltF(SEPD,ContrlCount);
|
||||||
Luu=Init_U.*Init_W+Init_u*ones(RestraintCount,1);
|
Luu=Init_U.*Init_W+Init_u*ones(RestraintCount,1);
|
||||||
Lul=Init_L.*Init_Z-Init_u*ones(RestraintCount,1);
|
Lul=Init_L.*Init_Z-Init_u*ones(RestraintCount,1);
|
||||||
Mat_G=FormG(SEVaf1,SEPD,SEQD);
|
Mat_G=FormG(SEVmf1,SEPD,SEQD,Loadi);
|
||||||
Mat_H=FormH(busNum,SEVmf1,PG,SEPD,QG,SEQD,fsY1amp,SEVaf1,r,c,fsY1ang);
|
Mat_H=FormH(busNum,SEVmf1,PG,SEPD,QG,SEQD,fsY1amp,SEVaf1,r,c,fsY1ang);
|
||||||
Ly=Mat_H;
|
Ly=Mat_H;
|
||||||
Lz=FormLz(Mat_G,Init_L,busNum,Loadi);
|
Lz=FormLz(Mat_G,Init_L,busNum,Loadi);
|
||||||
|
|
@ -228,6 +231,6 @@ while Gap>1e-5 && KK<60
|
||||||
fprintf('迭代次数 %d Gap %f\n',KK,plotGap(KK));
|
fprintf('迭代次数 %d Gap %f\n',KK,plotGap(KK));
|
||||||
XX=SolveIt(deltF,deltG,Init_L,Init_Z,Init_U,Init_W,deltdeltF,ddh,ddg,deltH,Init_Y,Ly,Lz,ContrlCount,Lw,Lul,Luu,Lx,Balance,busNum,Loadi);
|
XX=SolveIt(deltF,deltG,Init_L,Init_Z,Init_U,Init_W,deltdeltF,ddh,ddg,deltH,Init_Y,Ly,Lz,ContrlCount,Lw,Lul,Luu,Lx,Balance,busNum,Loadi);
|
||||||
[deltZ,deltL,deltW,deltU,deltX,deltY]=AssignXX(XX,ContrlCount,RestraintCount,busNum);
|
[deltZ,deltL,deltW,deltU,deltX,deltY]=AssignXX(XX,ContrlCount,RestraintCount,busNum);
|
||||||
[Init_Z,Init_L,Init_W,Init_U,Init_Y,PG,QG,Volt,UAngel,PD,QD]=Modification(Init_Z,Init_L,Init_W,Init_U,Init_Y,deltZ,deltL,deltW,deltU,deltX,deltY,PG,QG,SEVmf1,SEVaf1,ContrlCount,Balance,busNum,PD,QD,Loadi);
|
[Init_Z,Init_L,Init_W,Init_U,Init_Y,PG,QG,SEVmf1,SEVaf1,SEPD,SEQD]=Modification(Init_Z,Init_L,Init_W,Init_U,Init_Y,deltZ,deltL,deltW,deltU,deltX,deltY,PG,QG,SEVmf1,SEVaf1,ContrlCount,Balance,busNum,SEPD,SEQD,Loadi);
|
||||||
Gap=(Init_L'*Init_Z-Init_U'*Init_W);
|
Gap=(Init_L'*Init_Z-Init_U'*Init_W);
|
||||||
end
|
end
|
||||||
Loading…
Reference in New Issue