☰
考虑柔性负荷的综合能源系统低碳经济调度方法
2026/10/10 19:49:27 网站建设 项目流程

考虑柔性负荷的综合能源系统低碳经济调度探索

做综合能源系统调度的人,多少都有过这种体会:光伏、风电一上来,源侧的不确定性还能靠预测和备用扛一扛,真正让人头疼的其实是荷侧——负荷曲线硬邦邦地摆在那儿,燃气轮机跟着爬坡,储能跟着充放,一天下来碳配额超了、成本也上去了,调度员手里能打的牌越来越少。

我这两年在做园区级综合能源系统的低碳经济调度时,最大的一个转变就是把“柔性负荷”从论文里的概念真正放进调度模型里。这个项目名义上是一个调度优化问题,实际做下来更像是一套“源-网-荷-储”协同的重构过程。这篇就围绕这个项目,把我的建模思路、求解踩坑、参数设计全过程拆开来讲,给正在做类似工作的同行一些可直接参考的东西。

1. 项目整体设计与调度框架

1.1 综合能源系统的“多能互补”到底补什么

很多初次接触综合能源系统的人,容易被“电热冷气”四个字带偏,以为只要把几种设备拼在一起就算多能互补。实际上,综合能源系统的核心价值在于能源品种之间的替代与耦合——电不够时可以用气,热不够时可以用电制热,冷负荷可以由电制冷或吸收式制冷分担。这种替代关系,才是调度优化的底层逻辑。

我做的这个系统包含的元件比较典型:风机、光伏、燃气轮机、余热锅炉、电锅炉、吸收式制冷机、电制冷机,以及储能电池和蓄热罐。电网作为外部支撑,天然气作为一次能源输入,负荷侧包括电负荷、热负荷和冷负荷三类。整个系统的能量流动不是单向的,燃气轮机发电后的高温烟气进入余热锅炉产生蒸汽,蒸汽既可以供热,也可以驱动吸收式制冷机供冷,这就是典型的“以热定电”或“以电定热”的运行模式切换。

这种耦合结构带来一个调度上的核心难点:电、热、冷三种负荷的峰谷时段往往不一致。比如夏季白天电负荷高、冷负荷也高,但热负荷很低;冬季早晚热负荷高、电负荷相对平稳。如果每个能源品种独立调度,很容易出现燃气轮机为了发电产生大量余热却用不完,或者为了供热而发电导致电功率超出负荷需求的尴尬局面。柔性负荷的引入,恰好给了调度模型一个“削峰填谷”的额外自由度。

1.2 柔性负荷的分类与可调度价值

柔性负荷不是新鲜概念,但在综合能源系统调度里,它的作用被放大了。原因很简单:系统里有了多种能源耦合,负荷的“柔性”就不再只是某一时刻的电功率可调,而是可以跨能源品种、跨时间段进行能量置换。

我在项目里把柔性负荷分为三类:

可转移负荷——指用电时间可以平移、但总用电量不变的负荷,比如电动汽车充电、洗衣消毒设备、蓄热式电暖器。这类负荷的特性是“总量刚性、时间弹性”,转移时段内总能耗不变。

可削减负荷——指可以降低功率或减少用量的负荷,比如空调温度上调、照明亮度降低、部分工业非关键工序中断。这类负荷“量可减少”,但会牺牲一定舒适度或产能。

可平移负荷——类似可转移但更严格,要求整个负荷块完整地从一个时段搬到另一个时段,不能拆分。比如工厂的一条生产线批次,要么整批运行、要么整批挪走。

三种柔性负荷加起来,通常能占到园区总负荷的15%~30%。这个比例听起来不大,但在调度模型里,它们带来的“调节空间”比同等容量的储能还要有效——因为储能受容量和SOC限制,而柔性负荷本质上是把用户侧的“时间资源”变成系统的调节资源,几乎不增加硬件投资。

1.3 为什么要在低碳目标下谈经济调度

纯经济调度和低碳经济调度的本质区别在于:前者只算钱,后者要把碳排放变成“有价的约束”。现在很多园区和企业在双碳目标下面临实际压力——碳排放配额逐年收紧,超出配额的部分需要在碳市场购买,这就让“少排碳”直接转化成了“少花钱”。

