1. 风光场景生成与削减的核心逻辑
在风光发电系统分析和虚拟电厂调度中,处理不确定性是核心挑战。我们通常需要生成大量可能的风光出力场景,但直接使用所有场景会导致计算复杂度爆炸。这就引出了场景生成与削减的两阶段方法:
1.1 蒙特卡洛场景生成原理
蒙特卡洛方法通过随机采样来模拟不确定性。对于风光发电系统,我们需要考虑:
- 风电出力的时空相关性:相邻时段的风电出力具有连续性,不能简单用独立随机数生成
- 光伏出力的概率分布:Beta分布比正态分布更适合模拟日照强度变化
- 电价波动的市场特性:需要考虑时间序列的自回归特性
matlab复制% 风电出力模拟示例
wind_base = 80; % MW
time_correlation = 0.1 * cumsum(randn(24,1)); % 时间相关性
spatial_correlation = 0.2 * randn; % 空间相关性
wind_output = wind_base * (1 + spatial_correlation + time_correlation);
1.2 概率距离削减法的数学基础
传统场景削减方法如K-means主要考虑欧式距离,但这对风光曲线不合适,因为:
- 两条形状相似但数值平移的曲线应该被视为相似
- 极端但重要的场景需要保留
- 需要考虑整个概率分布的相似性
Wasserstein距离(又称推土机距离)能更好地衡量两个概率分布的差异。对于一维情况,计算简化为:
code复制W(p,q) = ∫|P⁻¹(x) - Q⁻¹(x)|dx
其中P⁻¹和Q⁻¹是累积分布函数的逆函数。在离散情况下,就是对排序后的样本求绝对差均值。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. MATLAB实现详解
2.1 场景生成模块优化
原始代码中的场景生成可以进一步优化:
matlab复制function [wind_scenes, solar_scenes, price_scenes] = generate_scenes(num_scenes)
% 风电场景:考虑时空相关性
wind_base = 80;
wind_scenes = zeros(24, num_scenes);
for i = 1:num_
