储能EMS算法基础:常用算法分类、算法评价指标、算法开发流程
各位好,我是老张。在储能行业摸爬滚打了十来年,今天咱们来聊聊EMS算法的基本功。
很多人一上来就追着问:「哪个算法最牛?」其实吧,算法没有绝对的好坏,关键看你怎么用、用在哪儿。就像工具箱里的扳手和螺丝刀,各有各的用武之地。
这一章,我带你理清三个核心问题:算法有哪些类型?怎么评价它好不好?开发一套算法要走哪些路?
一、常用算法分类
我个人习惯把EMS算法分成三大类。你想想看,一个储能系统要做什么?无非是预测未来、优化当下、控制执行。正好对应三类算法。
1. 预测类算法
说白了,就是猜明天会发生什么。比如光伏出力预测、负荷预测、电价预测。
- 时间序列法:ARIMA、指数平滑。适合数据规律明显的场景。
- 机器学习法:LSTM、XGBoost。数据量大、非线性关系强时效果好。
- 物理模型法:基于气象数据的辐照度模型。精度高但计算量大。
2. 优化类算法
这是EMS的核心。给定目标(比如收益最大、损耗最小),找到最优的充放电策略。
- 线性规划/混合整数规划:最经典的方法。我用它做过上百个项目的调度策略。优点是稳定、可解释。
- 动态规划:适合多阶段决策问题。比如一天24小时,每个小时怎么充放电。
- 启发式算法:遗传算法、粒子群算法。当问题太复杂、传统方法算不动时,就用它们。
3. 控制类算法
优化算完了,得让设备听话。控制算法负责把指令变成实际的功率输出。
- PID控制:简单可靠。我见过很多老项目,一个PID跑了十年没出过问题。
- 模型预测控制(MPC):现在的主流。能处理约束,还能滚动优化。
- 模糊控制:适合规则不明确的场景。比如电池SOC在50%左右时,充放电策略可以模糊处理。
二、算法评价指标
算法好不好,不能光靠感觉。我总结了四个核心指标,你在项目里一定要盯住。
| 指标 | 含义 | 我的建议值 |
|---|---|---|
| 计算时间 | 算法跑一次需要多久 | 实时控制 < 100ms,调度优化 < 10s |
| 收敛性 | 能不能稳定找到最优解 | 100次运行,95次以上结果一致 |
| 鲁棒性 | 数据有噪声时,结果是否稳定 | 输入波动±10%,输出波动 < 5% |
| 可解释性 | 运维人员能不能看懂 | 至少能说清楚「为什么这么充」 |
三、算法开发流程
这部分是我最想跟你分享的。很多新手上来就写代码,结果后面改得痛不欲生。我建议你按这个流程来。
第一步:需求分析
搞清楚你要解决什么问题。是削峰填谷?还是调频?还是需量管理?目标不同,算法完全不同。
第二步:数据准备
没有数据,算法就是空中楼阁。你需要历史负荷数据、光伏数据、电价数据、电池参数。我习惯先花一周时间把数据清洗干净,后面能省一半时间。
第三步:算法选型
根据需求和数据特点,选择合适的算法。别盲目追新。线性规划能解决的问题,就别上深度学习。
第四步:原型开发
用Python快速搭一个原型。先跑通,再优化。我一般用Jupyter Notebook,边写边看结果。
第五步:仿真验证
用历史数据回测。看看算法在过去的场景下表现如何。这一步能发现很多问题。
第六步:代码优化与部署
把Python代码转成C++或部署到边缘设备。注意内存和算力限制。
第七步:持续迭代
算法上线后,不是结束。要持续监控性能,根据实际运行数据做调整。
知识体系总览
下面这张图,是我自己整理的EMS算法知识框架。你可以把它当作学习地图。
这张图把咱们刚才讲的内容串起来了。左边是预测,中间是优化,右边是控制。下面是指标和流程。你每次做项目前,对着这张图捋一遍,基本不会漏东西。
好了,这一章就到这里。记住:算法不是越复杂越好,适合的才是最好的。下一章咱们深入聊聊预测类算法的具体实现。