项目中我采用的是碳交易机制模式:系统初始分配一定量的免费碳排放配额,实际碳排放量低于配额时,可以出售多余的配额获利;高于配额时,需要购买不足的部分。考虑到碳市场价格的阶梯性——超排量越多,购买价格越高——调度模型天然会倾向于优先使用低碳甚至零碳的能源,比如风电、光伏,而不是一味追求运行成本最低的燃气轮机。

柔性负荷在这个机制里的作用很巧妙:通过转移负荷至新能源出力高峰时段,可以提高新能源消纳率,间接降低化石能源的使用量。举个例子,如果中午光伏大发,电负荷却很低,柔性负荷可以把一部分高耗电工艺挪到中午,让光伏发出的绿电被“自己人”用掉,而不是弃掉或者低价上网。每多用一度绿电,就等于少用一度燃气轮机发的电,碳排放和燃料成本同时降下来。

这就是“低碳”和“经济”在这个调度模型里从对立走向统一的关键:碳排放约束不是给系统增加负担,而是倒逼系统挖掘柔性资源的调节价值。

2. 核心模型构建与关键数学表达

2.1 目标函数的三层结构

调度模型的目标函数我设计成三层叠加的结构,每一项都有明确的物理意义和量纲。很多初做优化的朋友容易把目标函数写成一个大杂烩,各项成本之间没有归一化处理,结果权重失衡,优化出来的方案毫无实用价值。这里我给出我的目标函数表达式:

min F = C_fuel + C_om + C_grid + C_co2 - C_curtail

其中:

  • C_fuel:燃气轮机和燃气锅炉的燃料成本,按天然气消耗量乘以气价计算。
  • C_om:各设备的运行维护成本,按输出功率乘以运维系数计算,不同设备系数不同,比如燃气轮机的运维成本远高于光伏。
  • C_grid:与电网交互的成本,购电为正,售电为负,分时电价下峰段和谷段的电价差异非常大。
  • C_co2:碳交易成本,基于实际碳排放量与配额之差,按阶梯碳价计算。
  • C_curtail:弃风弃光惩罚项,是一个很小的正数乘弃能量,目的是保证模型不会为了省钱而主动放弃免费的绿电。

这里要特别强调碳交易成本的计算。可能存在一种误解,认为碳交易成本就是排放量乘以碳价。实际上,在阶梯碳价机制下,碳排放量分为几个区间,每个区间的碳价不同。比如配额内价格是60元/吨,超配额0-500吨部分按70元/吨,500-1000吨部分按90元/吨,超出越多越贵。这迫使模型在优化的时候不只在“排碳”和“买配额”之间权衡,还要考虑排碳量跨区间带来的边际碳价跳变。这种非线性会让模型更难解,但更接近真实的市场规则。

2.2 柔性负荷的建模方式

柔性负荷建模是这个项目里最容易出错的地方。以可转移负荷为例,如果只是简单地把“负荷总和不变”作为约束,模型会给出一些非常离谱的调度方案——比如把洗衣房所有用电集中到半夜一个小时内完成,这在物理上完全可行,但在实际运行中可能导致变压器过载,甚至让用户在凌晨被噪音干扰。

我的做法是给可转移负荷加上两个额外约束:

单时段功率上下限:任何一个调度时段内,可转移负荷的功率不能超过额定上限,也不能低于最低运行功率。这模拟了设备本身的物理限制。

连续运行时长约束:同一批可转移负荷一旦开始运行,必须连续运行至少若干个时段才能停止。这是为了防止模型在相邻时段间反复启停设备,这种操作不但损伤设备,在实际执行中也毫无操作性。

可削减负荷的建模相对简单,本质是给原始负荷曲线乘以一个削减系数,但这个系数的范围需要谨慎设定。有些论文直接把削减系数设为0到1,相当于允许任意时刻把负荷削减到0,这在现实中几乎不可能——谁会同意把整个车间的照明全关掉?我测试下来,工业园区的削减系数上限设在0.2到0.3之间比较合理,写字楼这类商业用户可以放宽到0.4左右。

还有一个建模细节值得注意:柔性负荷调节的边际成本。调度模型如果允许随意削减负荷,那优化结果一定会倾向于大量削减负荷——因为削负荷在模型里几乎是零成本,但现实中用户会有强烈的抵触情绪。我需要给负荷削减加上阶梯式的补偿成本,削减量越大,单价越高。这样优化出来的结果才不是“通过牺牲用户换系统经济性”的空中楼阁。

2.3 低碳约束的引入方式

