完成基本多场景功能。
This commit is contained in:
228
docs/SCENARIO_STORAGE_OPTIMIZATION.md
Normal file
228
docs/SCENARIO_STORAGE_OPTIMIZATION.md
Normal file
@@ -0,0 +1,228 @@
|
||||
# 场景储能配置优化模块
|
||||
|
||||
## 功能概述
|
||||
|
||||
本模块将多场景聚类分析与储能容量优化相结合,为多能互补系统提供场景化的储能配置方案。通过识别不同的运行模式,为每种场景提供最优的储能容量建议。
|
||||
|
||||
## 主要特性
|
||||
|
||||
### 1. 多场景储能优化
|
||||
- **场景识别**: 基于光伏、风电、负荷三维度进行聚类分析
|
||||
- **储能配置**: 为每个场景独立计算最优储能容量
|
||||
- **结果汇总**: 提供加权平均和最大需求分析
|
||||
|
||||
### 2. 智能数据处理
|
||||
- **短时扩展**: 自动将短时场景数据扩展为24小时
|
||||
- **长度适配**: 确保数据符合储能优化算法要求
|
||||
- **错误处理**: 完善的异常捕获和提示机制
|
||||
|
||||
### 3. 可视化分析
|
||||
- **结果展示**: 清晰的场景储能需求汇总表
|
||||
- **配置建议**: 基于安全系数的储能容量推荐
|
||||
- **频率分析**: 基于场景出现频率的加权计算
|
||||
|
||||
## 核心类和方法
|
||||
|
||||
### MultiScenarioAnalyzer类
|
||||
|
||||
#### 新增方法
|
||||
|
||||
##### `optimize_storage_for_scenarios()`
|
||||
对聚类后的场景进行储能配置优化。
|
||||
|
||||
**参数:**
|
||||
- `result`: 聚类结果 (ScenarioResult)
|
||||
- `solar_output`: 光伏出力曲线 (List[float], MW)
|
||||
- `wind_output`: 风电出力曲线 (List[float], MW)
|
||||
- `load_demand`: 负荷曲线 (List[float], MW)
|
||||
- `system_params`: 系统参数 (SystemParameters, 可选)
|
||||
- `safety_factor`: 安全系数 (float, 默认1.2)
|
||||
|
||||
**返回:**
|
||||
- Dict[str, Dict[str, float]]: 各场景的储能优化结果
|
||||
|
||||
**功能:**
|
||||
1. 遍历所有识别出的场景
|
||||
2. 提取每个场景的数据点
|
||||
3. 确保数据长度为24小时
|
||||
4. 调用储能优化算法
|
||||
5. 计算加权平均和推荐容量
|
||||
|
||||
##### `_extract_scenario_data()`
|
||||
提取指定场景的数据点。
|
||||
|
||||
**参数:**
|
||||
- `solar_output`: 光伏出力曲线
|
||||
- `wind_output`: 风电出力曲线
|
||||
- `load_demand`: 负荷曲线
|
||||
- `cluster_labels`: 场景标签
|
||||
- `scenario_id`: 场景编号
|
||||
|
||||
**返回:**
|
||||
- Tuple[List[float], List[float], List[float], int]: 场景数据和时间长度
|
||||
|
||||
##### `print_storage_optimization_summary()`
|
||||
打印储能配置优化汇总结果。
|
||||
|
||||
**参数:**
|
||||
- `optimization_results`: 储能优化结果
|
||||
|
||||
**输出:**
|
||||
- 格式化的场景对比表格
|
||||
- 加权平均和最大需求
|
||||
- 储能容量配置建议
|
||||
|
||||
## 使用示例
|
||||
|
||||
```python
|
||||
from multi_scenario import MultiScenarioAnalyzer
|
||||
from storage_optimization import SystemParameters
|
||||
|
||||
# 1. 生成测试数据
|
||||
solar_output = [0.0] * 6 + [5.0] * 12 + [0.0] * 6 # 光伏出力
|
||||
wind_output = [3.0] * 24 # 风电出力
|
||||
load_demand = [10.0] * 24 # 负荷曲线
|
||||
|
||||
# 2. 执行多场景聚类
|
||||
analyzer = MultiScenarioAnalyzer(n_clusters=3, random_state=42)
|
||||
result = analyzer.fit_predict(solar_output, wind_output, load_demand)
|
||||
|
||||
# 3. 储能配置优化
|
||||
system_params = SystemParameters(
|
||||
max_curtailment_wind=0.1,
|
||||
max_curtailment_solar=0.1,
|
||||
max_grid_ratio=0.2,
|
||||
storage_efficiency=0.9,
|
||||
discharge_rate=1.0,
|
||||
charge_rate=1.0
|
||||
)
|
||||
|
||||
optimization_results = analyzer.optimize_storage_for_scenarios(
|
||||
result, solar_output, wind_output, load_demand,
|
||||
system_params, safety_factor=1.2
|
||||
)
|
||||
|
||||
# 4. 查看结果
|
||||
analyzer.print_storage_optimization_summary(optimization_results)
|
||||
```
|
||||
|
||||
## 输出结果
|
||||
|
||||
### 优化结果结构
|
||||
```python
|
||||
{
|
||||
'scenario_id': {
|
||||
'scenario_name': '场景名称',
|
||||
'duration': 24, # 小时
|
||||
'required_storage': 5.0, # MWh
|
||||
'curtailment_wind': 0.05, # 弃风率
|
||||
'curtailment_solar': 0.03, # 弃光率
|
||||
'grid_ratio': 0.15, # 上网比例
|
||||
'frequency': 0.3, # 场景频率
|
||||
'energy_balance_check': True # 能量平衡检查
|
||||
},
|
||||
'summary': {
|
||||
'weighted_average_storage': 4.5, # MWh
|
||||
'maximum_storage_need': 8.0, # MWh
|
||||
'recommended_capacity': 9.6, # MWh
|
||||
'safety_factor': 1.2,
|
||||
'n_scenarios': 3
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 控制台输出示例
|
||||
```
|
||||
================================================================================
|
||||
场景储能配置优化汇总
|
||||
================================================================================
|
||||
场景 名称 频率 储能容量 弃风率 弃光率
|
||||
--------------------------------------------------------------------------------
|
||||
场景1 低负荷(低光伏+低风电+低负荷) 25.0% 1.00 MWh 0.000 0.000
|
||||
|
||||
场景2 高负荷(高光伏+低风电+高负荷) 45.0% 3.00 MWh 0.100 0.050
|
||||
|
||||
场景3 中负荷(中光伏+高风电+中负荷) 30.0% 2.00 MWh 0.020 0.000
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
加权平均储能需求 2.25 MWh
|
||||
最大储能需求 3.00 MWh
|
||||
推荐储能容量 3.60 MWh
|
||||
安全系数 1.20
|
||||
|
||||
配置建议:
|
||||
- 建议:储能容量配置相对合理
|
||||
================================================================================
|
||||
```
|
||||
|
||||
## 技术特点
|
||||
|
||||
### 1. 模块化设计
|
||||
- **职责分离**: `src/multi_scenario.py` 专门用于储能配置优化
|
||||
- **测试分离**: `test_multi_scenario.py` 只做基本聚类测试
|
||||
- **功能集成**: 聚类分析+储能优化的完整工作流
|
||||
|
||||
### 2. 智能处理逻辑
|
||||
- **数据扩展**: 自动处理短时场景数据
|
||||
- **长度适配**: 确保24小时数据用于优化
|
||||
- **频率加权**: 基于场景出现频率的储能需求计算
|
||||
|
||||
### 3. 鲁棒性设计
|
||||
- **异常处理**: 完善的错误捕获和提示
|
||||
- **边界检查**: 场景数据完整性验证
|
||||
- **参数验证**: 系统参数合理性检查
|
||||
|
||||
## 测试验证
|
||||
|
||||
### 基础功能测试
|
||||
- 多场景聚类分析
|
||||
- 储能配置优化计算
|
||||
- 结果汇总和展示
|
||||
|
||||
### 边界情况测试
|
||||
- 短时间数据处理
|
||||
- 极大储能需求场景
|
||||
- 不同聚类数效果对比
|
||||
|
||||
### 性能测试
|
||||
- 长时间序列数据处理
|
||||
- 多场景同时优化
|
||||
- 结果输出和存储
|
||||
|
||||
## 应用价值
|
||||
|
||||
### 1. 规划设计支持
|
||||
- **场景化设计**: 为不同运行模式提供定制化储能配置
|
||||
- **容量优化**: 基于实际运行模式的科学容量计算
|
||||
- **风险评估**: 考虑极端场景的安全系数设计
|
||||
|
||||
### 2. 运行策略制定
|
||||
- **模式识别**: 自动识别典型运行模式
|
||||
- **策略切换**: 基于场景的储能运行策略
|
||||
- **适应性**: 适应季节性和随机性变化
|
||||
|
||||
### 3. 投资决策依据
|
||||
- **成本优化**: 平衡储能投资与运行效果
|
||||
- **风险控制**: 基于极端场景的容量保障
|
||||
- **经济评估**: 为投资决策提供量化依据
|
||||
|
||||
## 后续扩展
|
||||
|
||||
### 1. 功能增强
|
||||
- **多时域优化**: 季节性和日内储能协调
|
||||
- **动态调度**: 基于实时场景的储能调度
|
||||
- **成本效益分析**: 集成经济性评估
|
||||
|
||||
### 2. 应用扩展
|
||||
- **多能系统**: 扩展到更多能源类型
|
||||
- **微电网**: 适配不同规模的微电网
|
||||
- **虚拟电厂**: 支持虚拟电厂储能配置
|
||||
|
||||
### 3. 算法优化
|
||||
- **智能算法**: 集成机器学习优化方法
|
||||
- **预测融合**: 结合天气预报的场景预测
|
||||
- **自适应**: 动态调整聚类和优化参数
|
||||
|
||||
## 总结
|
||||
|
||||
场景储能配置优化模块为多能互补系统提供了一个完整的储能容量设计工具。通过多场景聚类分析和储能优化的结合,实现了从数据到决策的全流程支持,具有很强的工程应用价值。
|
||||
Reference in New Issue
Block a user