ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

P2G与碳捕集协同的多能微网低碳经济调度建模实践与参数排坑

P2G与碳捕集协同的多能微网低碳经济调度建模实践与参数排坑

刚刚把“P2G+碳捕集”装进微网调度模型,我踩过的坑全在这

最近在做一个微网低碳经济调度的课题,核心思路就是题目里那句话——“考虑P2G与碳捕集机组的多能微网低碳经济调度”。折腾了两个月,从建模到求解,从参数坑到结果解释,积累了不少经验。今天不聊虚的,把我的完整思路、模型搭建过程、参数设置,还有排坑记录全部分享出来,写给打算入手这个方向的同学和从业者。

先解释一下这个课题到底在做什么:多能微网里同时有电负荷、气负荷和热负荷,新能源(风电、光伏)加上燃气轮机、储能装置,构成一个微型综合能源系统。传统调度只看经济性,但双碳目标下碳排放也要进目标函数,所以加入碳交易机制。P2G(电转气)能把新能源的弃电转成氢气或天然气,碳捕集机组能直接降低燃气轮机的碳排放,两者一配合,系统在低碳和经济两个维度上都能表现得更好。这个方向适合做电力系统优化调度、综合能源系统规划的研究者,也适合相关工程项目的技术人员。

1. 整体思路与建模框架

1.1 为什么选“P2G+碳捕集”而不是单独上储能或碳捕集

最开始我也只打算在微网里加一个碳捕集装置,把燃机排出的二氧化碳捕集起来封存,这样碳排放直接降下来。但算完一个典型日的优化之后发现一个尴尬问题:捕碳需要大量电能,这部分电如果来自外购电网,碳排放实际上转移到了上游,相当于“碳转移”而不是“碳减排”。而微网里的新能源弃电又被闲置,等于一边缺电捕碳、一边扔掉绿电,资源的协同完全没打通。

后来我把P2G加进去,思路就顺了:新能源大发时段弃电多,P2G把这些电用来电解水制氢,氢气再和碳捕集装置捕下来的CO2进行甲烷化反应,合成天然气,注入天然气网络存储备用。这样风电光伏的弃电被消纳,碳捕集的产物也有了利用出口(而不是只用于封存),天然气的供应压力也减小了。三件事串成一条链:弃电转化为气,捕碳转化为燃料,燃料又服务于负荷。这就是所谓的“电-气-碳”耦合。

从调度模型的角度看,这个耦合给系统带来了新的灵活性。传统微网只有一个储能电池充当“缓冲池”,而P2G加上储气罐等同于第二个更长时间尺度的能量缓冲池——电池管分钟到小时级,燃气网络可以管小时到天级。对于含高比例新能源的微网,两种时间常数的储能搭配使用,整体调节能力明显增强。

1.2 微网系统的物理结构与我选择的建模粒度

我建立的标准微网结构包括:风力发电、光伏发电、燃气轮机、碳捕集系统(对燃气轮机烟气进行捕集)、P2G系统(电解槽+甲烷化反应器)、电储能、储氢罐/储气罐、电锅炉和热储能(供热负荷使用的设备)。

为了不让模型一开始就陷入非线性泥潭,我做了几个粒度上的取舍:

  • P2G设备运行采用效率系数模型:电解槽的产氢量等于消耗的电功率乘以转换效率,甲烷化反应器产甲烷量等于输入氢气乘以转化效率。这个粒度不考虑电解槽内部温度、压力的动态过程,但足以反映“电-气”转换的宏观效率。
  • 碳捕集系统简化为“捕集功率-捕集率”模型:碳捕集设备工作时消耗一定电功率,捕集率作为决策变量,变化范围在0.5到0.9之间。烟气量由燃气轮机出力近似线性决定。
  • 网络约束(如潮流、气压)不建立微分方程,而是用平衡约束代替:每个时段电力平衡、天然气平衡、热力平衡分别建立等式,跨时段的动态由储能设备的状态方程衔接。

