做新能源并网优化的人,几乎都躲不开一个问题:全年的风、光数据随机性太强,直接扔给优化模型,计算量根本扛不住;可如果只取几个“平均日”,又会把极端天气和季节差异全抹掉。Copula + KMeans 的组合,正好是解决这类问题的经典思路——先用 Copula 把风速和光照之间的相关性“学”出来,生成成千上万条接近真实的场景,再用 KMeans 把这些场景削成少数的典型代表,每类带一个概率,拿去做随机规划、容量配置、调度优化都好用。
这篇文章就围绕“春夏秋冬四季的风光场景生成与聚类削减”这套流程来写。内容不绕弯子,直接讲清楚为什么用 Copula、为什么聚类选 KMeans、四季差异怎么体现在参数里,以及完整的 Matlab 代码怎么组织。适合正在做风光出力场景分析、微电网优化、储能容量配置的研究生和工程师,哪怕你之前没接触过 Copula,看完也能把代码跑起来。
1. 为什么要做场景生成和聚类削减
1.1 随机规划里的“场景”到底是什么
做风光并网优化的人应该都有印象,随机规划里最核心的输入就是“场景集”。所谓场景,就是一组带概率的风速、光照或出力曲线,用来表示未来可能出现的典型运行状态。理想情况下,我们当然希望把一整年的时序数据全部灌进优化模型,但这样模型规模会爆炸,尤其涉及整数变量时,求解器直接卡死。
所以工程上通用的做法是:先生成足够多的初始场景,尽量还原真实随机性,然后再用削减算法去掉冗余场景,保留少数有代表性的典型场景。生成负责“像”,削减负责“精”,两者配合,场景集才能在可控计算量下保持统计特征。
1.2 四季风光数据为什么不能混在一起建模
很多人一开始图省事,把全年数据放一起拟合分布,结果发现春季和冬季的风速分布差异极大,强行用一个参数集拟合,出来的场景既不“春”也不“冬”,两头不靠。
风速在冬季通常更强,形状参数和尺度参数都明显变化;光照则受日照时长和太阳高度角影响,夏季辐射强、冬季弱。如果场景生成不区分季节,聚类削减出来的典型场景会丢失季节边界,后续优化结果自然偏保守或偏冒进。所以建议严格按春夏秋冬四个季节分别建模,每个季节单独估计边际分布参数、Copula 相关参数,再各自生成和削减。这也是这个项目标题里把“四季”单独拎出来的原因。
1.3 方法选型的逻辑:Copula 负责“像”,KMeans 负责“精简”
为什么风速和光照的相关性要用 Copula 而不是直接用联合正态分布?因为风速和光照的边际分布本来就不是正态的,风速一般用 Weibull 拟合,光照用 Beta 拟合。如果强行假设二维正态,边际分布对不上,相关性结构也会失真。
Copula 的核心思想是把“边际分布”和“相关结构”分开建模:先用各自分布描述单变量特征,再用 Copula 描述变量之间的依赖关系。这就像分别选好两件衣服,再决定怎么搭配,而不是笼统地买一套“均码套装”。
场景削减方面,KMeans 是最适合当“第一刀”的算法。它计算快、实现简单、Matlab 自带函数,能从几千条原始场景里快速聚出几个稳定类别。虽然后向消去法在理论上能保证场景概率距离最优,但计算复杂度高,初始场景一多就非常慢。KMeans 做初步削减,再从簇内做精细化处理,是工程上很顺手的组合。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心数学原理与建模细节
2.1 风速与光照的边际分布建模
风速的常用模型是两参数 Weibull 分布,概率密度函数为:
f(v) = (k/c) * (v/c)^(k-1) * exp(-(v/c)^k)
其中 k 是形状参数,控制分布形态;c 是尺度参数,控制整体大小。拟合时可以直接用 Matlab 的 fitdist(hist_wind, 'wbl'),从历史风速数据中得到 k 和 c。
光照强度折算成 0 到 1 的“光照比例”后,常用 Beta 分布描述:
f(x) = (x^(a-1) * (1-x)^(b-1)) / B(a, b)
a 和 b 控制分布形态,可以通过历史数据的均值和方差反推,公式是:
a = m * (m * (1-m) / s^2 - 1)
b = (1-m) * (m * (1-m) / s^2 - 1)
其中 m 是样本均值,s^2 是样本方差。
注意:Beta 分布的取值区间是 (0,1),不包含 0。但光伏夜间出力就是 0,所以不能把全天 24 小时的光照数据直接塞进 Beta 分布。建议只对白天时段建模,或者把夜间处理成固定 0 值,再把白天比例映射到 (0,1] 区间。
2.2 四季参数差异和处理方式
下面这组参数是我在示意案例里常用的初始值,能体现出季节差异。实际项目一定要用当地历史数据重新拟合,千万别直接抄。
| 季节 | Weibull 形状 k | Weibull 尺度 c | Beta a | Beta b | 高斯 Copula rho |
|------|----
