4. 优化调度通用数学基础
储能优化调度本质上是一个“在有限时间内,把有限的充放电能力分配到最合适的时段”的数学决策问题。要把它写成计算机能求解的形式,必须先把物理语言翻译成数学语言:哪些量可以自由决定,哪些量必须满足物理与运行规则,最终要最大化或最小化什么。这一节围绕这组翻译规则展开,并说明不同数学形式在储能调度中的实际角色。
一、决策变量:调度方案的自由度在哪里
决策变量是优化模型真正“求解”的对象。储能调度中最核心的决策变量是每个时段的充电功率 P_ch[t] 与放电功率 P_dis[t],以及由它们累积得到的荷电状态 SOC[t]。若调度周期为 24 个时段、步长 1 小时,则 t = 1…24,共 48 个功率变量加 24 个状态变量。
除功率外,还有一类“开关型”决策变量,例如表示第 t 时段是否处于充电状态的 0-1 变量 u_ch[t],以及是否处于放电状态的 u_dis[t]。它们不表示功率大小,而表示“状态是否发生”,这正是混合整数规划出现的原因。若还要决定储能是否参与某类辅助服务、是否启用某一套充放电策略,同样用 0-1 变量表达。
需要强调的是,SOC 通常不作为独立自由变量,而是由功率通过能量平衡关系推导出来:
SOC[t] = SOC[t-1] + (η_ch · P_ch[t] · Δt - P_dis[t] · Δt / η_dis) / E_rated
其中 η_ch、η_dis 分别为充放电效率,E_rated 为额定容量。这样 SOC 就成为功率变量的函数,模型规模更小,物理含义也更清晰。
二、目标函数:调度到底在优化什么
目标函数决定调度结果的“性格”。储能调度常见目标有三类:一是经济性目标,如最小化购电成本或最大化套利收益;二是技术性目标,如最小化弃风弃光、最小化功率波动;三是复合目标,把多项指标加权求和。
以峰谷套利为例,目标函数可写为:
min Σ_t [ price[t] · (P_load[t] - P_dis[t] + P_ch[t]) · Δt ]
若同时考虑电池老化,可加入循环损耗项,例如按吞吐量折算的衰减成本 c_deg · (P_ch[t] + P_dis[t]) · Δt。此时目标函数从单纯电费最小化,变为“电费 + 寿命成本”的联合最小化,这也是储能寿命约束优化调度区别于普通经济调度的关键。
三、约束条件:把物理规律和运行规则写进模型
约束条件决定调度方案的可行性。储能调度中最基本的约束包括:
- 功率上下限:0 ≤ P_ch[t] ≤ P_ch_max,0 ≤ P_dis[t] ≤ P_dis_max;
- SOC 范围:SOC_min ≤ SOC[t] ≤ SOC_max,通常 SOC_min 取 0.1~0.2,SOC_max 取 0.9~0.95;
- 充放电互斥:P_ch[t] ≤ M · u_ch[t],P_dis[t] ≤ M · u_dis[t],u_ch[t] + u_dis[t] ≤ 1;
- 周期首末平衡:SOC[0] = SOC[T],避免调度周期结束后电量被“掏空”或“灌满”;
- 功率平衡:P_grid[t] = P_load[t] - P_dis[t] + P_ch[t],并满足并网点功率限制。
其中 M 是一个足够大的常数,用于把 0-1 变量与连续功率变量关联起来。若 M 取值过大,松弛会变松、求解变慢;取值过小,则可能误删可行解。工程上常取 M = P_ch_max 或 P_dis_max,而不是随意取一个很大的数。
四、三类数学形式在储能调度中的角色
线性规划(LP)适用于目标与约束均为线性的场景,例如固定电价下的功率分配,求解快、易获得全局最优。混合整数线性规划(MILP)在 LP 基础上引入 0-1 变量,能表达充放电互斥、启停、分段等逻辑,是储能调度最常用的形式。非线性规划(NLP)用于处理效率随功率变化、寿命衰减非线性等情形,但求解难度大、易陷入局部最优。凸优化则介于两者之间:若能把非线性关系转化为凸形式,就能兼顾表达能力和全局最优性。
图中把模型拆成三层:决策变量层给出自由度,目标函数层给出偏好,约束条件层给出边界。三者共同决定最终调度曲线。实际建模时,建议先写清决策变量,再写目标函数,最后逐条补约束,避免“边写边改”导致变量定义混乱。
五、从数学形式到可执行模型:一个最小示例
假设某储能额定容量 100 kWh,最大充放电功率 50 kW,η_ch = η_dis = 0.95,SOC 范围 0.1~0.9,分时电价在 0.3~1.2 元/kWh 之间波动。若采用 MILP 建模,决策变量为 24 个 P_ch、24 个 P_dis、24 个 u_ch、24 个 u_dis,共 96 个变量;目标函数为 24 项购电成本之和;约束包括上述功率、SOC、互斥和首末平衡。用开源求解器 CBC 或 GLPK 即可在秒级得到结果。
若把效率改为随功率变化的曲线 η(P),模型就从 MILP 变为 NLP。此时可先对效率曲线做分段线性化,把每段斜率作为新的连续变量,再引入 0-1 变量选择分段,从而把 NLP 近似为 MILP。这是工程上处理非线性储能特性的常用手段:用精度换求解稳定性。
六、建模检查清单
| 检查项 | 常见问题 | 建议做法 |
|---|---|---|
| 决策变量是否完整 | 漏掉 0-1 变量,导致充放电同时发生 | 逐条列出连续变量与整数变量 |
| 目标函数量纲是否统一 | 电费与寿命成本直接相加,量纲不一致 | 统一折算为元或统一为归一化权重 |
| M 取值是否合理 | M 过大导致松弛、求解慢 | 取对应功率上限,避免随意放大 |
| SOC 递推是否闭合 | 首末不平衡,周期结束后电量漂移 | 显式加入 SOC[0] = SOC[T] |
| 非线性是否处理 | 直接写非线性效率,求解器报错或陷入局部最优 | 分段线性化或凸化后再求解 |