Files
multi_energy_complementarity/docs/GRID_FEED_IN_RATIO_CALCULATION.md

121 lines
3.6 KiB
Markdown
Raw Permalink Normal View History

2025-12-27 17:57:38 +08:00
# 上网电量比例计算方法说明
## 计算公式
**上网电量比例** = 总上网电量 / 总发电量
其中:
- **总上网电量** = sum(grid_feed_in) - 只计算正值(上网电量)
- **总发电量** = 火电发电量 + 实际风电发电量 + 实际光伏发电量
## 详细计算过程
### 1. 基础数据获取
在 [`check_constraints()`](src/storage_optimization.py:350) 函数中:
```python
# 计算总量
total_wind_potential = sum(wind_output) # 风电总潜力
total_solar_potential = sum(solar_output) # 光伏总潜力
total_thermal = sum(thermal_output) # 火电总量
total_curtailed_wind = sum(balance_result['curtailed_wind']) # 弃风总量
total_curtailed_solar = sum(balance_result['curtailed_solar']) # 弃光总量
total_grid_feed_in = sum(balance_result['grid_feed_in']) # 电网交互总量
```
### 2. 计算实际发电量
```python
# 实际发电量(考虑弃风弃光)
actual_wind_generation = total_wind_potential - total_curtailed_wind
actual_solar_generation = total_solar_potential - total_curtailed_solar
total_generation = total_thermal + actual_wind_generation + actual_solar_generation
```
### 3. 计算上网电量比例
```python
actual_grid_feed_in_ratio = total_grid_feed_in / total_generation if total_generation > 0 else 0
```
## 数据来源说明
### grid_feed_in 数据含义
在 [`calculate_energy_balance()`](src/storage_optimization.py:107) 函数中:
- **正值** = 向电网输送的电量(上网)
- **负值** = 从电网购买的电量(购电)
```python
# 上网情况
grid_feed_in[hour] = grid_feed_allowed # 正值
# 购电情况
grid_feed_in[hour] = -remaining_deficit # 负值
```
### 分母说明
**总发电量**包括:
1. **火电发电量** - 全部计入(不考虑弃火电)
2. **实际风电发电量** = 风电总潜力 - 弃风量
3. **实际光伏发电量** = 光伏总潜力 - 弃光量
## 计算示例
假设有如下数据:
- 火电总量120 MWh (24小时 × 5MW)
- 风电总量72 MWh (24小时 × 平均3MW)
- 光伏总量48 MWh (24小时 × 平均2MW)
- 弃风量7.2 MWh
- 弃光量4.8 MWh
- 上网电量10 MWh
计算过程:
```python
# 1. 实际发电量
actual_wind = 72 - 7.2 = 64.8 MWh
actual_solar = 48 - 4.8 = 43.2 MWh
total_generation = 120 + 64.8 + 43.2 = 228 MWh
# 2. 上网电量比例
grid_feed_in_ratio = 10 / 228 = 0.0438 ≈ 4.38%
```
## 注意事项
### 1. 购电情况的处理
- 如果系统净购电total_grid_feed_in < 0上网电量比例仍按公式计算
- 负的上网电量会降低比例值
### 2. 零分母处理
- 如果总发电量为0比例设为0避免除零错误
### 3. 约束检查
在优化算法中,上网电量比例用于约束检查:
```python
grid_constraint_satisfied = constraint_results['total_grid_feed_in_ratio'] <= params.max_grid_ratio
```
## 输出位置
上网电量比例在以下位置输出:
1. **控制台输出**[`main.py:749`](main.py:749)
```python
print(f"实际上网电量比例: {result['total_grid_feed_in_ratio']:.3f}")
```
2. **Excel统计结果**[`main.py:393`](main.py:393)
```python
f"{result['total_grid_feed_in_ratio']:.3f}",
```
3. **可视化显示**[`src/advanced_visualization.py:158`](src/advanced_visualization.py:158)
```python
上网电量比例: {result['total_grid_feed_in_ratio']:.1%}
```
## 总结
上网电量比例反映的是系统向电网输送电量占总发电量的比例,是评估系统电网交互特性的重要指标。该比例越低,说明系统越倾向于本地消纳新能源;比例越高,说明系统向电网输出的电量越多。