一、系统概述
系统名称: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 性能不足,可调低优化迭代次数