1. 先搞清楚为什么要做“气电联合”
1.1 传统配电系统正在被什么东西“逼”着改变
这两年做配电网优化的人应该都有个强烈感受:原来只要盯着电网本身,把潮流算明白、把电压调合格、把变压器别过载,日子就挺好过。但现在不行了。分布式光伏大规模接入,低压侧午间倒送潮流成了常态;电动汽车一多,晚高峰充电负荷直接叠加在原来的负荷曲线上;再加上空调、电采暖这些柔性负荷占比越来越高,配电网的净负荷曲线被拉扯得越来越陡。我接触的不少实际园区项目,变压器午间轻载、晚间满载甚至短时过载的情况已经屡见不鲜。
之前我们的应对思路就是传统的“源随荷动”——上级电网给我多少电,我就尽量调整分布式电源出力去匹配。但光伏和风电的出力本身不可控,储能成本又还没降到能随便普及的程度,这条路越走越窄。这时候你再看身边,配电系统里其实还藏着一张天然气管网。燃气锅炉、燃气内燃机、热电联产机组,这些设备天然就是把气网和电网捆在一起的耦合点。我做过一个具体的园区测算,里面有三台燃气内燃机和两台燃气锅炉,整个园区40%左右的电负荷峰值其实可以由气网侧参与调节,但之前做运行优化时根本没人把它们当成可调度资源。
问题的本质在于:传统配电网运行优化把气网当成了“外挂的燃料供应系统”,只关注燃气机组有没有气可用,根本没把气网的运行约束、气压波动、管存缓冲这些因素放进优化模型里。而实际系统中,燃气机组的出力上限是受气网供气压力和管存影响的,气网节点气压太低,机组就是发不出额定功率。反过来,电负荷高峰时如果燃气机组多发气,气网就得加大购气或动用管存,这里面存在一个跨网络的耦合优化空间。
1.2 需求响应怎么从“只调电”升级到“气电一起调”
再说需求响应。传统配电系统的需求响应大家都很熟——通过分时电价、可中断负荷、需求侧竞价这些手段,把用户的用电行为从高峰时段挪到低谷时段。但这里有个天然局限:它只能调“电”这一种能源。用户的燃气锅炉用气需求、燃气空调的用气需求、工业生产中工艺用气需求,这些在传统需求响应里是完全盲区。
我做过的实际项目中有一类很典型的场景:一个工业园区里,同一批用户既用电又用气。夏天下午电负荷冲高,但用气需求相对平稳;冬季早晚用气高峰,但电负荷可能没那么极端。如果只做电需求响应,就只能让用户削减用电或转移用电,可能影响生产;如果能把“用气时段”也纳入调节,让用户在电价高的时段多用气少用电,在气价高的时段多用电少用气,调节空间就大得多。这就是气电联合需求响应的核心思想——把用户的综合能源使用行为作为整体来优化。
气电联合需求响应的主要有三种实现方式:
- 价格信号驱动:电网侧分时电价和天然气侧分时气价联合发布,用户根据综合能源价格自主调整用能行为,双向替代。比如把原来的燃气采暖部分切换为电采暖,或者反之。
- 激励型负荷管理:与用户签订协议,在系统需要时直接削减或转移其用电/用气负荷,给予补偿。适合可中断负荷占比较高的工商业用户。
- 可替代用能引导:针对同时具备电气和燃气两套供能能力的设备(比如双燃料锅炉、燃气/电动热泵),通过优化调度引导用户选择整体成本更低的供能方式。
这里面的关键点在于:联合需求响应不是简单地把两个需求响应拼在一起,而是要通过耦合设备形成“此消彼长”的联动。燃气机组在电价高峰时多发,用户侧电动设备少用、燃气设备顶上;气价高峰时反过来。这个联动效应如果做得好,能同时缓解电网高峰负荷和气压低谷问题,实现网网互济。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 气电综合配网系统协调优化的核心建模要点
2.1 电网侧:潮流模型怎么选
气电综合配网做协调优化,电网侧的模型是第一块基石。配电网和输电网的差别在于:线路电阻不可忽略、拓扑多为辐射状或弱环状、X/R比低,不能用输电网常用的直流潮流近似。我一般分两个层次来处理低压台区和高压配网。
对于380V/10kV配电网,工程实践中最常用的是基于DistFlow模型的二阶锥规划(SOCP)形式。这个模型把节点电压、支路功率、网损之间的关系整理成一组锥约束,求解效率高而且精度在配网场景下足够。关键约束包括:
- 节点功率平衡方程:注入功率等于流出功率加损耗
- 支路电压降方程:首末端电压平方差与支路有功、无功、电阻、电抗的关系
- 节点电压上下限约束:一般控制在0.95到1.05倍额定电压
- 支路电流容量约束:热稳定极限
我自己的经验是,在用DistFlow之前,先做一步“拓扑简化”——把并联支路、环网联络开关状态这些额外因素提前处理好。你先拿实际的网络拓扑画一遍,把纯串联的线路等效合并,能省不少变量。
电压约束里有个容易被忽略的点:气电系统耦合之后,燃气机组和电转气(P2G)装置接入的节点往往不是同一个。燃气机组发电压升,P2G用电压降,两者同时工作时可能造成局部电压波动幅值加大。我在做案例时,初始方案没把这两个设备放在不同馈线,结果电压越限问题就一直出现,改了接入位置后立刻好了。
如果项目涉及三相不平衡,那DistFlow需要扩展成三相形式,变量会多出一大截,这我就不建议新手刚开始就上三相模型了——先做单相可行,再扩展三相,循序渐进。实际工程里,很多园区配网单相模型已经足够支撑协调优化决策。
2.2 气网侧:动态管存与气压约束
天然气配网的建模是很多人第一次做气电联合优化时栽跟头的地方。天然气系统跟电网最大的区别在于:气有“惯性”。电的传输速度接近光速,而天然气以每秒几米到几十米的速度在管道里流动,而且管道本身有“管存”(line pack)效应——你可以把天然气管道理解成一个储气罐,气进去得多出得少,管道的压力就升高,相当于在存气;反过来,出得多进得少,压力下降,相当于在放气。
对于配气级的管网模型,我推荐采用如下简化假设:
- 每条管道用Weymouth稳态方程描述流量与节点压力平方差的关系
- 用节点储气方程模拟管存动态
- 压缩机站的增压模型用压缩比和耗气量的线性近似
管道气的稳态流量方程里有个关键特征:流量和节点压力平方差之间存在非线性关系。这里的非线性方程我建议用分段线性化处理,每一步的误差控制在2%以内,对优化结果的影响很小。
管存动态用我做过的一个算例来说:一条10km长的DN200中压管道,在2.5MPa左右运行,满管存相当于大约2万方气,对于一台500kW燃气内燃机来说,可以在30%负荷下支撑好几个小时。这就是气网的“储能”潜力——在电力系统里这相当于一个天然的储能资源,而且是免费存在的。
气网侧还有一个关键约束是节点气压上下限。配气系统的压力范围通常受调压站出口压力和用户末端最低进气压力共同限制。在联合优化中,如果气压下限设置过紧,会极大地压缩燃气机组的出力空间;设置过松,用户端设备(比如燃烧器)就可能因气压不足而熄火。这里需要跟气网调度员仔细核实实际的运行范围,不能拍脑袋取一个值。
2.3 耦合设备与气电联合需求响应建模
耦合设备是气电网之间交换能量的桥梁,这部分建模精细程度直接决定优化结果是否可信。主流的耦合设备有这几类:
- 燃气轮机/内燃机:天然气输入,有功出力+热出力。效率曲线非线性的简单处理方式是采用分段线性近似或使用常数效率乘以低热值,后者更适合规划,前者更利于运行优化。
- 燃气锅炉:天然气输入,热出力,启停约束和爬坡约束都要建模。
- 电转气(P2G):电力和水经过电解槽产生氢气,可掺入天然气管网或单独存储。这个设备是逆向耦合,目前示范项目较多,实盘运营比例不高,但优化建模时加上它可以极大丰富调节手段。
- 燃气热泵/双燃料锅炉:可切换能源品种,是气电联合需求响应的用户侧基础设备。
我建模时习惯用“能量枢纽”的矩阵方式表示这些耦合关系:输入向量(购电功率、购气流量),输出向量(电负荷、热负荷、气负荷),耦合矩阵里填的是各设备的转换效率。这样做的好处是代码好写、矩阵结构清晰,后续增加设备类型时只需扩维。
再说气电联合需求响应的建模。这个跟单一电力需求响应有所不同,因为负荷的调节能力分布在电、气两种网络上:
- 可转移电负荷:比如洗衣房、充电桩,将高峰时段用电转移到低谷时段,用二进制变量表示转移开关状态。
- 可削减电负荷:用户允许直接削减,按削减量乘以单位补偿成本计入目标函数。
- 可转移气负荷:工业用气中的部分工艺可调整时段,在日内的用气计划允许平移。
- 可替换负荷:利用双燃料设备,在电价高时选择用气、气价高时选择用电,用替代成本差来驱动。
我遇到过不少人的误区:把“可替换负荷”和“可转移负荷”混在一起建。实际上这两者的数学结构完全不同。可转移负荷改变的是“时段”,总量不变;可替换负荷改变的是“能源品种”,总量可能不变但网络归属变了。前者对电网和气网的耦合作用弱,后者才是真正打通气电两张网的建模方式。
做气电联合需求响应建模时,需要特别注意用户参与度的约束。不是所有用户都愿意参与需求响应。一般用参与意愿系数和可调节负荷比例两个参数来刻画。而且,补偿价格的设置要合理,太高增加运行成本,太低用户不响应,这个需要在模型中用激励约束(incentive compatibility)来约束。
2.4 目标函数与约束条件搭建
目标函数这一段,直接决定了优化要走哪个方向。我做气电配网协调优化,通常采用经济性目标为主、兼顾低碳性的形式。经济性目标包含这几个分量:
- 向上级电网购电费用:多时段分时电价下的购电功率乘以电价再对时间积分
- 向上游气网购气费用:考虑阶梯气价或分时气价,购气流量乘以气价对时间积分
- 设备运行维护费用:各设备的出力量乘以单位运维成本
- 需求响应补偿成本:可削减负荷的削减量乘以补偿单价
- 弃风弃光惩罚:分布式可再生能源实际出力低于预测值的惩罚项,用于倒逼优化器优先消纳新能源
目标函数里我习惯给弃风弃光惩罚设一个相对高的系数,因为配网系统一个核心目标就是就地消纳分布式新能源。给出的经济信号是:只要新能源能多用,即使多花一点运行成本,也算划算。
约束条件则需要把前面说到的电网、气网、耦合设备和需求响应的所有约束拉通,再加上跨时段约束(储气罐动态、管存动态、设备爬坡)和网络互联约束(电气节点之间的耦合)。这套约束如果配置不合理,最常见的就是无解。我整理过一张自查表,每次出无解先查这几个部分:
| 常见无解原因 | 排查思路 |
|---|---|
| 可削减负荷设置过大,切除后电压越限 | 和电压约束耦合,先放开电压约束试试 |
| 气网进气量上限定得太低 | 燃气机组出力受牵连,导致电功率失衡 |
| P2G同时消耗大量电力又输出燃气 | 电能和气能同时被消耗,单侧网络可能过载 |
| 管存动态约束和初始管存不协调 | 初始管存设得太高,后续无法再存入 |
| 需求响应可转移负荷时段与峰谷定义冲突 | 检查转移前后是否都满足负荷平衡 |
能提前把无解问题在模型设计阶段规避掉,求解阶段能少掉一半头发。
3. 优化求解全流程:从模型到程序实现
3.1 非线性环节的处理策略
气电综合配网优化模型本质上是一个混合整数非线性规划(MINLP)问题。直接扔给求解器,规模大一点就跑不动或者不收敛。所以我们在工程实践中要做转换——把非线性环节转成可以高效求解的形式。
第一类要处理的是潮流约束中的二次项。DistFlow模型里的电压平方项通过变量替换变成线性,功率二次项用二阶锥松弛(SOCP relaxation)处理。这个松弛在辐射状配网上被证明是非常紧的,误差可以忽略不计。需要注意,SOCP松弛后,如果系统是弱环状或者重构的,可能导致松弛不紧,解出来的功率不物理。遇到这种情况,先检查网络拓扑,必要时加惩罚项让它收紧。
第二类是天然气管道流量方程。Weymouth方程里,流量与压力平方差是二次根号关系,这个处理起来比较麻烦。我的做法是分段线性化(PWL),把压力平方差的范围划分成若干段,每段用线性函数逼近。分段数的选择很关键——我一个DN200管道,压力区间2.0MPa到2.6MPa,分10段线性化,误差不到1.5%,效果已经非常好。分太多段会导致变量爆炸,分太少段又会影响精度,建议先用试错法取8~12段。
第三类是机组效率曲线和设备启停状态引起的整数变量。燃气轮机的部分负荷效率曲线可以用分段线性函数表示,每段对应一个效率值;启停用二进制变量+大M法(big-M)建模。这里有个技巧是M值要尽量取小而紧,太大容易引起数值问题,太小又会截断可行域。
做完这三类转换后,整个模型就从MINLP变成了MILP(混合整数线性规划),求解难度直接降了好几个量级。实际操作中,我把一个原来求解需要40分钟都跑不出来的模型,转换完以后用Gurobi在2分钟之内就能全局收敛。
3.2 求解器选型与参数配置
求解器的选择跟你模型的规模和实际项目的灵活性要求直接相关。我在做这类气电联合优化时,商用求解器主要用Gurobi和CPLEX,开源求解器用SCIP。
如果你做的是科研验证或小规模算例,开源求解器SCIP完全够用,省成本。但如果是实际运行场景、数据量增大、想在秒级或分钟级出结果,商用求解器优势明显。Gurobi对MILP问题有目前业界最强的分支定界引擎和预处理技术,在很多场景下比开源求解器快5到10倍。
我说一个具体的参数经验:在使用Gurobi求解MILP时,把MIPGap(最优间隙)设置为0.5%~1%,而不是默认的1e-4。对于气电协调优化这种工程问题,0.5%的间隙意味着经济效益上可能只差几百块钱的量级,但求解时间往往会大幅缩短。我做过一个项目,把MIPGap从0.01%放宽到0.5%,求解时间从18分钟降到3分钟,结果仅相差不到0.2%的运行成本,完全值得。
另外一定要充分利用求解器提供的初始可行解。用启发式方法(比如先解松弛问题、用历史运行数据构造初值)生成一个热启动解给MILP求解器,可以大幅缩短求解时间。我测试过,带可行初始解的Gurobi比冷启动平均快30%以上。
开启求解器的并行线程数也是一门学问。一台16核的服务器上,你设置Threads=8往往能显著加速,但设置Threads=16有时反而变慢,因为线程间的同步开销会抵消并行收益。建议针对你的模型规模做一次简单的线程数扫描,找到一个甜点值。
3.3 一个典型算例的设置与结果分析
我拿一个自己搭建的测试算例来讲,这样能更直观地展示整套模型的运行效果。这个算例代表一个中型工业园区,包含区域配电网和配套中压天然气管网。
电网侧:修改过的IEEE 33节点配电网系统,接入一个额定功率2MW的光伏电站、一个1MW风电场、三台燃气内燃机(单台额定电功率800kW)、一台电解水制氢的P2G装置(额定功率500kW)。上游通过一台20MVA主变连接110kV上级电网。
气网侧:一个6节点配气管网,两个气源点(上游门站),四个负荷节点,其中两个节点连接燃气内燃机,一个节点连接居民工商业混合用户。管道长度从2km到8km不等,管径DN150到DN250。设置一台增压站,在气网入口处维持2.4MPa到2.6MPa。
负荷数据:电负荷总峰值5.6MW,气负荷总峰值2500标准立方米/小时。日负荷曲线取冬季典型日,早高峰7点到10点,晚高峰17点到21点。
场景设置上,我做了三组对比:
| 场景 | 说明 |
|---|---|
| 场景A | 无需求响应,常规气电独立运行 |
| 场景B | 仅考虑电需求响应(可削减+可转移),气网不参与 |
| 场景C | 气电联合需求响应,电气双向可替换负荷参与优化 |
三组场景的求解结果对比非常明显。场景B相较于A,运行成本下降了约7.2%,主要是通过削减和转移高峰电负荷、减少高价时段购电。场景C相较于B,又进一步下降了约4.8%,总成本相比原始独立运行下降了约11.7%。
很有意思的是,场景C中,气网的压力曲线明显更平稳。这是因为燃气内燃机在电价高峰多发气电,气源通过管存提前蓄压;到了气负荷高峰时段,内燃机出力调低,管存释放保气压。天然气管网的管存就像缓冲池,把气电联合调度的效果发挥得淋漓尽致。场景B中燃气机组的出力波动反而更大——因为电需求响应只能削电峰,无法让气网分担压力,燃气机组在电峰时被逼满发。
这个算例证明了气电联合需求响应的收益不是简单叠加,而是存在耦合增益。需要说明的是,实际项目参数不同结果会有差异,但11%级别的优化空间在文献和工程案例中有普遍参考意义。
4. 横在面前的坑:常见问题与排查实录
4.1 潮流不收敛的常见原因
我在求解气电配网联合优化模型时,最常见的收敛性问题出在“初始值不给力”。潮流计算对初值很敏感,尤其当系统里有P2G这种大功率非线性负荷时,初值给得离谱,牛顿法就会发散。
排查步骤是:先单独跑电网潮流(不迭代优化),用固定注入功率算一遍初值;再单独跑气网水力计算,同样得到节点的初始气压和流量分布。把这两组的稳态解作为联合优化的热启动初值,基本不会因为初值不好而发散。
另一种情况是松弛后的SOCP在少部分网络出现松弛度不为0。就是锥松弛不等式存在严格大于0的间隙,得到的解物理上不可实现。我在实际项目中遇到这种问题的处理方式是,在目标函数中增加一个很小的电压平方误差惩罚项,促使锥边界收紧。如果还不行,就需要把锥松弛换成精确的非线性方程并用NLP求解器处理,牺牲一点求解效率来换物理可行性。
4.2 气压越限与管存约束冲突
这是气电联合优化初学者最容易踩的坑。测试场景中,你设定燃气机组在晚高峰满发,气压一开始还够用,但持续几小时后,管道末端的压力就会跌破用户最低进气压力。优化器并不会自己“意识”到这个风险——如果你的模型里没有设置气压约束或管存动态约束。
我在第一次跑自己的气电联合算例时,就发生过这类情况。结果出来后看着目标函数值很漂亮,但把天然气节点压力的时序曲线拉出来一看,末端的压力在晚上8点后跌到了1.35MPa——低于用户最低1.5MPa的要求。那时我意识到:光有稳态管道约束是不够的,需要加入管存动态约束才能避免“透支管存”。
排查思路是:
- 先把气压上下限约束加上,重新求解,观察成本变化幅度
- 再加上管存动态,用管存约束限制中长期的供气稳定性
- 检查管存的初始值设置是否合理,初始管存不足会让第一小时的可行域变窄
管存初始值一般根据日前预报负荷取一个稳态运行状态下的管存量,不能随便取。我建议的做法是:先跑一个无优化的仿真,把稳态管存算出来当作初始值。
4.3 需求响应参数设置的“主观性陷阱”
需求响应参数有两类是最容易拍脑袋的:补偿单价和可调节比例。补偿单价设置偏高,优化器会任意削减负荷,导致用户侧被切太多负荷,实际运行中根本不可能执行;设置偏低,则几乎没有负荷参与调节,浪费了柔性资源。
我摸索出来的一个校准方法:把补偿单价设为用户真实用电成本的1.2~1.5倍。这个比例既能体现参与激励,又不会高到让用户抢着被削减。可调节比例方面,居民用户建议在5%~10%,工商业用户在15%~30%,超过这个范围的实际执行率会大打折扣。
可转移负荷的建模中,还要注意“转移对称性”——早晨峰时转移到午间低谷没问题,但有些工业负荷只能向后平移,不能向前平移。这个在实际中不核对清楚,优化结果会严重失真。我一个项目里,用户只允许电负荷从晚高峰转到深夜,优化器解出来却把一部分夜间负荷转到了早上,直接导致生产流程冲突。
4.4 求解时间过长怎么办
这类优化模型规模一大,求解时间的瓶颈往往在整数变量上。气电联合模型里,变压器档位、设备启停、需求响应切换、可转移负荷的时段选择,都会引入二进制变量。一个60时段、45个节点的配网,整数变量轻松突破一千,求解时间会急剧上升。
我的优化策略优先级是这样排的:
- 第一优先:确保MIPGap不过分严格,通常0.5%到1%
- 第二优先:给求解器一个热启动可行解
- 第三优先:做变量紧缩(Variable Fixing),根据历史运行数据固定一部分明显不动作的设备启停状态
- 第四优先:减少时间粒度,从15分钟一个时段调整为30分钟或1小时一个时段,不过这会损失一些精细度,要评估影响
我近期的一个案例里,把时间粒度从15分钟改为30分钟,整数变量数量直接砍半,求解时间从25分钟降到6分钟,而运行成本差异只有0.6%,完全在可接受范围内。
5. 我的实操体会与几个可以马上试的小技巧
做气电联合优化的这段时期,我最有体会的一件事是:别一开始就追求模型复杂度,先把基础模型跑闭环,再逐步加细节。很多人上手就搞多能流耦合、碳交易、不确定性鲁棒优化,模型建得很大,结果求解困难,最后拿不出一个像样的算例,反而忽略了最基本的气网约束和管存动态。我建议新手从“电网DistFlow+气网稳态管流+燃气机组+电需求响应”这个最小集开始,跑通以后再引入P2G、气需求响应、可替换负荷、管存动态,一层一层加上去。
另一个值得分享的小技巧是:在做多场景对比时,一定要把“算例参数和结果数据”一并保存。不同场景的设置差异,有时候就体现在一两行参数上,但你可能几周后回头写报告时才发现当时的场景设置和现在的不一样,数据对不上。我自己的做法是给每个场景建一个JSON配置文件,把网络参数、负荷曲线、价格曲线、需求响应参数全部固化下来,结果表里也写明用的是哪个版本的配置。
气电联合需求响应这个方向,我判断未来两三年会从示范项目逐步走向实用化部署。特别是随着电碳市场进一步贯通,气网和电网之间的协同价值会更显性化。它解决的不是单一网络的效率问题,而是整个城市能源系统层级的多能互补问题。如果你从事的是综合能源系统、园区微电网、城镇供热供气相关的优化运行工作,这个方向非常值得深入投入。
最后分享一个细节经验:做气电联合优化时,别忽略压缩机耗气量。在天然气配网里,增压站的耗气量虽然占总流量比例不大,但它的变化会直接影响管网末端的可用气量。我在一个8节点气网算例里,压缩机耗气量大约占进气总量的1.5%到3%,在气源紧张时段,这2个百分点足以决定某个燃气机组能否在晚高峰前达到满发状态。把这些“小环节”算进去,你的模型才会更贴近真实运行,优化结果才立得住。
