☰
分布鲁棒机会约束下的电气互联系统协同经济调度
2026/10/18 13:35:32 网站建设 项目流程

风电一多,调度就难。这几年我一直在做电气互联系统的协同经济调度,体会最深的一句话就是:电和气的账,必须放到一起算。原来电网调度,风电预测不准,顶多多备一点火电,问题不大;可现在电网和天然气网深度耦合,风一停,燃气机组要立刻顶上,气网压力跟不跟得上?电转气(P2G)要不要启动?启动多少?这些决策如果还按老一套的确定性模型去拍,很可能第二天就出现弃风或者气荒。这篇内容,就把我们在一套电气互联系统协同经济调度模型里的完整做法讲清楚,核心建模框架是分布鲁棒机会约束,面对的核心对象是风电出力不确定性。文章适合正在做综合能源系统调度、或者刚接触随机优化与鲁棒优化想尽快落地的工程师,也适合写论文缺一条完整建模主线的同学参考。我会从问题拆解、建模思路、模型细节、仿真结果到踩坑心得,一条线讲完,尽量把“为什么这么建模”也讲明白。

1. 先把问题说透:电气互联系统为什么难调度

1.1 电和气的耦合逻辑

电力系统和天然气系统,以前是各算各的。电网有火电、水电、风电,气网有气源、管网、用户,两边只在“燃气电厂”这个点上碰面。现在不一样了,两个系统开始真正双向互动:一个方向是天然气发电,燃气机组把天然气变成电,电网在高峰负荷时非常依赖它,因为它启动快、调节灵活;另一个方向是电转气,P2G设备把低谷时段的多余风电变成氢气或者合成天然气,送回气网管网,相当于给气网补充了一个可调节的气源。

用个生活化的类比:电网和气网就像两个水池,中间有两根管子把它们连起来。一根管子是气往电走,燃气轮机;另一根管子是电往气走,P2G。调度问题就是决定每天往哪个方向抽水、抽多少,同时要保证两个水池的水位不越限、管道流量不超载。双向耦合带来的好处很明显:低谷风电多,电网自己消纳不了,与其弃风,不如让P2G把电变成气存到气网里;高峰负荷时风少,燃气机组快速顶上,比煤电灵活。但代价是,两个系统的风险会互相传递:风电出力偏差一大,电侧需要气侧快速响应,气网的压力和流量能不能跟上,就成了一个需要建模验证的问题。

所以“协同经济调度”不是赶时髦,而是物理上两个系统已经绑在一起,单独调度两边,结果大概率不是全局最优的,甚至可能是不可行的。

1.2 风电不确定性的三重麻烦

既然是做调度模型,风电的不确定性就得认真对待。做了几年之后,我对风电预测误差的理解可以总结成三句话。

第一,预测误差的分布会漂移。清晨和傍晚、夏季和冬季、大风过程前后,误差的形态差异非常大。同一套正态分布参数,上午好用下午就失灵,这是很常见的事。

第二,空间相关性不可忽视。相邻风电场的预测误差往往正相关,极端天气来的时候,可能一大片风电场同时出力偏低,而不是一个高一个低把偏差抵消掉。如果模型假设各个风场误差独立,备用会被严重低估。

第三,尾部风险很大。预测偏差在5%以内确实常见,但真正致命的是那种一次偏差到30%、40%的场景。这种场景虽然出现概率不高,一旦出现,对系统备用和线路潮流的影响是颠覆性的。

这三点合在一起,最直接的含义就是:用一个固定的概率分布去描述风电预测误差,是站不住脚的。偏偏很多随机规划方法都有这个隐含假设,这是后文我们转向分布鲁棒框架的核心动机。

1.3 确定性调度为什么不够用

先看最传统的做法:确定性调度。它把风电出力当作已知量,一般取预测均值或者预测值,然后按比例留备用。比如某时刻预测风电出力300MW,模型就按300MW优化,再额外留10%旋转备用。

