stateestimateionyalmip-lu9-.../@Opti/equ.asv

68 lines
1.9 KiB
Plaintext
Raw Normal View History

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];%<25><><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>
%% ʹ<><CAB9><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>begin
% zeroInj=setdiff(1:busNum,union(Balance,union(PDi,QDi)));
% output_args=[output_args(zeroInj);output_args(length(Volt0)+zeroInj)];
%% ʹ<><CAB9><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>end
%<25><>ѹ<EFBFBD>
output_args=[output_args;Volt(Balance)-1];
%<25><><EFBFBD>Ǻ㶨
output_args=[output_args;VAngel(Balance)];
this.cu=zeros(length(output_args),1);
this.cl=zeros(length(output_args),1);
%% <20><>ʼ<EFBFBD><CABC><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>ʽԼ<CABD><D4BC>-<2D><>ѹ\PD\QD
%<25><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>ʽԼ<CABD><D4BC>
output_args=[output_args;Volt];
this.cu=[this.cu;1.07*ones(length(Volt),1)];%9<>ڵ<EFBFBD>
this.cl=[this.cl;0.93*ones(length(Volt),1)];%9<>ڵ<EFBFBD>
% 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];%ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>
% PDU=[0.63;0.4;0.5;1;0.8;1;0.63;0.4];%ƫ<><C6AB><EFBFBD>Ƚϴ<C8BD>
this.cu=[this.cu;1.2*rPD];
this.cl=[this.cl;0.8*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;1.2*rQD];
% this.cl=[this.cl;0.8*rQD];
this.cu=[this.cu;QDU];
this.cl=[this.cl;0*QDU];
%% <20><><EFBFBD>ܻ<EFBFBD>
output_args=full(output_args);
this.cu=full(this.cu);
this.cl=full(this.cl);
end