这种粒度对典型日(24小时)的调度优化完全够用,而且在CPLEX这类求解器上能保持可解的线性或混合整数线性结构。如果一上来就做全动态的微分代数模型,问题规模会爆炸,调试难度也指数上升,新手很容易被劝退。

2. 目标函数与约束条件的核心细节

2.1 目标函数:成本项的构成与碳排放的处理方式

我的目标函数是典型日总成本最小化,其中总成本包含六项:外购电力成本、燃气轮机燃料成本、P2G设备和碳捕集设备的运行维护成本、弃风弃光惩罚成本、碳交易成本、储能设备折旧维护成本。

这里最需要说明的是碳交易成本的处理方式。我采用的是基准线法(配额法):系统会获得一个免费碳排放配额,如果实际碳排放量低于配额,可以将多余配额出售获利;如果高于配额,则必须购买超额部分。在目标函数里,碳交易成本写成一个带正负号的项——碳排放低于配额时为负成本,相当于收入;超过配额时为正成本,相当于支出。

这带来一个很有意思的优化结果:碳捕集设备不是每时每刻都在满功率运行的。在某些时段,捕碳量超过配额外卖带来的收益无法覆盖捕集设备本身的电耗和运维成本,模型会自动降低捕集率甚至关闭捕集。也就是说,最优策略不是跑满碳捕集,而是一个“动态权衡”的结果——这一点在结果分析中非常值得写。

碳价格在参数设置中特别关键。我试过从每吨80元到每吨300元的变化区间,结果碳捕集的平均捕集率从约0.55上升到约0.85,系统碳排放总量下降了约30%。高碳价系统愿意花更多电能去捕碳,而低碳价时捕碳设备很多时段都在休眠状态。做敏感性分析时,碳价是最值得画的曲线。

2.2 电力、天然气和热力的多能平衡约束

多能微网的核心约束就是三条平衡线,一个都不能少:

电力平衡方面,所有电源的出力之和(风电、光伏、燃气轮机、电网购电、电池放电、P2G设备耗电、碳捕集设备耗电、电池充电)在任意时刻都必须达到电负荷。我把P2G和碳捕集设备的耗电放在等式左边,相当于它们是被调度对象同时也是用电负荷,这样模型能自动决定“这些设备吃多少电最划算”。需要注意,碳捕集设备的电耗在模型中一定要单独列出来,不能藏在“系统用电成本”里模糊处理——因为它的功率是决策变量。

天然气平衡这边,分两条路径:一条是购入天然气(从上级气网购气)加上P2G产气,共同供给燃气轮机和气负荷;另一条是碳捕集获得CO2之后送入P2G的甲烷化环节,产气再注入气网。如果微网里没有气负荷而只有燃气轮机用气,也可以把气负荷设为0,但建议留一个气负荷的松弛变量来测试模型是否可解。

热力平衡更需要注意温度品味问题。碳捕集系统通常需要热耗(溶剂再生塔的热量),这部分热量可以由燃气轮机的抽气余热提供,也可以由电锅炉提供。我在模型中默认碳捕集的热量是余热回收利用的,不计入额外成本;但如果你的场景里没有余热而需要额外耗电制热,那碳捕集设备的经济性会更差,需要在运维成本项里反映这一部分。

2.3 储能设备与P2G储气的时空耦合约束

储能设备的约束主要有三个维度:容量上下限、充放功率上下限、能量状态的时间演化方程,即下一时段剩余电量等于当前剩余电量加充电功率减放电功率再乘以效率。电池的效率我设为0.9的往返效率,储罐和储气库因为不存在“过充过放”的安全问题(在设计范围内),建模时只考虑容量上限和注入/释放速率上限。

P2G的储气环节要特别留意一个时间耦合:甲烷化反应产出的天然气如果全部直接送到气负荷,模型会限制P2G只能和负荷同频运行;但加上储气罐后,P2G可以在新能源大发时段大量产气存起来,再在晚间燃气轮机高峰时段放出来发电。这种“削峰填谷”的效果非常好,也是很多论文里“P2G提高新能源消纳率”这一结论的关键机制。

