1.推导的潮流公式是对的,已经验证过

2.已经做成了只有负荷功率以及电压幅值量测的WLS方法。

3.如果ieee输电网算例不收敛,是因为不满足客观性(要考虑0注入约束)
4.ieee4-DN.dat是在原有ieee4节点算例上修改,改成所有节点都有负荷的形式。

Signed-off-by: dmy@lab <dmy@lab.lab>
This commit is contained in:
dmy@lab 2015-03-28 21:57:04 +08:00
parent df1943a96d
commit 537b5e4699
2 changed files with 162 additions and 10 deletions

43
run.m
View File

@ -2,7 +2,8 @@ clear
clc
% yalmip('clear')
addpath('.\Powerflow')
[~, ~, ~, ~,Volt,Vangle,Y,Yangle,r,c,newwordParameter,PG,QG,PD,QD,Balance]=pf('E:\ËãÀý\feeder33\feeder33ieee.txt', '0');
[~, ~, ~, ~,Volt,Vangle,Y,Yangle,r,c,newwordParameter,PG,QG,PD,QD,Balance]=pf('ieee4-DN.dat', '0');
% 'E:\\feeder33\feeder33ieee.txt'
%%
sigma=0.03;%
%%
@ -74,6 +75,7 @@ onlyQG=setdiff(QGi,PDQDi);
measureSigma=abs(([rVolt;rPD(PDi);rQD(QDi);].*sigma));
measureSigma(measureSigma<1e-6)=mean(measureSigma(measureSigma>1e-6));
W=sparse(diag(1./measureSigma.^2)) ;
% W=eye(length(W));
% W=sparse(1:length(W),1:length(W),400,length(W),length(W));
%%
stateVarCount=2*length(Volt);
@ -102,17 +104,19 @@ fprintf('
SEVolt=sparse(ones(length(mVolt),1));
SEVolt(Balance)=rVolt(Balance);
SEVAngle=sparse(-0.00*ones(length(mVolt),1));
% SEVolt=rVolt;
% SEVAngle=rVAngel;
maxD=1000;
Iteration=0;
optimalCondition=100;
eps=1e-4;
eps=1e-5;
mu=0;
v=2;
ojbFunDecrease=1000;%
% Jacobi
% while max(abs(g))>1e-5;
% while maxD>1e-5
while max(abs(maxD))>eps
while max(abs(optimalCondition))>eps
%
dV_dV=sparse(1:length(mVolt),1:length(mVolt),1,length(mVolt),length(mVolt));%
dV_dTyta=sparse(length(mVolt),length(mVolt));
@ -213,8 +217,8 @@ while max(abs(maxD))>eps
YdotCos=Y.* ( spfun (@cos, VAngleIJ ) );
diag_Volt_YdotCos=diag(SEVolt)*YdotCos;
diag_Volt_YdotSin=diag(SEVolt)*YdotSin;
YdotCosVolt=YdotCos*Volt;
YdotSinVolt=YdotSin*Volt;
YdotCosVolt=YdotCos*SEVolt;
YdotSinVolt=YdotSin*SEVolt;
diag_Volt_YdotCosVolt=diag_Volt_YdotCos*Volt;
diag_Volt_YdotSinVolt=diag_Volt_YdotSin*Volt;
diag_YdotSinVolt_=diag(YdotSinVolt);
@ -223,6 +227,23 @@ while max(abs(maxD))>eps
dQdTyta=-diag_Volt_YdotCos*diag(SEVolt)+diag_YdotCosVolt_*diag(SEVolt);%dQ/dThyta
dPdV=diag_YdotCosVolt_+diag_Volt_YdotCos;%dP/dV
dQdV=diag_YdotSinVolt_+diag_Volt_YdotSin;%dQ/dV
%
dPdV_=diag(SEVolt)*YdotCos+diag(YdotCos*SEVolt);
dQdV_=diag(SEVolt)*YdotSin+diag(YdotSin*SEVolt);
dPdTyta_=diag(SEVolt)*(YdotSin*diag(SEVolt)-diag(YdotSin*SEVolt));
dQdTyta_=diag(SEVolt)*(-YdotCos*diag(SEVolt)+diag(YdotCos*SEVolt));
if any(abs(dPdV_-dPdV)>1e-5)
abc=1;
end
if any(abs(dQdV_-dQdV)>1e-5)
abc=1;
end
if any(abs(dPdTyta_-dPdTyta)>1e-5)
abc=1;
end
if any(abs(dQdTyta_-dQdTyta)>1e-5)
abc=1;
end
% % C c Jacobi
% C=[dPdV dPdTyta;
% dQdV dQdTyta];
@ -269,23 +290,25 @@ while max(abs(maxD))>eps
% dTPij_dVi+dTPij_dVj,dTPij_dThetai+dTPij_dThetaj;
% dTQij_dVi+dTQij_dVj,dTQij_dThetai+dTQij_dThetaj];%jacobi
H=[dV_dV,dV_dTyta;
-dPdV(PDi,:),-dPdTyta(PDi,:);
-dQdV(QDi,:),-dQdTyta(QDi,:)];%jacobi
dPdV(PDi,:),dPdTyta(PDi,:);
dQdV(QDi,:),dQdTyta(QDi,:)];%jacobi
SEBranchI=BranchI( SEVolt.*exp(1j*SEVAngle),lineI,lineJ,lineR,lineX );%
SEBranchP=BranchP( SEVolt.*exp(1j*SEVAngle),SEBranchI,lineI,lineB2 );
SEBranchQ=BranchQ( SEVolt.*exp(1j*SEVAngle),SEBranchI,lineI,lineB2 );
SETransP=TransPower( newwordParameter,SEVolt,SEVAngle );
SETransQ=TransReactivePower( newwordParameter,SEVolt,SEVAngle );
SEPD=-diag(SEVolt)*Y.* ( spfun (@cos, VAngleIJ ) )*SEVolt;
SEQD=-diag(SEVolt)*Y.* ( spfun(@sin,VAngleIJ) )*SEVolt;
% rAngleIJ=sparse(r,c,rVAngel(r)-rVAngel(c) -Yangle,length(mVolt),length(mVolt)) ;
% diag(rVolt)*Y.* ( spfun (@cos, rAngleIJ ) )*rVolt;
SEPD=diag(SEVolt)*Y.* ( spfun (@cos, VAngleIJ ) )*SEVolt;
SEQD=diag(SEVolt)*Y.* ( spfun(@sin,VAngleIJ) )*SEVolt;
h=[SEVolt;SEPD(PDi);SEQD(QDi);];
% h=[SEVolt;SEBranchP;SEBranchQ;SETransP;SETransQ];
% z=[mVolt;mBranchP;mBranchQ;mTransP;mTransQ];
z=[mVolt;mPD(PDi);mQD(QDi)];
z=[mVolt;-mPD(PDi);-mQD(QDi)];
G=H'*W*H;

