【联合复现】考虑最优弃能率的风光火储联合系统分层优化经济调度Matlab实现
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。
👇 关注我领取海量matlab电子书和数学建模资料
🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。
📖
🔥 内容介绍
一、风光全额消纳的困境与弃能的意义
- 全额消纳的问题
:在追求可再生能源全额消纳的过程中,风电和光伏发电的随机属性带来了诸多挑战。由于其发电受自然条件如风力、光照的影响,具有很强的不确定性和波动性。当风光大发与负荷低谷重叠时,全额消纳会导致电网峰谷差增大,使得调峰难度急剧上升。为了应对这种峰谷差,电网需要投入更多的调峰调频等辅助服务,这直接导致辅助服务费用剧增,同时也增加了电网潜在运行风险。
- 弃能的积极影响
:在风光大发与负荷低谷重叠时段选择弃掉一部分风光尖峰电力,能有效降低电网运行风险。弃能使得电网在电力供需上有了更灵活的调配空间,有助于提升电网调度的灵活性。同时,通过合理弃能,避免了因过度调峰而产生的高额成本,从而提高电网整体经济效益。
二、储能在风光火储联合系统中的作用
- 提升消纳能力与优化弃能指标
:当系统中配置一定容量的储能时,它能在低负荷时段储存多余的风光电能,在高负荷时段释放电能,起到 “削峰填谷” 的作用。这不仅在保证总体经济效益最大的前提下,提高了系统对可再生能源的消纳能力,还能实现最优弃风弃光率和弃电总量的双降。
- 降低调峰难度与稳定火电出力
:储能的能量时移特性可减小净负荷曲线的波动程度,使火电机组出力更平稳。这显著降低了电网的调峰难度,减少了火电机组频繁调整出力所带来的损耗,延长了设备使用寿命,同时也降低了火电的调峰成本。
三、火电机组调峰过程及成本模型
- 调峰阶段划分
:火电机组的调峰阶段根据机组出力状态可分为基本调峰阶段和深度调峰阶段。深度调峰阶段又因调峰深度和燃烧介质不同,细分为投油深度调峰阶段和不投油深度调峰阶段。Pmax 作为机组出力最大值,为机组发电能力上限;Pmin 是基本调峰阶段机组出力最小值,在此范围内机组可较为稳定地进行基本调峰;Pn 为不投油深度调峰阶段机组出力最小值,此时机组在不额外投油情况下进行更深程度调峰;Pm 为投油深度调峰阶段机组出力最小值,即机组在投入燃油辅助燃烧情况下达到的最低出力,该阶段调峰成本相对较高。
- 调峰成本差异
:不同调峰阶段的调峰成本有所不同。基本调峰阶段,机组运行相对稳定,调峰成本相对较低。进入深度调峰阶段,特别是投油深度调峰阶段,由于需要投入额外的燃油来维持燃烧稳定,调峰成本会大幅增加。了解火电机组调峰过程及成本模型,对于在风光火储联合系统调度中合理安排火电机组调峰任务,降低总体调峰成本至关重要。
四、弃风弃光对电网调峰的影响
- 风电的反调峰特征
:风电出力具有随机性和波动性,从 1 天 24 小时内风电出力曲线来看,其在日间负荷高峰时段出力偏低,而在凌晨和夜间这些负荷低谷时段出力较大,呈现明显的反调峰特征。若风电全额并网消纳,会增大受端电网净负荷峰谷差,火电机组需要更大幅度地调整出力来平衡负荷,从而增加火电机组的调峰成本。
- 光伏的调峰影响
:光伏出力特征与风电相反,凌晨和夜间光伏无出力,日间光伏出力先增大后减小,在正午时段达到最大值。若光伏全额并网消纳,会降低受端电网正午时段的净负荷及其峰谷差,一定程度上降低电网调峰难度,增加火电机组调度的灵活性。
- 风光互补与弃能效果
:风电和光伏在时间尺度上具有互补特性,两者出力之和在一定范围内波动。因此,两者同时全额并网消纳不一定能减小火电机组调峰成本实现最优运行。在低谷负荷时段弃掉一定比例的风光电力,可明显减小净负荷曲线峰谷差和机组参与深度调峰的时段数。同时,配置储能后,能进一步降低受端电网净负荷峰谷差,使净负荷曲线更平滑,有效降低火电调峰成本。
📖
⛳️ 运行结果
📖
📣 部分代码
% 定义决策变量 para2; R_wt= sdpvar(1,24);R_pv = sdpvar(1,24); P_c = sdpvar(1,24); P_d = sdpvar(1,24); P_net= sdpvar(1,24); %净负荷 P_wt1=sdpvar(1,24);%并网风力发电 P_pv1=sdpvar(1,24);%并网光伏发电 %其他变量 Q_s = sdpvar(1,24); % 蓄电池剩余电量 % P_Gt1=sdpvar(1,24); % 燃气发电机1提供的功率 % P_Gt2=sdpvar(1,24); % 燃气发电机2提供的功率 %% 目标函数P_net(t)=P_f(t)-(1-R_wt(t))*P_wt(t)-(1-R_pv(t))*P_pv(t)+... h_c*P_c(t)-h_d*P_d(t); sum=sum+P_f(t)-(1-R_wt(t))*P_wt(t)-(1-R_pv(t))*P_pv(t)+... sum=sum./24; %负荷平方差 objective=objective+((P_f(t)-(1-R_wt(t))*P_wt(t)-(1-R_pv(t))*P_pv(t)+... h_c*P_c(t)-h_d*P_d(t))-sum).^2;objective=objective./24; %% 约束条件constraint=[constraint,0<=R_wt(t)<=1];constraint=[constraint,0<=R_pv(t)<=1];for t=1:24 %(6-1) 储能系统约束constraint=[constraint, 40<=Q_s(t)<=360];constraint=[constraint, Q_s(t)==Q_s_init+P_c(t)-P_d(t)];constraint=[constraint, Q_s(t)-Q_s(t-1)-P_c(t)+P_d(t)==0]; % 其他不等式约束constraint=[constraint, 0<=P_wt(t)<=400] ; A=A+P_wt(t)*R_wt(t);B=B+P_pv(t)*R_pv(t); C=C+P_wt(t);D=D+P_pv(t); % 弃风弃光约束%储能系统充放电约束 for t=1:24 %(6-2) 蓄电池不等式约束 constraint=[constraint,0<=P_c(t)<=P_c_max]; % (6-3) 电池储能初始和最终状态相等约束 constraint = [constraint, Q_s_init-Q_s(24)==0 ]; %% 求解和显示 option = sdpsettings('verbose',1,'solver','gurobi');%调用gurobi求解器 optimize(constraint,objective,option)%Yalmip求解的命令📖
🔗 参考文献
📖
🌿 往期回顾可以关注主页,点击搜索
