Alternate Text

Solar+Battery AI 调度系统 开源项目教程

能源

本系统是一套面向分布式光伏 + 储能电池的智能能量调度平台,采集光伏逆变器、储能 BMS、电网电表、气象传感器数据,通过 AI 时序预测模型(LSTM / 轻量 GBM)预测未来光伏发电量、用户用电负荷;基于优化算法自动制定电池充放电策略,实现自发自用、削峰填谷、峰谷套利,降低用电成本,保护电池寿命。 适用场景:工商业光储电站、户用光伏储能系统; 核心目标:最大化光伏自用率,减少电网购电,约束电池充放电倍率,避免过充过放。

2026-09-09 26 T13611764069

一、系统概述

系统名称:Solar+Battery AI 光伏储能 AI 调度系统 简介:本系统是一套面向分布式光伏 + 储能电池的智能能量调度平台,采集光伏逆变器、储能 BMS、电网电表、气象传感器数据,通过 AI 时序预测模型(LSTM / 轻量 GBM)预测未来光伏发电量、用户用电负荷;基于优化算法自动制定电池充放电策略,实现自发自用、削峰填谷、峰谷套利,降低用电成本,保护电池寿命。 适用场景:工商业光储电站、户用光伏储能系统; 核心目标:最大化光伏自用率,减少电网购电,约束电池充放电倍率,避免过充过放。

技术栈参考:Python + FastAPI 后端,Vue 前端,InfluxDB 时序数据库,AI 预测模型,MQTT 接入设备(可对接 EMQX+Node-RED 做数据采集)

二、系统主要功能

1. 数据采集模块

· 接入光伏逆变器:实时采集光伏有功功率、发电量、直流电压电流

· 接入储能 BMS:电池 SOC、SOH、单体电压、温度、充放电功率、故障告警

· 电表采集:电网购电 / 售电功率、总有功负荷

· 气象数据:辐照度、环境温度,用于 AI 预测输入

· 接入方式:MQTT 协议,兼容 EMQX Broker;可通过 Node-RED 做协议转换与数据预处理

2. AI 预测模块(核心)

· 光伏发电量 24h 短期预测

· 用户用电负荷 24h 预测

· 模型:LSTM 神经网络 / LightGBM;自动更新模型、误差评估

· 可视化:历史真实曲线 + AI 预测曲线对比,预测误差统计

3. AI 智能调度优化(核心业务)

以经济收益 + 电池安全为多目标优化:

· 自动生成 24 小时电池最优充放电时序计划

· 策略约束:SOC 上下限、最大充放电功率、电池温度保护

· 支持多种调度模式切换:

1. 经济套利模式:峰价放电、谷价充电

2. 自发自用优先模式:光伏优先供给本地负荷,多余电量存电池

3. 保供模式:电网停电时孤岛备用(离网备用策略)

· 实时修正:当实际光伏 / 负荷偏离预测值,AI 动态重新优化调度方案

4. 监控可视化 Dashboard

· 总览看板:实时功率流(光伏→负荷→电池→电网)、当日发电量 / 用电量 / 储能量、节约电费统计

· 电池监控页:SOC/SOH、温度曲线、充放电历史

· 历史报表:日 / 月发电量、电池充放电统计、节能收益报表导出

· 告警模块:电池高温、过充、通讯断线、逆变器故障弹窗 + 日志记录

5. 系统配置模块

· 基础参数:电池容量、最大充放电功率、SOC 保护上下限

· 电价配置:峰 / 平 / 谷时段及对应电价

· 设备管理:逆变器、BMS、电表接入配置

· 用户权限管理:管理员、查看员角色

三、系统优点 & 缺点

✅ 优点

1. AI 预测 + 优化调度,相比固定时序策略收益更高,能适配天气、用电波动;

2. 多目标优化,兼顾经济效益 + 电池安全,减少电池滥用,延长储能寿命;

3. 采用 MQTT 物联网协议,对接灵活,可搭配 EMQX、Node-RED 快速接入不同品牌逆变器、BMS;

4. 时序数据库存储长时间能量数据,曲线可视化、报表导出,方便运维与项目复盘;

5. Web B/S 架构,浏览器直接访问,无需安装客户端,支持多终端查看;

6. 支持模式切换,户用 / 工商业场景均可适配。

❌ 缺点

1. AI 预测精度依赖历史数据,新站点缺少历史数据时预测误差偏大,需要一段时间数据采集训练模型;

2. 对传感器、逆变器通讯稳定性要求高,设备断连会影响调度结果;

3. 优化算法计算有硬件开销,低配服务器运行时,长时间滚动优化会有延迟;

4. 依赖气象数据,极端天气(暴雨、连续阴天)下预测误差上升;

