60 lines
3.0 KiB
Matlab
60 lines
3.0 KiB
Matlab
function [const,Lz,Lw,L1,U1]=Constant(nodeNum,opfGoal,lineNum,transNum,transI,transJ,transG,transB,...
|
||
T,transKmin,transKmax,lineI,lineJ,balNode,mu,G,B,GIJ,BIJ,e,f,Pmin,Pmax,a,b,PG,QR,pvQmin,pvQmax,...
|
||
pgNum,pgvNum,xNum,capNum,capK,capKmin,capKmax,pgNode,pvNode,dhx,dgx,L1,U1,LZ,UW,l,u,y,r,capBi,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.*((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.*((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);capK;e.^2+f.^2]; %约束条件当前值
|
||
gxvx=[Pmin(pgNode);pvQmin(pvNode);capKmin.*capBi;Vmin.*Vmin]; %约束下限
|
||
gxvs=[Pmax(pgNode);pvQmax(pvNode);capKmax.*capBi;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; %线路约束上限
|
||
gxT=T;
|
||
gxTx=transKmin; %变比下限
|
||
gxTs=transKmax; %变比上限
|
||
|
||
gx=[gxT;gxv;gxl]; %组合所有约束条件
|
||
gxx=[gxTx;gxvx;gxlx];
|
||
gsx=[gxTs;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; %修正方程常数项ψ(.,μ)
|
||
balN=transNum+pgvNum+capNum+nodeNum+balNode;
|
||
balN1=transNum+pgvNum+capNum+balNode;
|
||
BB(balN,1)=0; %保持平衡节点电压虚部不变,始终为0,则常数项平衡节点处置0
|
||
BB(balN1,1)=0; %保持平衡节点电压实部不变
|
||
const=[BB;hx]; %修正方程常数项向量 |