我在模型里还把电池和储气的初始状态设为一个固定值,并让末端状态等于或近似等于初始状态,这样调度结果不会通过“把储能放空”来取巧。实际操作中我允许最后一个时段的储能状态可以和初始值有百分之五的偏差,给优化器一点余地,否则在24小时周期末端会产生不自然的告急动作。

3. 关键参数设置与算例设计

3.1 典型日的选取与负荷曲线处理

算例设计是整个课题最容易被忽略但对结果影响最大的一环。我没有直接用全年数据的平均值,而是选了三个典型日:冬季典型日(代表电热需求高峰)、夏季典型日(代表制冷和光伏大发)、过渡季典型日(代表风电大而负荷低)。

这么做的原因是“低碳调度”的效果高度依赖新能源出力曲线和负荷曲线的错峰特征。如果只用一个负荷曲线,很容易得出“某个设备是万能的”这种过度泛化结论。比如在冬季典型日里燃气轮机几乎全天高负荷运行,碳捕集装置的利用率高,减排效果显著;而在过渡季典型日里燃气轮机大部分时间在最低出力附近,碳捕集空间很小,P2G反而成了主角,撑起了新能源消纳的大梁。

负荷曲线我用的是标幺值加基值的方式设定:给定一个24小时的分时系数表,在每个典型日设定一个峰值负荷基数(约3兆瓦)。风力出力和光伏出力也做成标幺值曲线,再乘上装机容量,这样只要改变装机容量系数就能做一整组的敏感性分析。

3.2 P2G设备对结果影响最大的三个参数

第一个是电解槽效率。我设定的电转氢效率为0.72,氢气转天然气的甲烷化效率为0.78,一个产物总效率约0.56。如果效率再低(比如0.4),P2G的“成本-减碳”比就会超过直接用天然气,模型几乎不会触发P2G运行;效率高到0.65以上结果变化不大——因为从调度角度看,效率低等于变相抬高购气成本,模型会自动回避。所以做灵敏度分析时效率的拐点区间很重要。

第二个是P2G的功率上限。我把P2G设备最大输入功率设为1.0兆瓦,这直接决定了它能吃掉多少弃电。如果上限太小(0.3兆瓦),很多弃电时段它吃不进去,弃风率降不下来;上限太大(2兆瓦)则导致前期设备投资成本过重,经济性反而变差。实际项目中选择P2G功率上限要结合当地新能源装机和弃电统计数据来确定。

第三个是碳捕集系统的捕集能耗系数。胺法捕集每吨CO2的热耗约3.5吉焦、电耗约0.2兆瓦时。我在模型中把这部分折算为“每捕集一吨CO2对应消耗0.45兆瓦时的等效电耗”,体现在设备运行时的电功率上。这个数值如果设得太乐观(0.2兆瓦时/吨),碳捕集设备几乎会全天满负荷运行,结果很漂亮但不现实;按保守值设,模型就会更克制。我的建议是:先按偏保守的参数设计模型,再在灵敏度分析里展示乐观参数下的潜力空间,这样结论更有说服力。

3.3 算例结果:弃风率、碳排放量和总成本的变化

我以“无P2G、无碳捕集”的基准场景为对照组,对比“仅加碳捕集”“仅加P2G”“P2G加碳捕集”三个改造场景,主要看四个指标:弃风弃光率、系统碳排放量、天然气购气量和总运行成本。结果非常有代表性:

  • 基准场景的弃风率约18%,碳排放约28吨/日;
  • 仅加碳捕集时,碳排放降至17吨/日,但弃风率几乎没变(仍约17%),因为碳捕集设备吃掉了部分电,但它不会削峰填谷,新能源高发时段还是得弃电;
  • 仅加P2G时,弃风率降到7%,但碳排放只降了约15%——因为P2G产出的天然气最终又被燃气轮机烧掉,有一部分碳又回来了;
  • 两者都上时,弃风率降到4%,碳排放降到11吨/日,天然气购气量也下降了约20%。

