4. 收益模型V1.0:单日充放策略建模

好,咱们今天来点真家伙。

前面几章我们把储能系统的硬件、电价机制、政策背景都捋了一遍。说实话,那些都是铺垫。真正让储能系统产生价值的,就是今天要讲的——充放策略

我个人习惯,做任何模型之前,先画一张图。把脑子里那团乱麻理清楚,再动手写代码。不然写着写着就迷路了。

核心逻辑一句话:在电价低的时候充电,电价高的时候放电,赚取差价。

听起来简单?嗯,但实际落地时坑不少。咱们一步步来。

4.1 单日充放策略的核心逻辑

先看一个典型的工业用户日负荷曲线。早上8点到12点、下午2点到6点,这两个时段电价最高。凌晨0点到8点,电价最低。

你想想看,如果我们在凌晨把电池充满,然后在上午高峰时段放掉,是不是就赚了一笔?下午再来一轮,一天就能做两次套利。

这就是所谓的“两充两放”策略。当然,具体能不能实现,还得看电池容量、功率限制、以及你的负荷曲线。

我给大家总结一下单日充放策略的四个关键步骤:

  1. 识别电价峰谷时段 — 找到一天中电价最高和最低的时间窗口
  2. 确定充放电功率 — 根据电池PCS(储能变流器)的额定功率来定
  3. 计算充放电量 — 考虑电池容量限制,不能过充过放
  4. 核算收益 — 放电收入减去充电成本,就是毛利润

避坑指南:我曾经在一个项目里,光看电价曲线就定了策略,结果忽略了变压器的容量限制。充放电功率太大,直接把变压器干跳闸了。嗯,从那以后我每次建模都会加上设备约束检查。

4.2 理想收益计算模型

什么叫“理想收益”?说白了,就是不考虑任何损耗的情况下的收益。

现实中,电池有充放电效率(一般在90%-95%之间),PCS有转换损耗,线缆有线路损耗。但咱们做V1.0版本,先把这些复杂因素放一边,只看最纯粹的价差收益。

理想收益的计算公式其实很简单:

单次充放收益 = 放电量 × 高峰电价 - 充电量 × 低谷电价

如果一天做两次充放,那就是:

日收益 = 上午放电收益 + 下午放电收益 - 两次充电成本

举个例子:

参数 数值
电池容量 1 MWh
充放电功率 500 kW
低谷电价(0:00-8:00) 0.25 元/kWh
高峰电价(10:00-12:00) 1.05 元/kWh
高峰电价(16:00-18:00) 0.95 元/kWh

计算一下:

  • 凌晨充电:500 kW × 2小时 = 1000 kWh,成本 = 1000 × 0.25 = 250元
  • 上午放电:500 kW × 2小时 = 1000 kWh,收入 = 1000 × 1.05 = 1050元
  • 下午放电:500 kW × 2小时 = 1000 kWh,收入 = 1000 × 0.95 = 950元
  • 日收益 = 1050 + 950 - 250 = 1750元

注意:这里假设电池在上午已经放空了,下午需要再充电。但下午的电价可能不是最低的,所以实际策略中需要权衡。这个我们后面会讲到。

4.3 代码实现

好了,理论讲完了,咱们上代码。

我习惯用Python来做这类建模,因为它的数据处理库太强了。pandas处理时间序列数据,matplotlib画图,简直绝配。

先看核心代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 定义参数
battery_capacity = 1000  # kWh
charge_power = 500       # kW
discharge_power = 500    # kW

# 电价数据(元/kWh)
price_data = {
    '00:00-08:00': 0.25,  # 低谷
    '08:00-10:00': 0.65,  # 平段
    '10:00-12:00': 1.05,  # 高峰
    '12:00-14:00': 0.65,  # 平段
    '14:00-16:00': 0.65,  # 平段
    '16:00-18:00': 0.95,  # 高峰
    '18:00-24:00': 0.65   # 平段
}

# 充放策略
strategy = {
    'charge_1': {'start': '00:00', 'end': '02:00', 'energy': 1000},
    'discharge_1': {'start': '10:00', 'end': '12:00', 'energy': 1000},
    'discharge_2': {'start': '16:00', 'end': '18:00', 'energy': 1000}
}