View File

@ -399,6 +399,135 @@ V_2
\right\}
\end{equation}
接下来推导潮流无功公式
\begin{equation}
\Delta Q =diag ( \left[
\begin{array}{c}
V_1\\
V_2
\end{array}
\right]
)
\left[
\begin{array}{cc}
sin(t_1-t_1) & sin(t_1-t_2) \\
sin(t_2-t_1) & sin(t_2-t_2)
\end{array}
\right]
\left[
\begin{array}{c}
V_1\\
V_2
\end{array}
\right]
\end{equation}
\begin{equation}
\Delta Q=
diag(
\left[
\begin{array}{c}
V_1 \\
V_2
\end{array}
\right]
)
\left[
\begin{array}{c}
V_1sin(t_1-t_1)+V_2sin(t_1-t_2) \\
V_1sin(t_2-t_1)+V_2sin(t_2-t_2) \\
\end{array}
\right]
\end{equation}
\begin{equation}
\dfrac{\partial \Delta Q}{\partial t}=
diag(
\left[
\begin{array}{c}
V_1 \\
V_2
\end{array}
\right]
)
\left[
\begin{array}{cc}
V_2cos(t_1-t_2) & -V_2cos(t_1-t_2) \\
-V_1cos(t_2-t_1) & V_1cos(t_2-t_1)
\end{array}
\right]
\end{equation}
\begin{equation}
\dfrac{\partial \Delta Q}{\partial t}=
\begin{array}{c}
diag(
\left[
\begin{array}{c}
V_1 \\
V_2
\end{array}
\right]
)\\
\left[
\begin{array}{cc}
-V_1cos(t_1-t_1) & -V_2cos(t_1-t_2) \\
-V_1cos(t_2-t_1) & -V_2cos(t_2-t_2)
\end{array}
\right]
+
\left[
\begin{array}{cc}
V_1cos(t_1-t_1)+V_2cos(t_1-t_2) & 0 \\
0 & V_1cos(t_2-t_1)+V_2cos(t_2-t_2)
\end{array}
\right]
\end{array}
\end{equation}
\begin{equation}
\dfrac{\partial \Delta Q}{\partial t}=
diag(
\left[
\begin{array}{c}
V_1 \\
V_2
\end{array}
\right]
)
\left\{
-
\left[
\begin{array}{cc}
cos(t_1-t_1) & cos(t_1-t_2) \\
cos(t_2-t_1) & cos(t_2-t_2)
\end{array}
\right]
diag(
\left[
\begin{array}{c}
V_1 \\
V_2
\end{array}
\right]
)
+diag(
\left[
\begin{array}{cc}
cos(t_1-t_1) & cos(t_1-t_2) \\
cos(t_2-t_1) & cos(t_2-t_2)
\end{array}
\right]
\left[
\begin{array}{c}
V_1 \\
V_2
\end{array}
\right]
)
\right\}
\end{equation}
潮流方程有功的公式为