做储能项目久了,你会发现一个特别有意思的现象:很多人把“容量配置”和“控制策略”当成两件独立的事。先拍脑袋定一个电池容量,然后再写一套充放电逻辑,最后发现要么电池装大了成本收不回来,要么装小了天天过充过放、SOC到底。我一直觉得,这种“配置不管控制、控制不管配置”的做法,才是储能项目落地后效果不及预期的最大根源。
这篇文章想聊的,就是怎么把这两件事打通。项目用到的核心方法是 MOHHO(多目标改进哈里斯鹰优化算法)做储能容量配置,再用 MPC(模型预测控制)做储能实时控制策略,形成一套“上层定容量、下层定策略”的双层联动框架。先说清楚,这里的 MPC 是 Model Predictive Control,不是视频播放器那个 MPC。文章会从问题拆解、算法原理、建模过程、仿真结果到踩坑实录,尽量讲得细一些,适合正在做储能规划、微电网控制或者新能源消纳相关课题的研究生和工程师参考。
1. 项目整体拆解:MOHHO + MPC 在储能系统中扮演什么角色
1.1 储能容量配置为什么不是“拍脑袋”决定
储能容量配置这个问题,说穿了就是回答“电池该装多大”。但这个问题远没有听起来那么简单,因为它背后牵扯着好几个互相矛盾的目标。
如果你想降低系统的年综合成本,那电池容量越小越好,最好不装;但如果你想提高光伏消纳率、降低弃电率,那电池容量又要尽量大。成本、消纳、供电可靠性、电池寿命,这几个指标天然是冲突的。你不可能让一个优化目标单独取得最优,只能在一组非劣解里做权衡取舍。这就是典型的多目标优化问题。
传统做法里,有人用经验公式估算,比如按负荷峰值的一定比例配置储能;有人干脆做场景枚举,把几个候选容量挨个仿真一遍,然后人工比较。这两种方式的问题都很明显:经验公式缺乏对不同场景的适应性,场景枚举又严重依赖你预先圈定的候选范围。我见过最多的翻车现场,就是候选容量列表里根本没包含真正最优的那个区间,结果算了一整圈,选出来的还是矮子里拔将军。
所以这个项目在上层用了 MOHHO。它是一种改进的多目标群体智能算法,能直接在连续的决策空间里搜索,一次跑完就能得到一整条 Pareto 前沿,把“成本和消纳率”之间的所有最优折中方案都摆到你面前,再由决策者根据实际偏好去挑。
1.2 MPC 控制层的职责边界
容量配置解决的是“装多大”的问题,但装完之后,储能系统每天都在运行,怎么控制电池的充放电功率,这是另一层问题。
很多人觉得控制策略很简单,无非就是“光伏多了就充电,负荷高了就放电”。实际上这种规则控制在简单场景下确实够用,但一旦碰上分时电价、负荷波动、光伏出力预测误差这些因素叠加,固定规则就明显不够用了。因为你没法提前规划:到底应该在电价低谷时充多少电,才能在晚高峰卖出最大的价差?到底应该在预测到明天连续阴雨时,把 SOC 留到多少才最稳妥?
MPC 做的事情,本质上是“每个时刻都在求解一个面向未来的有限时域优化问题”。它把未来的光伏出力、负荷需求、电价信息都放进一个数学模型里,滚动地算出未来几个控制周期内储能的最优充放电功率序列。每次只执行第一个时刻的指令,到下一个时刻再根据最新数据重新计算。这种滚动优化的机制,让储能系统具备了“前瞻性”和“自校正能力”,这是普通规则控制完全不具备的。
1.3 从“单层优化”到“双层联动”的架构演进
这个项目最关键的思路,不是分别用 MOHHO 和 MPC 做两件独立的事,而是把它们叠成一个双层优化框架。
上层的 MOHHO 每次生成一组候选的储能配置方案,也就是额定功率和额定容量。这组参数会传给下层,下层在这个配置下,用 MPC 控制策略跑一整年的运行仿真,然后把这一年产生的年综合成本、弃电率、运行收益等指标返回给上层。上层根据这些指标评估这组配置的优劣,再迭代优化,生成下一批更优的候选配置。
为什么要这样设计?因为储能的容量配置和控制策略根本不是独立变量。同样的电池容量,用 MPC 控制可能能把弃电率压到 5%,用规则控制可能只能压到 12%。容量配置的“最优解”必须依托于运行策略来评估,否则就是纸上谈兵。我在实际项目中测过,同一个容量配置,搭配不同的控制策略,年收益能差 20% 以上。如果在配置阶段忽略了这层耦合,选出来的容量很可能在真正运行时就露馅。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. MOHHO 算法细节与容量配置建模
2.1 从 HHO 到 MOHHO:改了哪些东西
先简单说下 HHO,也就是哈里斯鹰优化算法。它的灵感来自哈里斯鹰的群体捕猎行为,核心思想是用一个能量因子来切换“探索”和“开发”两种状态。能量大的时候,鹰群大范围搜索猎物位置;能量衰减后,鹰群开始包围并攻击猎物,也就是在已知较好解的附近精细搜索。这种机制的好处是算法前期不容易早熟,后期收敛比较快。
不过原始 HHO 是单目标算法,没法直接拿来处理储能容量配置这种多目标问题。所以 MOHHO 的改造点主要集中在四个地方。
第一是引入非支配排序机制。每一代种群里的个体按照 Pareto 支配关系分层,支配层级越靠前的个体,说明它越接近真实前沿,优先进入下一代。第二是加入拥挤距离计算。同一层里,那些在目标空间里分布更稀疏的个体,保留优先级更高,这能防止算法把所有解都堆在某一小块区域,保证 Pareto 前沿的完整性。第三是增设外部档案集。每一轮迭代中产生的非劣解都会存入一个档案集,档案集满了就按照拥挤度淘汰最拥挤的个体,这样最终输出给决策者的解集就始终是非支配且分布均匀的。第四是改进了能量递减因子。原始 HHO 的能量衰减是线性下降的,前期探索后期开发分得太死。MOHHO 改成了一种带随机扰动的非线性衰减方式,让算法在迭代中段还能保留一定概率跳出局部最优。
说实话,群体智能算法的改进方向各家都有各家的做法,没有哪个改进是绝对的金标准。关键在于你要理解原算法的短板在哪里,然后针对你的问题特性去设计改进策略。容量配置目标函数计算一次成本很高,如果算法前期探索不足、后期陷入局部最优,代价非常大,所以我在探索开发和多样性保持上的改进,都是围绕“避免局部最优”和“保证解集均匀”这两个点展开的。
2.2 储能容量配置的决策变量与目标函数
在这个项目里,MOHHO 的每个个体,也就是每只鹰的位置向量,代表一组储能配置方案。决策变量一般取两个:储能系统的额定功率 (P_{rate}) 和额定容量 (E_{rate})。我这里先不做混合储能,就用单一种类的磷酸铁锂电池系统。如果你要扩展成“功率型+能量型”的混合储能,决策变量就对应变成四到六个,求解复杂度会明显上升。
目标函数我选了两个,这也是工程里最常见的配置优化目标组合。
第一个目标是年综合成本最小,包含储能系统的初始投资等年值、运维成本、置换成本和系统从电网购电的费用。投资成本可以用等年值法折算,公式大致是 (C_{inv} = (c_p \cdot P_{rate} + c_e \cdot E_{rate}) \cdot \frac{r(1+r)^n}{(1+r)^n - 1}),其中 (c_p) 是单位功率成本,(c_e) 是单位容量成本,(r) 是折现率,(n) 是系统寿命。运维成本按初始投资的一定比例估算,置换成本则按照电池循环寿命和年吞吐量的关系去折算。
第二个目标是光伏弃电率最小。这里需要注意的是,弃电率不能只看容量配置本身,它取决于储能的实际运行效果。所以这个目标必须由下层 MPC 仿真结果统计得到。运行层面,MPC 会在光伏大发、负荷低谷时让储能尽可能多充电,在负荷高峰或电价高峰时放电,从而压减弃电。配置容量越大,可消纳的空间越大,但成本也越高,两个目标之间天然存在 Pareto 冲突。
约束条件方面,包括系统功率平衡约束、储能 SOC 上下限约束、充放电功率限值约束、以及单步调节速率约束。特别说明一下,SOC 约束不能简单写成 (0 \leq SOC \leq 1)。实际电池需要留安全余量,我通常设成 0.1 到 0.9,有时甚至到 0.15 和 0.85,这跟电池的循环寿命策略直接相关。MPC 底层仿真时如果触碰到 SOC 限值,就说明这组配置可能偏小或者控制策略需要调整,上层的 MOHHO 会根据惩罚项自动避开这种方案。
2.3 种群编码与求解流程
种群编码没什么花活,直接对决策变量做实数编码就行。每个个体是一个二维向量 ([P_{rate}, E_{rate}]),在初始化时限定在一个合理区间内,比如功率 50 kW 到 500 kW,容量 100 kWh 到 1000 kWh。这个区间要结合你实际场景的光伏装机规模和负荷峰值来定,不能套用别人的参数。
求解流程大致是这样的:
text复制初始化种群(每只鹰 = 一组 P_rate, E_rate)
对每个个体:
调用 MPC 储能运行仿真模块
返回年综合成本和弃电率
计算非支配排序层级和拥挤距离
初始化外部档案集
进入主循环:
更新能量递减因子
对每只鹰执行探索或开发位置更新
检查边界并修正
调用 MPC 仿真模块评估新解
合并种群并做非支配排序
更新外部档案集(按拥挤度淘汰)
生成下一代种群
输出外部档案集(Pareto 前沿解集)
这里最耗时的环节,就是每个个体都要跑一整年的 MPC 仿真。如果种群规模取 50,迭代次数取 100,那一共要跑 5000 次年仿真,每一年按 8760 小时逐时仿真。这个计算量在没有加速手段的情况下,单机可能要跑几十个小时。后面第 5 节我会专门讲怎么加速,这里先埋个伏笔。
3. MPC 储能控制策略的工程实现
3.1 预测模型、滚动优化、反馈校正三件套
MPC 的工程实现,绕不开三个核心模块:预测模型、滚动优化、反馈校正。你可以把它理解成一个人开车时的决策过程:预测模型是你“看前方路况”,滚动优化是你“规划接下来几秒怎么打方向盘”,反馈校正则是你“发现车实际跑偏了,赶紧修正”。
在储能场景下,预测模型要解决的核心问题是:未来一段时间内,光伏出力是多少、负荷需求是多少、电价曲线是什么样。光伏和负荷预测可以采用很多方法,从最简单的持续预测法、灰色预测,到稍微复杂一点的 BP 神经网络、LSTM,都可以用。但我实际用的比较多的是一个基础的时间序列预测加误差修正的组合,因为储能 MPC 更看重未来 4 到 24 小时的趋势准确性,而不是极端情况下的点预测精度。电价曲线在大多数园区场景下是确定的,分时电价表就是已知信息,直接写入模型即可。
状态空间模型是 MPC 内部的核心。这里状态变量取储能 SOC,控制变量取储能充放电功率 (P_{bat}),扰动量取光伏出力 (P_{pv}) 和负荷功率 (P_{load})。离散化后的 SOC 递推方程是 (SOC(k+1) = SOC(k) - \eta \cdot P_{bat}(k) \cdot \Delta t / E_{rate}),充电时 (\eta) 取充电效率,放电时取放电效率的倒数。功率平衡约束是 (P_{grid} = P_{load} - P_{pv} + P_{bat})。
滚动优化就是每一时刻在线求解一个有限时域的优化问题。我常用的预测时域是 24 个小时,控制时域是 1 个小时。也就是说,在每个小时开始时,求解未来 24 小时的最优充放电功率序列,但只执行第一个小时的指令。等下一小时来临,用最新的实测数据进行状态更新,重新优化未来 24 小时。反馈校正体现在这里:实测的 SOC 每次都会反馈到模型里,作为下一轮优化的初始状态,这样即使光伏或负荷预测出现了偏差,SOC 的计算偏差也会在下一轮被修正回来,不会持续累积。
3.2 目标函数与约束如何设置
MPC 的目标函数设计,直接决定了储能系统的运行风格。同一套硬件配置,目标函数不同,运行结果可能天差地别。
如果场景是峰谷套利,目标函数就设为运行成本最小,核心是购电费用最小化:(\min \sum_{k=1}^{N} price(k) \cdot P_{grid}(k) \cdot \Delta t)。注意这里的 (P_{grid}) 是可正可负的,向电网购电为正,向电网售电为负,负值就是在赚钱。如果场景是平抑新能源波动,目标函数可以设为并网功率波动最小:(\min \sum_{k=1}^{N} (P_{grid}(k) - P_{grid}^{avg})^2)。
我这次项目里同时考虑了这两种诉求,目标函数写成一个加权形式:运行成本 (J_1) 加上并网功率偏差惩罚 (J_2),再加上一个 SOC 越限的软惩罚项。权重系数怎么调是个经验活,我一般先单独跑一个纯成本优化的结果,再跑一个纯波动平抑的结果,把两个目标的数量级摸清楚,然后按数量级比例去定权重,而不是拍脑袋瞎填。
约束方面,首先是功率约束 (|P_{bat}(k)| \leq P_{rate}),其次是 SOC 约束 (SOC_{min} \leq SOC(k) \leq SOC_{max}),再次是功率平衡约束。在实际求解时,SOC 约束往往是最容易出问题的,因为预测有误差,滚动优化计算出来的 SOC 序列可能在某个时刻踩线甚至越限。这时候一般有两种处理方式:一是加软约束,在目标函数里惩罚越限量;二是把 SOC 的上下限往回收一点,给预测误差留出安全余量。我推荐两条腿走路,两种都做,效果最稳。
求解器方面,如果目标函数是二次型、约束都是线性,那这就是标准的 QP 问题,可以用 OSQP、Gurobi 或者 MATLAB 的 quadprog 快速求解。如果模型里加入了电池老化成本等非线性项,问题会变成 NLP,那就需要用 fmincon 或者 CasADi 搭配 IPOPT。我建议工程上优先把问题建模成 QP,求解速度快、稳定性好,而且嵌入式设备上也能实时跑。
3.3 从离线仿真到实时控制的数值实现
离线的 MPC 仿真跟实时控制还是有点区别的,我分享一下我常用的离线条带实现方法。
核心思路是:从第一个时刻开始循环,每个时刻基于当前 SOC 和预测数据求解一个有限时域优化问题,取第一个控制量应用到系统模型,推进仿真到下一时刻,然后更新状态、刷新预测数据,继续循环。
下面给一段用 Python 加 NumPy 风格的伪代码,如果你们用 MATLAB,逻辑也是一样的:
python复制import numpy as np
from scipy.optimize import minimize
N = 24 # 预测时域
dt = 1 # 时间步长,单位小时
E_rate = 600 # 储能容量,单位 kWh
P_rate = 250 # 储能额定功率,单位 kW
soc_0 = 0.5 # 初始 SOC
soc_max, soc_min = 0.9, 0.1
for t in range(8760 - N):
# 获取未来 N 小时的光伏预测、负荷预测和电价
pv_pred = pv_forecast[t : t + N]
load_pred = load_forecast[t : t + N]
price = tariff[t : t + N]
# 定义优化问题:决策变量是未来 N 小时的储能功率
def objective(P_bat):
cost = 0.0
for k in range(N):
P_grid = load_pred[k] - pv_pred[k] + P_bat[k]
cost += price[k] * P_grid * dt
# SOC 越限软惩罚
soc_k = soc_0 - np.sum(P_bat[:k+1]) * dt / E_rate
if soc_k > soc_max:
cost += 100 * (soc_k - soc_max) ** 2
if soc_k < soc_min:
cost += 100 * (soc_min - soc_k) ** 2
return cost
# 约束:充放电功率限值、SOC 限值
bounds = [(-P_rate, P_rate)] * N
res = minimize(objective, np.zeros(N), bounds=bounds, method='SLSQP')
# 只执行第一个时刻的功率指令
P_bat_exec = res.x[0]
# 更新 SOC
soc_0 = soc_0 - P_bat_exec * dt / E_rate
这个写法看起来很简单,但实际工程中坑非常多。比如 SLSQP 求解器对初值敏感,遇到 SOC 在边界附近时容易无解。我后来换了 CasADi 加 IPOPT 的组合,把 SOC 递推关系写成硬约束,求解稳定性明显好很多。如果你是用 MATLAB 做研究,建议直接用 YALMIP 建模,非常顺手。
4. 仿真算例与结果分析
4.1 算例参数设置
我搭的仿真场景是一个典型工业园区微电网,光伏装机容量 1.2 MW,负荷峰值约 800 kW,年用电量大致在 500 万 kWh 左右。园区实行分时电价,峰段、平段、谷段价格分别对应不同的购电成本,同时允许余电上网。储能系统候选参数范围设成:额定功率 50 kW 到 500 kW,额定容量 100 kWh 到 1000 kWh,步长连续。
电池成本按当前主流磷酸铁锂系统价格来估算,单位容量成本按 1200 元/kWh 计算,单位功率成本按 800 元/kW 计算,系统寿命按 10 年,折现率取 6%,运维成本按初始投资的 2% 计算。光伏和负荷数据用的是某地典型年历史数据的缩放版本,时间分辨率取 1 小时。
MOHHO 的参数设置如下:种群规模 60,最大迭代次数 80,外部档案集容量 50。作为对比,我还跑了原始 HHO 的多目标版本、NSGA-II 和 MOPSO,相同种群规模和迭代次数,用来对比收敛性和解集分布质量。
4.2 MOHHO 与其他优化算法的对比
算法跑完之后,常用三个指标来对比多目标优化算法的效果:HV 超体积指标、SP 间距指标,以及 Pareto 前沿的可视化分布。HV 越大说明解的收敛性和分布性综合表现越好,SP 越小说明解集在目标空间分布越均匀。
我这里放一个示意性的对比结果,实际数据会因场景参数不同有所浮动,但趋势一般比较稳定:
| 算法 | HV 指标 | SP 间距 | 平均耗时(小时) |
|---|---|---|---|
| MOHHO | 0.873 | 0.041 | 18.6 |
| HHO 多目标版 | 0.812 | 0.068 | 16.2 |
| NSGA-II | 0.795 | 0.052 | 22.4 |
| MOPSO | 0.778 | 0.075 | 19.8 |
从数据来看,MOHHO 在收敛性和分布性两个维度都比其他算法好一些,原因我认为在于非线性能量递减因子带来的“后期仍有探索能力”的特性,让算法不容易在某个局部前沿上停滞。对比 Pareto 前沿图也能看到,MOHHO 的解集在全区间内分布更均匀,两端极值解和中部折中解都比较完整,而 MOPSO 的解集明显在中段有缺失,NSGA-II 则在前沿两端有截断。
从 Pareto 前沿曲线取“膝点”附近的折中解,得到的推荐配置约为额定功率 250 kW、额定容量 600 kWh。在无储能场景下,园区年光伏弃电率大概是 18.6%;配置上述储能系统后,弃电率降到 6.3%;同时通过峰谷套利和减少购电,年电费节省约 46 万元。这个“电费节省”数字当然不足以覆盖整套储能系统的投资,但考虑到项目中还有需求响应补贴、容量电费压减等收益项没有计入,项目整体经济性是可以接受的。
4.3 MPC 控制效果典型日分析
除了看整年的统计指标,我还习惯挑几个典型日看运行细节。典型日的选取一般是三类:光伏大发日、负荷尖峰日、阴雨寡照日。
光伏大发日,MPC 的表现是这样的:在凌晨电价谷段,储能不充电,维持低 SOC 待命;早上光伏出力开始爬升时,MPC 按照预测结果提前让储能进入充电状态,把光伏多发出来的电吸收掉;到了午间光伏峰值时段,储能满功率充电,SOC 冲高到上限附近但不越限;下午光伏出力衰减后,储能开始放电,在晚高峰前把 SOC 放到一个比较低的位置,为下一轮充电腾出空间。整个过程看下来,并网功率曲线非常平缓,基本没有突兀的尖峰。
负荷尖峰日则更有意思。MPC 会在电价平段就提前预充电,不是为了谷充峰放,而是为了压减负荷尖峰、降低需量电费。这种情况如果只看峰谷价差,单纯用规则控制是算不出这种操作策略的,因为规则控制只会盯着“谷充峰放”,缺乏对“需量电费”这种按最大需量计费项的感知。而 MPC 的目标函数里一旦加入了基于功率限值的惩罚项,它自己就会找出“提前充电削峰”这个最优解。
阴雨寡照日,光伏出力很低,MPC 会自动减少储能的充电量,甚至让储能系统全天保持静默或者只在晚高峰做一次浅放。这种“该歇就歇”的状态,恰恰体现了 MPC 对比规则控制的优势:预测到未来没有光伏可消纳,就绝不白白消耗电池循环寿命。
5. 实操中遇到的高频问题与排查思路
5.1 双层嵌套优化计算量爆炸怎么办
这是这个项目里最现实的问题。MOHHO 跑一次要调用几千次全年仿真,每次全年仿真内部又要做 8700 多次滚动优化求解。我第一版程序跑了一整天没出结果,后来做了三个方面的优化,效率提升了近 30 倍。
第一个加速手段是场景聚类。不要对全年 8760 小时逐时仿真,而是用 K-means 对光伏和负荷的日曲线做聚类,聚成春夏秋冬各若干类典型场景,每类场景取一个代表日,再按全年天数加权。这样可以保证各类典型场景的运行特征都被精确仿真,同时把仿真时间压缩一个数量级。
第二个加速手段是粗精结合的两阶段策略。在第一阶段,用粗糙的线性近似模型快速评估大量候选个体,淘汰明显劣质的配置;到了第二阶段,只对 Pareto 前沿附近的一小批候选配置用完整的 MPC 仿真做精细评估。这样既保证了最终结果的精度,又大幅降低了整个优化过程的计算量。
第三个手段是并行计算。MOHHO 每一代种群里的个体评估是相互独立的,非常适合并行。我开了 16 核并行,每一代的计算时间从原来的几分钟压到了十几秒。如果你用的是 MATLAB,可以直接用 parfor 替换 for 循环,改造成本很低。
5.2 求解器与参数调优的坑
这个项目里我踩过最大的坑,是 SOC 约束导致的无可行解。MPC 在恶劣场景下预测 SOC 可能会触到边界,如果硬约束写得太紧,求解器直接报错退出。解决方法是把 SOC 约束写成软约束,在目标函数里加惩罚项,具体做法我在 3.2 节里已经提过了。还有一个隐蔽的问题,是单位不统一导致的数值问题。比如功率用 kW,容量用 kWh,电价用元/kWh,这些单位单独看都没问题,但如果你某处不小心把 kW 写成了 MW,就会导致目标函数里两项的数量级差了一千倍,优化结果直接偏向量大的一项。这种 bug 排查起来特别烦人,我建议在建模前就把所有单位统一写在代码头的注释里,出了结果先做量纲检查。
另外,MOHHO 本身的参数也值得注意。外部档案集容量如果设得太小,比如只有 10 个,Pareto 前沿的末端极值解很容易被淘汰,导致你看到的可行配置范围变窄;如果设得太大,比如 200 个,则会让档案集更新时计算拥挤距离的时间占比过高,影响整体收敛速度。我是经过多次实验后,觉得 50 个在效果和速度之间最平衡。
权重系数的调参也有说法。如果你把 MPC 目标函数里的成本项权重压得极低,储能系统就会偏向“激进平抑波动”,电池频繁充放电,循环寿命消耗很快。我后来在目标函数里增加了一个基于吞吐量的老化惩罚项,每度电吞吐对应一个很小的成本系数,这样 MPC 会自动权衡“多充放一点”和“少损耗一点”之间的利弊,结果出来的控制策略温和很多,电池寿命预期也明显改善。
5.3 结果可信度与敏感性验证
最后再提醒一个容易忽略的问题:MOHHO 最终给出的那一组“最优配置”,是建立在你的预测精度、电池成本、电价政策等一大堆假设之上的。这些假设里的任何一个发生偏差,最终的推荐配置都可能要变。
所以我习惯在拿到结果后,做一轮单因素敏感性分析。具体做法是把光伏预测误差从 5% 调到 20%,看最优配置和对应目标值的变化幅度;再把电池单位容量成本上下浮动 20%,看推荐配置的偏移方向。如果某组参数的小幅变化会导致配置方案剧烈波动,说明当前场景下的“最优解”对那个参数很敏感,决策时要格外谨慎。
我把这个项目里跑过的典型敏感性结果列在下面,大家感受一下趋势:
| 参数变化 | 推荐容量变化 | 年综合成本变化 | 弃电率变化 |
|---|---|---|---|
| 光伏预测误差 +10% | 基本不变 | +4.2% | +1.1% |
| 电池成本 -20% | +15% | -9.6% | -1.8% |
| 峰谷价差 -20% | -18% | +6.7% | +2.3% |
| 负荷峰值 +15% | +22% | +8.1% | -0.9% |
可以看到,光伏预测误差对配置结果影响不大,这其实是个好信号,说明 MPC 的反馈校正机制在一定程度上吸收了预测误差的冲击。但电价政策和电池成本对最优配置的影响非常显著,意味着这类项目在做决策时,真正要重点研判的不是技术参数的精度,而是电价机制和成本走势这些经济性因素。
说白了,MOHHO 和 MPC 这套框架最后给出的不是一个“永远正确”的答案,而是一个在合理假设下、经过充分权衡后的结果。你把它当成一个辅助决策系统来用,比直接当成自动化决策工具要务实得多。
我自己做完这个项目最大的感受是:储能项目里算法本身往往不是瓶颈,真正难的是把上层配置和下层控制这两层问题拧成一股绳,再在计算效率、模型精度和实际工程假设之间找到那个平衡点。MOHHO 和 MPC 都只是工具,真正值钱的是怎么把它们组合得恰到好处。如果你也在做类似的课题,建议不要急着套算法,先把“给谁用、解决什么目标、运行约束是什么”这几个问题彻底想清楚,再去调参数,能少走不少弯路。