这个结果验证了“P2G与碳捕集是互补关系,而不是替代关系”的判断。P2G解决“时间错配”问题(弃电转气、存气、再发电),碳捕集解决“源头减碳”问题(从烟气里把CO2分离出来)。两者合在一起,系统的低碳经济性才会真正改变。

4. 求解方法与代码实现要点

4.1 混合整数线性规划的建模与求解

我在模型里使用了二元变量来表示设备的启停状态和模式切换(比如P2G设备是否运行、碳捕集设备的运行状态),这些变量与连续变量一起构成了一个混合整数线性规划(MILP)问题。

这里有一个必须提醒的常识:不要在模型里写非线性等式,除非你已经做好了非线性求解的准备。我的第一个版本里写了一个条件判断逻辑——“如果燃气轮机出力大于某个值,碳捕集才能开”,一开始用分段函数描述,转化后发现求解时间极长。后来手动把逻辑等价改写为两个不等式约束(大M法),求解时间从几十分钟降到了几分钟。新手一定要在建模之初就有一个习惯:任何“if-then”逻辑都要用大M法转成线性不等式。

我用的求解器是CPLEX 12.10,通过MATLAB的YALMIP工具箱调用。当然也可以用Gurobi,两者对MILP的求解都很强。如果在Python里,推荐用Pyomo配合Gurobi,代码可读性更好。模型规模上,我的微网有约2000个连续变量和120个二元变量,一条24小时调度的规模大概需要50到200秒求解,完全在可接受的范围内。

4.2 代码结构设计的经验:数据、模型、求解三分离

我推荐一个能大幅提升调试效率的代码组织方式:把数据文件、模型文件、求解输出文件分开,互不混杂。

数据文件:一个excel或mat文件,包含所有设备参数、预测曲线、价格数据。模型文件:一个主脚本,构建目标函数和约束。输出文件:把结果写入一个结构体或dataframe,统一处理。这样每次修改某个参数(比如碳价从100改成150),只要改数据文件,模型和代码逻辑不用动,跑完对比结果非常方便。

附带一个调参技巧:每次跑完都自动保存最优目标函数值和各个设备的功率序列。如果不保存功率序列,只保存总成本数字,后面想画“碳捕集率随时间变化的曲线”就得整个重跑一遍,非常浪费时间。我早期吃过这个亏,后来才养成了“结果必存”的习惯。

4.3 求解过程的调试与可行性问题排查

求解失败时出现的信息一般是“不可行(infeasible)”或“无界(unbounded)”,我的经验排查顺序是:

第一,先检查功率平衡等式。如果净负荷(总负荷减新能源出力)是负值而系统又没有足够的下调能力(储能、P2G容量不够),模型一定不可行。解决办法是加大P2G或电池的功率上限测试一下,确认是容量问题还是约束逻辑问题。

第二,再检查储能设备的初末状态约束。如果初始储能为0且强制末端储能为满容量,而整个周期内又没有足够的充电机会,模型也是不可行。在没有特别需求的情况下,建议把初末储能约束放宽为柔性约束或者允许偏差。

第三,还要注意二元变量的逻辑错误。比如“设备功率大于0则启停变量必须为1”这种约束,我建议写成功率下限约束而非逻辑判断。如果设备的功率下限是0.1兆瓦而在某个时段目标函数希望它输出0.05兆瓦,模型就会让功率变成0、启停变量变为0。这种“用小功率来获得启动状态”的坑特别隐蔽,我当时查了好久才发现是功率下限和启动状态两个约束被线性化改写时出了问题。

这些排查技巧看起来细碎,但每一个都能省你半天到一天的调试时间。特别是对着“infeasible”报错一头雾水的时候,先跑一个去掉全部储能约束的简单版,确认基础线性模型可解,再一层层加回约束,是最稳妥的调试路径。

