www.pudn.com > OPF.zip > Correction.m, change:2013-02-25,size:1237b


%% *************************************************************** 
%             作者:陆镛 
%             原创日期:2012年11月29号 
%             修改日期:2012年12月2号 
%             函数说明:修正各变量。 
%% *************************************************************** 
function [Pg,Qr,AngleU,AmplitudeU,y,l,u,w,z] = Correction(Jmatrix,Lxx,Ly,Lz,Lw... 
    ,Pg,Qr,AngleU,AmplitudeU,y,l,u,w,z,InequalityJmatrix,PvNum,GenNum,... 
    NodeNum,Luu,Llu,L,U,W,Z)    
%% ************************************************************** 
dxy=Jmatrix\[Lxx;-Ly]; 
 
dx=dxy(1:PvNum+GenNum+2*NodeNum); 
dy=dxy(1+PvNum+GenNum+2*NodeNum:PvNum+GenNum+4*NodeNum);                                                                                            
du=-InequalityJmatrix'*dx-Lw; 
dw=-U\W*du-U\Luu; 
dl=InequalityJmatrix'*dx+Lz; 
dz=-L\Z*dl-L\Llu; 
 
ap=0.9995*min([-l(dl<0)./dl(dl<0);-u(du<0)./du(du<0);1]);       
ad=0.9995*min([-z(dz<0)./dz(dz<0);-w(dw>0)./dw(dw>0);1]);  
 
x=[Pg;Qr;AngleU;AmplitudeU]+ap*dx; 
l=l+ap*dl; 
u=u+ap*du; 
y=y+ad*dy; 
z=z+ad*dz; 
w=w+ad*dw; 
 
Pg=x(1:GenNum); 
Qr=x(GenNum+1:GenNum+PvNum); 
AngleU=x(GenNum+PvNum+1:GenNum+PvNum+NodeNum); 
AmplitudeU=x(GenNum+PvNum+NodeNum+1:GenNum+PvNum+2*NodeNum); 
end