当前位置: 首页 > news >正文

【聚类分析】基于copula的风光联合场景生成与缩减

目录

1 主要内容

风光出力场景生成方法

2 部分程序

3 程序结果

4 下载链接

主要内容

该程序方法复现《融合风光出力场景生成的多能互补微网系统优化配置》风光出力场景生成部分,目前大多数研究的是不计风光出力之间的相关性影响,但是地理位置相近的风电机组和光伏机组具有极大的相关性。因此,采用 Copula 函数作为风电、光伏联合概率分布,生成风、光考虑空间相关性联合出力场景,在此基础上,基于Kmeans算法,分别对风光场景进行聚类,从而实现大规模场景的削减,削减到5个场景,最后得出每个场景的概率与每个对应场景相乘求和得到不确定性出力。

  • 风光出力场景生成方法

以历史风光出力数据(每小时一个点)为基础(图中x 和y 分别表示单位风机和光伏出力),首先基于核密度估计法选取常用的高斯核函数生成24h内每个时段的风、光出力概率密度函数。然后考虑风光相关性,基于 Copula理论建立每个时段的风光出力联合概率分布函数;对于 Copula函数的选取,由于二元阿基米德 Copula函数中,Gumbel和ClaytonCopula函数只能描述变量间的非负关系,FrankCopula可兼顾变量的非负和负相关关系,而风光常有负相关互补关系,因此本文选取 FrankCopula函数描述风光相关性。最后,对每个时段的联合概率分布函数进行采样,并根据采样结果和风光的联合概率分布函数反变换得到每个时段的采样风机和光伏出力,从而最终生成考虑风光相关性和随机性的典型日曲线。

部分程序

% 基于Copula函数的风光功率联合场景生成
% 关键词:Copula;场景生成;风光出力相关性
clear; clc; close all;
%% 导入数据与预处理
solardata =  xlsread('数据-光伏.xlsx');
winddata = xlsread('数据-风功率.xlsx');
winddata = winddata(2:end, :);
solardata = solardata(2:end, :);scenarionum = 500;  % 初始场景数目,可修改
num_cluster = 5;     % 要削减到的场景数目,可修改
ntime = 24;  % 24小时% X和Y分别存储风和光的24个时刻历史观测数据
X = []; Y = [];
for t = 1 : ntimeX{t} = winddata(:, t);Y{t} = solardata(:, t);
end%% Copula拟合
% Frank-Copula 函数可以同时考虑变量的非负与负相关的关系
% 故采用 Frank-Copula 函数分别对24个时刻进行拟合for i = 1 : ntimeU = ksdensity(X{i}, 'function', 'cdf'); % 核密度估计V = ksdensity(Y{i}, 'function', 'cdf');alpha = copulafit('frank', [U(:) V(:)]); % 拟合出的参数copulaparams.alpha = alpha;copulaparams.numParams = 1;copModels(i) = copulaparams;       
end
%% 绘制二元Frank-Copula的密度函数和分布函数图
[Udata, Vdata] = meshgrid(linspace(0,1,31));  % 为绘图需要,产生新的网格数据
Ccdf_Frank = copulacdf('Frank', [Udata(:), Vdata(:)], copModels(12).alpha);

程序结果

4 下载链接

http://www.dtcms.com/a/170741.html

相关文章:

  • 【QT】QT中的网络编程(TCP 和 UDP通信)
  • JAVA:使用 MapStruct 实现高效对象映射的技术指南
  • Git从入门到精通-第四章-更新仓库
  • augmentcode 竞品分析
  • 尼卡音乐 1.1.1 | 免费畅听全网音乐,支持无损下载,无广告无需注册登录
  • 多模态大语言模型arxiv论文略读(五十八)
  • docker:制作镜像+上传镜像+拉取镜像
  • 开上“Python跑的车”——自动驾驶数据可视化的落地之道
  • 精品,CentOS7.9 Yum安装Nginx,并配置JSON日志格式
  • word页眉去掉线
  • ES类迁移方法
  • 字符串问题c++
  • 以太坊智能合约开发框架:Hardhat v2 核心功能从入门到基础教程
  • uniswap v4 hooks标志位
  • set autotrace报错
  • 模型部署——cuda编程入门
  • SpringMVC——第五章:视图View
  • qml显示视频帧(QQuickImageProvider)
  • 58认知干货:创业经验分享及企业形式的汇总
  • 【操作系统】深入理解内存管理:从虚拟内存到OOM Killer
  • 从实列中学习linux shell12 通过Shell脚本来优化MySQL数据库性能,特别是慢SQL跟踪和索引优化
  • Java学习手册:MyBatis 框架作用详解
  • 【LLM】deepseek R1之GRPO训练笔记(持续更新)
  • Axure打开html文件失败,解决方案:
  • Three.js在vue中的使用(二)-动画、材质
  • 微服务框架选型
  • 小白机器人假想:分布式关节控制——机器人运动的未来模式?
  • 数字化时代下,软件测试中的渗透测试是如何保障安全的?
  • C# 方法(返回值、返回语句和void方法)
  • spring cloud 与 cloud alibaba 版本对照表