58 lines
2.9 KiB
Matlab
58 lines
2.9 KiB
Matlab
function [const,Lz,Lw,L1,U1,hx,origConst,gxx,gsx]=snd_Constant(nodeNum,opfGoal,lineNum,transNum,transI,...
|
||
transJ,transG,transB,lineI,lineJ,balNode,mu,G,B,GIJ,BIJ,e,f,Pmin,Pmax,a,b,PG,QR,pvQmin,pvQmax,...
|
||
pgNum,pgvNum,xNum,pgNode,pvNode,dhx,dgx,L1,U1,LZ,UW,l,u,y,r,dT_Zt,capNum,z,w,Vmin,Vmax,hx)
|
||
%程序功能:光滑处理过程,形成扰动KKT方程不平衡量矩阵
|
||
%编写时间:2010年11月
|
||
|
||
%% 形成目标函数的一阶偏导矩阵▽f(.)
|
||
if(opfGoal==2)
|
||
dPG=ones(pgNum,1);
|
||
dfx=sparse(transNum+1:transNum+pgNum,ones(pgNum,1),dPG,xNum,1);
|
||
else if(opfGoal==1)
|
||
dPG=2*a(pgNode).*PG(pgNode)+b(pgNode);
|
||
dfx=sparse(transNum+1:transNum+pgNum,ones(pgNum,1),dPG,xNum,1);
|
||
else if(opfGoal==3)
|
||
dfT=-1*transG.*dT_Zt.*((f(transI)-f(transJ)).^2+(e(transI)-e(transJ)).^2);
|
||
dfPQ=zeros(pgvNum,1);
|
||
dfcapK=zeros(capNum,1);
|
||
EE=e*ones(1,nodeNum);
|
||
FF=f*ones(1,nodeNum);
|
||
dfe=2*sum(G.*(EE-EE'));
|
||
dff=2*sum(G.*(FF-FF'));
|
||
dfx=[dfT;dfPQ;dfcapK;dfe';dff'];
|
||
else if(opfGoal==4)
|
||
dfT=1*transB.*dT_Zt.*((f(transI)-f(transJ)).^2+(e(transI)-e(transJ)).^2);
|
||
dfPQ=zeros(pgvNum,1);
|
||
dfcapK=zeros(capNum,1);
|
||
EE=e*ones(1,nodeNum);
|
||
FF=f*ones(1,nodeNum);
|
||
dfe=2*sum(B.*(EE-EE'));
|
||
dff=2*sum(B.*(FF-FF'));
|
||
dfx=[dfT;dfPQ;dfcapK;dfe';dff'];
|
||
end
|
||
end
|
||
end
|
||
end
|
||
%% 不等式约束项
|
||
gxv=[PG(pgNode);QR(pvNode);e.^2+f.^2]; %约束条件当前值
|
||
gxvx=[Pmin(pgNode);pvQmin(pvNode);Vmin.*Vmin]; %约束下限
|
||
gxvs=[Pmax(pgNode);pvQmax(pvNode);Vmax.*Vmax]; %约束上限
|
||
gxl=(e(lineI).*e(lineI)+f(lineI).*f(lineI)-e(lineI).*e(lineJ)-f(lineI).*f(lineJ)).*GIJ+(e(lineI).*f(lineJ)-e(lineJ).*f(lineI)).*BIJ;%线路功率当前值
|
||
gxlx=-ones(lineNum,1)*1000; %线路约束下限
|
||
gxls=ones(lineNum,1)*1000; %线路约束上限
|
||
gx=[gxv;gxl]; %组合所有约束条件
|
||
gxx=[gxvx;gxlx];
|
||
gsx=[gxvs;gxls];
|
||
Lz=gx-l-gxx;
|
||
Lw=gx+u-gsx;
|
||
%% 形成修正方程常数项向量
|
||
muUL=mu*(U1-L1);
|
||
BB1=UW*Lw-LZ*Lz-muUL*ones(r,1);
|
||
BB=dhx*y-dfx+dgx*BB1; %修正方程常数项ψ(.,μ)
|
||
BB(transNum+pgvNum+capNum+nodeNum+balNode,1)=0; %保持平衡节点电压虚部不变,始终为0,则常数项平衡节点处置0
|
||
BB(transNum+pgvNum+capNum+balNode,1)=0; %保持平衡节点电压实部不变
|
||
const=[BB;hx]; %修正方程常数项向量
|
||
BB0=dhx*y-dfx+dgx*(z+w); %此部分在求步长时使用
|
||
BB0(transNum+pgvNum+capNum+nodeNum+balNode,1)=0;
|
||
BB0(transNum+pgvNum+capNum+balNode,1)=0;
|
||
origConst=[BB0;hx]; |