function [ output_args,this ] = equ( this,x ) %EQU Summary of this function goes here % Detailed explanation goes here 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;VAngel(Balance)]; %% 开始增加不等式约束-电压\PD\QD %电压不等式约束 output_args=[output_args;Volt]; output_args=full(output_args); this.cu=zeros(length(output_args),1); this.cl=this.cu; %电压 this.cu=[this.cu;1.1]; this.cl=this.cu; end