如何定量表征风光出力波动性?
风光制氢项目前期的工作之一,是针对不同的项目条件,用数学工具寻找绿氢项目中风、光、制储氢的最优容量配置。在一体化系统中,为电解槽供电的风光电源是波动的,而下游通常需要相对稳定的氢气供应,于是就需要通过储氢、风光超额配置、电网支持等手段来弥补。
虽然模型给出方案的最优性是可以证明的,但有时想从直观上解释和理解却有困难,比如:两条风电出力曲线的等效小时数相同,但其中一条需要配置更大的制氢和储氢容量,才能完成同样的供氢任务。我们当然可以说是两条曲线的波动特性不同,但具体区别在哪儿,却说不太清楚。有时就会陷入循环论证:为什么某条风电曲线需要更多储氢呢?因为它的波动性更强;怎么看出来波动性更强呢?因为模型算出的储氢更大。而仅靠瞪眼法,也很难看出两条曲线波动性的本质区别。
我们希望用一套比较完整的指标描述这些差异,不做寻优计算,仅就出力曲线本身讨论波动特性。
最近 Tibo 的 reset 键按得勤,额度用不完感觉损失几个亿,正好拿这个问题来蹬一蹬。
“Vibe research”
我把问题的背景、案例、期望的结果和已有的零碎思路提供给 GPT,要求是给出一些标量或曲线形式的指标,描述波动性的不同侧面,以解释容量优化计算的结果。本来指望它一把就能给出完整方案,但实际结果一般,GPT 编了几个比较常规的指标就把我打发了。即使有点用,也感觉相当片面。
所以还得从长计议,把工作拆成几个小任务,逐步推进:
- 让 GPT 理解工程问题,明确研究范围。
- 确定目标和筛选标准:有助于比较出力曲线,含义清晰,指标的自变量不能过多。
- 头脑风暴,尽可能广泛地提出候选指标。
- 按照确定的标准,评估并筛选候选指标。
这一次,GPT 提出了五十多个候选指标。两轮切磋后,保留了 20 来个指标。同时,把问题限定为单条出力曲线的波动性,风电、光伏或固定比例的风光组合,都按同一套方法来分析。评价体系也只研究曲线本身,线性规划(LP)模型留作验证工具。
几个例子
这里挑选三个,看看它们能给容量配置提供什么信息。
出力持续曲线
持续曲线(Output duration curve)在电力工程中已经有广泛的应用。方法也简单,就是把逐小时出力按从高到低重新排序,所得到的曲线近似地表示出力达到或超过某一水平的时间占比。如果出力大多处于中低水平,那么较小的电解槽容量就能消纳这些时段的电力。如果在电解槽额定功率的位置画一条水平线,那曲线高出这条线部分的面积,就能直观反映超出电解槽消纳能力而要被弃掉的电量。
移动平均出力分位数
要评价数小时或数天区间的整体出力情况,可以对包含 个逐小时出力值 的记录,计算 小时移动平均值:
然后,取这些移动平均值的经验 分位数 :
P0()是窗口平均出力的最小值,P10()是第 10 百分位数。如果两者比较接近,说明最低的约 10% 的窗口平均值都集中在最小值附近。换用不同长度的窗口,就能看看连续一天、一周或更长时间内,平均出力能低到什么程度。

如果分位数曲线在较短的窗口就已经聚拢到均值附近,说明波动在这个时间尺度上大体抵消了,各个窗口的平均出力相差不大。而如果到了一个星期甚至更长的窗口,低分位数仍明显低于均值,就说明较长时间内的平均出力仍然偏弱。对稳定供氢来说,这样的时段可能持续消耗氢气储备,需要更大的储氢容量,或靠电网支撑制氢。
最大累积缺额
最大累积缺额衡量相对于选定的参考出力,一个连续时段能积累的最大净能量缺额。如果出力低于参考值,缺额持续累积;高于参考值时,富余出力可抵消部分累计缺额,回一些血。如果几个低出力时段之间有短暂回升,但不够把此前的缺额补足,就仍可能连成一个更大的累积缺额区间。
对于风光制氢系统,可以把这个参考值设定为下游用氢需求所对应的电解功率。如果前面少产的氢还没补回来,下一段低出力又来了,缺口就会接着累积。这个指标把几段短缺合起来算,得到的最大净缺额可以作为判断储氢容量的一个参考。
第 4 小时的盈余只弥补了周围时段的部分缺额,所以最大净缺额区间涵盖第 2 至第 6 小时。
网页应用
干啃数学定义并不直观,因此在初步筛选之后,直接进入下一步网页应用开发,这样就可以对着真实的出力曲线,看看画出来的指标长什么样,继续摸索和筛选。
应用现在已经部署在 Streamlit Community Cloud,经过几轮筛选保留了 12 个指标,每个指标都有详细说明,包括如何“快速理解”、指标的数学定义、计算案例和结果解读,还有一些插图,可以当作参考手册查阅。上面简单介绍了 3 个指标,更多内容可以直接到网站查看,或者拿自己的风光逐小时曲线上去分析一下。

接下来还可以做什么
这些指标我也还在慢慢消化,得拿更多真实曲线试试,看看哪些确实能说明问题。另外,也可以专门构造一些测试曲线,和 LP 优化结果放在一起对照,看看指标反映出的差异,与储氢、电解槽容量和电网用电的变化有什么联系。