diff --git a/run.m b/run.m index 50e5ec6..3fcd8e5 100644 --- a/run.m +++ b/run.m @@ -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; diff --git a/鍏紡/鍏紡.tex b/鍏紡/鍏紡.tex index f6e1f1c..b088d4f 100644 --- a/鍏紡/鍏紡.tex +++ b/鍏紡/鍏紡.tex @@ -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} 娼祦鏂圭▼鏈夊姛鐨勫叕寮忎负