5. 结果分析与敏感性讨论

5.1 弃风削峰:P2G在不同时段的动态响应

从24小时调度结果看,P2G的运行曲线非常有规律性:凌晨1点到5点风电大发时段,P2G输入功率从零爬升到满功率状态,同时电池也在充电,两者共同吃掉了原本要丢弃的“谷电”。早晨6点到9点负荷开始上升,但P2G没有立刻关停,而是继续运行一段时间,直到购电价格上升或新能源出力下降,这才逐步退出。

有趣的是,在下午光伏大发的高峰时段(约13点到16点),P2G又迎来第二个运行窗口,但它的输入功率整体低于凌晨时段。原因在于光伏出力和风电出力叠加后,中午的触电本身就没有凌晨那么极端。这个“P2G吃谷电为主、吃午间光伏为辅”的行为模式,非常直接地反映了新能源出力波动与P2G运行策略之间的耦合关系。

同时我还观察到一个细节:P2G和电池的工作区间是错开的。凌晨时段两者同时充电,但午后时段电池往往在放电(供给电负荷和电锅炉),P2G却开始充电(供给甲烷化产气)。如果只装了电池而没有P2G,这些午后光伏的富余电量根本没法转移,只能弃掉。这就是为什么多能互补的价值会在高比例新能源场景中格外明显。

5.2 碳捕集率的变化特征与减排机理

碳捕集率的调度结果比P2G更复杂,不是简单地“新能源大发就开,负荷高峰就关”。我画出碳捕集率曲线后发现,它的高峰出现在燃气轮机高负荷时段(也就是晚间和早晨),低谷出现在燃气轮机低负荷时段。原因很直白:碳捕集设备本质上是从燃气轮机的烟气中分离CO2,如果燃机本身没怎么出力,烟气量就少,捕集设备再想开也无米下锅。

但这带来一个隐忧:如果燃气轮机的负荷率长期很低,碳捕集装置就形同虚设,系统整体的“减碳能力”上不去。解决办法有两个方向,一个是在系统中引入一个独立的CO2来源(比如直接空气捕集或工业过程尾气),另一个是让燃气轮机在必要时以更高效率运行,把原本由外购电承担的负荷改为自产,用更多燃气轮机发电来给碳捕集系统提供“原料”。后一种方案会提高燃料成本,但可能在碳交易机制下整体更优。我在模型里验证了这个“以能换碳”的策略:当碳价超过一定阈值时,模型确实会选择减少购电、增加燃机出力来提高捕碳量,此时碳排放总量下降但能源费用上升。这个权衡点就是低碳调度的核心价值所在。

5.3 碳价对系统行为的决定性影响

我扫描了碳价从每吨50元到每吨300元的区间,把结果整理成曲线图后发现三个明显的分段行为:

第一段是碳价低于每吨100元时,系统几乎不启动碳捕集,减碳主要靠新能源出力。第二段是碳价进入每吨100到200元区间时,碳捕集设备逐步投入运行,捕集率与碳价近似线性上升。第三段是碳价超过每吨250元后,系统捕集率接近上限,但总成本增速反而减缓——因为此时P2G的碳减排潜力已经基本释放,边际减排成本开始大幅上升。

这个分段行为对政策制定者和投资者都有参考意义:碳价太低时补贴碳捕集设备没有经济动力,碳价过高时继续加码减排投入的性价比骤降,存在一个“有效减排价格带”。虽然这个阈值随设备参数、燃料价格变化会移动,但这个认识方法是可以复用的。

6. 实操经验总结与避坑指南

6.1 四个容易让结果“失真”的参数陷阱

第一个陷阱是P2G效率设置太高。有些文献里直接把电转氢效率和氢转甲烷效率相乘当作全过程效率,但实际系统中电解槽的辅助系统(水处理、压缩、冷却)还要额外耗电,这部分损耗没有算进去。用0.56这个全过程效率进行建模是比较稳妥的选择。

