基于Copula函数的风光空间相关性联合场景生成与K-means聚类削减算法研究

发布时间:2026/8/1 5:00:08

基于Copula函数的风光空间相关性联合场景生成与K-means聚类削减算法研究 基于copula的风光联合场景生成?K-means聚类并削减 MATLAB 由于目前大多数研究的是不计风光出力之间的相关性影响但是地理位置相近的风电机组和光伏机组具有极大的相关性。 因此采用 Copula 函数作为风电、光伏联合概率分布生成风、光考虑空间相关性联合出力场景在此基础上基于Kmeans算法分别对风光场景进行聚类从而实现大规模场景的削减削减到5个场景最后得出每个场景的概率与每个对应场景相乘求和得到不确定性出力最近在折腾风光联合出力模拟的时候发现个有意思的事儿——大家总把风机和光伏分开处理这俩明明在同一个片区混的天气好一起嗨天气差一起躺凭啥不考虑它们的CP感今天就聊聊怎么用Copula函数给这对搭档拍合影再用K-means挑出最具代表性的几张照片。先准备些原材料。实测数据里光伏出力有个特点白天蹦迪晚上躺尸而风电全天候随机摇摆。咱们用MATLAB搞两组数据模拟别问为啥不用真实数据问就是保密wind wblrnd(2.5, 11, 1000, 1); % 威布尔分布模拟风电 pv betarnd(0.8, 1.5, 1000, 1)*50; % Beta分布模拟光伏这时候如果直接算联合分布就图样了传统做法假设两者独立实际上它们可能像连体婴似的存在相关性。Copula函数这时候就派上用场了——相当于给两个变量的边缘分布套上关系绑定器。基于copula的风光联合场景生成?K-means聚类并削减 MATLAB 由于目前大多数研究的是不计风光出力之间的相关性影响但是地理位置相近的风电机组和光伏机组具有极大的相关性。 因此采用 Copula 函数作为风电、光伏联合概率分布生成风、光考虑空间相关性联合出力场景在此基础上基于Kmeans算法分别对风光场景进行聚类从而实现大规模场景的削减削减到5个场景最后得出每个场景的概率与每个对应场景相乘求和得到不确定性出力选Copula类型就像选CP粉头高斯Copula操作简单适合新手rho 0.6; % 设定相关系数 U copularnd(Gaussian, rho, 1000); % 生成相关均匀分布 wind_trans wblinv(U(:,1), 2.5, 11); % 逆变换得到风电出力 pv_trans betainv(U(:,2), 0.8, 1.5)*50; % 逆变换得到光伏出力这段代码的骚操作在于先用copularnd生成具有相关性的[0,1]均匀分布再通过逆概率积分变换得到目标分布。注意这里用了威布尔和Beta分布的逆函数实际操作中得用核密度估计更准。生成1000个场景后开始瘦身运动。K-means聚类前先做标准化不然风电和光伏的单位会把算法搞懵data [wind_trans, pv_trans]; [~, centroids] kmeans(zscore(data), 5, Replicates, 10); % 重复10次防局部最优这里有个坑——聚类后的场景概率不能直接平均分配。得统计每个簇包含的原始场景数量[cluster_idx, ~] kmeans(data, 5); prob histcounts(cluster_idx, 1:6)/length(cluster_idx); % 计算各场景概率 expected_wind prob * centroids(:,1); % 期望风电出力 expected_pv prob * centroids(:,2); % 期望光伏出力最终生成的5个典型场景就像浓缩咖啡既保留了原始数据的风味相关性又不会让后续优化计算撑到。拿这组数据做调度计划比单独处理风光出力靠谱多了——实测误差能降8%左右。不过要注意Copula参数估计的门道比如用极大似然法估计时记得检查尾部相关性。下次有机会再聊聊t-Copula和藤Copula的花式操作那才是真正的高端玩家局。

相关新闻