问题恰恰出在这个“按比例”上。备用是按经验拍出来的,不是按风险算出来的。当风电预测误差突然增大时,固定比例备用往往不够用。不够用怎么办?只能临时调用高价机组、切负荷、或者弃风。反过来,在风况很稳的日子,固定比例备用又显得多余,白白增加成本。

从工程统计数据看,固定比例备用应对“大概率小偏差”可以,应对“小概率大偏差”就明显笨重。于是核心问题就变成了:能不能把不确定性显式写进模型,让优化自己判断“出现什么样的偏差,需要准备多少备用、哪些机组来承担”?这就是机会约束进入调度模型的原因。

2. 分布鲁棒机会约束:一种更稳的“留一手”

2.1 三种不确定性建模路线的取舍

做不确定性调度,主流路线有三条:随机规划、传统鲁棒优化、分布鲁棒优化。三者的定位完全不同,直接决定了模型的经济性和保守度。

先说随机规划。它的前提是已知不确定量的精确概率分布,然后优化期望成本,机会约束也可以在这个框架下写。优点就是经济性最好,风光资源能用足;缺点是那个“精确概率分布”在工程上几乎拿不到,而且随机规划对尾部风险的约束往往偏弱,真实场景一回放就容易出问题。

传统鲁棒优化则走向另一个极端,它只需要知道不确定量的上下界,保证最坏情况下系统也可行。优点是稳,缺点也是稳过头了:所有偏差都按最坏值预留备用,风电稍微有点波动,备用成本就高得离谱,可行域也偏小,实际调度员看到结果常常觉得太浪费。

分布鲁棒优化是中间路线:假设真实分布属于某个“候选人集合”,这个集合由历史样本构造,优化目标是让集合内最坏情况下的期望成本最优,同时让约束以不低于给定概率满足。它既不需要精确分布,又不会离谱保守。用一个类比说:随机规划是“天气预报说八成下雨,我按八成带伞”;鲁棒是“不管下不下雨,我都套上全套雨衣”;分布鲁棒是“天气预报有误差,我按最坏可能做准备,但也不至于晴天也穿雨衣”。

一句话总结三者的取舍,可以用下面这个表:

建模方式对不确定性的认知经济性稳健性对数据的要求
随机规划分布已知且精确最好偏弱,尾部分布易低估需要大量可靠样本精确拟合分布
传统鲁棒只知道区间上下界较差,过度保守极强只需上下界,数据需求低
分布鲁棒分布未知,但落在模糊集中介于两者之间可通过模糊集半径调节需要历史样本,但无需精确分布

2.2 模糊集与Wasserstein球

我们采用的是基于Wasserstein距离构造的模糊集,这也是目前工程上比较常用的一种数据驱动方式。基本思想是:收集近一段时间的风电预测误差历史样本,比如过去30天每15分钟一个点,得到一批误差样本。真实分布P不知道,但可以认为它落在以经验分布为圆心、半径为一个阈值的“Wasserstein球”内。

Wasserstein距离这个概念,通俗地理解就是:把一个概率分布的质量“搬到”另一个分布所需的最小代价。两个分布如果整体形态差不多,距离就小;如果尾部分布差异大,距离就会拉开。用历史样本构造一个球,相当于说:“真实分布大概率离这些样本表现出的分布不远,但具体是哪一种,我不确定,所以把球里所有可能的分布都考虑进去。”

这个做法的工程吸引力在于三点。第一,它纯粹数据驱动,有预测系统给出的误差历史就能构造模糊集;第二,半径可以通过样本量和置信度用理论公式确定,不是拍脑袋定的;第三,它天然是个“调节旋钮”:半径趋近于零时,模型退化成随机规划,经济性好;半径拉大时,模型逐步逼近传统鲁棒,稳健性增加。实际使用中,我们的做法是先按理论公式算一个基准半径,再按业务可接受的风险水平做灵敏度扫描,最后选一个兼顾成本和稳健性的值。

2.3 机会约束进入分布鲁棒框架后的处理

机会约束要表达的问题是:允许约束以很小的概率被突破,但概率不能超过阈值。比如系统备用机会约束写成概率形式,就是:

