做综合能源系统优化这几年,一个绕不开的命题就是:碳约束怎么进模型,新能源怎么进系统,两件事又怎么放在同一个优化框架里解决。最近看到不少同行在讨论“阶梯式碳交易机制”和“电制氢”这两个词,正好和我手上在做的热电联供系统调度优化高度相关。这篇就从这个标题出发,把背后的建模思路、设备模型、目标函数、常见坑一次说清楚。
先说结论层面的直觉:如果把综合能源系统比作一个人,碳交易机制是给它的“排放行为”标上了阶梯式价格,电制氢则是给系统增加了一个能“喘气”的缓冲器官。两者叠加以后,热电联供系统的运行方式会发生明显改变——燃气机组不再是无脑跟热出力走,风电的消纳路径也多了“变成氢气存起来”这一条。下面展开讲。
1. 问题从哪来:为什么要把碳交易和电制氢放进同一个模型
1.1 热电联供系统的“以热定电”刚性
园区级综合能源系统里,热电联产机组(CHP)通常是核心设备,因为它同时供电供热,能量利用效率比电锅炉加燃气锅炉的方案高不少。但CHP有一个天然的毛病,就是热电出力强耦合。冬季热负荷一上来,机组为了满足供热,电出力也得跟着抬高;哪怕这时候系统电负荷很低、风电很大,也没法把电出力压下去太多,结果就是弃风或过剩电力外送受阻。反过来,电负荷高峰时段如果热负荷很小,机组电出力又可能够不着需量,得靠外购电填补缺口。
这种“以热定电”的刚性,是热电优化调度所有复杂性的起点。任何新机制、新设备进来,首先要回答的问题都是:它能不能打散热电耦合,能不能给系统增加调节自由度。碳交易和电制氢,恰好分别从成本和设备两个维度对这个痛点下手。
1.2 碳交易机制把减排变成经济信号
过去做热电调度,成本项主要是购电费、燃气费、设备运维费。碳排放只是事后统计,不进入优化决策。引入碳交易机制以后,碳排放不再是免费的,每一吨超出配额的排放都要花钱买,于是碳排放变成了一个与购电价、天然气价并列的经济信号。调度模型必须回答:在某个时段,是让燃气机组多发电、多排碳,还是少发电、靠外购电顶上?这个取舍直接取决于碳价和电价的相对关系。
传统的单一碳价机制,超排部分单价固定,系统的减排动力是一根直线。阶梯式碳交易机制则把超排量划分成多个区间,超得越多,边际碳价越高——相当于对“顽固的高排放行为”收更高的税。这么做的好处是,优化模型在高排放区间会自动避免继续增加碳排放,转而选择其他供能路径,比如让电制氢把多余新能源变成氢,或者调整CHP和燃气锅炉的出力分配。从建模角度,阶梯式碳交易的目标函数不再是简单线性,而是一组分段线性成本,需要专门线性化处理。
1.3 电制氢给系统加了一个“新能源缓冲池”
电制氢(Power-to-Hydrogen,常简写为P2H)的本质,就是把电能转化成氢气的化学能。电解槽是一个大功率电负荷,可以在风电大发时段把多余电力吃掉;生成的氢气进储氢罐,之后可以供给燃料电池发电、供热,也可以作为工业氢负荷卖给用户。
这个“先吃电、后吐电”的过程,等于在电力系统和热力系统之间嵌入了一个跨时段、跨能源形态的存储环节。放在热电联供系统里,电制氢至少有三种价值。第一是消纳弃风弃光——风电高峰时段,电解槽吃电;第二是氢替代燃气——燃料电池发的电和热可以顶替一部分CHP出力,减少燃气消耗和碳排放;第三是增加系统惯性——氢储罐的SOC本身就是一种调节资源,可以让CHP不用频繁变负荷,延长设备寿命。
把这些串起来,一个完整的逻辑链就出现了:风电多了——电解槽制氢——燃气机组少烧气——碳排放下降——阶梯式碳价惩罚减少。这正是为什么“阶梯式碳交易电制氢综合能源系统热电优化”这个题目,本质上探讨的是低碳机制设计叠加新型灵活性资源后的系统级优化问题。
2. 阶梯式碳交易机制:从概念到可计算的模型
2.1 单一碳价与阶梯式碳价的经济学差异
先理清概念。传统碳交易模型里,系统碳排放量和免费配额之间的差值,乘以一个固定碳价,就是碳成本。这个模型简单,但是一个问题:如果碳价设得低,企业宁可交钱排碳也不改造设备;如果设得高,又可能让所有企业同时承受过重压力。
阶梯式碳交易则是把超排量切成几段,每一段单价递增。比如超排量在0到5000吨时,碳价按40元每吨算;5000到13000吨这一段,按70元每吨算;再往上按110元每吨算。用生活类比就是水费阶梯计价——用得越多,边际成本越高,逼着高耗能环节主动收敛。
放在优化模型里,阶梯式碳价的作用效果很直接:系统在优化时会尽量避免掉进更贵的碳价区间。如果一个时段里燃气机组出力已经让碳排放上了第二阶梯,那么控制器就有动机减少该机组出力、转而购电或让燃料电池顶上,哪怕第二阶梯碳价只比第一阶梯贵20元每吨,在24小时连续优化里也会产生明显影响。
2.2 碳排放核算与免费配额的计算口径
建模仿真里,系统碳排放主要看三个来源:外购电力的间接排放,CHP机组燃烧天然气的直接排放,以及燃气锅炉燃烧天然气的直接排放。外购电间接排放按电网平均排放因子折算,燃气类设备按天然气排放系数计算。计算逻辑如下:
- E_purchase = 购电量 × 电网排放因子
- E_gas = 燃气耗量 × 天然气排放系数
- E_total = E_purchase + E_gas
免费配额则按基准线法发放。常见的简化做法是:发电量部分按供电配额强度给,供热量部分按供热配额强度给。总免费配额等于两类配额之和。这样设置有一个好处,就是配额量和系统实际供能规模挂钩,不会出现“干活的拿不到配额、不干活的拿一堆配额”的畸形情况。实际做模型时,我会把配额强度和实际排放量放在同一个量纲下比较,计算单位统一为吨。
2.3 阶梯分段成本函数的数学表达与线性化
设实际碳排放总量为E_total,免费配额为E_quota,净超排量为ΔE = E_total - E_quota。当ΔE ≤ 0时,碳交易成本为0,此时系统还可以把富余配额“存着”或卖给别的排放主体,这是碳市场的常见设计,但在园区级单系统模型中先按成本为0处理即可。
当ΔE > 0时,按三段阶梯计算:
- 若0 ≤ ΔE ≤ d1:C_co2 = λ1 × ΔE
- 若d1 < ΔE ≤ d1 + d2:C_co2 = λ1 × d1 + λ2 × (ΔE - d1)
- 若ΔE > d1 + d2:C_co2 = λ1 × d1 + λ2 × d2 + λ3 × (ΔE - d1 - d2)
其中λ1、λ2、λ3为三段碳价,且λ1 < λ2 < λ3;d1、d2为区间长度。
这个函数是连续凸分段线性函数,不能直接放进线性规划目标函数里让它当普通连续变量处理。工程上的标准做法是引入0-1变量或特殊有序集(SOS2)做线性化。引入0-1变量的逻辑是:先把ΔE拆成z1、z2、z3三段,z1落在[0, d1],z2落在[0, d2],z3 ≥ 0,同时用二元变量控制哪些段被激活。拿到线性化后的表达式,整个优化模型就可以交给混合整数线性规划(MILP)求解器处理。
给一组常见的示例参数,方便读者复现时参考:λ1 = 40元/吨,λ2 = 70元/吨,λ3 = 110元/吨,d1 = 5000吨,d2 = 8000吨。注意这套数字只是文献中常见的典型设定,不是某个真实市场的挂牌价。实际项目中,碳价应该和当地碳市场当前成交均价及阶梯政策参数对齐,而区间长度则按系统年度排放量级去估。
提示:不要把真实碳市场的单一成交价直接当成阶梯碳价三段都相同,那样模型退化成传统固定碳价,题目本身的优化价值就消失了。
3. 电制氢与氢热电协同建模:关键设备怎么处理
3.1 电解槽:从电功率到氢气产量的换算
电解槽是电制氢的核心设备,模型上可以看成一个可调节的电力负荷。输入是电功率P_el,输出是氢气的能量流H_el,转换关系为:
H_el = η_el × P_el
η_el是电解槽电转氢的效率,碱性电解槽通常在60%到75%之间,质子交换膜电解槽略高一些,但成本也高。做系统级优化时,把效率取为恒定常数是一个常用简化,不过要注意,电解槽在低负荷率下效率会明显下降,如果模型里经常出现电解槽在10%到20%负荷率下运行,恒定效率假设会带来10%以上的误差。条件允许时,用分段线性效率曲线逼近实际效率更稳妥。
电解槽的另一个特性是存在最小稳定运行功率,典型值在额定功率的10%到30%之间。这对于夜间风电消纳很重要——如果电解槽允许功率下限设得太低,模型可能会让电解槽在很低功率下运行“磨洋工”,产生不必要的频繁启停。实际建模时,我会给电解槽加一个最小运行功率约束和一个最小启停时间约束,防止它被优化器当成“便宜的灵活调节器”随意开关。
3.2 氢储罐与燃料电池:热和电一并输出
氢气从电解槽出来以后进储氢罐。储氢罐的建模和蓄电池很像,核心是一个状态转移方程:
E_st(t+1) = E_st(t) + H_in(t) × η_st - H_out(t) / η_st
其中E_st为储罐内氢能总量(MWh),H_in和H_out为充入/放出氢功率(MW),η_st为储氢效率(通常取0.95左右)。约束上要覆盖储罐容量上限,比如取最大储氢量1200公斤(按低热值折算约40MWh),以及单位时间充放氢功率上限。
燃料电池是氢气侧的输出设备,输入氢气,输出电和热两种能量。它的模型可以用一个电效率和热电比来描述:
- P_fc = H_h2_in × η_fc
- H_fc = P_fc × R_hp
其中P_fc为输出电功率,H_fc为输出热功率,R_hp为热电比,一般在0.8到1.5之间可调。这个特性非常关键:燃料电池不是只能发电,还能在发电的同时通过余热回收供热,并且热/电比例可以在一定范围内调整。这给调度模型提供了一个比CHP更灵活的热电调节手段。
3.3 电制氢如何缓解热电耦合、降低弃风
有了电解槽、储氢罐、燃料电池三个设备,系统就形成了一个“电—氢—热”三网协同的闭环,电制氢缓解热电耦合的机理也就清晰地暴露出来了。
冬季夜间是典型的弃风高发时段:风电大、电负荷低、热负荷高。没有电制氢时,控制系统为了保证热负荷,只能让CHP机组在较高电出力下运行,系统电力富余,只能弃风。有了电制氢,风电低价格时段可以这样调度:电解槽满功率吃风电制氢,氢进储罐,白天热负荷或电负荷高峰再由燃料电池把氢转成电和热,顶替一部分CHP的出力。CHP的热出力降下来,电出力也可以同步降下来,整个系统的风电消纳空间大幅增加。
同时,燃料电池供热替代燃气锅炉或CHP供热,意味着燃气耗量下降,碳排放自然下降。在阶梯式碳交易机制下,这个减排效果又会反向作用到碳成本上,进一步降低总运行费用。这就是“阶梯式碳交易与电制氢协同”在运行层面的具体表现。
4. 热电优化调度的完整模型框架
4.1 目标函数:成本构成与调度意图
完整优化模型的目标函数是把所有经济成本加在一起,并作为调度指令生成的依据。包含五项:
- 购电成本 C_buy:各时段购电功率乘以分时电价,逐时累加;
- 燃气成本 C_gas:CHP和燃气锅炉的耗气量乘以天然气价格;
- 设备运维成本 C_om:各类设备的出力乘以运维系数,用于体现设备损耗和检修费用;
- 碳交易成本 C_co2:按上面第2节的阶梯式公式计算;
- 弃风惩罚 C_penalty:风电理论可发功率与实际并网功率的差值乘以惩罚系数,用于引导系统尽量消纳新能源。
目标函数写成:
min C_total = C_buy + C_gas + C_om + C_co2 + C_penalty
有人会问,弃风惩罚系数怎么定?太大会让模型“不计成本”地消纳风电,太过激进;太小则可能弃风依旧。常见的做法是把弃风惩罚设为略高于上网电价或购电均价,让它反映出“弃掉的风电本来可以创造的价值”。
4.2 三类平衡约束:电、热、氢缺一不可
热电优化里最基础的是电平衡和热平衡,加入电制氢后还必须补上氢平衡。三套平衡关系并行存在。
电功率平衡: P_grid_buy + P_chp + P_fc + P_wind = P_load + P_el + P_eb + P_sell
等式左边是电源侧(外购电、CHP电出力、燃料电池电出力、风电),右边是负荷侧(电负荷、电解槽用电、电锅炉用电、对外售电)。
热功率平衡: H_chp + H_gb + H_fc + H_eb = H_load
CHP供热、燃气锅炉供热、燃料电池余热回收、电锅炉供热的和,等于热负荷。注意这里热负荷如果是考虑热网迟滞,可以加一个热网聚合惯性模型,但那会让模型变成非线性动态优化,只在某些项目里需要,常规调度先用静态平衡就够了。
氢平衡: H_el + H_out = H_in + H_load_h2 + H_fc_in
电解槽产氢加上储氢罐放出,等于储氢罐充入加工业氢负荷加燃料电池耗氢。
三条平衡写在一起,系统的能源转换关系一目了然:电可以转热(电锅炉)、电可以转氢(电解槽)、氢可以转电和热(燃料电池)、气可以转电和热(CHP和燃气锅炉)。多了一个氢平衡,相当于给原本“电—热”双通道系统增加了一条可逆的“电—氢—热”通道。
4.3 设备约束与CHP可行域
平衡约束只是骨架,真正让模型“懂事”的是设备运行约束。常规约束包括:
- 出力上下限:每台设备都有最小稳定出力和最大出力;
- 爬坡约束:机组从一个时段的出力变到下一时段,功率变化率有限;
- 储氢罐状态约束:SOC在上下限之间,且相邻时段状态转移满足效率关系;
- 电解槽启停约束:避免频繁启停。
CHP机组的建模比较特殊。如果简单把电出力和热出力都当成独立可调的变量,模型会得出“以任意热电比运行”的错误结果。实际上,CHP机组的电出力下限随热出力升高而上移,电出力上限也会受热出力影响。工程上常用一个四边形或六边形可行域来近似,几个关键顶点对应抽汽凝汽和背压运行的极限工况。
用四边形近似CHP可行域时,典型关系是:p_min = a1 × H + b1,p_max = a2 × H + b2,轴线上p_min的a1为正值,意味着热出力越大,最小电出力越高——这就是“以热定电”刚性在数学上的体现。这部分约束的精度直接影响优化结果,尤其是引入碳交易和电制氢后,CHP出力分配的变化会同时影响热平衡、碳排量和阶梯碳价区间,所以不要在这个环节偷工减料。
4.4 模型规模、求解器选择与参数标定
把上述模型写到优化平台里,典型规模是:24个调度时段、6到8台设备、含储氢罐SOC状态变量和碳成本线性化的0-1变量,总变量数大概在300到600个,其中0-1变量约50到100个。这个规模对成熟的MILP求解器来说很轻松,一般几十秒内就能收敛到1%以内偏差。
如果时间分辨率从24点提高到96点,变量数翻几倍,求解时间可能从几十秒暴涨到数小时。折中的办法是先跑24点模型确定整体调度形态,再对重点时段做96点精细化核算。参数标定方面,需要重点校准的包括:电网排放因子、天然气排放系数、各设备的效率与爬坡率、分时电价曲线、阶梯碳价参数。这些参数一旦脱离实际,模型结果就是精确的错误。
提示:模型投入使用前,先做“退化测试”——把碳交易成本置零、把电解槽和储氢罐移除,模型应能退化成普通热电联供经济调度。跑不出合理基线之前,不要急着加复杂度。
5. 算例设计与结果解读:三个场景对比
5.1 典型系统的设备配置与参数设置
为了把模型变成看得见的结果,需要先定义一个典型系统。下面是一套常见的园区级综合能源系统参数,适合做为复现基准:
| 设备 | 容量/参数 | 备注 |
|---|---|---|
| 风电 | 80MW | 出力曲线取典型冬季日 |
| CHP机组 | 40MW电 / 45MW热 | 天然气驱动,带热回收 |
| 燃气锅炉 | 30MW热 | 效率0.9 |
| 电锅炉 | 20MW热 | 效率0.98 |
| 电解槽 | 30MW电 | 效率0.7,最小负荷率20% |
| 储氢罐 | 1200kg | 折算约40MWh |
| 燃料电池 | 10MW电 | 热电比1.0 |
电负荷和热负荷曲线采用冬季典型日数据:电负荷峰值约100MW、谷值约55MW,热负荷峰值约60MW、谷值约25MW。分时电价按峰、平、谷三段设置,风电出力曲线的特征是夜间高、白天低。天然气价格按实际市场均价设定,碳配额强度按前述基准线法计算。
5.2 三个对比场景的设计逻辑
场景一:基准场景,不含碳交易、不含电制氢。CHP、燃气锅炉、风电、外购电一起满足电热负荷,结果反映的是传统热电联供调度下的弃风和碳排放水平。
场景二:在场景一基础上加入阶梯式碳交易,但电解槽、储氢罐、燃料电池全部移除。这个场景回答的问题是:单靠碳价信号,系统会不会自己改变调度方式?预期是CHP在碳价高峰时段减出力,燃气锅炉同样受影响,外购电占比上升。
场景三:阶梯式碳交易与电制氢同时启用。所有设备参与优化,观察氢能与碳交易的互动。
三个场景一对比,每个机制贡献了多少,就一清二楚了。
5.3 关键指标分析与结果解读思路
评价模型效果,主要看四个指标:总运行成本、碳排放总量、弃风率、设备利用率。从我做过的同类型算例看,几个规律性结果值得关注。
第一,单纯引入阶梯式碳交易会让系统的燃气机组出力更谨慎,尤其在高碳价区间,模型会砍掉高排放时段的CHP出力,用外购电填补缺口,碳排总量下降,但购电成本上升。第二,加入电制氢后,弃风率显著下降,电解槽在夜间风电低谷期满负荷运行,这部分绿氢在白天通过燃料电池发电供热,直接替代燃气耗量。第三,燃料电池的加入改变了热源结构,原本由燃气锅炉承担的高峰供热负荷被转移到燃料电池余热回收上,系统燃气费下降,碳排跟着下降。
但注意,碳排降不等于总成本一定降。阶梯式碳价虽然惩罚高排放,但也是一种成本;电解槽、储氢罐、燃料电池本身也有运维成本。所以场景三的总成本可能介于场景一和场景二之间,也可能高于场景二,这取决于碳价水平、电价水平以及设备效率。单独看某个场景的成本判断技术优劣并不全面,要结合弃风率、碳排放量、设备利用小时数综合评估。
6. 调试过程中踩过的坑与排查经验
6.1 阶梯碳成本线性化最容易出的问题
用0-1变量做分段线性化时,最常见的问题是辅助变量和二元变量的约束关系没写全。比如只约束z1属于[0, d1],但没约束“只有y1=1时z1才能取正值”,那么优化器可能让z1和z2同时取值,算出来的碳成本低于真实值。
另外大M值的设置也要注意。M设得太小,可能错误砍掉可行解;设得太大,会让求解器数值稳定性变差。经验做法是M取各段区间长度的上限或者系统最大排放量的一到两倍,同时优先用SOS2约束实现分段函数,如果平台支持的话,比手写0-1约束更不容易出错。
检查线性化是否正确,有一个笨但可靠的方法:固定所有调度变量,手动代入一组排放量数据,对比模型输出的碳交易成本和手工计算值,若不一致,逐条检查约束。
6.2 电解槽效率与启停建模
恒定效率在系统级优化里是常用简化,但要控制适用范围。如果算例里电解槽经常在低负荷下运行,恒定效率会让产氢量高估,储氢罐SOC也会跟着虚高,最终影响燃料电池的调度决策。
解决思路是建立效率—负荷率的分段线性曲线,用三个到四个负荷率断点逼近实际效率特性。此外,电解槽启停过程存在温升、损耗和寿命折损,24点调度模型如果完全忽略启停成本,模型会在跨时段之间频繁启停电解槽来占便宜。加一个最小连续运行时间约束或启停惩罚项就能避免。
6.3 CHP可行域近似精度的影响
CHP可行域从简单的四边形到更精细的多边形,对结果的影响容易被低估。四边形近似往往会“放大”CHP的调节范围,让模型在优化中更倾向使用CHP,而实际机组在某些工况下根本达不到那么低或那么高的电出力,导致调度指令在实际执行时失真。
厂商提供的运行包络数据是建模依据,不要凭感觉画矩形。如果拿不到详细数据,至少把四个关键顶点(最小电出力-最大热出力、最小电出力-最小热出力、最大电出力-最小热出力、最大电出力-最大热出力)标出来,再按凸包处理。精度要求高的场景可以引入更多折点,用分段线性约束逼近真实包络。
6.4 模型规模膨胀与求解时间失控
同时考虑阶梯碳和电制氢后,模型包含储氢罐SOC、电解槽0-1变量、碳成本分段变量、CHP可行域约束,变量数量猛增。24点模型一般问题不大,一旦改成96点并细化设备约束,求解时间可能从分钟级变成小时级。
我常用的做法是:先跑24点模型得到结果轮廓,用于确定哪些设备在哪些时段处于边界状态;再针对边界时段追加精细化约束;最后才考虑扩大到96点。MIP容差也可以放宽到0.5%或1%,工程调度场景完全够用,求解时间能大幅压缩。
排查顺序上,建议严格按“无碳无氢→有碳无氢→有碳有氢”的步骤叠加模块。任何一个步骤出现不合理结果,都能快速定位是新加的模块出了问题,而不是整堆模型一起返工。
实操总结与个人体会
做这套优化模型跑过几轮之后,最深的体会是:阶梯式碳交易和电制氢放在一起,不只是“模型多两行约束”那么简单,更像是给系统加了一层经济信号和一条能量的“迂回路径”。碳交易起到的是方向引导,电制氢提供的是实现手段,两者协同后调度决策的骨架会发生质变。
一个很实际的提醒是,阶梯碳价参数对结果的影响是高度敏感的。λ1、λ2、λ3差哪怕10到20元每吨,CHP和燃料电池的出力分配就可能出现明显偏移。所以做实际项目时,别拿文献参数直接套,务必和当地碳市场的真实参数对齐,并做几组敏感性分析,确认模型结论在参数波动范围内依然成立。
另外,如果想把这套模型从离线优化推进到在线调度,还有几个工程问题要提前准备:储氢罐SOC的实时估计、电解槽设备健康状态对效率的衰减影响、以及调度结果和现场执行之间的偏差补偿。模型算得再好,最后还是要落到设备的可执行性上。
最后分享一个小技巧:调试时可以把目标函数里的碳成本单独输出成一条时间序列曲线,和CHP出力曲线叠在一起看。你会很直观地看到,每次碳成本跳上第二阶梯的时候,系统的供能结构就会发生一次明显的切换——这种“看得见”的机制反馈,比盯着总成本数值变化更容易理解整个模型的决策逻辑,也能帮你更快找到参数设置不合理的地方。