当前位置: 首页 > news >正文

储能电站收益优化

一、项目一开始:我以为这是一个“预测问题”

刚开始做这个项目时,我的想法其实很简单:只要把未来电价预测准,收益自然就会高

初版只用了最基础的时间特征:hour、dayofweek、month、minute

然后直接做:最低连续8个点充电 最高连续8个点放电

后来才逐渐意识到,储能套利真正关心的是:电价的最高点最低点

也就是说:

排序比数值本身更重要。


二、特征工程:大量尝试之后,真正留下来的其实很少

后来我开始重点研究:历史电价到底有没有规律

于是新增了:add_lag_features()

并开始尝试:lag_1、lag_4、lag_8、lag_96、lag_192

一开始我觉得lag_1lag_4加入后效果很好

因为训练误差确实下降了。

但后来发现:

这些短周期 lag 很容易:

  • 学习局部噪声

  • 跟着尖峰跑

  • 在测试集过拟合

于是后来很多版本里lag_1lag_4其实都被删掉了。

真正稳定有效的反而是:lag_96lag_192

也就是:前两天同一时间的价格。

这个特征的重要性非常稳定。

max_depth = 4max_depth = 6情况下,它的重要性都不低。

后来我逐渐意识到:电价真正最强的规律其实是“日周期”。

除了 lag,我还尝试过很多“理论上应该有效”的特征。

比如:

rolling_mean_96

我当时的想法是:预测曲线太抖了,能不能平滑一下?

于是加入了rolling_mean_96,发现收益反而下降。

因为 rolling 本质上会削弱尖峰,但储能套利最依赖的恰恰是峰值价差。

后来我又尝试了周期编码:sin(hour) cos(hour)

但最后效果依然不明显,甚至有时候会轻微拉低收益。

后来猜测:lag_96lag_192

已经把周期信息学得差不多了。

再额外加入的sin/cos反而增加了噪声。

后面我也尝试了气象特征:temperature、wind_speed、humidity、pressure

并做了时间对齐、区域天气聚合等操作。

这些特征并不是完全没用,但相比与lag_96,它们的重要性其实低很多。

整个过程中我最大的感受是:

很多“看起来高级”的特征,最后都没有最简单的 lag_96 有效。(这里可能是我的气象特征没有正确使用)


三、模型与参数:很多优化其实是在“减少过拟合”

后来我发现模型最大的风险并不是预测不够复杂,而是太容易学习局部噪声,尤其是当树太深的时候。

于是后面我开始频繁调整max_depth、learning_rate、n_estimators来降低过拟合

因为深树特别容易:

  • 记忆尖峰

  • 记忆异常点

  • 学习局部波动

后面我也尝试使用HistGradientBoostingRegressor模型

希望:

  • 更稳定

  • 更快

  • 泛化更好


四、策略部分:这是我后期思考最多的地方

做到后面时,我逐渐发现:

当前最大的问题并不是收益太低,而是预测曲线里有很多“错误尖峰”。

这些错误尖峰会导致模型误以为这里是最高点然后错误放电。

于是后面我开始不断尝试:

  • 价格差阈值

  • 更低点充电

  • 更高点放电

  • 先平滑再决策

  • 过滤异常尖峰

包括后期重新加回lag_4lag_8来降低RMSE,希望减少预测噪声。

但后来我又发现:

RMSE 下降之后,收益也总是随着下降。

所以很多修改在最后其实又删掉了。

整个过程中我最大的感受是:

储能问题本质上不是“预测问题”,而是“带预测误差的决策问题”。

真正重要的不是预测有多准,而是你的策略能不能容忍预测错误。

这也是整个项目里我学到最多的一点。

http://www.jsqmd.com/news/780036/

相关文章:

  • 成都 H 型钢主流钢厂对比分析 马钢 / 莱钢 / 津西 / 包钢 / 山西晋南哪家强|四川盛世钢联采购参考 - 四川盛世钢联营销中心
  • Cursor AI编程助手深度思考规则:从思维链到工程化实践
  • Windows软件自启速度优化BAT脚本
  • 从 SEO 到 GEO,姚金刚老师开源了他的中文 AI 提示词库,三天在 Github 上狂揽 1300+ Stars!
  • AArch64虚拟内存系统与两级地址转换机制详解
  • 终极指南:3步快速搭建微信网页版免费使用方案
  • 嵌入式软件工程师如何快速熟悉陌生项目的代码
  • 基于Whisper语音识别的reCAPTCHA v2音频挑战本地破解方案
  • 2025最权威的六大降AI率方案实际效果
  • 亚马逊多账号运营选择什么指纹浏览器?说说我的使用体验!
  • 从零构建个人配置管理系统:基于符号链接与Git的dotfiles实践
  • AI Agent技能包:无缝桥接aelf区块链DAO治理与智能工作流
  • Git Worktree Manager:多分支并行开发的高效解决方案
  • Flutter for OpenHarmony 跨平台开发:喝水提醒功能实战指南
  • 8086最小系统串口发送测试
  • 学术数据采集利器crab-scholar:从爬虫原理到科研实战应用
  • 深度强化学习在《我的世界》AI智能体开发中的实战应用
  • RocketAI:开箱即用的AI服务平台部署与商业化运营指南
  • Flutter for OpenHarmony 效率工具开发实战:我实现的番茄钟与倒计时功能总结
  • 走上管理岗进步最快的方式,没有之一
  • 基于RAG的智能文档问答系统:从原理到部署实践
  • 脉搏血氧仪原理与ADuC7024微控制器应用解析
  • Need项目:将项目环境配置从文档升级为可执行规范
  • Tbeas青和生日邮件自动祝福发送系统 一键配置情侣/人事必备
  • 机器人交互式抓取:基于强化学习的Peekaboo技能实现与调优
  • 从BBC Simorgh看现代前端架构:同构渲染、性能优化与工程化实践
  • Python 爬虫进阶技巧:iframe 嵌套页面数据抓取方案
  • rocky linux 9.7
  • 飞机结构健康监测:基于热电效应的无线传感器自供电技术解析
  • llama_ros:在ROS 2中集成高效大语言与视觉语言模型