[ \Pr\left{\sum_{i} R_{i,t} \ge \Delta P_{\max}(\tilde{w}_t) \right} \ge 1-\varepsilon ]

意思是向上可调备用之和大于风电最大偏差需求的概率不低于95%(比如取ε=0.05)。这个约束比传统鲁棒的“所有情况都必须满足”、也比随机规划的“只看期望”要更符合工程直觉。

但机会约束有个著名的毛病:它本身是非凸的,直接求解很困难。工程上常用的路线是用条件风险价值(CVaR)去近似它。CVaR描述的是尾部损失的平均水平,一个机会约束的可行域可以被一个CVaR约束从保守侧逼近,而这个CVaR约束在分布鲁棒框架下是可以转化成凸约束的。进一步做强对偶,可以把“模糊集中所有分布都满足”的要求转成一组有限维的线性或二阶锥约束,求解规模和样本数量、决策变量维度直接相关。

这里有个很实际的建议:不要试图把机会约束原样丢给非线性求解器,那样又慢又不稳定。正确做法是先做CVaR近似,再通过线性化或对偶把模型整理成商用求解器熟悉的格式,求解效果会好很多。后面我会具体讲我们在仿真里怎么处理这些约束。

3. 协同经济调度模型怎么搭

3.1 目标函数:一天的总成本

调度模型作为一个优化问题,目标函数要能反映这一天系统运行的经济性。我们用的目标函数是系统总运行成本最小化,显式包含了几部分:

[ \min \sum_{t} \left( \sum_{i} C_{i}^{\text{gen}}(P_{i,t}) + \sum_{s} C_{s}^{\text{gas}}(F_{s,t}) + C^{\text{P2G}}(P^{\text{p2g}}{t}) + \lambda_w (P^{\text{avail}}{w,t} - P^{\text{used}}_{w,t}) + \lambda_L \Delta L_t \right) ]

第一项是发电机组燃料成本,主要是火电和燃气轮机,用二次函数或者分段线性函数拟合;第二项是气源购气成本,气网侧的天然气不是白来的,每个气源有自己的报价;第三项是P2G运行成本,包括设备维护和耗电成本;第四项是弃风惩罚,因为风电边际成本接近于零,弃风意味着资源浪费,所以给一个较高的惩罚系数;最后一项是切负荷惩罚,这个系数要设得非常高,比任何正常运行成本都高一个数量级以上,否则优化器会“聪明”地选择切负荷来省钱。

目标函数表面看起来不复杂,但真正决定模型行为的是惩罚系数的相对大小。我们做过测试,如果切负荷惩罚只比高价机组贵一点点,模型在风电大偏差日就会频繁选择切负荷,而不是调用备用,这在工程上完全不可接受。

3.2 电力系统约束

电力侧约束是标准的调度约束,但每个约束都有它存在的理由。节点有功平衡是最基础的约束,每个节点注入和流出必须平衡。直流潮流方程把线路有功潮流和节点相角联系起来,由于负荷和风电偏差都进入节点注入,线路潮流也就是相角和注入的线性函数,这一点后面很有用。传输极限约束保证任何一条线路不过载。机组出力上下限和爬坡约束捕捉火电和燃气轮机的物理调节能力。

在不确定性建模里,旋转备用约束是重点。我们把系统备用响应能力写成所有在线机组可调容量之和,要求它在概率意义下能够覆盖风电出力偏差带来的净负荷波动,也就是前面给出的机会约束。这个约束的好处是,模型会自行在成本高的快速机组和成本低的慢机组之间做权衡,而不是按固定比例一刀切。

还有一个容易忽略的地方是爬坡约束的不确定性影响。风电短时剧烈波动时,爬坡最快的那几台机组可能被全部调用,如果模型不知道风电可能“跳变”,它不会为爬坡留裕度。所以我们在爬坡约束上也加了一层机会约束,允许极端爬坡事件以一个很小的概率触发备用调整。这个细节在实际回放测试里非常关键。

3.3 天然气系统约束

