资讯动态

综合能源系统低碳优化调度实战:从多能互补到碳交易建模

发布时间:2026/10/17 3:17:01 来源:尧图企业网站定制
1. 为什么综合能源系统突然成了减碳的主战场1.1 双碳目标传导下来的真实压力双碳目标喊了这几年落到综合能源系统IES项目上我最大的感受就是以前给某个园区做优化调度方案业主问的第一句话永远是能省多少电费现在问的第一句话变成了能减多少碳碳排放强度能不能达标碳成本有没有算进运行策略里。这个转变不是口头上的。我这两年接触到的实际项目无论是新建的综合能源站还是存量园区的改造升级方案评审时几乎都有一项硬指标就是单位产值的碳排放强度。甚至有些地区的电力公司给大用户做用能规划时已经开始把碳配额履约成本纳入月度账单的模拟测算。也就是说碳排放不再是企业社会责任这种软约束而是直接变成了一张要真金白银去履约的硬账单。综合能源系统的本质是在同一个物理空间内把电、气、热、冷多种能源形式通过设备耦合起来让能源在这个网络里流动时有多条路径可选。正是这种多条路径让它成了减碳的关键载体。举一个最简单的例子如果没有气网和热网的耦合电负荷只能由电网和本地电源平衡那么在冬季晚间风电小、光伏为零的场景下只能靠火电或者燃气机组顶着碳排放没得选。但是一旦有电锅炉、热泵、储热罐和燃气轮机这些耦合设备同样的电负荷我可以选择电网直接买电燃气锅炉补热也可以选择燃气轮机热电联产电制冷代替部分空调电耗还可以选择夜间谷电蓄热、白天融热供热。这些路径的碳排放强度和用能成本差异非常大优化调度就是在这些路径里找最优组合。1.2 综合能源系统减碳的底层逻辑多能互补的整体优势IES减碳的核心逻辑不在于某一个设备本身有多绿色而在于整体互补带来的结构性红利。我习惯用一个比方来解释这件事单一能源系统就好比一个只会做单一菜品的餐厅客人点啥你就做啥食材品类少了自然容易浪费而综合能源系统是一个有共享厨房的中央食堂电饭煲、燃气灶、蒸烤箱一起用哪个能源便宜、哪个能源排放低就灵活切换烹饪方式整体效率自然更高。落到具体技术上这个共享厨房体现在四个层面。第一个层面是设备层面的余热回收。燃气轮机发电时会有大量高温烟气传统火电模式下这部分热量直接排进大气而IES里可以通过余热锅炉进入蒸汽或热水管网供热效率比单独烧燃气锅炉高出一大截。同样的天然气既发了电又供了热单位天然气的综合能源利用效率可以从40%左右提升到75%以上碳排放强度随之下降。这就是所谓温度对口、梯级利用的基本原则。第二个层面是储能的时空搬移。传统电力系统是即发即用废风光时段的电没人用就浪费。IES里有了电储能、储热、储冷甚至氢储能可以把低谷期的廉价清洁电力存下来转移到高峰时段去替代燃气机组发电。特别是储热罐这种东西成本比电池低得多寿命又长在北方园区的冬季供热场景里用谷电蓄热替代白天天然气直烧减碳效果非常可观而且经济性几乎能打平。第三个层面是异质能源的替代效应。燃气锅炉制热和电热泵制热在碳排放上是完全不同的两条路径。同样是产生1吉焦热能天然气锅炉要排放约50到60公斤二氧化碳而电动热泵如果用的是清洁电力排放几乎为零即使电网排放因子算高一点也只有煤气锅炉的六到七成。优化调度要做的事情就是在每个时段根据电网排放因子、天然气价格和碳排放配额动态判断该让哪条路径多出力。第四个层面是需求侧的柔性互动。现在IES项目一般都会配微网控制系统和需求响应策略可以引导电负荷、热负荷主动调节用能时段。比如在光伏大发的中午时段适当多用电、在晚间高峰时段少用电这本质上是通过削峰填谷拉高了清洁能源的消纳比例。负荷侧的一减一增有时比电源侧新装一台机组更便宜也更低碳。1.3 调度优化在IES里到底管什么说完了IES减碳的底气再来说说调度优化在其中扮演的角色。很多人对优化调度的理解就是排一个运行班表但实际上一个完整的IES优化调度要回答以下五个问题每一台设备在下一秒是开机还是停机设备的出力定在哪个值储能设备是充电还是放电、蓄热还是放热和外部的电网、气网交互多少功率以及把碳排放配额用在哪些时段最划算。这些问题互相纠缠属于典型的混合整数非线性规划问题。之所以混合是因为设备的启停状态是0或1的整数变量之所以非线性是因为燃气轮机的效率会随着负荷率变化热泵的COP也不是恒定的管网里流量和压降的关系更是一对非线性关系。我在实际项目里通常把调度问题拆成三个时间尺度来做。日前计划是做未来24小时的设备出力序列滚动修正阶段是每隔15分钟到1小时根据最新的负荷预测和可再生能源出力预测做一次修正实时层则只负责处理秒级的频率波动和并网点功率越限问题。三个时间尺度对应的优化目标不完全相同但共享同一套设备模型和约束条件。这三年做下来我个人的体会是IES低碳优化调度与传统的电力调度相比最大的不同在于优化目标从单目标的成本最低过渡到了多目标的综合效益最优而且碳约束是硬约束。这个转变看起来就是多了一项成本、多了一条约束实际上对建模方法、求解算法和工程实现的影响是根本性的。下面我把这块掰开揉碎了讲。2. IES低碳调度的建模思路从单目标到多目标的转变2.1 传统经济调度和低碳调度的本质区别在传统的园区微网经济调度里目标函数写出来通常就是一句话让总运行成本最小。总运行成本无非是购电费、燃气费和设备启停维护加起来。这种模型运行得很顺因为所有东西最终都折算成了钱单一目标函数求解器友好业务上也好解释。低碳调度多出来的是两样东西碳排放约束和碳交易成本。这两样东西往模型里一放事情就变得复杂了。首先碳排放和能源成本的时间分布不对称。天然气在凌晨低谷时段烧和傍晚高峰时段烧如果热价、电价是一样的那么成本是一样的但碳排放不会因为你夜间烧气而打折扣排放一吨就是实实在在的一吨。其次很多IES设备在成本和排放两个维度的优先级是冲突的。举个例子燃气轮机发电成本比电网购电便宜很多但度电碳排放却高得多。在纯经济模型里燃气轮机大概率多发电在低碳模型里它会受到碳配额和碳价的双重压制发电量被压制下去后电网购电量会上升而电网的排放因子又决定了这个替代是否真的低碳。这就需要模型把两本账同时算清楚一本是钱的账一本是碳的账。我在建模时最常用的思路是碳排放积分制。给每一台设备建立单位出力的碳排放因子电网购电的排放因子按当地电网平均碳排放水平填燃气轮机按气耗乘排放系数算燃气锅炉按天然气排放系数算电热泵和电锅炉则要看电从哪来。然后给整个园区设定一个日碳排放配额所有设备的碳排放量加起来不能超过这个配额如果超过了超出部分要么在碳市场购买配额要么接受罚款。这样一来碳排放就同时以约束和成本两种身份参与了优化设备出力自然会被压到一个碳排放和金钱的平衡点上。2.2 碳交易机制怎么进入模型配额、碳价与阶梯成本碳交易机制进入优化模型我见过三种典型做法。最简单的做法是把碳配额当作固定约束全天碳排放量必须低于某个值比如以历史平均排放量打九折作为上限。这种做法工程上好实施但不反映真实碳市场的交易机制而且当碳配额设得太紧时模型可能无解。第二种做法是给碳排放在目标函数里加一个固定碳价比如每吨50元。这样碳排放就变成了运行成本的一部分每个设备的真实成本 能源成本 排放量×碳价。模型会自动去权衡多买一度电和多排一公斤碳哪个更划算。这种做法是我推荐做技术验证的人先上手的。第三种做法是我现在在项目里主推的采用阶梯碳价模拟真实碳市场中配额内低价、超配额高价的特征。基础配额以内的排放按较低碳价算比如50元/吨超出基础配额的按一个更高的碳价计价比如70元/吨如果超过某个严重阈值再往上跳到100元/吨。阶梯碳价的本质是给碳排放画了一条价格递增的警戒线模型会在接近警戒线时自动调整运行策略尽量把排放压在低价的台阶上。阶梯碳价写进目标函数以后会出现一个很有意思的现象某些时段设备出力会出现排队效应。排在最前面的是零碳或低碳设备风电、光伏、水电、储能放电然后是中等排放设备电网购电、电热泵最后才是高排放设备燃气轮机、燃气锅炉。碳价越高高排放设备被调用的概率就越低。这个排队序列比任何碳排放后处理分析都直观。2.3 碳捕集和P2G让碳排放真的循环起来单纯的少用化石能源只能把碳排放降到一定程度要把排放指标做得更漂亮必须在系统里引入负碳或近零碳技术。现在IES项目里最常出现的是碳捕集装置CCS和电转气P2G这对组合。碳捕集装置装在燃气轮机和燃气锅炉的排烟管路上用化学吸收法把烟气里的二氧化碳分离出来。捕集率一般在85%到90%之间捕集下来的二氧化碳可以压缩后用于食品行业也可以就地封存或者直接送到旁边的甲醇合成装置去做碳利用。在优化调度里加入碳捕集设备模型会多一组决策变量碳捕集装置的运行状态和捕集功率。捕集功率本身要消耗电或热这部分能耗会让汽轮机的净出力下降但同时会减少系统对外的净碳排放。这本质上是一个花掉一部分能量、换回一部分碳配额的即时交易。P2G设备则是把富余的可再生能源电力转化成氢气或合成天然气。电解槽在谷电时段或者光伏大发时段运行把水电解成氢气和氧气氢气一部分直接作为工业原料或掺入天然气管网另一部分进入甲烷化反应器生成合成天然气。合成天然气再送到燃气轮机里发电这就形成了电→氢→气→电的循环链条。从煤气化到燃烧的全过程来看碳被多次利用净排放大幅降低。P2G带来的问题是效率损失电解制氢效率60%到70%甲烷化再损失一批最后再发电又损失一批全程效率可能只有30%多。但从系统层面看如果本来就要弃电那么这部分废弃电力通过P2G存下来替代天然气碳排放上反而划算因为省下的天然气是实实在在的化石燃料。我把碳捕集和P2G都放进模型后目标函数就变成了一种多层的权衡结构。第一层是能源经济层决定各设备出力第二层是碳循环层决定碳捕集和P2G的去向第三层才是整个系统的碳交易层决定要买多少配额。这三层之间没有天然的主从关系必须统一放进同一个优化框架里同步求解否则很容易出现捕集了所以排放少了但运行成本涨得离谱这类顾此失彼的现象。3. 求解方法与工具链选型工程可用性的真实考量3.1 模型复杂度决定求解器选择IES低碳优化调度模型按照我之前描述的框架搭出来数学上是一个混合整数线性规划MILP问题条件好的话可以简化成混合整数二次规划MIQP。如果有管网水力计算参与就会变成混合整数非线性规划MINLP那复杂度就上了一个大台阶。我在选求解器时的判断依据很简单看模型规模和非线性程度。一个中等规模的园区IES典型的时间步长是15分钟一天96个时段设备数量二三十台变量数大概在几千到一两万个约束几万个这种规模用商用MILP求解器完全可以搞定通常几分钟到十几分钟能出结果。但如果加入了管网的非线性水力方程、设备效率随负荷率的二次曲线变化或者可再生能源出力的随机场景模型就变成MINLP了此时商用求解器直接求解的效率会断崖式下降经常跑到一两个小时都不收敛。工程上不是非要追求全局最优解。我见过很多项目用分段线性化把非线性问题转成MILP把燃气轮机的效率曲线拆成三段到五段直线把管网压降方程做分段近似把P2G的效率损失按不同运行区间做线性化。损失的是非常小的一部分精确度换来的是求解速度提升一个数量级而且结果可以复现、可以解释。这是工程上的主流做法也是我现在最推荐的。3.2 从数学软件原型到工程代码落地在学术研究阶段我最常用的是MATLAB环境下的YALMIP工具箱加商用求解器的组合。这套组合最大的优势是建模速度快一套完整的IES低碳优化模型两三天就能搭出能跑的原型适合大量推演不同碳价、不同配额场景。但到了工程落地阶段我几乎全部转向了Python生态。原因是工程交付要的不是能跑出一个好结果而是稳定、可版本控制、可自动化部署、能和业务系统对接。MATLAB在许可证和部署上太麻烦而且和现有的数据库、监控系统对接也不方便Python则天然适合做这些事情。我现在的主力工具链是这样的用Python的pyomo或直接写求解器的Python接口来做建模数据预处理用pandas不确定场景生成用numpy加scipy可视化用matplotlib。如果调度周期是日前、需要用商业求解器就直接调用其Python接口如果调度周期是实时的、模型规模又不大我会选择开源的求解器省去license依赖。这里有一个实操上的忠告无论用哪种建模语言都不要把模型写成一整块几千行的庞然大物。我最初的几个项目就是这么干的结果调试一个约束条件要找半天逻辑出问题后根本不知道是哪个布置错了。现在我都是把模型拆成模块设备模型模块、网络约束模块、碳交易模块、目标函数模块、场景生成模块。每个模块独立测试、独立维护调度主程序只负责把模块组合起来。这种架构第一次搭的时候确实慢但从第二个项目开始复用的好处极其明显。3.3 不确定性处理方法什么时候该上鲁棒优化IES优化调度中最大的不确定来源是两个可再生能源出力预测误差和负荷预测误差。如果只拿一个点预测值去做日前调度等到实际运行时往往偏差很大。比如光伏大发那天的预测值是100兆瓦实际只有60兆瓦日前计划里燃气轮机少开一台的决策就可能导致晚高峰供电不足。我处理不确定性的方法分三个层次。最简单的是滚动修正日前做一次优化运行当天每15分钟根据最新的超短期预测重新优化一次只执行未来1到2小时的决策。这种短窗滚动能把大多数预测误差对冲掉工程上最实用。如果项目对可靠性要求更高我会用场景法基于历史数据生成几十到上百个可能的风光出力场景每个场景搭配一个概率目标函数变成所有场景下的期望运行成本最小。场景法的缺点是模型规模翻倍求解时间变长但结果稳健。还有一种更讲究的分布鲁棒优化它在不确定集合内寻找最坏情况下的最优解适合电网有硬性安全约束的场景但这种方法的保守性也很明显运行成本往往会偏高。我的经验是刚开始做IES调度时不要一上来就玩高级的鲁棒优化或者随机优化。先用确定性模型加滚动修正把整个流程跑通把数据管好、把设备模型校准好、把碳交易逻辑理顺再考虑加复杂度。很多项目里的调度结果不理想根子上根本不在算法不够高级而是太阳能预测数据本身就没处理好。有句话我经常在项目总结里写预测的坑不填平任何高级优化算法都是在沙滩上盖楼。4. 一个模拟园区项目的完整调度流程与代码骨架4.1 案例配置设备容量与基础参数为了讲清楚完整的建模和调度流程我设计了一个模拟的综合能源园区案例。这不是某个真实项目参数经过脱敏和调整但结构具有代表性北方某综合能源园区有一个规模不大的区域电网接入点。园区的主要设备包括一台50兆瓦的燃气轮机带余热锅炉一台20兆瓦的燃气锅炉作为调峰热源30兆瓦的光伏电站和20兆瓦的风电场作为可再生能源电源一套10兆瓦/40兆瓦时的磷酸铁锂储能系统两台合计25兆瓦的电锅炉一个2000立方米的储热罐以及一套处理量为5兆瓦的P2G装置。热负荷峰值约60兆瓦电负荷峰值约80兆瓦全天电热负荷曲线按典型的北方冬季工况设置。碳排放相关参数设置如下电网购电排放因子取0.581千克二氧化碳每千瓦时按华北区域电网的平均水平天然气排放系数取2.16千克二氧化碳每标准立方米燃气轮机气耗率约0.22标准立方米每千瓦时。园区日免费碳排放配额按历史基准排放量的95%设定碳价分阶梯配额内50元/吨超配额10%以内70元/吨超配额10%以上100元/吨。这些参数不需要在每篇博文里看懂但有一点可以留意把碳排放因子从电网整体平均值细化到分时因子是低碳调度建模的关键一步。我现在用的是分时排放因子后半夜负荷低谷时电网排放因子低大机组压负荷且有风电在发晚高峰时排放因子高火电顶上这个分时数据对调度结果的影响比很多人想象中大得多。4.2 目标函数与关键约束的数学表达这个园区日运行调度的目标函数如下min Σ(t1..96) [ C_gas(t) C_grid(t) C_om(t) C_carbon(t) ]其中C_gas(t) 是t时段购天然气费用C_grid(t) 是t时段电网购电费用电价采用分时电价峰谷价差约0.6元/千瓦时C_om(t) 是设备启停和运维费用C_carbon(t) 是碳交易成本按下式算如果园区实际碳排放量E_total ≤ 免费配额E_alloc C_carbon(t) 0 否则分两档计价 E_total ≤ 1.1×E_alloc 时超出部分按70元/吨计 E_total 1.1×E_alloc 时超出10%以内的部分仍按70元/吨再超出部分按100元/吨。约束条件分为四类。第一类是各时段的电功率平衡、热功率平衡、气功率平衡第二类是各设备的出力上下限、爬坡速率约束储能系统有SOC上下限和充放电功率限制储热罐同样有蓄热上下限第三类是设备启停逻辑燃气轮机和燃气锅炉的状态变量是0/1启停次数有上限第四类是碳捕集和P2G的运行范围约束。事实上整个模型一共有十组左右的约束实际代码里写出来有将近两百行。4.3 我的核心代码骨架可直接改参数复用下面给出我常用的调度主程序骨架这段代码的核心逻辑是把数学模型直接翻译成建模语言的约束表达式。为了便于看清楚我省略了求解器相关的配置细节。import pandas as pd import numpy as np def build_ies_scheduling(data, params): data: 包含电负荷、热负荷、光伏出力、风电出力预测的DataFrame params: 设备参数、电价、碳价、排放因子等的字典 返回值: model的约束和变量集合实际使用时需要接入求解器 T len(data) # 时段数通常96 # 决策变量定义以虚拟代码形式给出 # P_gt[t] 燃气轮机出力P_gb[t] 燃气锅炉出力 # P_grid[t] 电网购电量P_es_ch/P_es_dis 储能充放电 # z_gt[t] 燃气轮机启停状态0/1 # E_carb[t] 碳捕集装置运行状态 # 目标函数 # 购气成本 obj_gas sum(data[gas_price].iloc[t] * (data[P_gt].iloc[t] / params[gt_eff] data[P_gb].iloc[t] / params[gb_eff]) for t in range(T)) # 电网购电成本 obj_grid sum(data[elec_price].iloc[t] * data[P_grid].iloc[t] for t in range(T)) # 碳交易成本阶梯碳价 # 这里简化为先算总排放再按阶梯计价 E_total sum( data[P_gt].iloc[t] * params[gt_emission] data[P_gb].iloc[t] * params[gb_emission] data[P_grid].iloc[t] * params[grid_emission] * 0.85 - data[P_ccs].iloc[t] * params[ccs_capture_rate] for t in range(T) ) e_alloc params[daily_quota] if E_total e_alloc: cost_carbon 0 elif E_total 1.1 * e_alloc: cost_carbon (E_total - e_alloc) * 70 else: cost_carbon 0.1 * e_alloc * 70 (E_total - 1.1 * e_alloc) * 100 # 主要约束 # 1. 电功率平衡简化示意 for t in range(T): # P_gt P_grid P_pv P_wind P_es_dis # P_load P_es_ch P_eb P_p2g pass # 2. 热功率平衡简化示意 for t in range(T): # 燃气轮机余热 燃气锅炉 电锅炉 储热罐放热 # H_load 储热罐蓄热 pass # 3. 燃气轮机爬坡约束与启停约束 # 4. 储能SOC递推约束 # 5. 碳捕集设备出力上下限 return {objective: obj_gas obj_grid, E_total: E_total}这是一个高度精简的骨架实际工程代码里每一类约束都会单独做函数封装并且写入完整的中文注释。我不建议任何人直接拿这段代码去生产环境跑但把它变成自己的模型框架是完全够用的。4.4 两种运行模式的结果对比为了验证低碳调度逻辑是否真的起作用我做了两个对照组第一个是纯经济调度目标函数里完全不考虑碳排放和碳交易成本第二个是低碳调度即考虑阶梯碳价和碳排放配额约束。在我的模拟园区里纯经济调度下燃气轮机几乎全天满发因为天然气发电的综合成本低于高峰时段电网购电价格电锅炉只在深谷电价时段蓄热。结果是日运行成本约9.8万元碳排放总量约185吨。低碳调度下价格信号发生了变化高峰时段燃气轮机发电不仅要算气费还要承担70元/吨甚至100元/吨的碳成本边际成本倒挂模型会让电网购电替代一部分气电同时让储热罐在夜间谷电时段多蓄热白天尽量少启动燃气锅炉。结果很有意思日运行成本上升到约10.8万元直接成本增加了约10%但碳排放总量降到了142吨下降了约23%。如果把碳交易费用的净支出也加进去算综合成本低碳调度的总代价反而比纯经济调度略低——因为纯经济调度模式下要超额购买清单外的高价配额而低碳模式用一部分设备切换换来了更小的碳缺口。这个对比说明一件事低碳调度不是单纯花钱买减排它是把碳价这个信号嵌入到每一个设备出力的边际决策中让系统在算经济账时自动把减排的账也顺带算了。我在给业主汇报时用这张对比表直观展示了少排的碳换回了更低的综合履约成本这个结论。5. 实操中绕不开的坑数据、约束与收敛性5.1 碳价数据的时间尺度和建模精度碳排放数据有一个和电价数据很不一样的地方电价是分时波动的而碳价通常是日级、月级甚至更长时间尺度才变化一次。这导致一个建模上的尴尬如果我们用碳价参与每个小时的设备出力决策那么碳价在一天内是常数它只会整体抬高或压低全天的排放成本但无法引导把碳排放从高峰时段挪到低谷时段这种时序上的优化。解决这个问题有两种思路。第一种是配合分时电网排放因子来做虽然碳价是常数但电网购电的排放因子是分时的后半夜购电排放低、晚高峰购电排放高模型会在总排放约束下自然把购电行为往排放低的时段挪。第二种是给碳配额设置日内使用曲线比如把日配额按照负荷高峰特性平均分配到每个时段高峰时段配额紧张、低谷时段配额宽松这样碳约束就具备了时序引导功能。第二种做法在工程上更贴合碳配额履约的考核节奏但数据准备要更精细。这里还有一个数据口径的坑碳排放因子到底是生产地口径还是消费地口径。电网排放因子如果按全国平均算和按当地实际电源结构算差距能到30%以上。我在一个项目上遇到的情况是当地测算的电网排放因子比区域平均值低15%因为本地有较大比例的水电和核电。如果用全国平均因子模型会低估用气电替代电网购电的减排价值得出的调度方案就会偏向多开燃气轮机反而和实际碳排放最优背道而驰。在项目开始时花半天时间把排放因子的口径和来源核实清楚是整个调度项目里性价比最高的投入之一。5.2 热力系统约束是IES的照妖镜很多初次做IES调度的人把精力全花在电力系统的各类约束上等到跑出来的结果被热力工程师劈头盖脸地否定一遍才明白热力系统的约束比电力系统麻烦得多。首先热力系统有很强的慢动态特性。电是光速传输的但热在管道里流动是有热惯性的供热管道里的水温从热源出口到用户末端需要几十分钟到一个小时这个延迟让日前24小时的热力平衡变得不可靠——某个时段热源出力满足热负荷不代表用户端真的感到了热因为热量还在路上。模型如果不加热网传输延迟约束调度结果就是纸面平衡、实际失调。其次热电联产机组的以热定电特性是IES建模的一大难点。燃气轮机带余热锅炉时它的热出力一旦定了电出力就被绑架在一个区间内。很多初版模型把汽轮机的电、热出力当成两个独立变量分别优化结果算出来的方案在实际运行中根本执行不了。我在建模时用的是一个电热运行域的概念把汽轮机的可行运行区域用一个四边形或梯形来表示在区域内电、热出力才是同时可取的。这个运行域放进去以后模型才能真正表达热负荷高峰时汽轮机被迫发很多电多余的电要么存储、要么卖给电网这种被迫的耦合行为。另外供热系统还带着舒适度约束。热负荷不是一条固定曲线而是有一个舒适温度区间比如室内温度在18到22摄氏度之间都算合格。这意味着热负荷本身是柔性的可以参与调度。但要把这个柔性表达进模型就必须引入建筑热动态模型这会让模型规模再上一个台阶。我做过的项目里只有供热面积特别大、热惯性特别强的区域才值得加这个复杂度一般园区项目用固定热负荷曲线加蓄热罐就足够。5.3 风光不确定性场景削减做不好模型全是空中楼阁如果建了很精细的低碳调度模型喂进去的光伏、风电预测数据却是半吊子的那所有优化结果都很脆弱。这里所谓的半吊子指的是一份预测曲线里只有一个平均值连误差条都没有。我一开始做日前调度时直接用了光伏预测软件给的一条单点预测曲线结果调度方案在晴天时表现完美一到多云天气就漏洞百出光伏出力突然掉到预测值的50%燃气轮机爬坡来不及只能紧急从电网买高价电碳排放也超标。后来我在模型里引入了预测区间不只给一个明天的光伏出力是100MW的点值还要给出50MW到150MW的区间。再把这个区间离散成若干个典型场景给每个典型场景分配不同权重优化目标变成所有场景下的期望成本最小。场景太多求解会陷入维度灾难我这里有一个很实用的做法采用K均值聚类做场景削减。把历史数据聚类成二三十个典型场景再为每个典型场景设置概率。原本需要几千个场景的模型缩减到几十个之后求解时间可控结果又比单点预测稳健得多。还有一个细节聚类的时候要同时聚风光出力的联合场景不要把光伏和风电各自单独聚类再拼起来否则风光互补的相关性信息会丢失。5.4 求解器报错的排查链路最后讲一个非常实操的话题求解器报错怎么办。MILP求解器给出的报错信息一向不够友好很多时候就是一行infeasible不可行让人一头雾水。我经过几次挫折以后总结了一套排查链路基本能解决九成的问题。第一步检查数据单位是否一致。这个错误极其常见比如某个参数从Excel取值是按兆瓦填的但另一处代码里又按千瓦参与运算差了一千倍约束当然满足不了。我在建模之前有一个强制习惯所有输入数据统一折算成标幺值或者统一单位然后在模型里写一个数据校验模块把所有变量数量级打印出来做肉眼检查。第二步用松弛法定位不可行约束。把模型中每一个约束逐条放松比如把电功率平衡约束改成电功率不平衡量允许在一定范围内然后看求解器是否变得可行。如果放松了某条约束后模型变成可行那问题就锁定在这条约束对应的设备或物理关系上再集中去查这条约束牵扯的数据和逻辑。第三步查看求解器的IIS不可行子系统报告。商用求解器一般都有这个功能它能输出一个最小的不可行约束集合。我一直不太喜欢看这个报告因为输出格式确实不友好但事实证明确实有效有一次我用IIS报告直接查出一个储热罐的SOC递推公式写反了蓄热方向节省了一整天的排查时间。还有一个和求解器无关、但问题特别多的环节预测数据和调度程序的时间戳对齐。光伏预测软件用的是当地时间而调度程序默认按UTC处理结果预测数据偏了8个小时白白让调度结果错了两天。这种低级错误凡是跨过时区或者接过多套系统的人几乎都遇到过我后来直接在数据入口加一个日期时间校验函数凡是小时数对不上就报警绝不进入求解环节。6. 结果剖析与后续演进低碳调度不是终点6.1 低碳调度为什么能省钱数字背后的机理在4.4小节的模拟园区里低碳模式比经济模式直接成本增加了约10%但扣除碳交易净支出后综合成本反而更低。这个看似反直觉的结果背后其实是一个很清晰的经济逻辑碳排放配额是有价格的而且阶梯碳价让超排的边际成本越来越高。当碳价超过某个临界值后用设备切换去减少碳排放比直接购买排放配额更便宜。这里的关键是搞清楚哪个设备做切换收益最大。在我们这个案例里机组切换的主要对象是燃气轮机和电网购电。燃气轮机的度电成本约0.55元电网高峰购电价约0.85元看起来燃气轮机更划算但如果加上碳排放成本燃气轮机每度电要承担约0.14元的碳成本按每度电排放0.45千克、碳价70元/吨折算电网购电的高峰排放因子对应的碳成本只有约0.04元。这样一算高峰时段电网购电的总成本反而低于燃气轮机发电。这个差额就是低碳调度模型发现的套利空间。我还在结果里发现低碳调度模式下储热罐的动作明显更积极。它在深谷电价时段大量蓄热白天的热负荷高峰时段尽量让燃气锅炉和汽轮机少出力用储热来顶上。表面上看储热的充放效率有损耗但因为谷电本身便宜且排放因子低这个搬移操作既减少了燃气消耗又降低了碳排放两个维度都划得来。这些结果虽然在理论上不复杂但真要在工程上实现必须把设备模型校准得足够精确。比如燃气轮机的效率曲线如果偏差了5%碳成本的临界点计算就会差出一大截设备切换的决策就会随之出错。所以我在项目里一直强调一个原则先做设备实测与模型校准再谈优化调度。6.2 碳排放约束如何改变设备运行优先级在纯经济调度模式下IES设备的投运优先级完全由边际成本决定。以我的模拟园区为例白天的优先级大致是光伏、风电边际成本为零排在前面然后是燃气轮机最后才是高峰时段电网购电。但在低碳调度模式下这个队列发生了两个明显的变化。第一个变化是燃气轮机的地位下降了。原因前面已经分析过碳排放让它的边际真实成本超过了电网购电。这个下降不是全局性的而是时段性的在电网排放因子高的高峰时段燃气轮机的相对地位是下降的但在夜间排放因子低的低谷时段电网购电的碳排放优势反而体现不出来燃气轮机又可能被重新排到前面。第二个变化是储能设备的身份变了。在纯经济调度里储能的主要功能是峰谷套利低价充电、高价放电。在低碳调度里储能多了一个碳套利的功能在高排放因子的时段放电替代高排放的机组出力即使电价的峰谷差不足以覆盖充放电损耗碳成本的节省也可能让它变成经济运行的选择。我在代码里专门增加了一个统计模块用来拆解储能放电量里有多少是电套利驱动、多少是碳套利驱动这个分析结果对项目业主特别有说服力。碳排放约束还改变了系统的备用逻辑。传统调度会预留一定比例的旋转备用用来应对预测偏差。低碳调度中如果备用容量由燃气轮机承担那这部分备用本身也会产生碳排放成本。因此模型会倾向于优先调用储能、需求响应这类不产生额外碳排放的备用资源。换句话说碳排放约束相当于给不同备用资源加上了不同的备用价格这会彻底改变备用容量的分配结构。6.3 后续可以做的扩展方向按投入产出比排个序最后一个问题这套低碳调度框架后续往哪些方向扩展性价比最高我根据自己的项目经验排了一个优先级清单。排在第一位的是接入更加精细的电网分时排放因子数据。现在不少地方已经能提供小时级的实时碳排放因子如果调度系统能直接读取这个数据模型就可以真正做到实时碳感知这是目前投入小、效果最大的升级方向。排在第二位的是在模型里加入需求响应和可调负荷。我早期做的IES模型都是把负荷当刚性边界后来才发现热负荷和一部分工业电负荷是很有弹性的。如果把可调负荷纳入优化变量系统在减碳和省钱之间的腾挪空间会大得多。这个方向需要协调用户侧的配合工程上偏重管理机制的设计技术难度反而适中投入产出比相当高。排在第三位的是引入绿电交易和绿证机制。碳配额解决的是化石能源用了多少绿电交易解决的是可再生能源用够不够。这二者的政策账目在不少地区可以打通比如购买绿电可以抵扣一部分碳排放核算。把绿电交易成本放进优化模型后调度策略会进一步向加大绿电消纳倾斜。这个方向目前在个别省市已经有了比较成熟的市场规则值得提前做技术储备。排在第四位的是碳排放流追踪和分析。现在的模型算的是总排放量但具体到每台设备、每个时段、每条能流的碳排放贡献并不清晰。如果做碳排放流追踪把碳排放责任按能流分摊到各条线路和各个用户就能实现碳排放的责任归属。这对园区内部做碳排放考核很有价值不过数学模型比较复杂工程落地周期较长适合有研究力量支撑的团队去做。我在实际项目里的一个体会是低碳优化调度不能只停留在算法能跑出结果这个层面更重要的是让每一个调度决策都能被解释、被复核。煤炭减少了几吨、排放降低了几百公斤、钱省在哪里这些要能讲清楚。我写好一组调度结果以后一定会做一张与设备实际运行曲线对比的复盘表把模型建议的调度计划和现场实际执行的计划摆在一起找出那些两个计划不一致的时段再分析是模型参数不准还是现场操作偏离。这个闭环复盘的习惯我强烈建议做IES调度的同行培养起来。至于那些通用大模型能否直接参与调度决策的话题目前我持谨慎乐观的态度。大模型可以做辅助分析和报告生成但调度决策是要对安全责任负责的每一套约束条件背后都关联着设备的物理极限和安全边界至少要等可解释、可验证性成熟以后才能考虑。当下踏踏实实把模型层级挖得更深一些把碳市场的机制理解得更透一点比追逐新概念更有实际价值。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