【英】考慮多能負荷不確定性的區域綜合能源系統魯棒規劃(Matlab&Python代碼)
? ? 個人主頁:研學社的博客 歡迎來到本博客???? 博主優勢: 博客內容盡量做到思維縝密,邏輯清晰,為了方便讀者。r/>?
?
? 個人主頁:研學社的博客
歡迎來到本博客????
博主優勢: 博客內容盡量做到思維縝密,邏輯清晰,為了方便讀者。r/>
??座右銘:行百里者,半于九十。
1 概述
文獻來源:

摘要本文提出了一種考慮冷、熱、電多能負荷不確定性的區域綜合能源系統魯棒規劃方法。基于改進的能源樞紐(EH)模型,建立了包括熱電聯產、電鍋爐、燃氣鍋爐、電冷水機組、吸收式冷水機組、蓄電池、蓄熱、冷庫在內的區域綜合能源系統模型。另外,引入0-1設備選擇變量,對各設備的容量進行選擇和優化。采用多面體集描述多能負荷的不確定性,建立魯棒規劃模型并進行等效轉換。最后,通過MATLAB編程實現了容量規劃模型,并利用CPLEX求解最優配置。結果表明,系統規劃的穩健性可以通過魯棒性措施來控制,最優規劃能夠保證系統的可靠性和經濟性。這也體現了IES的多能互補集成優化效益。
關鍵詞:綜合能源系統;多能互補;不確定性
原文摘要:
Abstract—In this paper, we propose a robust planning method for regional integrated energy systems(IES) considering the uncertainty of cold, hot and electric multi-energy loads. Based on the improved energy hub (EH) model, we established a regional integrated energy system model, which includes CHP, electric boilers, gas boilers, electric chiller, absorption chiller, battery, thermal storage and cold storage. In addition, 0-1 variable of equipment selection is introduced to select and optimize the capacity of each equipment. The polyhedron set is used to describe the uncertainty of multi-energy load, and a robust planning model is formed and equivalent transformed. Finally, the capacity planning model is realized by programming in MATLAB, and the optimal configuration is solved by CPLEX. The result shows that the conservatism of system planning can be controlled by robust measure, and the optimal plan can guarantee reliability and economy of the system at the same time. It also reflects the multi energy complementary integration optimization benefits of IES.
Keywords—Integrated energy system, multi energy complementary, uncertainty, robust planning
IES的結構可分為三個主要部分:能量供應、能量轉換和能量儲存。每個部分由特定的能量耦合設備組成,并連接成一個整體。IES規劃模型可以用圖1所示的結構來描述。

可以看到,IES與電網、燃氣網和冷熱網相連。它將電能、燃氣和可再生能源等能源形式轉化為電能、冷能和熱能。由計劃決定的能量流部分用虛線表示。供能部分包括光伏發電裝置和電網。能量轉換部分包括熱電聯產、燃氣鍋爐、電鍋爐、吸收式冷水機組和電冷水機組。儲能部分包括蓄電池、蓄熱和冷庫。這些設備的類型需要規劃,不同類型的設備在容量、成本和轉換效率上存在差異。
2 運行結果







print('目標函數構建完成!')nnprint('優化計算求解中!')n# 問題選用Pulp選擇的Solver進行求解nprob.solve(GUROBI()) # 目前用GLPK()求解大概要7 min+, 如果用CPLEX() 和 GUROBI() 會快很多nn# 輸出求解結果nfor v in prob.variables():n print(v.name, "=", v.varValue)n # v.evaluate()n # np.savetxt(v.name,v.values,fmt='%.4e',delimiter=',')nprint("Total Cost = ", value(prob.objective))nn# 保存機組選型優化結果 到 X.values 里,是一個ndarraynX_CCHP.evaluate()nX_GB.evaluate()nX_AC.evaluate()nX_EB.evaluate()nX_SUB.evaluate()nn# 保存機組耗電耗氣連續變量優化結果 到 X.values 里,是一個ndarraynP_CCHP_gas.evaluate() # CCHP單位時間內所用燃氣熱值,單位是MW(應該修改成kw比較合適)nV_CCHP_gas.evaluate() # CCHP單位時間內所用燃氣量,單位是m3/hnP_SUB_electricity.evaluate() # 變電站出力,單位是MWnP_GB_gas.evaluate() # GB單位時間內所用燃氣熱值,單位是MWnV_GB_gas.evaluate() # GB單位時間內所用燃氣量,單位是m3/hnP_AC_electricity.evaluate() # 中央空調輸入電出力,單位MWnP_EB_electricity.evaluate() # 電鍋爐輸入電能,單位MW
%% 模型變量聲明
%0-1機組建設決策變量
X_CCHP=binvar(1,CCHP_types,'full');
X_GB=binvar(1,GB_types,'full');
X_AC=binvar(1,AC_types,'full');
X_EB=binvar(1,EB_types,'full');
X_SUB=binvar(1,SUB_types,'full');
%機組耗電耗氣連續變量
P_CCHP_gas=sdpvar(Load_scene,CCHP_types,'full'); %CCHP單位時間內所用燃氣熱值,單位是MW(應該修改成kw比較合???)
V_CCHP_gas=sdpvar(Load_scene,CCHP_types,'full'); %CCHP單位時間內所用燃氣量,單位是m3/h
P_SUB_electricity=sdpvar(Load_scene,SUB_types,'full'); %變電站出力,單位是MW
P_GB_gas=sdpvar(Load_scene,GB_types,'full'); %GB(燃氣鍋爐)單位時間內所用燃氣熱值,單位是MW
V_GB_gas=sdpvar(Load_scene,GB_types,'full'); %GB單位時間內所用燃氣量,單位是m3/h
P_AC_electricity=sdpvar(Load_scene,AC_types,'full'); %中央空調輸入電出力,單位MW
P_EB_electricity=sdpvar(Load_scene,EB_types,'full');%電鍋爐輸入電能,單位MW
%% 約束條件
Constraints=[];
%%
Cons_PL=[];
P=sdpvar(SUB_types+CCHP_types+GB_types+AC_types+EB_types,Load_scene,'full');
for t=1:Load_scene %P為輸入矩陣
Cons_PL=[ Cons_PL,P(:,t)==[P_SUB_electricity(t,:)';P_CCHP_gas(t,:)';P_GB_gas(t,:)';P_AC_electricity(t,:)';P_EB_electricity(t,:)']];%注意這里是等號==
end
L=sdpvar(3,Load_scene,'full'); %L為輸出矩陣
for t=1:Load_scene %8個典型日的電、氣、熱
Cons_PL=[Cons_PL,L(:,t)==[Load_E(t)+sum(P_AC_electricity(t,:),2)+sum(P_EB_electricity(t,:),2);Load_C(t);Load_H(t)]];
end
Constraints=[Constraints,Cons_PL];
%==============負荷平衡,公式5================
3 參考文獻
部分理論來源于網絡,如有侵權請聯系刪除。

4 Python代碼、數據、文章
?
上一篇:7b