第二个陷阱是碳捕集设备的“捕碳能耗”只算了电耗而漏了热耗。胺法捕集最大的能量消耗其实是溶剂再生过程的热耗,如果系统里没有余热可用而需要电锅炉供汽,那实际减排成本会大幅上升。我建议在模型中设置一个“是否考虑捕集系统热耗”的开关,分别跑两种场景对比,看看结论稳定性如何。

第三个陷阱是碳配额设置的随意性。如果配额设得太宽松,碳捕集装置基本没有运行必要,模型就退化成普通经济调度,P2G和碳捕集的减碳价值完全体现不出来;配额设得太紧,系统只能靠砍负荷来达标,调度结果会很不自然。我的做法是设置配额为基准场景碳排放总量的0.8倍,这样既能体现约束的力度,又不会过度强制系统行为。

第四个陷阱是忽略设备爬坡约束。燃气轮机的爬坡率是有限的,P2G电解槽也有单位时间功率变化限制。如果没有爬坡约束,模型可能在两个相邻时段让燃气轮机从满负荷降到零再升到满负荷,求解出来的曲线十分激进,与工程实际严重脱节。加入爬坡约束后,结果曲线平稳很多,求解时间也只增加了一点点。

6.2 让论文或报告更有说服力的三个结果呈现技巧

首先是画“能量流/碳流”平衡图。将典型日内电力、天然气和碳三类能量流用桑基图方式可视化,能让读者一眼看出弃电去哪了、碳从哪里来到哪里去、P2G对碳流的走向有什么影响。我在多个场合使用过这个方法,效果比单纯列数据好得多。

其次是做“碳价-弃风率-碳排放量”的多参数等高线图或三维曲面图,展示“碳价上升到某个区间系统行为发生质变”的结论。这类图直观而且有说服力,评审人通常会留下深刻印象。

最后是给出“经济性-低碳性”的双目标前沿曲线(帕累托前沿)。我的方法是改变碳配额或碳价参数,计算出多组成绩点形成曲线,显示出经济目标和碳减排目标之间的矛盾。这能直接回答“既要低碳又要经济,应该落在曲线的哪个位置”这个关键问题。

6.3 进一步扩展的三个方向

当前的模型还是有很多简化之处,后续可以沿三个方向扩展。

一是在P2G模型中引入氢能存储与氢负荷。现在的模型把甲烷化之后的天然气作为唯一的产品,但现实中P2G可以先产生氢气直接供给氢负荷(例如氢燃料汽车加氢站),这样P2G变成了多产品输出系统,调度灵活性会进一步提升。

二是在目标函数中增加设备投资成本,做规划-运行联合优化。现在的模型只优化一个典型日的运行成本,如果要做年度规划层面的设备容量配置,就需要把P2G、碳捕集装置的投资成本折算为等年值加进目标函数,变成投资决策与运行调度耦合的双层问题。这个方向的复杂度会上升一个量级,但对实际项目选型有很大参考价值。

三是把确定性模型升级为考虑新能源不确定性的鲁棒优化或随机规划。用场景法生成100个风电光伏出力场景,对应求解期望成本最小化,或者用鲁棒优化保护最坏场景下的系统安全。这类模型的求解难度更高,但对含高比例新能源微网的工程现实意义也更大。

我在实际项目中最大的体会是:这类低碳调度课题的成功与否,一半靠模型构建的完备性,另一半靠对实际物理过程和工程约束的理解深度。在套用任何现成公式或参考代码之前,先想清楚每一台设备在真实世界中是如何运行的,约束条件是否被简化得过度,参数数据是否有文献依据或现场支持,这样建出来的模型才不会脱离实际。无论你是在校学生还是企业工程师,当你能够把“为什么这样建模”“为什么设这个参数”“为什么结果呈现这个规律”都讲清楚的时候,这个课题才算是真正吃透了。

这个方向后续还可以继续扩展,但先把基础模型跑通、把物理含义弄透彻,比单纯堆复杂度要重要得多。祝大家建模顺利,少踩坑。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进