天然气网侧的约束才是这个模型真正难处理的地方。气网和电网有个本质区别:电几乎是瞬时平衡的,气是慢过程,管道本身有储气能力,节点压力是空间分布的,不能像频率一样全系统统一。

管道稳态流量方程给出了管道流量与两端压力平方差的关系。这是标准的二次型压差—流量关系,物理上没有问题,但它是个非凸约束。小规模算例可以保留这个非线性方程,用内点法硬解;系统规模一大,非凸约束会让求解器经常掉进局部最优,所以我们在大算例里用了分段线性化或者二阶锥松弛,精度足够,求解稳定性大幅提升。

节点气流量平衡约束要保证每个节点的注入、负荷、P2G产气和燃气轮机耗气之间的平衡。气压上下限约束保证管网运行在安全范围,尤其要防止燃气机组集中启动时局部节点压力骤降。气源供气上限模拟的是长输管道日合同量和气井最大产量,这个约束往往会在高峰负荷日变成瓶颈。

如果想考虑更精细的管存动态,可以加入一个简化的一阶管存模型,让管存的变化等于进出管道流量之差。这个扩展对多时段调度很有价值,它给气网提供了跨时段的缓冲余地,让P2G在低谷时段产的气可以在高峰时段被燃气机组消耗,而不是必须即产即用。

3.4 电气耦合约束

电和气的耦合约束把两侧连接起来。燃气机组是主要的耦合设备,它的发电功率和耗气量之间有一个转换效率,写成:

[ P_{i,t}^{g} = \eta_i \cdot F_{i,t}^{\text{fuel}} ]

效率η一般在0.35到0.55之间,取决于机组类型和工况。P2G设备是相反的转换方向:

[ F_{t}^{\text{p2g}} = \eta_{t}^{\text{p2g}} \cdot P_{t}^{\text{p2g}} ]

P2G的综合效率目前大约在0.45到0.65之间,比燃气机组发电效率还低一些,这也是为什么P2G不能随便开,它只在弃风量大、或者气价高的时候才有经济性。我们还在耦合节点上加了注入上下限和启停次数限制,防止模型把P2G当成一个无成本的垃圾桶,频繁开关,实际设备受不了。

这部分模型把事情讲透以后,就能回答开头的那个问题了:风电多的时候,电转气到底该不该开?答案是看气网缺不缺气、气价高不高、弃风成本有多大。如果气网气压快越上限,P2G产的气进不去,开了也是白开;如果燃气机组高峰还要大量耗气,P2G低谷存的气就派上用场了。这就是协同调度的价值所在。

3.5 机会约束具体落在哪些位置

我们把机会约束放在了四个关键位置。

第一个是系统旋转备用,前面已经说过,这是最直接对应风电不确定性的约束。第二个是关键线路的潮流不越限。因为直流潮流方程是线性的,风电偏差引起的线路潮流变化也是线性的,所以这个约束可以在分布鲁棒框架下写成概率约束,防止某条通道在风电大发时过载。第三个是气网节点压力不越限。风电预测偏差一旦导致燃气机组出力改变,节点耗气量就变,局部气压波动就大,这个约束用来保证气网侧也有足够的调节能力。第四个是区域净负荷爬坡备用,防止短时间风功率骤升骤降时系统跟不上。

这四个约束共享同一个误差源,也就是风电预测误差向量,所以在建模时不是把它们当作独立的概率事件,而是用同一个模糊集来统一描述误差分布。这一点很重要,因为如果分别对每个约束独立建模糊集,可能把相关性丢失,极端场景下的联合风险就会被低估。

4. 仿真结果:分布鲁棒不是“玄学”

4.1 算例搭建与参数设置

为了验证模型,我用的算例是一个通用的39节点电力测试系统和一个20节点天然气测试系统耦合而成,这是公开的标准算例,很多做综合能源的文章都会用,方便横向对比。电网上挂了5台燃气轮机和若干火电机组,气网侧接了3个P2G设备,风电装机占比设为40%,算是比较高的渗透率场景。负荷曲线用典型日数据,风电预测误差的历史样本取过去30天每15分钟一个点,一共约2880个样本点,用这些样本来构造Wasserstein模糊集。

