stateestimateionyalmip-lu9-.../OPF_Init.m

122 lines
3.0 KiB
Matlab
Raw 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 [Volt,UAngel,Init_Z,Init_W,Init_L,Init_U,Init_Y,PG,QG,RestraintCount,wPG,wQG,wPD,wQD,wVolt,wLoadCurrent,PD,PD0,QD,randPDind,Loadi,noLoadi]=OPF_Init(Busnum,Balance,PG,QG,rVolt,GenU,GenL,PVi,PGi,PVQU,PVQL,PD0,QD0,rQD,rPD,rLoadCurrent)
Loadi=find(rQD~=0 | rPD~=0);
PDi=find(rPD~=0);
%PDi=[10,11,23,19,22,20,12,13,14,15,8,18,25,17,24,16];
%QDi=find(rQD~=0);
QDi=PDi;
notLoadi=setdiff(1:Busnum,Loadi);
notLoadi=[];
PGOnly=setdiff(PGi,PDi);
QGOnly=setdiff(PVi,QDi);
PDOnly=setdiff(PDi,PGi);
QDOnly=setdiff(QDi,PVi);
PGPD=intersect(PDi,PGi);
QGQD=intersect(QDi,PVi);
noPGPDQGQD=setdiff(1:Busnum,union(union(PDi,PGi),union(QDi,PVi)));
%Loadi=[1:Busnum]';
RestraintCount=size(PVi,1)+size(PGi,1)+size(Loadi,1)*1+Busnum*1; %约束条件数,放开所有QD,不单独约束QD上下限
RestraintCount=RestraintCount+length(Loadi); %加上功率因数用功率因数约束QD
t_Bal_volt=rVolt(Balance);
Volt=sparse(1*ones(1,Busnum));
Volt(Balance)=t_Bal_volt;
UAngel=sparse(1,Busnum);
Init_Z=sparse(ones(1,RestraintCount));
Init_W=sparse(-1*ones(1,RestraintCount));
Init_L=1*sparse(ones(1,RestraintCount));
Init_U=1*sparse(ones(1,RestraintCount));
Init_Y=sparse(1,2*Busnum);%与学姐一致
tPU=sparse(GenU(:,2));% 发电机有功上限
tQU=sparse(PVQU(:,1));% 无功上限
tPL=sparse(GenL(:,2));% 发电机有功下限
tQL=sparse(PVQL(:,1));% 无功下限
% PG(PGi)=(tPU+tPL)/2;
% QG(PVi)=(tQU+tQL)/2;
wPG=1*ones(size(PGi,1),1);
wQG=1*ones(size(PVi,1),1);
%randInt=randperm(size(Loadi,1));
%randPDind=randInt(1:10);
randPDind=0;
% load('I');
sigma=0.01;
% sigma=sigma*I/200;
% wPD=1/(1)*ones(length(PD),1);
% wPD(11)=wPD(11)*1;
% wQD=1/(1)*ones(length(QD),1);
% wQD(11)=wQD(11)*1;
% wVolt=1/(1)*ones(Busnum,1);
% wVolt(Balance)=0;% 不考虑平衡节点
wLoadCurrent=1./(abs(rLoadCurrent)*sigma);
wPD=1./(abs(rPD)*sigma);
wQD=1./(abs(rQD)*sigma);
wVolt=1./(abs(rVolt)*sigma);
wPD(notLoadi)=0;
wQD(notLoadi)=0;
wVolt(notLoadi)=0;
%% 100%
% noLoad=[];
% wPD(noLoad)=0;
% wQD(noLoad)=0;
% wVolt(noLoad)=0;
%% 90%
% noLoad=[17];
% wPD(noLoad)=0;
% wQD(noLoad)=0;
% wVolt(noLoad)=0;
%% 80%
% noLoad=[16 18];
% wPD(noLoad)=0;
% wQD(noLoad)=0;
% wVolt(noLoad)=0;
%% 70%
% noLoad=[15 19];
% wPD(noLoad)=0;
% wQD(noLoad)=0;
% wVolt(noLoad)=0;
%% 60%
% noLoad=[15 17 19];
% wPD(noLoad)=0;
% wQD(noLoad)=0;
% wVolt(noLoad)=0;
% wLoadCurrent(noLoad)=0;
%% 50%
% noLoad=[10 11 14 15 25 17 22 20];
% noLoad=[2 5 6 9];
% noLoad=[3,5,6,9,11,12,15,17,20,21,22,23,27,29,30,31];%33节点
% wPD(noLoad)=0;
% wQD(noLoad)=0;
% wVolt(noLoad)=0;
% wLoadCurrent(1:2:end)=0;
%% 40%
% noLoad=[11 13 16 18 20];
% wPD(noLoad)=0;
% wQD(noLoad)=0;
% wVolt(noLoad)=0;
%% 30%
% noLoad=[11 13 16 17 18 20];
% wPD(noLoad)=0;
% wQD(noLoad)=0;
% wVolt(noLoad)=0;
%% 20%
% noLoad=[11 13 15 17 19 20];
% wPD(noLoad)=0;
% wQD(noLoad)=0;
% wVolt(noLoad)=0;
%% 10%
% noLoad=[11 13 15 17 18 19 20];
% wPD(noLoad)=0;
% wQD(noLoad)=0;
% wVolt(noLoad)=0;
%% 0%
noLoad=[];
% wPD(1:end)=0;
% wQD(1:end)=0;
% wVolt(1:end)=0;
%wD(randPDind)=0;%一些负荷不约束
%wD(7)=0;
% wD(11)=0;
PD=0.1*PD0;
%powerFacter=0.98;
%QD=PD*sqrt((1-powerFacter^2)/powerFacter^2);
QD=0.1*QD0;
noLoadi=noLoad;
end