综合能源系统的碳排放来源主要有两处:燃气轮机的燃料燃烧和从电网购电对应的间接排放。前者按天然气消耗量乘以排放因子计算,后者按购电量乘以电网平均碳排放因子计算。

最常见的碳约束形式是总碳排放量不超过配额总量,但我在项目里发现这种“单一总量约束”太粗糙了,它无法反映碳排放在时间维度上的分布。比如系统可以选择在碳排放因子较高的峰段购电,然后在谷段用燃气轮机发电,只要总量不超限就行。这种结果虽然满足碳约束,但实际中电网的实时碳排因子波动很大——光伏大发的中午碳排因子可能只有深夜的一半——不考虑时序碳排放,会让“低碳调度”名不副实。

一个改进方案是引入时序碳排放因子概念:把一天的购电量按小时拆开,每小时的购电碳排因子不同,再累加得到总的间接碳排放。这相当于把碳约束从“日总量”细化到了“时段累计”,对模型的求解规模有一定增加,但换来的是调度方案真正做到了“跟着绿电走”,效果非常明显。

2.4 约束条件的完整清单

一套完整的综合能源系统低碳经济调度模型,约束条件大致可以分成四类:

功率平衡约束——这是所有调度模型的基石,电功率平衡要求所有电源出力加上储能放电、购电,总和等于电负荷加上储能充电、售电;热平衡和冷平衡同理。这里容易出现的问题是热负荷与冷负荷在吸收式制冷机处产生耦合——吸收式制冷机消耗的热量本身就是系统热负荷的一部分,建模时不注意这个耦合关系,会在平衡方程里产生重复计算。

设备运行约束——每台设备都有出力上下限和爬坡约束。燃气轮机的爬坡率尤其关键,一般控制在额定功率的3%~5%每分钟。储能设备的约束更复杂一些,除了充放电功率上下限,还要有SOC的上下限和充放电状态互斥约束——蓄电池不能同时充电和放电。状态互斥约束在混合整数线性规划中的处理方式是引入二进制变量,这一步是模型能否被高效求解的关键。

碳排放约束——如前所述,总碳排放约束加上时序碳排因子修正,配额不足时按阶梯碳价购买。

柔性负荷约束——可转移负荷的转移量守恒、时段功率上下限、连续运行时长;可削减负荷的削减比例上限和补偿成本;可平移负荷的时间窗约束。

这些约束加起来,一个典型24小时调度周期,步长取1小时的话,决策变量大约在300到500个,其中二进制变量50到80个。这个规模对于商业求解器来说属于“轻量级”,但如果步长细化到15分钟,变量规模会翻四倍,求解时间就从秒级跳到分钟级了。所以调度步长的选择需要看实际需求:做日前计划,1小时足够了;做日内滚动优化,15分钟到30分钟比较合适。

3. 求解方法与实操过程

3.1 求解器的选择与配置

项目里我用的求解环境是MATLAB+YALMIP+R2022,求解器选的是CPLEX。这套组合在学术界和工业界都比较常见。选择CPLEX而不是Gurobi,主要考虑是CPLEX对混合整数线性规划问题的处理非常成熟,而且在处理含大量二元变量的模型时,分支定界算法的默认参数通常能给出不错的收敛效果。不过我不得不说一句公道话,Gurobi在MILP问题上的综合表现其实已经超过CPLEX,但在中国高校和企业里,CPLEX的授权获取相对更容易,这也是很多人仍然选它的现实原因。

用YALMIP建模有一个好处:它不绑定特定求解器,模型用YALMIP的语言写好后,换求解器就是一行代码的事。这个特性在实际项目中非常实用——我在调试阶段先用CPLEX跑通逻辑,遇到规模化瓶颈时切到Gurobi,模型本体不用动。

在YALMIP里定义二进制变量非常简单:

% 定义24时段二进制变量,表示储能是否充电 u_ch = binvar(24, 1); % 定义24时段连续变量,表示储能充电功率 p_ch = sdpvar(24, 1); % 互斥约束:充电时放电功率必须为0 p_ch <= u_ch * P_ch_max; p_dis <= (1 - u_ch) * P_dis_max;

这两行互斥约束是储能建模的精髓。没有它们,求解器会给出“同时充电和放电”的荒谬结果——当然,如果充放电效率不对称,模型自己会找到套利路径,但这在实际设备中根本不可能实现。