# 计算收益
charge_cost = 1000 * 0.25  # 250元
discharge_revenue_1 = 1000 * 1.05  # 1050元
discharge_revenue_2 = 1000 * 0.95  # 950元

daily_profit = discharge_revenue_1 + discharge_revenue_2 - charge_cost
print(f"单日理想收益:{daily_profit:.2f} 元")

运行结果:

单日理想收益:1750.00 元

小技巧:实际项目中,我不会把电价写死在代码里。我会从电网API实时获取,或者读一个CSV文件。这样模型才能适应不同地区、不同季节的电价变化。

4.4 结果可视化

光看数字不够直观。咱们画个图,把一天的充放过程、电价变化、电池SOC(荷电状态)都展示出来。

# 创建时间轴(每15分钟一个点)
time_slots = pd.date_range('00:00', '23:45', freq='15min')
soc = np.zeros(len(time_slots))
price = np.zeros(len(time_slots))

# 模拟充放过程
for i, t in enumerate(time_slots):
    hour = t.hour
    minute = t.minute
    
    # 电价赋值
    if 0 <= hour < 8:
        price[i] = 0.25
    elif 8 <= hour < 10:
        price[i] = 0.65
    elif 10 <= hour < 12:
        price[i] = 1.05
    elif 12 <= hour < 16:
        price[i] = 0.65
    elif 16 <= hour < 18:
        price[i] = 0.95
    else:
        price[i] = 0.65
    
    # SOC模拟
    if 0 <= hour < 2:
        soc[i] = (hour * 60 + minute) / 120 * 100  # 充电到100%
    elif 10 <= hour < 12:
        soc[i] = 100 - ((hour - 10) * 60 + minute) / 120 * 100  # 放电到0%
    elif 16 <= hour < 18:
        soc[i] = 100 - ((hour - 16) * 60 + minute) / 120 * 100  # 放电到0%
    else:
        soc[i] = soc[i-1] if i > 0 else 0

# 绘制双轴图
fig, ax1 = plt.subplots(figsize=(12, 6))

ax1.plot(time_slots, price, 'b-', label='电价', linewidth=2)
ax1.set_xlabel('时间')
ax1.set_ylabel('电价 (元/kWh)', color='b')
ax1.tick_params(axis='y', labelcolor='b')

ax2 = ax1.twinx()
ax2.plot(time_slots, soc, 'r-', label='SOC', linewidth=2)
ax2.set_ylabel('SOC (%)', color='r')
ax2.tick_params(axis='y', labelcolor='r')

plt.title('单日充放策略:电价与SOC变化')
fig.tight_layout()
plt.show()

这张图能很清楚地看到:

  • 凌晨电价最低时,SOC从0%升到100%
  • 上午电价最高时,SOC从100%降到0%
  • 下午电价次高时,SOC再次从100%降到0%

嗯,这就是典型的“两充两放”策略的可视化表现。

4.5 知识体系总览

最后,我用一张SVG图把本章的知识结构串起来。这样你复习的时候,一眼就能看到全貌。

第4章:收益模型V1.0 知识体系 单日充放策略建模 充放策略核心逻辑 理想收益计算模型 Python代码实现 识别电价峰谷时段 确定充放电功率 计算充放电量 核算收益 不考虑损耗的理想状态 收益 = 放电收入 - 充电成本 两充两放策略示例 参数定义(容量/功率/电价) 充放策略定义 收益计算与输出 结果可视化(电价+SOC) V1.0:理想收益模型,为后续优化打基础

重要提醒:这个V1.0版本是理想模型,实际项目中的收益会比这个低15%-25%。原因包括:电池充放电效率(约92%)、PCS损耗(约3%)、电池老化导致的容量衰减等。这些我们会在后面的章节中逐步加入。

但别小看这个理想模型。它是所有复杂模型的起点。没有这个基准,你后面加再多优化参数,都不知道自己优化了多少。

好了,今天的内容就到这。代码我已经上传到课程配套的GitHub仓库了,文件名是chapter4_ideal_profit_model.py。建议你下载下来,把电价数据换成你自己所在地区的,跑一遍看看收益是多少。

下一章,我们会在这个模型基础上,加入充放电效率、电池SOC约束等实际因素。到时候你会发现,理想很丰满,现实...嗯,也挺有意思的。


公众号:蓝海资料掘金营,微信deep3321