5. 不兼容所有老旧逆变器,部分老设备无 MQTT 接口,需要额外 Node-RED 做协议转换;

6. 属于软件调度系统,不能直接控制硬件,需要硬件侧支持远程充放电指令下发。

四、保姆级部署教程

环境:Ubuntu 20.04 / 22.04,推荐配置:4 核 8G,磁盘≥40G 组件清单:Python3.9+、FastAPI、Vue 前端、InfluxDB2.0、EMQX(MQTT broker)、Node-RED(可选,协议转换)

步骤 1:环境准备

# 更新系统

sudo apt update && sudo apt upgrade -y

# 安装依赖

sudo apt install python3 python3-pip python3-venv git

步骤 2:克隆项目代码

git clone https://github.com/xxx/solar-battery-ai-dispatch.git

cd solar-battery-ai-dispatch

步骤 3:创建 Python 虚拟环境,安装后端依赖

python3 -m venv venv

source venv/bin/activate

pip install -r requirements.txt

requirements 主要包含:fastapi, uvicorn, pandas, numpy, scikit-learn, torch, influxdb-client, paho-mqtt

步骤 4:部署 InfluxDB 时序数据库(存储功率、SOC 时序数据)

1. 安装 InfluxDB2,设置管理员账号密码、创建 Bucket(solar_battery_data)

2. 修改项目配置文件 config.yaml,填入 InfluxDB 地址、token、bucket 名称

步骤 5:部署 EMQX(MQTT 消息服务器,接收设备数据)

# 一键安装EMQX(参考官方脚本)

curl -s https://install.emqx.io | bash

sudo systemctl start emqx

sudo systemctl enable emqx

· 访问 http://服务器IP:18083 登录 EMQX 后台

· 创建 MQTT 接入账号;修改config.yaml配置 MQTT 连接参数(broker 地址、topic)

设备(逆变器 / BMS)上报数据发布到 MQTT 主题,后端订阅主题采集实时数据。

步骤 6(可选)部署 Node-RED,做协议转换

如果你的逆变器只支持 Modbus,不支持 MQTT,就用 Node-RED 读取 Modbus 并转为 MQTT 发送给 EMQX

sudo npm install -g node-red

node-red

访问 http://服务器IP:1880 进入 Node-RED 编辑器,搭建 Modbus 采集→MQTT 上送流程。

步骤 7:AI 模型初始化

1. 若有历史 csv 数据,放入dataset/文件夹执行训练脚本:

python train_ai_model.py

1. 模型训练完成保存到model/目录;新站点无历史数据可先用默认预训练模型,后续在线增量训练。

步骤 8:启动后端 API 服务

uvicorn main:app --host 0.0.0.0 --port 8000

后端 API 地址:http://IP:8000/docs 可打开接口文档测试

步骤 9:部署前端 Vue 页面

cd frontend

npm install

npm run build

# 将dist静态文件用nginx托管

sudo apt install nginx

# 配置nginx,指向dist文件夹,前端默认端口80

sudo systemctl restart nginx

浏览器访问 http://服务器IP 进入 Solar+Battery AI 调度系统 Dashboard

步骤 10:系统初始化配置(Web 页面操作)

1. 登录系统,进入【系统配置】

2. 填入电池参数:额定容量、SOC 上限 / 下限、最大充放电功率

3. 设置峰谷电价时段和价格

4. 添加设备:逆变器、BMS、电表,绑定对应的 MQTT 主题

5. 开启 AI 调度开关,系统开始采集数据并自动生成调度方案

步骤 11:测试验证

1. 查看 Dashboard,确认光伏功率、SOC 等实时数据正常刷新

2. 进入 AI 预测页面,查看 24h 负荷 / 光伏预测曲线

3. 查看调度策略页面,检查 AI 生成的充放电计划

4. 人为模拟数据异常,测试告警功能

五、使用简要操作流程(给用户的操作指南)

1. 登录 Web 管理界面;

2. 在总览 Dashboard 查看当前光储运行状态、能量流向;

3. 查看 AI 预测页面,预览未来一天光伏与用电负荷;

4. 查看 AI 调度方案:系统自动输出 24h 电池充放电计划;

5. 可手动切换调度模式,或者修改电价 / 电池参数,AI 会重新计算最优策略;

6. 查看历史报表,导出月度发电量、节能收益;

7. 查看告警页面,处理设备通讯、电池异常故障。

六、常见部署问题

1. MQTT 收不到设备数据:检查 EMQX 服务是否启动、topic 名称、账号密码,防火墙开放 1883 端口

2. AI 预测曲线不显示:确认数据库正常存入历史数据,模型训练完成

3. 前端打不开:检查 Nginx 配置,防火墙开放 80 端口

4. 调度计算很慢:服务器 CPU 性能不足,可调低优化迭代次数