From d81d1fd26e06f28ea1d1f37ed5137831a4c89b7a Mon Sep 17 00:00:00 2001 From: "dugg@lab-desk" Date: Tue, 28 Oct 2014 22:43:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E4=B8=80=E7=A7=8D=E7=94=B5=E6=B5=81?= =?UTF-8?q?=E7=BA=A6=E6=9D=9F=E7=9A=84=E5=BD=A2=E5=BC=8F=EF=BC=8C=E8=BF=98?= =?UTF-8?q?=E6=B2=A1=E6=94=B9=E5=AE=8C=EF=BC=8C=E6=AD=A3=E5=9C=A8=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E4=B8=AD=E2=80=A6=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FormGstate1.m | 16 ++++++++++++++++ FormLwstate1.m | 5 +++++ FormLzstate1.m | 5 +++++ IPMLoop.m | 24 +++++++++++++++++++----- func_deltGstate1.m | 6 +++--- 5 files changed, 48 insertions(+), 8 deletions(-) create mode 100644 FormGstate1.m create mode 100644 FormLwstate1.m create mode 100644 FormLzstate1.m diff --git a/FormGstate1.m b/FormGstate1.m new file mode 100644 index 0000000..7972cd7 --- /dev/null +++ b/FormGstate1.m @@ -0,0 +1,16 @@ +function Mat_G=FormGstate1(I1r,I1i) +%t1=PG(PVi); +%GP=t1;%发电机P +%GP=[4.5 4.5]'; +%%线路 +%发电机Q +% t1=Volt'*Volt; +% t2=real(GB).*sin(AngleIJMat)-imag(GB).*cos(AngleIJMat); +% t3=t1.*t2; +% t4=sum(t3,2);%发电机Q +%GQ=t4; +Mat_G=[ + I1r; + I1i; + ]; +end \ No newline at end of file diff --git a/FormLwstate1.m b/FormLwstate1.m new file mode 100644 index 0000000..04ef34d --- /dev/null +++ b/FormLwstate1.m @@ -0,0 +1,5 @@ +function Lw=FormLwstate1(Loadi,Mat_G,Init_U,I1measurement) + +upper=0.2.*sparse(ones(length(Loadi)*2,1)); +Lw=Mat_G+Init_U-upper; +end \ No newline at end of file diff --git a/FormLzstate1.m b/FormLzstate1.m new file mode 100644 index 0000000..42baed0 --- /dev/null +++ b/FormLzstate1.m @@ -0,0 +1,5 @@ +function Lz=FormLzstate1(Loadi,Mat_G,Init_L,I1measurement) + +lower=-0.2*sparse(ones(length(Loadi)*2,1)); +Lz=Mat_G-Init_L-lower; +end \ No newline at end of file diff --git a/IPMLoop.m b/IPMLoop.m index bbf1748..1b05bf7 100644 --- a/IPMLoop.m +++ b/IPMLoop.m @@ -8,7 +8,7 @@ KK=0; plotGap=zeros(1,60); %初始化 %状态量为 SEPD SEQD SEVmf1 SEVaf1 -state=1; +state=1;%state1表示用l<=I1r<=u 这样的约束形式 if state==1 RestraintCount=length(Loadi)*2; else @@ -34,6 +34,7 @@ while(abs(Gap)>0.000001) deltH=func_deltH(busNum,fsY1,Loadi,Balance); %% 形成不等式约束的雅克比 if state==1 + deltG=func_deltGstate1(busNum,Loadi,I1r,I1i); else deltG=func_deltG(busNum,Loadi,I1r,I1i); end @@ -47,18 +48,31 @@ while(abs(Gap)>0.000001) % ddh=func_ddh(busNum,Loadi,Init_Z,Init_W); ddh=0; %% 开始构建ddg - ddg=func_ddg(busNum,Loadi,Init_Z,Init_W); + if state==1 + ddg=0; + else + ddg=func_ddg(busNum,Loadi,Init_Z,Init_W); + end %% 开始构建deltF deltF=func_deltF(V1measurement,wV1r,wV1i,I1measurement,wI1r,wI1i,busNum,fsY1,Loadi,V1r,V1i,I1r,I1i); % deltF=0; %% Luu=Init_U.*Init_W+Init_u*ones(RestraintCount,1); Lul=Init_L.*Init_Z-Init_u*ones(RestraintCount,1); - Mat_G=FormG(I1r,I1i); + if state==1 + Mat_G=FormGstate1(I1r,I1i); + else + Mat_G=FormG(I1r,I1i); + end Mat_H=FormH(fsY1,Loadi,V1r,V1i,I1r,I1i,BalI1r,BalI1i,Balance); Ly=Mat_H; - Lz=FormLz(Loadi,Mat_G,Init_L,I1measurement); - Lw=FormLw(Loadi,Mat_G,Init_U,I1measurement); + if state==1 + Lz=FormLzstate1(Loadi,Mat_G,Init_L,I1measurement); + Lw=FormLwstate1(Loadi,Mat_G,Init_U,I1measurement); + else + Lz=FormLz(Loadi,Mat_G,Init_L,I1measurement); + Lw=FormLw(Loadi,Mat_G,Init_U,I1measurement); + end Lx=FormLx(deltF,deltH,Init_Y,deltG,Init_Z,Init_W); YY=FormYY(Lul,Lz,Ly,Luu,Lw,Lx); %% 开始解方程 diff --git a/func_deltGstate1.m b/func_deltGstate1.m index 2db7db9..a4aab6e 100644 --- a/func_deltGstate1.m +++ b/func_deltGstate1.m @@ -1,7 +1,7 @@ function deltG=func_deltGstate1(busNum,Loadi,I1r,I1i) deltG=[ - zeros(busNum*2,length(Loadi)*1); - 2*eye(length(Loadi)*1)*diag(I1r); - 2*eye(length(Loadi)*1)*diag(I1i); + zeros(busNum*2,length(Loadi)*2); + 1*eye(length(Loadi)*1),zeros(length(Loadi)*1);%I1r + zeros(length(Loadi)*1),1*eye(length(Loadi)*1);%I1i ]; end \ No newline at end of file