CPLEX的求解速度在这个规模的模型上表现很好,一般几秒钟就能收敛到1%以内的最优间隙。但如果你的模型跑了几十秒还出不来结果,回头检查一下约束条件是不是不小心写成了非线性的——比如两个变量相乘、或者用了min/max函数但没有做线性化处理。这是初学者最容易犯的错误。

3.2 典型日负荷与新能源出力的设定

调度模型的输入数据质量,直接决定优化结果能不能用于实际。我在项目里整理的典型日数据包括:

电负荷基准曲线:取园区某个月的平均工作日负荷曲线,按小时统计,最大负荷约4.8MW,谷值约2.1MW,峰谷差率超过50%。

热负荷曲线:白天低、早晚高,峰值约2.2MWth。

冷负荷曲线:夏季典型日呈单峰形态,下午2点至4点达到峰值1.8MWth。

光伏出力曲线:光伏额定容量3MW,典型日出力峰值为2.4MW,出现在正午12点至下午1点之间。这里要注意,光伏的出力随机性很大,典型日数据只能用于“算例分析”,真正用于实际调度时必须用预测数据,并在滚动优化中不断更新。

风电出力曲线:风电额定容量1.5MW,夜间出力较高,白天相对较低,典型日出力峰值为0.9MW。

我把分时电价设置为峰段1.2元/kWh、平段0.8元/kWh、谷段0.4元/kWh,峰谷比3:1。天然气的价格取2.5元/立方米。碳排放配额设置为系统基准排放量的90%,这样不是太松也不是太紧,能让模型感受到碳约束的压力。

3.3 一套完整的调度结果解读

用上述数据跑完优化后,我拿到了一组非常有代表性的结果。调度方案中,燃气轮机在夜间电价谷段和凌晨时段出力较低,仅维持最小技术出力;到了白天电价峰段,燃气轮机提高出力,同时储能电池在谷段充满、峰段放电,配合光伏一起满足高峰电负荷。

最有意思的部分是柔性负荷的调度结果。园区里的电动汽车充电桩属于可转移负荷,模型把原本集中在傍晚的充电需求转移到了午夜0点至凌晨4点之间。这个时段电价最低,而且风电出力较高,用风电给电动汽车充电,既降低了购电成本,又减少了碳排放——这个结果完美体现了柔性负荷对新能源消纳的促进作用。

蓄热式电锅炉也是一个亮点。传统调度方式中,蓄热罐只在谷电时段蓄热,白天放热。在引入碳约束和柔性负荷后,模型倾向于在光伏大发的中午也启动电锅炉蓄热——尽管中午电价不是最低,但光伏出力减少购电碳排放的效果,让中午蓄热从碳经济角度变成了更优选择。这就是低碳约束改变运行策略的典型表现。

3.4 不同碳价下的方案对比

为了测试模型对碳价的敏感性,我分别设定了40元/吨、80元/吨、120元/吨三档碳价进行对比。结果非常直观:碳价从40元涨到120元,系统的天然气消耗量下降了约18%,电锅炉的蓄热时段从中夜间扩展到了午间光伏大发时段,柔性负荷的转移量增加了近一倍。同时,系统的总运行成本并没有大幅上升——因为减少的燃料成本和碳排放支出,部分抵消了柔性负荷的补偿成本。

这说明一个很重要的结论:通过需求侧灵活调节和源侧协同优化,系统可以在不大幅增加总成本的前提下,显著降低碳排放。碳价越高,柔性负荷参与调度的积极性越强,系统对新能源的消纳能力越强。

4. 常见问题与排查技巧实录

4.1 YALMIP模型不收敛的三个高频原因

我在这个项目调试阶段遇到最多的就是模型不收敛或收敛极慢的问题。排查下来,80%的原因集中在以下三类:

二进制变量过多导致分支定界树爆炸。解决办法是检查哪些约束可以被松弛成连续变量,比如储能充放电互斥约束在水准较高时可以放宽,让模型通过充放电效率差自然找到最优解。当然,这会牺牲一定的精确性,需要评估是否可接受。

约束条件中存在大数值尺度差异。比如电功率的量级是MW,而碳价的量级是元/吨,两者相差几个数量级,容易导致求解器在数值计算中出现病态。解决办法是对参数做归一化处理,或者在建模时统一单位——比如碳成本用千元/吨,功率用kW而不是MW。

