ncp_sigmoid/NCP函数法/seting.m

74 lines
3.9 KiB
Matlab
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

function [e,f,PG,QR,Pg,Qg,T,pgvNum,xNum,m,r,l,u,z,w,x,y,mu,dmaxOut1,dmaxOut2,xz1,xz2,dmaxOut3,dmaxOut4,xz3,xz4,xz5,colmut1,hx,k2,opfGoal,times,secondBegin,Tn,Tn1,capKn,capKn1,kt0,q0,...
mut,mub,oneTrans,oneCap,para1,para2,para3,mismatch,ifconverge]=seting(nodeNum,lineNum,transNum,transK0,capNum,capK,pvQmin,pvQmax,pvNum,pvNode,pvV,pgNum,pgNode,Pmin,Pmax,Pg,Qg,centrPara)
%程序功能:预计算过程,初始化
%编写时间2010年11月
%% 设置计算参数
para1=0.6; %Arlfa计算最优步长所需参数
para2=0.05; %Gama
para3=0.76; %光滑参数修正量
para4=1.5; %光滑参数初始值
if nodeNum==30 %各测试系统要得到最好的优化结果,需要取不同的光滑参数修正值
para3=0.23;
para4=2.7;
else if nodeNum==118
para3=0.3;
para4=1.5;
else if nodeNum==300
para3=0.65;
para4=1;
else if nodeNum==1047
para3=0.59;
para4=0.6;
else if nodeNum==1780
para3=0.76;
para4=1.5;
end
end
end
end
end
%% 设PQ节点电压幅值为1相角为0
e=ones(nodeNum,1);
f=sparse(nodeNum,1);
e(pvNode)=pvV(pvNode); %初始值对计算结果有一点点影响
%% 发电机有功无功出力以及无功源无功出力初值(分别取上下界的平均值)
PG=(Pmin+Pmax)/2; %发电机有功功率初值,取发电机有功上下限的平均值
QR=(pvQmin+pvQmax)/2; %发电机无功功率初值取平衡节点、PV节点无功上下限的平均值
Pg(pgNode)=PG(pgNode);
Qg(pvNode)=QR(pvNode);
T=1./transK0;
x=[T;PG(pgNode);QR(pvNode);capK;e;f]; %系统的控制变量和状态变量
%% 设定松弛变量l,u,拉格朗日乘子z,w,y的初值
pgvNum=pgNum+pvNum;
xNum=pgvNum+2*nodeNum+transNum+capNum; %变量个数
m=2*nodeNum; %等式约束条件个数
r=pgvNum+nodeNum+lineNum+transNum+capNum; %不等式约束条件个数,
s=1;
l=s*ones(r,1); %初始化l,u,z为1w为-1y为0
u=l;
z=l;
w=-l;
y=sparse(m,1);
Gap=l'*z-u'*w; %计算互补间隙
mu=(centrPara*Gap)/(2*r); %计算扰动因子
Tn=sparse(0,0);Tn1=Tn;capKn=Tn;capKn1=Tn; kt0=Tn;q0=Tn;
oneTrans=ones(transNum,1);
oneCap=ones(capNum,1);
mut=oneTrans*para4; %光滑参数赋初值
mub=oneCap*para4;
dmaxOut1=[];dmaxOut2=dmaxOut1;xz1=dmaxOut1;xz2=dmaxOut1;dmaxOut3=dmaxOut1; %用于保存中间计算结果,以提供作图数据
dmaxOut4=dmaxOut1;xz3=dmaxOut1;xz4=dmaxOut1;xz5=dmaxOut1;colmut1=dmaxOut1;
hx=ones(m,1);
k2=0;
opfGoal=2; %目标函数为有功出力最小
times=1; %计算阶段标志
secondBegin=1; %光滑处理阶段开始标志
ifconverge=0; %收敛标志
mismatch=0.00001; %最大不平衡量计算精度
if nodeNum==1780 %由于1780系统在预计算时最大不平衡量要收敛到0.00001的精度迭代次数会比较多,为了提高整体收敛速度
mismatch=0.01; %在预计算时最大不平衡量精度达到0.01则视为收敛在连续化处理收敛时最大不平衡量精度可达0.00001
end