天天看點

考慮裝置動作損耗的配電網分布式電壓無功優化(Matlab代碼實作)

💥💥💥💞💞💞歡迎來到本部落格❤️❤️❤️💥💥💥

🏆部落客優勢:🌞🌞🌞部落格内容盡量做到思維缜密,邏輯清晰,為了友善讀者。

⛳️座右銘:行百裡者,半于九十。

目錄

​​💥1 部分複現​​

​​📚2 概述​​

​​🎉3 運作結果​​

​​👨‍💻4 Matlab代碼​​

💥1 部分複現

考慮裝置動作損耗的配電網分布式電壓無功優化(Matlab代碼實作)

📚2 概述

     摘要:電壓無功控制是保證配電網經濟安全運作的重要任務,協調多種調節手段能提高配電網的運作效率。考慮了有載調壓變壓器、電壓調節器、分組投切電容器和分布式電源逆變器等電壓無功調控裝置,并針對現有電壓無功控制模型存在的無謂動作和求解效率低等問題,提出了一種考慮裝置動作損耗的配電網分布式電壓無功優化政策。首先,基于支路潮流方程建立了配電網電壓無功控制模型,并松弛為混合整數二階錐規劃。同時考慮到裝置的動作損耗,提出了基于模型預測控制的滾動優化模式。進一步基于交替方向乘子法實作配電網多區域分布式協同優化。最後,基于改進的 IEEE33節點測試系統進行了仿真。仿真結果表明:所提控制政策能夠避免裝置的無謂動作,并解決了“維數災”問題,提高了配電網的電壓無功控制效率。

🎉3 運作結果

利用IEEE33測試節點算例說明二階錐松弛的準确性

CPXPARAM_MIP_Display                             1Tried aggregator 1 time.QCP Presolve eliminated 9408 rows and 1704 columns.Aggregator did 336 substitutions.Reduced QCP has 7728 rows, 5712 columns, and 17808 nonzeros.Reduced QCP has 768 quadratic constraints.Presolve time = 0.01 sec. (6.80 ticks)Parallel mode: using up to 16 threads for barrier.Number of nonzeros in lower triangle of A*A' = 34104Using Approximate Minimum Degree orderingTotal time for automatic ordering = 0.00 sec. (2.49 ticks)Summary statistics for Cholesky factor:  Threads                   = 16  Rows in Factor            = 7728  Integer space required    = 12264  Total non-zeros in factor = 83880  Total FP ops to factor    = 1017720 Itn      Primal Obj        Dual Obj  Prim Inf Upper Inf  Dual Inf Inf Ratio   0   3.0337406e+02  -7.6106781e-01  7.30e+03  0.00e+00  6.21e+03  1.00e+00   1   3.0427107e+01   1.6560187e+00  7.30e+03  0.00e+00  6.21e+03  5.54e-01   2   5.5432810e+00   2.6608161e-01  7.32e+02  0.00e+00  6.22e+02  2.69e+00   3   8.5159524e-01  -9.6574600e-02  1.35e+02  0.00e+00  1.15e+02  1.50e+01   4   1.4611180e-01  -6.8774608e-02  2.43e+01  0.00e+00  2.06e+01  6.92e+01   5   5.7055442e-02  -8.7266983e-04  5.49e+00  0.00e+00  4.67e+00  3.22e+02   6   2.8129625e-02   1.9071094e-02  1.46e+00  0.00e+00  1.24e+00  2.37e+03   7   2.5320794e-02   2.3848906e-02  2.27e-01  0.00e+00  1.93e-01  1.82e+04   8   2.5013002e-02   2.4772517e-02  3.65e-02  0.00e+00  3.11e-02  1.42e+05   9   2.4971013e-02   2.4933730e-02  5.92e-03  0.00e+00  5.03e-03  1.32e+06  10   2.4964786e-02   2.4958751e-02  9.10e-04  0.00e+00  7.74e-04  1.07e+07  11   2.4963608e-02   2.4963505e-02  1.47e-04  0.00e+00  1.25e-04  1.63e+09  12   2.4963589e-02   2.4963588e-02  2.48e-06  0.00e+00  2.11e-06  3.29e+11時間已過 3.339317 秒。Ploss_total =    2.4964部分代碼:      
%定義變量
 U=sdpvar(33,24);%電壓的平方
 I=sdpvar(32,24);%電流的平方
 P=sdpvar(32,24);%線路有功
 Q=sdpvar(32,24);%線路無功
 Pg=sdpvar(33,24);%發電機有功
 Qg=sdpvar(33,24);%發電機無功
 Pin=-father*P+father*(I.*(r*ones(1,24)))+son*P;%節點注入有功
 Qin=-father*Q+father*(I.*(x*ones(1,24)))+son*Q;%節點注入無功
 Ploss_total=sum(sum(I.*(r*ones(1,24))));%目标函數,網損最小
 %限制條件
 C1=[U>=Umin,U<=Umax,Pg>=-Pgmax,Pg<=Pgmax,Qg>=-Qgmax,Qg<=Qgmax];%電壓邊界
 C1=[C1,I>=0,I<=0.11,P>=-0.11,P<=0.11,Q>=-0.11,Q<=0.11];%電流和功率邊界
 C2=[Pin+Pload-Pg==0];%有功KCL限制
 C3=[Qin+Qload-Qg==0];%無功KCL限制
 C4=[U(Line(:,2),:)==U(Line(:,1),:)-2*(r*ones(1,24)).*P-2*(x*ones(1,24)).*Q+((r.^2+x.^2)*ones(1,24)).*I];%電壓降落限制
 C5=[U(Line(:,1),:).*I>=P.^2+Q.^2];%二階錐限制
 C=[C1,C2,C3,C4,C5];
 toc%模組化時間
 ops=sdpsettings('solver','cplex');
 result=solvesdp(C,Ploss_total,ops);
 toc%求解時間
 Ploss_total=100*double(Ploss_total)
 P=double(P);Q=double(Q);U=double(U);I=double(I);
 error=P.^2+Q.^2-U(Line(:,1),:).*I;
 boxplot(error')      

👨‍💻4 Matlab代碼

繼續閱讀