資源簡介
電力負荷分配matlab程序第三部分,可用于多時段電力負荷分配,已經驗證可用。
代碼片段和文件信息
%function?[leastCostPt?U]=UC(?coeff?Pmin?Pmax?Ploadlambda)
%?leastCost為機組的最小發電成本,是某一時間段內所有機組的發電成本=========>>經濟調度
%?Pt為機組在各時段的發電功率,行對應一個機組,列對應某一時間段。最終需要的是Pt而不是P因為Pt才是經濟調度的結果,滿足負荷平衡約束
%?U為機組在各時段的運行狀態,行對應一個機組,列對應某一時間段。若其值為1,則表示機組投運;若值為0,則表示機組停機
%?coeff為各機組的成本系數矩陣,設為二次函數形式[??二次項系數???一次項系數????常數項系數????]
%?PminPmax為各機組的發電功率下限和上限向量(列向量)
%?Pload為各時段的負荷向量(行向量)
%?lambda為拉格朗日系數初值
coeff=[0.00128??6.48??459;
???????0.00194??7.85??310;
???????0.00482??7.97??78];?%?每一行對應一個機組
Pmin=[150?;100?;50];
Pmax=[600?;400?;200];
Pload=[850];
n=size(coeff1);%?n?為機組數
T=size(Pload2);%?T?為需要計算的總時間段數
lambda=zeros(1T);
??????
%????????num=nargin;
%????????if(?num==6)
%??????????????lambda=zeros(1T);
%????????end
???????
???????
???????q=0;?????????????????%?對偶問題
???????minCost=zeros(n1);??%對應每個機組在所有時間段內的發電成本=========>>動態規劃
???????P=zeros(nT);????????%對應每個機組=============>>動態規劃
???????U=zeros(nT);????????%?每個機組在所有時間段內的運行狀態,若其值為1,則表示機組投運;若值為0,則表示機組停機
???????lostPower=zeros(1T);%?各時段內的系統發電功率缺額=========>>動態規劃結束后
???????
???????J=0;?????????????????%?原問題
???????leastCost=zeros(1T);%對應每個時間段內所有機組的發電成本========>>經濟調度
???????Pt=zeros(nT);???????%對應每個時間段==========>>經濟調度
???????lackCost=10000;??????%?當機組容量不能滿足經濟調度時,強制設定此時的總發電成本為10000
???????flag=0;
???????
???????iter=1;??????????????%?計算迭代次數
???????epsilon=0.05;????????%?設定容許誤差
???????gap=0.05;????????????%?設定對偶間隙初值
????????????????????
?????while(?abs(gap)>=epsilon?)?
???
??????????for?i=1:n???%?n為機組數
????????????????[?minCost(i)P(i:)U(i:)?]?=?dp(?coeff(i:)Pmin(i)Pmax(i)Tlambda);%?利用動態規劃求解每個機組在所有時段的運行狀態和最優發電功率
??????????end
??????????%=========================================================================>>
??????????%?本部分用于求對偶問題最優值q
??????????sumPower=zeros(1T);%?系統各時段的總發電功率
??????????for?t=1:T
??????????????for?i=1:n
??????????????????sumPower(t)=sumPower(t)?+?U(it)*P(it);%?求各時段內的發電功率
???????????????end
???????????end????
??????????lostPower=Pload-sumPower;%?求得各時段的系統發電功率缺額
??????????
??????????q=0;
??????????for?i=1:n
???????????????q?=?q?+?minCost(i);???%?疊加各機組的最小發電成本
??????????end
??????????for?t=1:T
???????????????q?=?q?+?lambda(t)*lostPower(t);?%?疊加拉格朗日乘子項???
??????????end
??????????%=========================================================================>>
??????????%本部分用于求原問題最優值J
??????????????for?t=1:T
????????????????????for?i=1:n
?????????????????????????if?U(it)==1???%??判斷某時段內是否有機組投運
?????????????????????????????flag=1;
?????????????????????????end????
????????????????????end??
????????????????????if?flag==1???%?如果所有機組停運則不必求解
?????????????????????????[leastCost(t)Pt(:t)]?=?ecoDisp
- 上一篇:電力負荷分配matlab程序part2
- 下一篇:平穩小波變換程序及其應用
評論
共有 條評論