置信水平取95%,也就是机会约束的违反概率ε=0.05。Wasserstein半径先按有限样本保证公式算基准值,再按0.1倍、0.5倍、1倍和2倍做灵敏度扫描。罚系数设置为:切负荷罚金是最高机组单位煤耗成本的10倍以上,弃风罚金略低于P2G运行成本,这样模型不会为了减少弃风而随便开P2G,也不会为了省钱而切负荷。

对比方案设了三套:第一套是确定性模型,风电取预测值,备用按固定比例10%留;第二套是传统鲁棒模型,不确定集取预测误差的95%分位数区间,所有约束在最坏情况下都要满足;第三套就是我们的分布鲁棒机会约束模型。

4.2 三套方案的结果对比

我把典型日的结果整理成表:

对比项确定性模型 DET传统鲁棒模型 RO分布鲁棒机会约束 DRO-CC
总运行成本(相对值)1.001.091.04
切负荷概率(真实场景回放)0.8%0%0.03%
弃风率6%1%2%
求解时间(分钟)0.30.43.5

看结果的第一个感觉是:确定性模型成本最低,但这是假象。把它放到一个月的真实风电场景里去回放,切负荷概率达到0.8%,换算下来大约每四个月就会出现一次切负荷事件,这在电网调度里是绝对不能接受的。传统鲁棒模型确实稳,切负荷概率是零,但成本比确定性高9%,备用压得太满,弃风率很低,但经济代价太大。

分布鲁棒机会约束模型夹在中间,成本只比确定性高4%,切负荷概率却降到0.03%,下降了二十多倍。这个结果其实很有说服力:我们用很小的成本代价,换来了风险水平的大幅下降。0.03%的切负荷概率也符合95%置信水平的预期,说明机会约束在真实样本回放下没有“失真”。

还有一个值得注意的现象是弃风率。传统鲁棒弃风率只有1%,看起来最好,但它的方式是让所有机组都多留备用容量,把风电不确定性“压下去”,这不叫消纳,这叫浪费。DRO-CC的弃风率2%,比确定性低很多,同时没有像鲁棒那样过度保留备用,这个状态更接近工程上可接受的水平。

4.3 灵敏度与参数行为分析

做完基础对比之后,我又扫了一遍关键参数,结论对实际选参很有参考价值。

先看置信水平ε。把ε从0.01逐步调到0.10,总成本会逐步下降,因为允许的风险水平越高,模型预留的备用就越少。但这个下降不是线性的,ε在0.05之前成本下降明显,过了0.05之后成本下降趋缓,切负荷风险却还在上升。所以我们最终选了0.05作为基准值,它是成本曲线上的“拐点”。

再看Wasserstein半径θ。半径从小往大调,成本逐步上升,切负荷概率逐步下降。这里有个坑:如果半径太小,模糊集几乎退化成经验分布,模型对未见过的新误差形态没有免疫力;半径太大,成本接近传统鲁棒,失去意义。实务上我的建议是,先用理论公式算一个基准值,然后扫一遍0.5倍到1.5倍区间,看成本和风险的变化率,选变化率从陡峭变平缓的位置。

风电渗透率的敏感性也值得提一下。把风电装机占比从30%提到50%,确定性模型的切负荷概率快速上升,传统鲁棒模型的成本急剧恶化,而DRO-CC模型通过模糊集半径和置信水平的配合,成本和风险都能维持在一个可接受的范围。这说明分布鲁棒机会约束对高比例新能源场景的适应性是比较好的。

5. 实操心得与踩坑记录

5.1 不要硬解机会约束

这条经验我要放在最前面。机会约束直接非线性求解,在中小算例上可能还能跑,算例一复杂就原形毕露:不收敛、收敛到劣质局部解、求解时间爆炸,三个坑一个都躲不掉。

