提交到gogs

Signed-off-by: dmy@lab <dmy@lab.lab>
This commit is contained in:
dmy@lab 2015-03-19 15:11:53 +08:00
parent aa3cf9fa21
commit 546b02c744
3 changed files with 50 additions and 24 deletions

13
StatDeviation.m Normal file
View File

@ -0,0 +1,13 @@
function StatDeviation(rVolt,SEVolt,rVAngel,SEVAngel,sigma)
t1=[rVolt;rVAngel];
t2=[SEVolt;SEVAngel];
t3=sum((t2-t1).^2)/length(t1);
t3=t3.^0.5;
fprintf('״̬Á¿Í³¼ÆÎó²î %f\n',full(t3));
t1=[rVolt];
t2=[SEVolt];
t3=sum( ( (t2-t1)./(rVolt.*sigma) ).^2 )/length(t1);
t3=t3.^0.5;
fprintf('Á¿²âÁ¿Í³¼ÆÎó²î %f\n',full(t3));
end

View File

@ -1,14 +1,18 @@
function plotAndComparison( rVolt,rVAngel,SEVolt,SEVAngel ) function plotAndComparison( rVolt,rVAngel,SEVolt,SEVAngel,mVolt )
x=1:length(rVolt); x=1:length(rVolt);
subplot(2,1,1); subplot(2,1,1);
plot(x,rVolt,'r-'); plot(x,rVolt,'r-');
title('µçѹ')
hold on hold on
plot(x,SEVolt); plot(x,SEVolt);
legend('real','se'); hold on
plot(x,mVolt,'g');
legend('actual','estimate','measure');
subplot(2,1,2); subplot(2,1,2);
plot(x,rVAngel,'r-'); plot(x,rVAngel,'r-');
hold on hold on
plot(x,SEVAngel); plot(x,SEVAngel);
legend('real','se'); title('Ïà½Ç')
legend('actual','estimate');
end end

49
run.m
View File

