function [ output_args,this ] = equ( this,x ) %EQU Summary of this function goes here % Detailed explanation goes here output_args=[]; PDi=this.PDi; QDi=this.QDi; Volt0=this.Volt0; Angel=this.Angel; r=this.r; c=this.c; PG=this.PG; QG=this.QG; Balance=this.Balance; Y=this.Y; PD=x(1:length(PDi)); QD=x(length(PDi)+1:length(PDi)+length(QDi)); Volt=x(length(PDi)+length(QDi)+1:length(PDi)+length(QDi)+length(Volt0)); VAngel=x(length(PDi)+length(QDi)+length(Volt0)+1:end); PD_=zeros(length(Volt0),1); QD_=zeros(length(Volt0),1); PD_(PDi)=PD; QD_(QDi)=QD; busNum=length(Volt0); VMatrix=sparse(r,c,VAngel(r)-VAngel(c)-Angel,busNum,busNum); dP=PG-PD_-diag(Volt)*(Y.*cos(VMatrix))*Volt; dQ=QG-QD_-diag(Volt)*(Y.*spfun(@sin,VMatrix))*Volt; output_args=[dP;dQ];%潮流约束 %% 使用零注入begin % zeroInj=setdiff(1:busNum,union(Balance,union(PDi,QDi))); % output_args=[output_args(zeroInj);output_args(length(Volt0)+zeroInj)]; %% 使用零注入end %电压恒定 output_args=[output_args;Volt(Balance)-1]; %相角恒定 output_args=[output_args;VAngel(Balance)]; this.cu=zeros(length(output_args),1); this.cl=zeros(length(output_args),1); %% 开始增加不等式约束-电压\PD\QD %电压不等式约束 output_args=[output_args;Volt]; % this.cu=[this.cu;1.07*ones(length(Volt),1)];%9节点 % this.cl=[this.cl;0.93*ones(length(Volt),1)];%9节点 this.cu=[this.cu;1.00*ones(length(Volt),1)]; this.cl=[this.cl;0.90*ones(length(Volt),1)]; %% PD rPD=this.rPD; output_args=[output_args;PD]; % PDU=[0.124;0.315;0.5;1;1;0.5;0.63;0.4];%原始数据 % PDU=[0.63;0.4;0.5;1;0.8;1;0.63;0.4];%偏差比较大 %Generate values from the uniform distribution on the interval [a, b]. global loadFlag; if loadFlag==1 r=load('rLD'); r=r.r; else %r=-0.2; r =-0.201 + (-0.001-(-0.2)).*rand(length(rPD),1); end this.cu=[this.cu;(r+1.4).*rPD]; this.cl=[this.cl;(r+1).*rPD]; % this.cu=[this.cu;PDU]; % this.cl=[this.cl;0*PDU]; %% QD rQD=this.rQD; output_args=[output_args;QD]; % QDU=PDU; this.cu=[this.cu;(r+1.4).*rQD]; this.cl=[this.cl;(r+1).*rQD]; % this.cu=[this.cu;QDU]; % this.cl=[this.cl;0*QDU]; %% 稠密化 output_args=full(output_args); this.cu=full(this.cu); this.cl=full(this.cl); end