正确路线是先做CVaR近似,再通过强对偶把分布鲁棒机会约束转化成有限维的线性或二阶锥约束。处理完后,模型整体是个凸优化问题,可以交给成熟的商业求解器。我们在实际操作里,建模工具用的是常用科学计算环境里的建模工具箱,求解器选的是商业求解器,整个流程非常顺。记住,建模的艺术在于把不好解的问题转化成求解器擅长处理的结构,而不是逼求解器去挑战非凸概率约束。

5.2 样本不是越多越好

Wasserstein模糊集需要历史样本,但样本数量不是越多越好。样本多,模糊集的统计精度确实更高,但模型的约束数量也会跟着涨,求解时间线性甚至超线性增加。

我们做过对比,样本数从2880个缩减到300个代表性场景,成本结果只变了不到1%,求解时间从十几分钟降到三分钟以内。缩减样本的方法用的是场景聚类,把相似误差模式合并,保留尾部极端样本。实际操作时要注意:聚类时不要把那些“小概率大偏差”的尾部样本给归并掉了,这些样本恰恰是决定备用水平的关键。

5.3 罚系数要有层次

前面提到过罚系数,这里展开讲讲。切负荷罚金要最高,弃风罚金次之,P2G运行成本第三,常规机组燃料成本最低。如果罚金设置没有这个层次,优化器就会钻空子。

举个真实踩过的坑:最开始我把弃风罚金设得特别高,心想“新能源要多用”,结果模型宁可让P2G在气网已经接近气压上限的时候全功率运行,也要把弃风降下来,代价是气网压力越限。后来把P2G的节点注入上限和气压机会约束同时收紧,再把弃风罚金调到合理区间,模型行为才正常。罚系数的本质是给优化器传递价值排序,这个排序必须和实际业务目标一致。

5.4 与预测系统的对接经验

模型不是一次性搭完就能用的。我们把这个模型接到实际的预测系统上后发现,风电预测误差的分布每天在变,模糊集如果一直用一个月前的历史样本,误差会越来越大。后来改成滚动更新:每天取最近30天的误差样本重新构造模糊集,模型跑出来的备用建议和实际运行情况明显更贴合。

另外,值班调度员不关心分布鲁棒的理论推导,他们只关心结果里备用够不够、哪些线路可能越限、需要重点关注哪个气网节点。所以我们把模型结果转成了一份决策清单:未来24小时的备用计划、关键断面预警、气网低压风险时段。这样模型才能从论文落到调度台。这个转换工作其实比模型本身更花时间,但它是工程应用里最难替代的部分。

5.5 理论半径和工程半径要分开

最后说一个选参数的体会。Wasserstein半径的理论公式给出的是一个有统计保证的保守值,直接用它,模型通常偏保守,成本可能比实际需要高不少。我们的做法是把理论值作为上限参考,再结合对历史误差数据的观察,向下调整到一个业务可接受的平衡点。这个调整没有标准答案,只能靠对系统风险偏好的理解。我的经验是:先在保守侧跑一版,拿到成本和风险基准,再逐步减少半径,每调一次就做一次历史场景回放,直到风险指标接近容忍上限。这个过程很繁琐,但值得做。

写在最后

这个模型我前后跑了快一年,最大的体会是:分布鲁棒机会约束不是用来装饰论文的数学工具,它本质上给了调度一个“风险—成本—备用”的量化旋钮。以前调度员只能拍脑袋说“明天风大,多留10%备用”,现在模型可以告诉他:多留这10%备用,对应的是什么样的风险削减,要付出多少成本;反过来,如果风险偏好收紧一点,备用和成本会怎么变。这个“可解释性”是它比传统鲁棒和纯随机规划更贴近工程的地方。

个人经验是,做这类模型最花功夫的不是推导对偶,而是把不确定集标定对:历史样本选哪一段、半径调到什么程度、置信水平定多少、罚系数怎么排,每一个参数都直接决定模型在现场能不能用。如果后面还有精力深挖,我觉得气网动态管存建模、多时间尺度滚动调度、以及P2G参与调峰辅助服务市场这几个方向都很有价值。这篇文章就到这里,希望能给正在做电气互联调度,或者考虑用分布鲁棒方法做优化的朋友一些实际参考。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询