@ -2,13 +2,13 @@ clear
clc clc
% yalmip('clear') % yalmip('clear')
addpath('.\Powerflow') addpath('.\Powerflow')
[~, ~, ~, ~,Volt,Vangle,Y,Yangle,r,c,newwordParameter,PG,QG,PD,QD,Balance]=pf('s1047.dat', '0'); [~, ~, ~, ~,Volt,Vangle,Y,Yangle,r,c,newwordParameter,PG,QG,PD,QD,Balance]=pf('E:\ËãÀý\lipuy2.dat', '0');
%% %%
busNum=length(Volt); busNum=length(Volt);
%% %%
varNum=busNum*2; varNum=busNum*2;
%% %%
sigma=0.03;% ±ê×¼²î sigma=0.0000001;% ±ê×¼²î
%% %%
% %
rVolt=Volt; % rVolt=Volt; %
@ -81,7 +81,7 @@ onlyQG=setdiff(QGi,PDQDi);
measureSigma=abs(([rVolt;rBranchP;rBranchQ;rTransP;rTransQ].*sigma)); measureSigma=abs(([rVolt;rBranchP;rBranchQ;rTransP;rTransQ].*sigma));
measureSigma(measureSigma<1e-6)=mean(measureSigma(measureSigma>1e-6)); measureSigma(measureSigma<1e-6)=mean(measureSigma(measureSigma>1e-6));
W=sparse(diag(1./measureSigma.^2)) ; W=sparse(diag(1./measureSigma.^2)) ;
% W=sparse(1:length(W),1:length(W),1,length(W),length(W)); W=sparse(1:length(W),1:length(W),1,length(W),length(W));
%% %%
stateVarCount=2*length(Volt); stateVarCount=2*length(Volt);
measurements=length(mVolt)+length(mBranchI)+length(mBranchP)+length(mBranchQ)+length(mPG)+length(mQG)+length(mTransP)+length(mTransQ); measurements=length(mVolt)+length(mBranchI)+length(mBranchP)+length(mBranchQ)+length(mPG)+length(mQG)+length(mTransP)+length(mTransQ);
@ -107,23 +107,23 @@ fprintf('
%% %%
% %
%SEVolt=sparse(ones(length(mVolt),1)); %SEVolt=sparse(ones(length(mVolt),1));
SEVolt=rVolt; SEVolt=mVolt;
% SEVolt=rVolt; % SEVolt=rVolt;
% SEVolt(1:2:end)=1.2; % SEVolt(1:2:end)=1.2;
% load('SEVolt'); % load('SEVolt');
% load('SEVAngle'); % load('SEVAngle');
SEVolt(Balance)=rVolt(Balance); SEVolt(Balance)=rVolt(Balance);
% SEVAngle=-0.1*sparse(ones(length(mVolt),1)); SEVAngle=-0.3*sparse(ones(length(mVolt),1));
% SEVAngle(Balance)=0; SEVAngle(Balance)=0;
SEVAngle=rVAngel; % SEVAngle=mVAngel;
% SEVAngle=rVAngel; % SEVAngle=rVAngel;
% SEVolt2= load('SEVolt2'); % SEVolt2= load('SEVolt2');
% SEVolt2=SEVolt2.SEVolt; % SEVolt2=SEVolt2.SEVolt;
% SEVAngle2= load('SEVAngle2'); % SEVAngle2= load('SEVAngle2');
% SEVAngle2=SEVAngle2.SEVAngle; % SEVAngle2=SEVAngle2.SEVAngle;
maxD=1000; maxD=1;
Iteration=0; Iteration=0;
optimalCondition=100; optimalCondition=1000;
eps=1e-4; eps=1e-4;
mu=0; mu=0;
v=2; v=2;
@ -131,6 +131,7 @@ ojbFunDecrease=1000;% Ŀ
% Jacobi % Jacobi
% while max(abs(g))>1e-5; % while max(abs(g))>1e-5;
% while maxD>1e-5 % while maxD>1e-5
%while maxD>1e-5 && max(abs(optimalCondition))/maxD>1e2
while max(abs(optimalCondition))>eps while max(abs(optimalCondition))>eps
% %
dV_dV=sparse(1:length(mVolt),1:length(mVolt),1,length(mVolt),length(mVolt));% dV_dV=sparse(1:length(mVolt),1:length(mVolt),1,length(mVolt),length(mVolt));%
@ -444,20 +445,28 @@ while max(abs(optimalCondition))>eps
% %
% [ d2h_dV2 0 % [ d2h_dV2 0
% 0 d2h_dT2] % 0 d2h_dT2]
hessian14=d2LPij_dVi2+d2LPij_dVidVj+d2LPij_dVidVj'+d2LPij_dVj2 ... % hessian14=d2LPij_dVi2+d2LPij_dVidVj+d2LPij_dVidVj'+d2LPij_dVj2 ...
+d2LPij_dTi2+d2LPij_dTidTj+d2LPij_dTidTj'+d2LPij_dTj2 ... % +d2LPij_dTi2+d2LPij_dTidTj+d2LPij_dTidTj'+d2LPij_dTj2 ...
+d2LQij_dVi2+d2LQij_dVidVj+d2LQij_dVidVj'+d2LQij_dVj2 ... % +d2LQij_dVi2+d2LQij_dVidVj+d2LQij_dVidVj'+d2LQij_dVj2 ...
+d2LQij_dTi2+d2LQij_dTidTj+d2LQij_dTidTj'+d2LQij_dTj2 ...; % +d2LQij_dTi2+d2LQij_dTidTj+d2LQij_dTidTj'+d2LQij_dTj2 ...;
+d2TPij_dVi2+d2TPij_dVidVj+d2TPij_dVidVj'+d2TPij_dVj2 ... % +d2TPij_dVi2+d2TPij_dVidVj+d2TPij_dVidVj'+d2TPij_dVj2 ...
+d2TPij_dTi2+d2TPij_dTidTj+d2TPij_dTidTj'+d2TPij_dTj2 ... % +d2TPij_dTi2+d2TPij_dTidTj+d2TPij_dTidTj'+d2TPij_dTj2 ...
+d2TQij_dVi2+d2TQij_dVidVj+d2TQij_dVidVj'+d2TQij_dVj2 ... % +d2TQij_dVi2+d2TQij_dVidVj+d2TQij_dVidVj'+d2TQij_dVj2 ...
+d2TQij_dTi2+d2TQij_dTidTj+d2TQij_dTidTj'+d2TQij_dTj2; % +d2TQij_dTi2+d2TQij_dTidTj+d2TQij_dTidTj'+d2TQij_dTj2;
hessian14=d2LPij_dVi2+d2LPij_dVidVj+d2LPij_dVidVj'+d2LPij_dVj2;
hessian14=hessian14+d2LPij_dTi2+d2LPij_dTidTj+d2LPij_dTidTj'+d2LPij_dTj2 ;
hessian14=hessian14+d2LQij_dVi2+d2LQij_dVidVj+d2LQij_dVidVj'+d2LQij_dVj2 ;
hessian14=hessian14+d2LQij_dTi2+d2LQij_dTidTj+d2LQij_dTidTj'+d2LQij_dTj2 ;
hessian14=hessian14+d2TPij_dVi2+d2TPij_dVidVj+d2TPij_dVidVj'+d2TPij_dVj2 ;
hessian14=hessian14+d2TPij_dTi2+d2TPij_dTidTj+d2TPij_dTidTj'+d2TPij_dTj2 ;
hessian14=hessian14+d2TQij_dVi2+d2TQij_dVidVj+d2TQij_dVidVj'+d2TQij_dVj2 ;
hessian14=hessian14+d2TQij_dTi2+d2TQij_dTidTj+d2TQij_dTidTj'+d2TQij_dTj2;
hessian2=d2LPij_dVidTi+d2LPij_dVidTj+d2LPij_dVjdTi+d2LPij_dVjdTj ... hessian2=d2LPij_dVidTi+d2LPij_dVidTj+d2LPij_dVjdTi+d2LPij_dVjdTj ...
+d2LQij_dVidTi+d2LQij_dVidTj+d2LQij_dVjdTi+d2LQij_dVjdTj ... +d2LQij_dVidTi+d2LQij_dVidTj+d2LQij_dVjdTi+d2LQij_dVjdTj ...
+d2TPij_dVidTi+d2TPij_dVidTj+d2TPij_dVjdTi+d2TPij_dVjdTj ... +d2TPij_dVidTi+d2TPij_dVidTj+d2TPij_dVjdTi+d2TPij_dVjdTj ...
+d2TQij_dVidTi+d2TQij_dVidTj+d2TQij_dVjdTi+d2TQij_dVjdTj; +d2TQij_dVidTi+d2TQij_dVidTj+d2TQij_dVjdTi+d2TQij_dVjdTj;
hessian3=hessian2'; hessian3=hessian2';
if Iteration<=-1 if Iteration<=4
G=H'*W*H; G=H'*W*H;
else else
G=H'*W*H+hessian14+hessian2+hessian3; G=H'*W*H+hessian14+hessian2+hessian3;
@ -496,9 +505,9 @@ fprintf('Ŀ
fprintf('\n'); fprintf('\n');
(abs(rVolt-double(SEVolt)))./(rVolt); (abs(rVolt-double(SEVolt)))./(rVolt);
MaxDeviation(rVolt,SEVolt,rVAngel,SEVAngle) MaxDeviation(rVolt,SEVolt,rVAngel,SEVAngle)
plotAndComparison( rVolt,rVAngel,SEVolt,SEVAngle ) plotAndComparison( rVolt,rVAngel,SEVolt,SEVAngle,mVolt )
% %
StatDeviation(rVolt,SEVolt,rVAngel,SEVAngle,sigma);
if any(abs(optimalCondition)>eps) if any(abs(optimalCondition)>eps)
fprintf('\n') fprintf('\n')
else else