二进制变量与连续变量的乘积。这在储能SOC的计算中非常常见:电池充电时SOC上升,放电时SOC下降,有些人不加思考就会写成SOC(t+1) = SOC(t) + u(t)p_cheta - (1-u(t))*p_dis/eta,这里u乘以p出现了非线性。正确的做法是用大M法把变量乘积线性化:

% 令 z = u * p_ch,线性化替换 z >= 0; z <= P_ch_max * u; z >= p_ch - (1-u) * P_ch_max; z <= p_ch;

这种“大M法”是MILP建模的基本功,处理不好,模型要么无解,要么求解器直接报错。

4.2 风电光伏预测误差的应对

调度优化用到预测数据,就必然存在预测误差。我遇到的实际问题:某天实际光伏出力比预测值高了不少,而模型已经根据预测值把燃气轮机安排在较高出力水平,结果出现“既弃光又烧气”的尴尬局面。

这个问题的根源不在调度模型,而在调度策略的更新频率。日前计划用的是24小时前的预测数据,偏差到第二天完全无法避免。解决方案是引入日内滚动优化——每4小时更新一次未来12小时的调度计划,用最新的预测数据重新求解。这样虽然不能完全消除预测误差的影响,但可以把误差的影响压缩在几个小时内,而不是让一整天的运行都基于一个失真的计划。

滚动优化的计算时间要求比较高,每轮求解必须控制在几分钟内。我当时把调度步长从1小时细化到30分钟,变量规模增加后,CPLEX求解时间仍然保持在1分钟以内,完全满足在线运行的要求。

4.3 负荷转移过度导致的新问题

柔性负荷用好了是调节利器,用不好会带来新的运行风险。我踩过的坑是:模型为了追求极端的经济性,把大量可转移负荷集中到某个特定时段——比如把全天所有可转移负荷都堆到凌晨3点执行,虽然满足单时段功率上限约束,但这一时段的电负荷曲线出现巨大尖峰,不仅可能导致变压器过载,还让这一时段的储能放电压力剧增。

解决思路是给柔性负荷集中度设置惩罚项或上限。具体做法是在约束中加入“任意时段可转移负荷的运行功率不超过该时段原始负荷的一定比例”,比如不超过30%。这样一来,负荷转移的分布会更加平滑,不会出现“全部挤在一个点”的极端情况。

我对这个问题的理解是:柔性负荷的调度自由度不是越多越好,合理的限制条件反而能让结果更可执行。模型优化出的方案如果实际运行中无法落实,那再好的目标函数和求解算法都没有意义。

4.4 碳配额基准值的敏感性分析

项目后期我做了一组敏感性测试,把碳配额从“基准排放的85%”逐步调整到“100%”,观察系统调度策略的变化。结果发现一个分水岭:当配额相对宽松时,系统的碳交易支出很低,模型对碳成本的敏感性不高,调度策略基本与纯经济调度一致。当配额收紧到基准排放的90%以下时,碳约束开始真正起作用,柔性负荷的调度率明显上升,燃气轮机的启停次数增加,电锅炉在午间的蓄热策略开始出现。

这提醒我,在低碳经济调度项目中,碳配额的设定本身就是一种政策杠杆。配额定得太紧,系统会花很大代价去满足碳约束;定得太松,低碳调度名存实亡。合理的做法是先做基准排放的仿真测算,再根据实际的碳价水平和运行成本来综合确定配额,而不是照搬其他园区的参数。

5. 后续扩展的几个方向

这个项目跑通后,我觉得有几个方向值得继续深入。一是把需求响应机制和柔性负荷调度结合起来,让用户侧通过价格信号主动调整负荷曲线,而不是依赖模型强制执行削减;二是引入更长时间尺度的储能规划,比如季节性蓄热,让“低碳”不只体现在日内调度,而是跨周甚至跨月的能量平衡;三是考虑多园区之间的协同调度,把一个园区的柔性负荷作为另一个园区的备用调节资源,在更大的空间尺度上挖掘需求侧的灵活性价值。

我的体会是,综合能源系统低碳经济调度这个题目,真正的难点从来不在数学模型的复杂度,而在如何让模型输出与现实运行之间保持良好的映射关系。柔性负荷是这个映射中非常关键的一环,它让源侧的新能源波动有了一个“软着陆”的缓冲空间。如果有同行正在调试类似的模型,我希望这些经验和参数能帮你少走一些弯路,特别是在柔性负荷建模和碳约束处理这两个最容易踩坑的地方,多花点时间做敏感性分析,比盲目追求模型复杂度有用得多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询