考虑柔性负荷的综合能源系统低碳经济优化调度【复现】
2024-01-09 19:38:28
随着低碳发展进程的不断推进,综合能源系统(IES)逐渐成为实现减排目标的重要支撑技术。 基于能 源集线器概念,结合需求侧柔性负荷的可平移、可转移、可削减特性,构建了含风光储、燃气轮机、柔性负荷等 在内的 IES 模型。 综合考虑了系统运行成本和碳交易成本,建立了以总成本最低为优化目标的 IES 低碳经济 调度模型,采用鲸鱼优化算法对算例进行求解。 通过场景对比,分析了碳交易因素对能源调度的影响,以及在 碳交易体系之下,柔性负荷的合理调度对 IES 进一步减少碳排放、降低系统成本可发挥的作用。 研究结果表 明,在碳交易体系下,柔性负荷参与调度能有效地提高系统的经济环境综合效益。
部分代码
%定义机组变量 P_pv=sdpvar(1,24,'full');%光伏电输出功率 P_wt=sdpvar(1,24,'full');%风机电输出功率 P_mt=sdpvar(1,24,'full');%燃气轮机电输出功率 P_GB=sdpvar(1,24,'full');%燃气锅炉输出热功率 Pbuy=sdpvar(1,24,'full');%从电网购电电量 Psell=sdpvar(1,24,'full');%向电网售电电量 Pnet=sdpvar(1,24,'full');%与电网交换功率 Temp_net=binvar(1,24,'full'); % 购|售电标志 Pcharge=sdpvar(1,24,'full');%充电功率 UPcharge=binvar(1,24,'full');%充电标志?? Pdischarge=sdpvar(1,24,'full');%放电功率 UPdischarge=binvar(1,24,'full');%放电标志?? B=sdpvar(1,24,'full');%电储能余量 Hcharge=sdpvar(1,24,'full');%储热系统充热 Hdischarge=sdpvar(1,24,'full');%储热系统放热 UHcharge=binvar(1,24,'full'); %储热系统充热标志 UHdischarge=binvar(1,24,'full'); %储热系统放热标志 H=sdpvar(1,24,'full'); %热储能余量 %% 燃料成本 C_fuel=0; for i=1:24 ?C_fuel=C_fuel+2.5*P_GB(i)/9.7+2.5*P_mt(i)/0.45/9.7;%耗气成本 end %% 储能运行成本 C_storge=0; for i=1:24 ?C_storge=C_storge+0.5*(Pcharge(i)+Pdischarge(i)+Hcharge(i)+Hdischarge(i));%储能运行成本 end %% 补偿成本 C_L=0; for i=1:24 ? ? C_L=C_L+0.2*(PPshift1(i)+PPshift2(i))+0.1*HHshift(i)+0.3*PPtran(i)+0.4*PPcut(i)+0.2*HHcut(i); end %% 碳交易成本 Q_carbon=0;%碳排放量-碳配额量(克) for i=1:24 ? ? Q_carbon=Q_carbon+(((1303-798)*(Pbuy(i)+abs(Psell(i)))+(564.7-424)*(P_GB(i)/9.7+P_mt(i)/0.45/9.7)+... ? ? ? ? (43-78)*P_wt(i)+(154.5-78)*P_pv(i)+91.3*(Pcharge(i)+Pdischarge(i)))); end E_v=sdpvar(1,5);%每段区间内的长度,分为5段,每段长度是2000 lamda=0.15*10^(-3);%碳交易基价 Constraints=[Constraints, ? ?Q_carbon==sum(E_v),%总长度等于Q_carbon ? ?0<=E_v(1:4)<=120000,%除了最后一段,每段区间长度小于等于120000g ? ?0<=E_v(5), ? ]; %碳交易成本 C_CO2=0; for v=1:5 ? ? C_CO2=C_CO2+(lamda+(v-1)*0.25*lamda)*E_v(v); end F= C_OM+C_fuel+C_gridbuy+C_gridsell+C_storge+C_L+C_CO2; ops = sdpsettings('solver','cplex', 'verbose', 2);%参数指定程序用cplex求解器 optimize(Constraints,F,ops) % ops=sdpsettings('solver','cplex');%设置求解方式 % [model,recoveryalmip,diagnostic,internalmodel]=export(Constraints,F,ops);%转为cplex模型 % milpt=Cplex('milp for htc'); % milpt.Model.sense='minimize'; % milpt.Model.obj=model.f; % milpt.Model.lb=model.lb; % milpt.Model.ub=model.ub; % milpt.Model.A=[model.Aineq;model.Aeq]; % milpt.Model.lhs=[-inf*ones(size(model.bineq,1),1);model.beq]; % milpt.Model.rhs=[model.bineq;model.beq]; % milpt.Model.ctype=model.ctype; % milpt.writeModel('ab.lp');%输出cplex模型(注意大小写) % milpt.solve();%模型求解 F=value(F)%成本 P_pv=value(P_pv); P_wt=value(P_wt); P_mt=value(P_mt); P_GB=value(P_GB); Pcharge=value(Pcharge); Pdischarge=value(Pdischarge); Hcharge=value(Hcharge); Hdischarge=value(Hdischarge); Pbuy=value(Pbuy); Psell=value(Psell); PPshift1=value(PPshift1); PPshift2=value(PPshift2); PPtran=value(PPtran); PPcut=value(PPcut); HHshift=value(HHshift); HHcut=value(HHcut); %% 画图 figure ee=value([Pfix;Pcut;Pshift1;Pshift2;Ptran]); bar(ee',1,'stack') hold on plot(Pfix+Pcut+Pshift1+Pshift2+Ptran,'g-*','linewidth',2) hold on? plot(Pfix,'y-*','linewidth',2) xlabel('时间/h'); ylabel('电负荷功率/kW'); legend('基础电负荷','可消减电负荷','可平移电负荷1','可平移电负荷2','可转移电负荷','等效负荷','固定负荷'); title('优化前用户侧柔性电负荷分布'); figure hh=value([Hfix;Hcut;Hshift]); bar(hh',1,'stack'); hold on plot(Hfix+Hcut+Hshift,'c-*','linewidth',2) hold on? plot(Hfix,'y-*','linewidth',2) legend('基础热负荷','可消减热负荷','可平移热负荷','等效热负荷','基础热负荷'); xlabel('时间/h'); ylabel('热负荷功率/kW'); title('优化前用户侧柔性热负荷分布'); for i=1:24 ? ? op_e_load(i)=Pfix(i)+Pcut(i)+PPshift1(i)+PPshift2(i)+PPtran(i)-PPcut(i); end x=1:24; figure bar(e_load-op_e_load,'b'); hold on xlabel('时间/h'); ylabel('电负荷/kW'); yyaxis right plot(buy_price,'r--*','linewidth',2); xlabel('时间/h'); ylabel('电价'); title('需求响应前后电负荷曲线'); legend('响应电负荷','市场电价'); figure bar(e_load,'r'); hold on plot(op_e_load,'g-*','linewidth',2); xlabel('时间/h'); ylabel('电负荷/kW'); title('需求响应前后电负荷曲线'); legend('优化前电负荷','优化后电负荷'); E_v=value(E_v); figure bar(E_v,0.5) xlabel('时间/h'); ylabel('碳交易量'); yyaxis right ecc=(lamda+(v-1)*0.25*lamda)*E_v; plot(ecc,'r-*','linewidth',2) ylabel('碳交易成本'); ylim([24 50]); legend('阶梯式碳交易量','阶梯式碳交易成本'); figure s=(((1303-798)*(Pbuy+abs(Psell))+(564.7-424)*(P_GB/9.7+P_mt/0.45/9.7)+... ? ? ? ? (43-78)*P_wt+(154.5-78)*P_pv+91.3*(Pcharge+Pdischarge))); bar(s,0.5,'g') hold on yyaxis right plot(buy_price,'r-*','linewidth',2); xlabel('时间/h'); ylabel('电价'); title('碳交易总量'); legend('碳交易总量','市场电价'); for i=1:24 ? ? op_h_load(i)=Hfix(i)+Hcut(i)+HHshift(i)-HHcut(i); end x=1:24; figure bar(h_load,'r'); hold on plot(op_h_load,'g-*','linewidth',2); xlabel('时间/h'); ylabel('热负荷/kW'); title('需求响应前后热负荷曲线'); legend('优化前热负荷','优化后热负荷'); figure bar(h_load-op_h_load,'r'); hold on xlabel('时间/h'); ylabel('热负荷/kW'); yyaxis right plot(buy_price,'g--*','linewidth',2); xlabel('时间/h'); ylabel('电价'); title('需求响应前后热负荷曲线'); legend('响应热负荷','市场电价');
完整代码
文章来源:https://blog.csdn.net/m0_74905716/article/details/135487522
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!