1. 这个模型到底在解决什么“真问题”
1.1 碳捕集电厂的“电热耦合”是怎么来的
先聊点背景。现在搞低碳调度的人不少,一提“碳捕集电厂”,很多人的第一反应就是“把排放的CO₂抓回来封存或者利用”,听起来很环保,但真正做调度的人才知道,这东西一旦接入电网,整个系统的运行逻辑都会变。
碳捕集电厂和普通火电最大的区别在于:它多了一套捕集系统,而这套系统不是一个“附加设备”那么简单,它和主机组之间有一条非常深的“能量脐带”。以目前最成熟的化学吸收法为例,烟气进入吸收塔后,CO₂被胺溶液吸收,富液经过换热后进入再生塔,在高温条件下把CO₂解析出来。这个解析过程需要大量热能,一般是110℃到120℃左右的蒸汽,通常直接从汽轮机中压缸抽汽获得。刚建成的600MW超超临界机组,捕集率按90%算,一天能捕集八千吨左右CO₂,对应消耗的再沸器热负荷非常可观,大概占机组额定热功率的20%到30%。
这条抽汽管路就是电热耦合的根源。你为了让捕集系统稳定运行,得抽走一部分本来可以继续膨胀做功的蒸汽,机组的电出力随之下降;反过来,如果你想把电出力顶上去,就得减少抽汽,捕集量就跟着降。也就是说,碳捕集电厂内部有一个“电出力-捕集能耗-热供应”的三方博弈,传统调度模型里那一套“机组出力只是一个数”的做法,在这里完全不够用。
更要命的是,供热工况下这个矛盾会被放大。北方很多碳捕集电厂是热电联产机组,冬季要对外供热,供热抽汽和捕集抽汽都从中压缸出来,一个要给老百姓供暖,一个要支撑碳捕集,两边抢蒸汽。如果调度模型里没有把热网、捕集系统、电出力之间的关系显式建模,最后算出来的“最优调度方案”很可能在物理上根本执行不了——要么汽轮机抽汽不够用,要么热网供温不达标,要么捕集率大幅度波动导致碳履约出问题。
所以这台模型真正要解决的第一个问题,就是把碳捕集电厂内部的电热耦合机理用数学语言描述清楚,让它变成一个调度员看得懂、优化器算得动的约束条件。这不是锦上添花,而是能不能做低碳调度的地基。
1.2 单一电力调度的几个“坑”
可能有人会想:既然捕集系统有能耗,那在一个纯电力的调度模型里把捕集能耗当成一个随捕集率变化的函数塞进去,不就行了吗?
这个思路方向没错,但现实里到处是坑。
第一个坑是抽汽来源的物理约束。捕集系统需要的是中压缸抽汽,不是任何一股蒸汽都行。抽汽压力必须匹配再生塔的需求,抽汽量受汽轮机通流能力的限制。如果你只把捕集能耗建模成一个固定电功率或者一个简单的热负荷,算出来的结果往往忽略了抽汽压力的约束,等到了现场一执行,机组可能根本提不到那个抽汽量。
第二个坑是热网本身是慢变量。供热管网有巨大的热惯性,水温变化不是即时传导的,一栋楼的室温在大半天之内都不会因为热源出力的短时波动产生明显变化。如果你把热负荷当作刚性约束,在每个时间断面都强配,那调度空间会被严重压缩,碳捕集电厂的灵活性优势根本发挥不出来。但在纯电力调度模型里,你根本不会去建热网动态模型,这个灵活性就被白白浪费了。
第三个坑是时间尺度错配。电力调度需要秒级到分钟级的响应,热力系统可以慢到小时级。碳捕集系统的吸收塔、再生塔、溶液循环都是几十秒到几分钟的动态过程,而热网是几个小时的热惯性。单一时间尺度的模型要么为了照顾电力而牺牲了热系统的经济性,要么为了照顾热力而让电力调度失去灵活性。具体操作里最常见的情况是,日前计划定了24小时的机组出力曲线,结果白天风电大发、晚上负荷爬坡的时候,碳捕集电厂要么响应不了,要么响应了但捕集系统跟不上,最后只得靠弃风或者切负荷来兜底。
这台模型把电、热、碳三套系统放到同一个框架里,本质上是把“一个电厂”的调度问题,升级成了“一个包含碳捕集、热电联产、热网储热、柔性负荷的广义能源系统”的优化问题。让源侧和荷侧在电、热、碳三个维度同时配合起来,这才是“源荷协同”这四个字的真正含义所在。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 源荷协同的思路拆解
2.1 源侧:捕集能耗变成可控调节资源
说到“源荷协同”,很多人的第一反应是源侧有风电光伏、荷侧有电动汽车和储能,两者互动。但在碳捕集电厂这个场景里,源侧最大的变数恰恰来自碳捕集系统本身。
捕集系统并不是一个“要么满负荷捕集、要么停机旁路”的二值设备。借助溶液储罐——也就是把吸收塔出来的富液先存起来,而不是直接送去再生——捕集系统可以做到吸收过程和再生过程解耦。吸收塔持续吸收烟气里的CO₂,把富液存进罐子里,再生塔什么时候开、以多大功率开,由调度指令决定。这就相当于给电厂配置了一个“碳排放缓冲池”:碳排放量可以和发电量错峰。风电大发的时候,机组降出力,富液可以存着不急着再生,捕集能耗降低、净出力进一步下调;晚高峰负荷上来的时候,机组加出力,同时把储罐里的富液送去再生,捕集量追回来,碳排放不超标。
这是源侧协同的第一个抓手:把捕集能耗从固定负荷变成可调区间,而且是带时间耦合的可调区间——罐子满了必须再生,罐子空了不能再再生,这是典型的储能式约束。
第二个抓手是热电解耦。碳捕集电厂的再沸器用汽轮机抽汽供热,而汽轮机抽汽量本身也是热电联产调峰的关键手段。如果热网侧配置了储热罐,白天电负荷低谷的时候,可以把多余的抽汽热量存进储热罐,而不是直接对外供热;晚上热需求上来的时候,储热罐放热,减少机组的供热抽汽,把蒸汽留在汽轮机里多发电。这样一来,碳捕集电厂的电出力调节范围就显著扩大,深调能力不再被供热需求锁死。
操作层面,这两个抓手需要落实到同一个源侧模型里。我自己的做法是把碳捕集系统和储热系统都表示成“广义储能”变量:捕集溶液罐是“碳储能”,储热罐是“热储能”,两者共享同一台汽轮机的抽汽资源。这样,源侧的调度变量就可以统一成“电出力”“抽汽分配到供热、捕集、储热三个去向的比例”“溶液罐和储热罐的充放状态”,几个变量一套框架,清晰多了。
2.2 荷侧:电热柔性负荷怎么“接得住”
源侧调出空间以后,荷侧必须“接得住”,否则源侧的灵活性是白调的。
电负荷侧,常规的做法是需求响应,比如大型工业用户、充电桩集群在电价高的时候主动削减负荷。但在一个以碳捕集电厂为核心的园区或者区域系统里,真正有意义的是电热协同型负荷:比如楼宇的空调系统、学校的采暖系统、工业过程中的电锅炉,它们用电产热,电和热天然可以互转。电负荷紧张的时候,这些电锅炉可以少用电,由热网供热顶上;热负荷紧张的时候,电锅炉可以多用电产热,分担热网压力。这种负荷本质上是一个“电力-热力转换阀”,给调度模型额外增加了一个调节维度。
热负荷侧,除了传统的调节阀、混水站之外,还有一个特别值得利用的柔性:供热系统的热惯性。我们在实际项目里测过数据,一次管网供水温度变化3℃到5℃,用户端室温在6到8小时内几乎察觉不到。这就意味着热力调度不需要“时刻满足”热负荷曲线,只需要保证一定时间窗口内的热量供给总量达标,且末端室温不低于允许值。把这个“热舒适度死区”显式写进约束条件,调度模型就多了一层缓冲。
荷侧协同的关键是把“负荷”从固定曲线变成“可调节区间”。电负荷方面,要识别哪些负荷可以被转移、被削减、被替代,给每个负荷配备响应速率、持续时间和成本曲线;热负荷方面,要建立室温动态模型,把管网储热能力、建筑围护结构热惰性都考虑进去。把这些参数处理好之后,荷侧参与协同就不是一句空话,而是有据可依的可优化变量。
我见过不少项目在荷侧协同上走过弯路,最大的问题是把负荷柔性建模得过于理想化。比如假设所有电锅炉都能在五分钟内从零到满功率,但实际上大型电极锅炉的升温过程往往需要两个多小时。如果一个模型在时间尺度上分得不够细,这些响应延时就会被抹掉,算出来的“协同效果”到了现场全打折扣。所以荷侧建模一定要把响应速率、延时、爬坡约束写清楚,宁可在模型里多花点计算时间,也不能让方案在物理上不可行。
2.3 为什么一定要放到多时间尺度里做
源侧和荷侧都具备调节能力以后,接下来的问题是怎么协调。这里我要着重说一句:把它们放到同一个时间尺度的模型里去算,是很多方案失败的根源。
电力系统的调度是分层的。日前调度做24小时机组组合和出力计划,解决的是“明天大致怎么开”;日内滚动调度每隔4小时或者1小时做一次修正,应对风电和负荷的预测偏差;实时调度做15分钟甚至5分钟级别的AGC调整,处理秒级到分钟级的功率不平衡。热力系统和碳捕集系统的动态特性则完全不同:管网水温变化是以小时计算的,溶液循环和再生塔响应是分钟级的,储热罐的充放热可以持续数小时。
如果你把这几个时间常数差两个数量级的系统强塞进一个时间断面统一优化,要么模型庞大到解不动,要么因为时间耦合被简化导致结果失真。多时间尺度调度是这个问题的一个标准解法。日前尺度重点解决“机组启停、检修计划、储热罐和溶液罐的中长期充放策略”这类慢决策;日内尺度关注“因风电和热负荷预测偏差而做的出力修正”;实时尺度解决“短时间尺度的功率平衡与频率支撑”。各层之间通过交接变量衔接——日前模型算出的储热罐和溶液罐状态轨迹,传给日内模型做初始条件;日内模型算出的机组调整计划,传给实时模型做基准值——这样既能保证整体经济性,又能保证实时可行性。
我实际测算过,在同样的案例条件下,把多时间尺度协同调度和传统的单尺度调度对比,前者的综合运行成本能降低8%到12%,弃风率能降一半以上,碳捕集率还能维持在90%附近。这个收益主要就来自“慢系统提前备、快系统精准调”的分层打法。
3. 模型构建的核心细节
3.1 目标函数与成本结构
调度模型的目标函数,我的做法是采用“经济性与低碳性综合最优”的思路,以系统总运行成本最小为目标。具体包括以下几个方面:
- 机组燃料成本:碳捕集电厂主体机组的煤耗,按机组电出力和捕集能耗共同折算。
- 捕集系统运行成本:吸收剂损耗、再生蒸汽成本、溶液循环泵电耗。这部分经常被初做模型的人遗漏,但实际占比不低,600MW机组光溶液循环泵一天的电费就是几十万级别的。
- 碳交易成本:实际碳排放量和免费配额之差乘以碳价。碳价取什么值影响很大,现在国内碳市场配额价格在每吨几十块到一百多块之间波动,模型里建议用区间场景而不是用固定值。
- 弃风/弃光惩罚成本:系统里有风电光伏,弃了就要罚,否则优化器会故意全弃掉来保证火电出力。
- 负荷削减惩罚成本:某些极端情况下可能要切负荷,用高惩罚系数约束,让它最后一刻才选这条路。
- 储热/储液设备的运行维护成本:这部分是小头,但路径上不能漏。
目标函数的写法是把这些成本的时序之和最小化。看起来不难,但真正要命的是约束条件之间的耦合。我这次采用“分时竞价”的思路处理碳价与电价的协同:用电高峰时段,电价高,系统倾向于提高电出力,捕集系统可以通过溶液罐缓冲来推迟再生;用电低谷时段,电价低,系统倾向于增加捕集能耗、拉开机组出力低谷,相当于把碳捕集做成了一个“虚拟储能”来参与电力调峰。等于碳捕集电厂不再只是一个“减排设备”,平时也能拿它做电力系统的调峰资源来赚钱。
3.2 关键约束条件
约束条件才是这台模型的真正内容。这里把几个核心的约束展开说一下。
第一个是电功率平衡约束。任一时刻,所有机组电出力加上风电光伏出力,减去捕集系统电耗和储热/储液设备的用电,等于系统电负荷。这个约束看起来简单,但捕集系统电耗并不是常数,它随再沸器蒸汽量、溶液循环量变化,必须建模成变量而不是参数。
第二个是热功率平衡约束。供热抽汽、储热罐充放热、电锅炉产热、工业热负荷之间要平衡。这里特别要注意热网动态特性,我的做法是用一个简化的城市热网节点模型,把管道热延迟和热损失用一个等效时间常数表示,而不是把热负荷当成瞬时刚性约束。
第三个是碳捕集系统约束。这是整台模型的核心,需要顾及吸收塔的烟气处理能力上限、再生塔的解析能力上限、溶液储罐的容量与富液/贫液液位约束、再沸器抽汽量上下限等。此外还有捕集率约束:系统总的碳排放量要低于配额要求,这个指标按日或按调度周期审计。
第四个是机组运行约束。常规的出力上下限、爬坡速率、最小启停时间这些不多讲。这里额外要处理的是“电出力-抽汽量-捕集量”三者之间的可行域。我参考了行业内常用的建模思路,用一组不等式来描述这个可行域,核心逻辑是中压缸抽汽量增加,电出力和捕集量之间的可行空间同步变化。
第五个是储热系统和储液系统的储能约束。充放能功率上下限、储能容量、SOC状态转移方程,以及为了保证调度周期结束时储能回到一定水平而设的终端约束。否则优化器会在每个周期结束前把储能放空,导致下一周期的初始状态不可行。
这些约束放在一起,模型规模会迅速膨胀,一个标准的24时段日前调度模型,配上48个热网节点、若干个碳捕集电厂和风电/光伏场站,决策变量能到几万个。如果不用商业求解器(比如Gurobi、CPLEX)或者优质的启发式算法,求解效率会很难看。
3.3 求解方法与参数设置
对这类混合整数线性规划模型,我在项目里一般这样处理。碳捕集电厂、储热、储液的连续运行部分用线性约束描述;机组启停用0-1整数变量;整体用MILP求解。实际案例里,24时段+30天滚动优化,变量约12万个,约束约18万个,Gurobi在默认参数下求解时间大约在10到25分钟之间,现场可以接受。如果要做更细的时间分辨率(比如15分钟一个时段),我建议用“先算日前、再做日内、然后实时修正”的分层计算方式,而不是在单一模型里把分辨率提上去。
参数设置里最容易踩坑的是碳价和捕集率目标之间的组合。我曾试过在碳价设定为60元/吨时,优化结果选择了捕集率降低、购买碳配额的方案,系统总成本反而更低;但当把碳价提到120元/吨,同样的方案就改为满捕集运行。这个结论说明模型里不能只在碳价上“猜一个数”,最好用多场景分析,给出“不同碳价下的调度策略区间”,这样对运行决策才有实际参考价值。
还有一个参数容易被忽略,就是储液罐的成本和容量。我见过一些文献把储液罐假设成无限容量,这个假设会让问题完全失真。实际溶液罐容量的设计是要做经济性比选的:容量太小,缓冲作用有限;容量太大,投资浪费。模型里建议把储液罐容量当成一个可配置参数反复跑,找到拐点。
4. 实操算例与效果对比
4.1 算例场景设定
下面用我从一个实际项目里脱敏后的算例,把模型的用法和效果展示一遍。算例设定是北方某工业园区,系统中有一个600MW碳捕集热电联产机组,捕集系统采用化学吸收法,设计捕集率90%;风电场装机200MW;电负荷峰值420MW,热负荷峰值300MW;系统配置一个2000立方米的储液罐和一个5000立方米的储热罐。
调度周期取24小时,分辨率取1小时。这个分辨率跑日前模型足够;日内修正和实时修正可以在这个基础上进一步加密。碳价取80元/吨,免费配额按机组装机容量折算约60%的排放量。风电预测数据直接用实际历史数据,故意叠加10%的预测误差来测试模型的鲁棒性。
为了对照,我设计了三个方案:
- 方案A:传统调度,碳捕集率固定90%,热负荷刚性满足,不做源荷协同。
- 方案B:碳捕集率可变,储液罐参与调节,但热负荷仍然刚性,不做多时间尺度。
- 方案C:本文模型,碳捕集率可变、储液罐/储热罐参与、热负荷利用热惯性柔性、多时间尺度调度。
三个方案用完全相同的边界条件跑,对比系统日运行总成本、弃风率和碳排放量三个指标。
4.2 结果对比与收益分析
结果非常直观。方案A的日运行总成本大约在152万元左右,弃风率高达21%,碳排放量约4200吨。方案B的总成本降到141万元,弃风率降到14%,碳排放量约3900吨,说明把碳捕集系统做“活”就能见到效果。方案C的总成本进一步降到128万元,弃风率降到6.8%,碳排放量约3600吨。
三组数据的差距主要来自三个地方。第一是方案C在夜间风电大发时,机组深度调峰到最低技术出力,同时把富液存进储液罐、把部分抽汽热量存入储热罐,风电消纳明显改善。第二是白天负荷高峰时,储热罐放热、储液罐再生,机组电出力抬高,避免了从外部高价购电或切负荷。第三是多时间尺度调度让日前计划和日内修正的衔接损耗降了下来,实时备用的调用量少了,整个系统的燃料消耗也少了。
如果你把这个算例扩展到整个供暖季(北方按150天算),方案C比方案A一个冬季的运行成本节省约3600万元,这个量级完全可以支撑储液罐和储热罐的投资回报。
4.3 实现过程中的常见问题与排查技巧
最后把我在实操和部署这套模型时踩过的几个坑集中复盘一下。
**问题一:模型解出来的捕集率曲线波动剧烈,现场没法执行。**原因通常是溶液储罐的容量约束没有和再生塔的爬坡速率约束协同,优化器让再生塔一会儿满负荷一会儿停机。解决方法是给再生塔加上最短连续运行时间约束,或者在目标函数里加一个调节成本惩罚项。我试过用加惩罚项的方式,效果不错,求解时间增加还可以接受。
**问题二:热网模型太复杂,求解时间爆炸。**一开始我用完整的热网水力-热力模型,36个节点就把求解时间拉到了3小时以上。后来把热网简化成“等效延迟-热损”模型,求解时间回到20分钟以内,而热负荷预测和实际数据的误差只增加了约1.5%,完全可以接受。这中间的经验是:热网动态只对“日内及以上时间尺度”有意义,实时调度不需要用完整热网模型。
**问题三:碳交易价格用固定值,算出的方案没有参考价值。**我在一个项目里用固定碳价60元/吨算了一个月的调度方案,结果实际运行时碳价波动到了100元/吨以上,优化方案的很多决策(比如捕集率、机组启停)都变得不经济。后来改为“三场景碳价”分析——低、中、高三个价格各跑一遍,输出不同场景下的决策建议,运行人员可以结合盘面对景参考,方案就不“僵”了。
**问题四:源荷协同方案在实时执行时,负荷跟预测偏差过大。**这里要特别注意,模型里荷侧柔性不是无限的。我后来给每个可调负荷都加了一个“响应信心系数”,这个系数是根据历史执行数据修正的。比如某工业用户在往次35次响应中只有20次达到预期,系数就设为0.57,宁可在模型里保守一点,也不让方案在现场严重走样。
一个不算结论的收尾
做这个模型前后的最大体会是:低碳调度最难的不是“把碳排放写进目标函数”,而是把碳捕集电厂内部的物理规律想透,再把这些规律翻译成优化器能懂的语言。碳捕集系统不是电厂的附属品,它是一个天然具备时间耦合能力的调节资源。再加上热力系统的慢热惯性,整个源荷两侧的调节空间比我们事先想象的要大得多。
如果你也在做类似方向,我的建议是从小算例起步,先把捕集系统、储液罐、储热罐和热网动态这四个要素的约束建模做扎实,再考虑源荷互动和多时间尺度。框架搭好之后,把碳价、配额系数、储液罐容量这几个关键参数做灵敏度分析,你对系统的理解会有一个质的提升。碳捕集和源荷协同今后在新型电力系统里的作用只会更重,这套方法里的很多套路,早晚你会用得上。
