news 2026/3/27 22:16:32

最近在搞风光荷不确定性分析的时候,蒙特卡洛+K-means这套组合拳确实挺有意思。今天咱们就撸起袖子直接上代码,手把手实现从场景生成到削减的全流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
最近在搞风光荷不确定性分析的时候,蒙特卡洛+K-means这套组合拳确实挺有意思。今天咱们就撸起袖子直接上代码,手把手实现从场景生成到削减的全流程

蒙特卡洛法场景生成+K-means聚类并削减 风电、光伏、负荷 Matlab 通过概率模型并根据weibull、beta、正态分布生成500次风电光伏、负荷场景,此基础上,基于Kmeans算法,分别对源荷场景进行聚类,从而实现大规模场景的削减,削减到5个场景,最后得出每个场景的概率与每个对应场景相乘求和得到不确定性出力

先说说蒙特卡洛这部分的门道。风电服从双参数威布尔分布,光伏的Beta分布参数得看天气,负荷这货用正态分布就能凑合。上Matlab代码:

% 场景参数设置 num_scenes = 500; % 总场景数 wind_shape = 2.5; % 威布尔形状参数 wind_scale = 12; % 威布尔尺度参数 % 风电场景生成 wind_scenes = wblrnd(wind_scale, wind_shape, [num_scenes,1]); % 光伏Beta分布参数(晴天场景) alpha_pv = 3; beta_pv = 2; pv_scenes = betarnd(alpha_pv, beta_pv, [num_scenes,1]) * 100; % 假设最大出力100MW % 负荷正态分布 load_mu = 500; load_sigma = 50; load_scenes = normrnd(load_mu, load_sigma, [num_scenes,1]);

这里有个坑要注意:光伏的Beta分布输出需要根据实际装机容量做归一化处理。比如最大出力是100MW,直接乘以这个系数就能得到实际功率值。

接下来是重头戏——K-means聚类削减。500个场景直接算到天荒地老,必须砍到5个典型场景:

% 合并源荷数据(按列拼接) data_matrix = [wind_scenes, pv_scenes, load_scenes]; % K-means聚类 num_clusters = 5; [cluster_idx, centroids] = kmeans(data_matrix, num_clusters, 'Replicates',10); % 统计各簇样本数 cluster_counts = histcounts(cluster_idx, num_clusters);

这里'Replicates'参数别省,多跑几次避免陷入局部最优。聚类后的centroids矩阵就是咱们要的典型场景,每行对应一个场景的三维坐标(风、光、荷)。

蒙特卡洛法场景生成+K-means聚类并削减 风电、光伏、负荷 Matlab 通过概率模型并根据weibull、beta、正态分布生成500次风电光伏、负荷场景,此基础上,基于Kmeans算法,分别对源荷场景进行聚类,从而实现大规模场景的削减,削减到5个场景,最后得出每个场景的概率与每个对应场景相乘求和得到不确定性出力

最后算期望值才是精髓所在。各场景概率乘以对应出力,这个积分用离散场景替代:

% 计算场景概率 probabilities = cluster_counts' / num_scenes; % 不确定性出力期望 wind_expected = sum(centroids(:,1) .* probabilities); pv_expected = sum(centroids(:,2) .* probabilities); load_expected = sum(centroids(:,3) .* probabilities); fprintf('风电期望出力:%.2f MW\n光伏期望出力:%.2f MW\n负荷期望值:%.2f MW\n',... wind_expected, pv_expected, load_expected);

实际跑数据的时候发现个有趣现象——当风速分布呈现明显长尾时,K-means会自动生成一个低概率的极端场景。这比传统的前N大概率筛选法更能捕捉黑天鹅事件。

不过这套方法也有软肋:聚类结果对初始质心敏感,建议配合肘部法则确定最佳聚类数。当风光荷呈现强相关性时,可能需要用谱聚类这类考虑数据结构的算法。但日常用用,这已经是个能跑能用的好方案了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/25 3:08:11

大模型AI产品经理学习资源,价值2万的资料免费共享_大模型多个岗位详解,非常详细收藏我这一篇就够了

本文详细介绍了9个大模型相关岗位的职责与要求,并提供了价值2万元的大模型&AI产品经理学习资源包,包括7阶段学习路线图、300集视频教程、200本技术书籍及面试题合集,覆盖从入门到实战的全流程,适合小白和程序员系统学习大模型…

作者头像 李华
网站建设 2026/3/27 1:15:28

fpga lvds接口显示屏驱动

驱动源码: //------------------------------------文件信息--------------------------------------- // 文件名称: lcd2lvds_convert.v // 最后修改日期: 2018-5-3 // 最新版本: 1.0 // 功能描述: LCD数据格式转LVDS数据格式 // /…

作者头像 李华
网站建设 2026/3/26 23:10:56

Depth-Wise Emergence of Prediction-Centric Geometry in Large Language Models

Depth-Wise Emergence of Prediction-Centric Geometry in Large Language Models Authors: Shahar Haim, Daniel C McNamee Deep-Dive Summary: 论文总结:ControlNet - 为文本到图像扩散模型添加条件控制 这篇文章介绍了一种名为 ControlNet 的神经网络架构&am…

作者头像 李华
网站建设 2026/3/26 5:01:31

Flutter for OpenHarmony 实战_吃豆人游戏幽灵AI与绘制技术

Flutter for OpenHarmony 实战:吃豆人游戏幽灵AI与绘制技术 欢迎加入开源鸿蒙跨平台社区:开源鸿蒙跨平台开发者社区 幽灵是吃豆人游戏中最具挑战性的元素,它们的AI行为和视觉效果直接影响游戏的难度和吸引力。本文将详细介绍幽灵的数据结构…

作者头像 李华
网站建设 2026/3/26 20:00:11

基于8086计算器系统仿真设计

一 概要基于8086计算器系统仿真设计是一个结合了硬件与软件技术的综合性项目,旨在通过仿真技术模拟实现一个能够执行基本算术运算的计算器系统。以下是对该设计概要的详细阐述: 一、设计目标 该设计的主要目标是利用8086微处理器为核心,结合适…

作者头像 李华
网站建设 2026/3/24 23:14:11

QGIS应用教学——降雨量的空间插值与等值线绘制

前期准备1.QGIS(安装教程见本账号文章) 2.气象数据(请到地球资源数据云中学术社区的同名文章下载)一、从孤立的观测站到连续的雨量图当我们打开附件中从 NOAA(美国国家海洋和大气管理局)下载的气象数据时,映入眼帘的往…

作者头像 李华