小镇上开餐馆的陈阿姨有个传家宝般的“智能冰箱”。菜市场的电价像海浪一样起伏:深夜便宜得像白送,傍晚贵得让人肉疼。她家的屋顶还装着一块小“菜园”——太阳能板,晴天收成好,阴天几乎没产出。聪明的陈阿姨总是在菜价便宜时多买菜塞进冰箱,菜价贵时再从冰箱里拿存货出来用。但问题来了:什么时候囤?囤多少?放多少?冰箱空间有限、插座功率有限、菜还会放坏——这些约束叠在一起,光靠“感觉”已经算不过来了。这正是储能调度优化的本质:用算法决定储能系统每一刻该充电还是放电、充放多少功率,让整个能源系统在“省钱、高效、安全”之间找到最优解。从经典线性规划到强化学习,AI正在把这个“家庭主妇的持家智慧”变成一套可计算、可落地的决策引擎。

岗位关联

对于AI从业者来说,储能调度是“AI+能源”落地最典型的场景之一。掌握建模与优化方法,意味着你能把拍脑袋的能源决策变成有数学支撑的智能系统,这正是能源互联网时代最稀缺的工程能力。

目录
  1. 可视化演示
  2. 储能调度是什么
  3. 调度问题建模
  4. 线性规划求解
  5. 动态规划方法
  6. 强化学习调度
  7. 预测与滚动优化
  8. 实战部署要点
  9. 行业应用展望
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

展示储能系统24小时充放电调度、强化学习优化收敛过程及多目标Pareto权衡,直观理解AI如何驱动能源效率最大化。

本节配有交互动效(进入视口后自动加载,约 3KB)。

24小时储能充放电调度 低价时段充电高价时段放电套利 SOC保持在20%-80%延长电池寿命 max Σ(P_sell−P_buy)×Δt 电价差最大化收益

储能调度是什么

陈阿姨开餐馆的头一年,电费单总让她肉疼:傍晚客人最多时电价也最贵,空调、烤箱、冰柜一起开着,一个月下来利润被电费吃掉一大截。直到她装上了那台“智能冰箱”——本质上是一个大号储能电池。它能在深夜电价便宜时把电“冻”进电池里,傍晚电价贵时再把电能“解冻”出来供厨房使用。但新问题随之而来:到底什么时候囤、囤多少,既要够用又不能浪费。这个“何时充放电”的决策过程,就是储能调度。

储能调度之所以重要,是因为现代能源系统有两个天生的“拧巴”:一是新能源出力波动大,光伏中午出力猛、晚上归零,风电一阵有一阵无;二是电价随时间变化,电网通过分时电价引导用户错峰用电。于是,储能系统像一个“能量缓冲池”,把便宜时段的多余电能存起来,挪到昂贵时段使用——专业上叫“削峰填谷”和“分时电价套利”。调度要回答的,就是每天24小时、每个时刻电池该充多少、放多少。

我们把这个问题写成数学语言:目标是在满足负荷需求的前提下,最小化一天的用电总成本。公式如下:

陈阿姨从此明白了:她每天纠结的“该不该囤菜”,本质上就是一个最小化全天买菜开销的优化问题。只不过她靠生活经验拍脑袋,而算法靠精确的数学计算。

min⁡Ptb,Pts∑t=1T(πtbPtb−πtsPts)\min_{P_t^{b},P_t^{s}} \sum_{t=1}^{T}\left(\pi_t^{b}P_t^{b}-\pi_t^{s}P_t^{s}\right)
这个式子的意思是:把一天分成T个时段,逐段累加“买电花的钱”减去“卖电赚的钱”,让总花费最小。
  1. 买电价格\pi_t^{b} 表示第t个时段从电网买电的单价,低谷时段它很小,高峰时段它很大。
    πtb\pi_t^{b}
  2. 买电功率P_t^{b} 表示第t个时段从电网购入的电量,是我们要决策的量之一。
    PtbP_t^{b}
  3. 全天累加从第1时段加到第T时段,把一整天的成本汇总。
    ∑t=1T\sum_{t=1}^{T}
  4. 卖电收益如果储能或光伏有富余电量卖给电网,按卖电价 \pi_t^{s} 计算,作为收益从总成本中减去。
    −πtsPts-\pi_t^{s}P_t^{s}

调度问题建模

陈阿姨的冰箱里常常一团乱:塞太满放不下新菜,塞太少又浪费空间。直到有一天,她拿出纸笔,把“囤菜问题”写成了四行清单——冰箱现在有多少存货(状态)、每个时间段买进还是取出(动作)、冰箱容量和插座功率是多少(约束)、最终想省多少钱(目标)。这四行清单,就是储能调度建模的全部骨架。

在能源系统里,这四要素一一对应:状态变量是电池的荷电状态SOC(State of Charge),即当前电量占容量的百分比;决策变量是每个时段的充放电功率;约束条件包括电池容量上下限、最大充放电功率、能量守恒关系;目标函数则是全天购电成本最小或收益最大。其中有一条最重要的物理规律——电池的电量是连续演化的:

有了这条“记账规则”,再配上容量边界(SOC不能低于0也不能高于100%)、功率边界(充放功率不能超过逆变器上限),一个完整的调度模型就建立起来了。陈阿姨的冰箱清单越列越清楚,工程师的优化问题也就越列越明确。

SOCt+1=SOCt+ηcPtcΔt−PtdηdΔtSOC_{t+1}=SOC_t+\eta_c P_t^{c}\Delta t-\frac{P_t^{d}}{\eta_d}\Delta t
这条式子描述电池电量的“记账规则”:下一秒的电量 = 这一秒的电量 + 充进去的(打折) - 放出来的(加损耗)。
  1. 当前电量SOC_t 表示第t个时段初电池里的电量,它是调度决策的“基础账本”。
    SOCtSOC_t
  2. 充电增量充电功率 P_t^{c} 乘以时长 \Delta t 得到充入电量,再乘以充电效率 \eta_c(充电过程有热损耗)。
    ηcPtcΔt\eta_c P_t^{c}\Delta t
  3. 放电消耗放电功率 P_t^{d} 释放的电量要扣除放电损耗,所以除以放电效率 \eta_d。
    PtdηdΔt\frac{P_t^{d}}{\eta_d}\Delta t

线性规划求解

列出清单之后,陈阿姨发现一个规律:不管是“买电成本”还是“冰箱容量”,每一条规则都像一条直线——价格乘以数量是线性的,容量上限是线性的,功率约束也是线性的。既然所有规则都是直线,那最优解一定藏在某几条直线的交叉点上。数学家给这类问题起了个名字:线性规划。

线性规划是储能调度最经典的求解工具。我们先把所有决策变量排成一个向量 x(包括每个时段的买电量、卖电量、充电量、放电量),把目标函数写成系数向量 c 与 x 的内积,把约束写成矩阵形式 Ax≤b。求解器的任务,就是在满足所有约束的“可行域”这个多边形里,找到让目标值最小的那个顶点:

实际工程中,我们几乎不会手写单纯形法,而是直接调用成熟求解器——开源可选 scipy.optimize.linprog、CBC,商业可选 Gurobi、CPLEX,它们能在毫秒级解出数千变量的调度计划。但线性规划也有局限:如果目标变成非线性(比如电池寿命衰减曲线)、约束出现整数变量(比如“要么充要么停”的启停状态),就必须升级到混合整数规划或其他方法。陈阿姨的清单如果掺进“每道菜有个最低采购量”这种非线性规则,直线工具就不好使了。

min⁡xcTxs.t.Ax≤b,  x≥0\min_{x} c^{T}x \quad \text{s.t.}\quad Ax\le b,\; x\ge 0
通俗理解:在一张画满直线围成区域的图纸上,沿着目标函数的方向平移直线,第一次碰到可行域边界的点就是最优解。
  1. 目标函数c^{T}x 是把每个变量的成本系数与变量值相乘再求和,例如买电价乘以买电量。
    cTxc^{T}x
  2. 线性约束Ax\le b 表示所有约束都写成“系数矩阵×变量 ≤ 常数”的形式,如电池电量上限。
    Ax≤bAx\le b
  3. 非负约束x\ge 0 表示充放电功率、买卖电量都不能为负,物理上不可能“反向用电”。
    x≥0x\ge 0

动态规划方法

陈阿姨的婆婆是个精明的老主妇,她买菜的思路与众不同:不从早上往后想,而是从晚上收摊那一刻往前倒推——“如果明天晚饭要做红烧肉,那今天下午必须买到五花肉;为了今天下午有钱买肉,今天中午就得省着点”。这种“从终点倒推每一步最优”的思路,就是动态规划。

动态规划的核心是贝尔曼最优性原理:一个最优决策序列,无论第一步怎么选,剩下的决策相对于第一步产生的状态,也必须是最优的。放到储能调度里,我们把24小时分成多个时段,定义价值函数 V_t(s):从t时段、电量状态s出发、一直到一天结束的总最小成本。它满足递推关系:

动态规划的思路很美,但有个致命弱点:状态变量一多就会“维度爆炸”。如果电池SOC划分成100个等级、再叠加气温、预测误差等多个维度,状态空间就会指数膨胀,计算机也存不下。这就像婆婆只能记住“今天买了什么菜”,却记不住“过去一周每天的天气、菜价、客流量”——记忆体不够了。

Vt(s)=min⁡a∈A[Ct(s,a)+Vt+1(s′)]V_t(s)=\min_{a\in A}\left[C_t(s,a)+V_{t+1}(s')\right]
意思是:站在今天这个时段,你只需要选一个动作,让“当前这一步的花费 + 未来剩余时段的最优花费”加起来最小,就能保证全局最优。
  1. 价值函数V_t(s) 表示在t时刻、电量状态为s时,未来所有时段的最小期望成本。
    Vt(s)V_t(s)
  2. 可选动作a\in A 表示从所有允许的充放电动作集合里挑一个。
    a∈Aa\in A
  3. 立即成本C_t(s,a) 是当前时段做这个动作立刻产生的成本,比如高价时段放电就有收益(记为负成本)。
    Ct(s,a)C_t(s,a)
  4. 未来成本V_{t+1}(s') 是做完动作后电量变成 s',从下一时段继续到结束的最优成本。两者相加取最小,就是最优决策。
    Vt+1(s′)V_{t+1}(s')

强化学习调度

陈阿姨的餐馆改成了自助火锅,客流量忽大忽小,菜价也时常波动。婆婆的“倒推清单”面对这种陌生环境失灵了。这时,新来的年轻厨师提出了另一个办法:不用知道菜价规律,每天就靠试——今天便宜多买点,明天贵了少买点,慢慢地,他摸出了一套“不打草稿也能省钱”的手感。这种“试错中积累经验”的方法,就是强化学习。

在强化学习的框架里,储能调度被看成马尔可夫决策过程:智能体(调度系统)观察当前状态(电池SOC、电价、负荷),采取动作(充/放/待机),环境反馈即时奖励(省钱为正、费钱为负),然后状态更新。智能体用一个Q函数记录“在某个状态做某个动作到底值多少”,每走一步就更新一次经验值:

当状态空间太大(比如SOC是连续的)时,Q表格存不下,工程师就用深度神经网络来近似Q函数,这就是深度Q网络(DQN)。强化学习的优势是自适应:电价规则变了、光伏装机变了,智能体能通过持续试错自动调整策略。代价是训练需要海量数据或仿真环境,且不像线性规划那样有“最优解保证”。陈阿姨的店里,年轻厨师的手感要练几个月才靠谱,而线性规划求解器一秒钟就能给出精确答案——所以工程上两种方法各有用武之地。

Q(s,a)←Q(s,a)+α[r+γmax⁡a′Q(s′,a′)−Q(s,a)]Q(s,a)\leftarrow Q(s,a)+\alpha\left[r+\gamma\max_{a'}Q(s',a')-Q(s,a)\right]
这句公式像厨师做菜后自我复盘:“这次这么炒,下次遇到同样情况时,我该多信现在的经验一点。”
  1. 学习率\alpha 控制新经验对旧经验的修正力度,太小学得慢,太大容易忘本。
    α\alpha
  2. 即时奖励r 是这一步动作带来的直接回报,例如高价放电赚了多少钱。
    rr
  3. 未来最优价值\gamma\max_{a'}Q(s',a') 是“如果下一步也做得最好,未来还能赚多少”的折扣估值。
    γmax⁡a′Q(s′,a′)\gamma\max_{a'}Q(s',a')
  4. 误差修正方括号里是“实际回报+未来估值”与“原有估值”的差,把差值按学习率加回原Q值,经验就更新了。
    r+γmax⁡a′Q(s′,a′)−Q(s,a)r+\gamma\max_{a'}Q(s',a')-Q(s,a)

预测与滚动优化

陈阿姨慢慢发现,囤菜最大的敌人不是菜价,而是“不确定性”:天气预报说明天晴天,结果阴天了,光伏菜园收成大减;以为今晚客人少,结果包场了,负荷暴增。为了应对这些意外,她养成了每天早晨听天气预报、晚上看订餐记录的习惯,并且计划只排未来几小时,过几个小时就重新排一次——这就是滚动时域优化。

滚动时域优化(MPC)的思路很朴素:不要一次性把24小时的计划全定死,而是每15分钟或每小时,基于最新预测(光伏出力、负荷、电价)只优化未来一段“预测时域”(如4小时),执行第一步,然后时间窗口向前滚动,重新计算。它的目标函数长这样:

预测模型的精度直接决定滚动优化的质量。光伏功率预测常用数值天气预报+历史出力回归,负荷预测常用时间序列模型(ARIMA)或LSTM,电价预测则要捕捉分时规律与市场供需。预测误差是永远存在的,所以滚动优化还要设计“安全边际”——比如SOC不要充到100%,留一点缓冲给预测失误。陈阿姨的买菜哲学升级成了“别把冰箱塞满,留一格给意外”。

min⁡Pt+k∣t∑k=0H−1C^t+k∣t Pt+k∣t\min_{P_{t+k|t}}\sum_{k=0}^{H-1}\hat{C}_{t+k|t}\,P_{t+k|t}
这是在t时刻,用对未来H个时段的预测数据,临时算出一份最优充放电计划;等下一时刻到来,再拿更新的数据重新算。
  1. 条件预测\hat{C}_{t+k|t} 表示在t时刻对第t+k时段(未来第k步)的电价或成本的预测值。
    C^t+k∣t\hat{C}_{t+k|t}
  2. 决策变量P_{t+k|t} 表示t时刻计划中,未来第k时段的充放电功率。
    Pt+k∣tP_{t+k|t}
  3. 滚动求和从k=0到H-1,只累加未来一个较短窗口的总成本,而不是整个24小时。
    ∑k=0H−1\sum_{k=0}^{H-1}

实战部署要点

陈阿姨的智能冰箱终于上线了,但她发现“算法在电脑里跑得挺好,真装到店里却状况百出”——数据采集器偶尔断线、温度传感器读数漂移、逆变器在高温下自动降额。这说明调度系统真正落地,靠的不只是优化算法,还有可靠的工程细节。

第一是数据质量。电价、光伏出力、负荷、SOC这些数据是调度的“食材”,食材不新鲜,再好的厨师也白搭。实际项目中,传感器采集、缺失值补全、异常值清洗是最耗时的一环。第二是安全约束校验。算法给出的充放电指令,执行前必须经过一层“安全闸门”:功率是否超限、SOC是否越界、通信是否超时,任何异常都要回退到保守策略(比如强制待机或手动模式)。第三是系统架构。通常采用“云端+边缘”协同:云端做中长期预测和模型训练,边缘控制器做毫秒级实时决策,保证断网时系统依然能自主运行。第四是持续评估模型精度,最常用的指标是平均绝对误差:

陈阿姨最后总结:智能冰箱不是“买回来就完事”,而是需要定期擦洗传感器、校准温度、更新菜谱算法。储能调度系统同理,算法只是大脑,数据是血液,架构是骨架,三者齐全才能稳定运行。

MAE=1n∑i=1n∣yi−y^i∣MAE=\frac1n\sum_{i=1}^{n}\left|y_i-\hat{y}_i\right|
这个公式衡量预测值与真实值的平均偏差大小,用来给光伏、负荷预测模型做“定期体检”。
  1. 真实值与预测值y_i 是第i个样本的真实观测值,\hat{y}_i 是模型预测值。
    yi, y^iy_i,\ \hat{y}_i
  2. 绝对误差\left|y_i-\hat{y}_i\right| 把每个点的偏差取绝对值,避免正负相消。
    ∣yi−y^i∣\left|y_i-\hat{y}_i\right|
  3. 求平均把所有样本的绝对误差求和再除以样本数n,得到一个直观的“平均偏差多少千瓦”。
    1n∑i=1n\frac1n\sum_{i=1}^{n}

行业应用展望

陈阿姨的冰箱用得越来越顺手,但她发现单靠自家一块电池,省下的钱有限。隔壁面馆、烧烤店、奶茶铺也装了储能,如果大家把电池“拼”成一个共享冷库——谁家富余的电可以调给缺电的店用,整体还能统一参与电网的调峰调频服务赚钱。这种把分布式储能聚合起来的组织,就是“虚拟电厂”。

在更广阔的图景里,储能调度的应用正在快速扩展:一是微电网调度,海岛、园区、乡村形成独立小电网,储能是维持电压频率稳定的压舱石;二是虚拟电厂聚合,平台把千家万户的储能、EV充电桩、空调负荷聚合成一个可调资源包,统一参与电力市场交易;三是碳交易联动,储能帮助新能源多消纳、减少火电备用,可以折算成碳减排量参与交易,为系统带来额外收益。综合收益公式可以写成:

再往后,储能调度还会与氢能、冷热联供、电动汽车V2G等“多能互补”系统深度耦合,从单一“省电费”升级为“能源系统的交通警察”。陈阿姨的共享冷库,也许哪天就成了整个小镇的“电力枢纽”。

R=∑t=1T(πtsPtdis−πtbPtchg)+RcarbonR=\sum_{t=1}^{T}\left(\pi_t^{s}P_t^{dis}-\pi_t^{b}P_t^{chg}\right)+R_{carbon}
总收益 = 放电卖电收入 − 充电买电成本 + 碳交易收益,这是储能项目商业测算的基础框架。
  1. 放电收入\pi_t^{s}P_t^{dis} 是t时段储能放电卖给电网或用户获得的收益。
    πtsPtdis\pi_t^{s}P_t^{dis}
  2. 充电成本\pi_t^{b}P_t^{chg} 是t时段从电网充电花的钱,作为成本扣掉。
    πtbPtchg\pi_t^{b}P_t^{chg}
  3. 碳收益R_{carbon} 是碳配额或碳减排量兑换的额外收益,未来在收益中的占比会越来越高。
    RcarbonR_{carbon}

AI 应用场景

工业园区微电网储能调度

阶段:数据预测 → 优化决策 → 执行反馈

解决的问题:传统园区按照固定峰谷时段人工设定充放电策略,遇到阴雨天光伏出力骤降或订单波动导致负荷突增就抓瞎。AI方案先对光伏、负荷做短期预测,再用线性规划或滚动时域优化实时生成充放电计划,在满足生产用电的同时自动套利削峰。

具体案例:某制造业园区装设2MW光伏和5MWh储能,接入AI调度系统后,通过每15分钟滚动优化的MPC策略,一年节省电费约32万元,同时依靠“安全约束校验”模块,避免了三次因功率越限导致的跳闸事故。

家庭光储系统智慧运行

阶段:环境感知 → 策略学习 → 自动执行

解决的问题:普通家庭光伏配储能常遇到“光伏满了电还是不够用”“电池充放太频繁折寿”等问题。强化学习智能体可以持续观察家庭用电习惯、电价时段和天气情况,自适应调整充放策略,做到“晴天多存、阴天省用、电价贵时少依赖电网”。

具体案例:欧洲某户用光储产品内置DQN调度策略,相比传统固定阈值规则,将光伏自用率从65%提升到82%,电池循环次数反而下降18%。

充电站储能参与需求响应

阶段:负荷预测 → 调度优化 → 市场响应

解决的问题:电动车充电站瞬时功率高、白天集中充电给配电网造成压力,同时面临高额容量电费。利用历史充电数据预测未来几小时充电需求,结合分时电价与需求响应补贴,调度储能“低谷蓄能、高峰放电”,既降低站内电费,又能向电网提供辅助服务赚取补贴。

具体案例:深圳某超充站部署200kW/400kWh储能,AI预测+线性规划调度使容量电费下降25%,需求响应年收益增加8万元。

Python 演示

python67 行
import numpy as npfrom scipy.optimize import linprog H = 24p_buy = np.array([0.35]*6 + [0.60]*2 + [0.90]*4 + [1.20]*3 +                 [0.80]*4 + [0.55]*3 + [0.35]*2)p_sell = np.round(p_buy * 0.8, 3) pv = np.zeros(H)for h in range(6, 19):    pv[h] = round(6 * np.sin(np.pi * (h - 6) / 12), 2) load = np.array([2.5]*H)for h in range(9, 17):    load[h] += 1.5 ETA_CH, ETA_DIS = 0.92, 0.92P_MAX, CAP = 2.5, 8.0SOC_INIT = SOC_FINAL = 4.0 # 变量顺序: buy[0..23], sell[0..23], chg[0..23], dis[0..23], soc[0..23]n = 5 * Hc = np.zeros(n)c[0:H] = p_buyc[H:2*H] = -p_sell A_eq, b_eq = [], []for t in range(H):    row = np.zeros(n)    row[t] = 1    row[H + t] = -1    row[2*H + t] = 1    row[3*H + t] = -1    A_eq.append(row)    b_eq.append(load[t] - pv[t])     if t < H - 1:        row = np.zeros(n)        row[4*H + t + 1] = 1        row[4*H + t] = -1        row[2*H + t] = -ETA_CH        row[3*H + t] = 1.0 / ETA_DIS        A_eq.append(row)        b_eq.append(0.0) row = np.zeros(n); row[4*H] = 1.0; A_eq.append(row); b_eq.append(SOC_INIT)row = np.zeros(n); row[4*H + H - 1] = 1.0; A_eq.append(row); b_eq.append(SOC_FINAL) bounds = [(0, None)] * (2 * H) + [(0, P_MAX)] * (2 * H) + [(0, CAP)] * H res = linprog(c, A_eq=np.array(A_eq), b_eq=np.array(b_eq),              bounds=bounds, method='highs') buy = res.x[0:H]sell = res.x[H:2*H]chg = res.x[2*H:3*H]dis = res.x[3*H:4*H]soc = res.x[4*H:]  def fmt(x):    return " ".join(f"{v:5.2f}" for v in x) print("时刻  购电 卖电 充电 放电  电量")for t in range(H):    print(f"{t:2d}  {fmt([buy[t], sell[t], chg[t], dis[t]])}  {soc[t]:5.2f}")print("总购电成本 =", round(res.fun, 2), "元")
目的:演示如何把储能调度问题写成线性规划标准形式,并用求解器一次性算出全天最优充放电计划。
  1. c[0:H] = p_buy把每个时段的购电单价放进目标函数系数,购电越多成本越高。
  2. c[H:2*H] = -p_sell卖电单价取负值,表示卖电带来收益(负成本),鼓励在光伏富余时刻卖电。
  3. row[t] = 1; row[H + t] = -1在功率平衡约束里,给购电变量加“+“权重、卖电变量加”-”权重。
  4. row[2*H + t] = -ETA_CH充电变量在SOC递推约束中乘以充电效率,体现充电损耗。
  5. row[3*H + t] = 1.0 / ETA_DIS放电变量除以放电效率,体现放出同等电量需要消耗更多存储能量。
  6. row[4*H] = 1.0; b_eq.append(SOC_INIT)强制初始SOC等于4kWh,保证起始电量确定。
  7. row[4*H + H - 1] = 1.0; b_eq.append(SOC_FINAL)强制一天结束时SOC回到初始值,让系统能持续循环运行。
  8. bounds = [(0, None)] * (2 * H) + [(0, P_MAX)] * (2 * H) + [(0, CAP)] * H购电/卖电无上限,充放功率限制在2.5kW,SOC限制在0~8kWh。
  9. linprog(c, A_eq=..., bounds=..., method='highs')调用HiGHS求解器求解线性规划问题。
  10. res.x[4*H:]从解向量中切出SOC序列,用于查看24小时电池电量变化曲线。

常见误区

误区只要电价低谷就充电、高峰就放电,一定省钱。频繁充放顶多多损耗一点电,反正电费差价很大。

正解电池循环寿命有限,每多一次深度充放电,电池容量都会衰减。真实项目中要把“单位循环成本”写入目标函数,比如每kWh吞吐量折旧0.15元。如果峰谷价差只有0.4元,而循环损耗成本达到0.2元,那频繁套利反而亏本。这就像冰箱压缩机频繁启停会缩短寿命,省下的电费还不够换压缩机的钱。

为何常见:初学者只看到电费差价这个“看得见的收益”,忽略了电池衰减这个“延迟的隐性成本”。

误区预测模型说下午光伏出力4kW,那就按4kW安排放电计划,一分不多一分不少。

正解任何预测都有误差,调度系统必须预留安全边际。工程上常用做法是给SOC设定“运行禁区”(比如5%~95%),并在MPC中加入机会约束或鲁棒边界——预测偏差大时自动降低充放功率。就像陈阿姨囤菜不会把冰箱塞到100%,总要留一格应对“今天突然来客人”。

为何常见:把预测模型当成“上帝视角”,忽略了模型输出本质上是带不确定性的估计。

误区只要算出一天总成本最小就行,最后电池剩多少电无所谓。

正解调度周期结束时SOC必须回到周期初的水平(或目标值),否则系统无法“日复一日”地持续运行。如果每天结束时电池多剩3kWh,第二天初始状态就漂移,几天后SOC可能越界导致模型无解。本质上这是“跨时段耦合约束”,是储能调度区别于普通设备优化的关键之一。

为何常见:把一天当成孤立问题,忽略了储能系统是连续运行、周而复始的长时系统。

误区储能容量是8kWh,那它每小时就能充8度电,功率就是8kW。

正解容量(kWh)决定“能存多少电”,功率(kW)决定“能多快充放”。一块8kWh电池配2.5kW逆变器,充满需要约3.2小时。类似地,冰箱容积决定能囤多少菜,电源功率决定压缩机每小时能冻多快,两者是不同约束,建模时必须分开设置边界。

为何常见:生活中“容量”和“速度”本就容易混为一谈,物理单位(kWh与kW)的差异对初学者不直观。

误区强化学习是AI主流,储能调度也应该无脑上DQN,效果肯定比线性规划好。

正解真实工程中,确定性环境(分时电价、已知光伏出力)下线性规划/MPC效率更高、有最优性保证、可解释性强、审批容易。强化学习的优势在于环境复杂、规则难以显式建模、需要在交互中自适应——但训练成本高、极端场景安全性难验证。工业界通行的做法是LP/MPC做实时决策,RL做离线策略探索或处理复杂非线性子系统。

为何常见:被“AI=深度学习=强化学习”的宣传裹挟,忽略了不同方法各有适用边界。

面试题

Q1. 储能调度优化最核心的决策对象是什么?

单选题 · easy

  • A.何时充放电及功率大小← 正确答案
  • B.何时更换储能电池
  • C.如何增大光伏装机
  • D.如何提升线路电压

答案:A。储能调度的本质是决定每个时段电池充多少、放多少、待机还是停用,即动作策略本身。更换电池属于运维决策,增大装机属于规划问题,提升电压属于电网控制,都不是调度优化的核心对象。就像陈阿姨每天的决策是“买多少菜”,而不是“换个冰箱还是扩建屋顶”。

Q2. SOC(荷电状态)表示什么?

单选题 · easy

  • A.电池当前电量占容量的比例← 正确答案
  • B.电池充电速度的快慢
  • C.电池额定电压的高低
  • D.电池工作温度的范围

答案:A。SOC是State of Charge的缩写,指当前剩余电量占电池总容量的百分比,是调度建模里最重要的状态变量。充电速度由功率决定,电压和温度是电池其他属性。想象冰箱还剩多少空间用百分比表示,就是“菜量状态”。

Q3. “谷充峰放”策略省钱的直接原因是什么?

单选题 · easy

  • A.低价时段充电高价时段放电← 正确答案
  • B.高峰时段充电效率更高
  • C.低谷时段电池容量变大
  • D.放电过程完全不损耗

答案:A。分时电价下,低谷电价低,此时充电的购电成本低;高峰电价高,此时放电可替代高价购电或高价卖出,价差就是套利空间。效率不会随峰谷变化,容量固定,放电必有损耗。陈阿姨深夜囤菜、傍晚用菜,赚的正是价差。

Q4. 线性规划能求解储能调度问题的重要前提是什么?

单选题 · mid

  • A.目标函数和约束都是线性的← 正确答案
  • B.必须使用强化学习算法
  • C.光伏预测必须百分百准确
  • D.只能用于交流电力系统

答案:A。线性规划要求目标函数和所有约束写成线性表达式。如果目标变成非线性(如电池衰减惩罚函数)或含整数决策变量,就需要混合整数规划等方法。预测精度和交直流不是LP适用性的前提条件。就像列购物清单,只有所有规则都是“直线关系”时,才能用尺子找交点。

Q5. 动态规划求解调度的核心思路是什么?

单选题 · mid

  • A.从最后时刻开始逆向递推最优← 正确答案
  • B.从初始时刻一路贪心选择
  • C.随机模拟大量充放电路径
  • D.枚举所有可能的动作组合

答案:A。动态规划依据贝尔曼最优性原理,从终点倒推:每个状态的价值函数由“当前动作成本+后续最优价值”递推得到,避免重复计算。贪心不一定全局最优,随机模拟是蒙特卡洛思想,枚举所有组合在连续状态空间不现实。就像婆婆从晚饭往前盘算买菜,而不是见啥买啥。

Q6. 滚动时域优化(MPC)相比一次性全局优化的核心优势是什么?

单选题 · mid

  • A.每隔一段时间用最新数据滚动修正← 正确答案
  • B.完全不需要任何预测模型
  • C.计算复杂度必然更低
  • D.可以彻底消除电池损耗

答案:A。MPC每一步只优化未来一个短窗口,执行一步后滚动重算,能不断吸收最新预测信息来修正误差。它仍然依赖预测模型,计算量不一定更低,损耗也不可能为零。就像陈阿姨不再一次定死一周菜谱,而是每天早上看天气再决定当天囤什么。

Q7. 储能调度数学建模通常包括哪些要素?

多选题 · mid

  • A.状态变量描述← 正确答案
  • B.充放电动作决策← 正确答案
  • C.功率容量约束← 正确答案
  • D.目标函数设计← 正确答案

答案:ABCD。一个完整的调度模型必须包含四要素:状态(SOC)、动作(充放功率)、约束(容量、功率、SOC边界、能量守恒)和目标(成本最小或收益最大),四者缺一不可。这正是陈阿姨那张“买菜清单”的四个栏目。

Q8. “维度灾难”对动态规划求解储能调度最大的影响是什么?

单选题 · hard

  • A.状态空间指数膨胀导致计算不可行← 正确答案
  • B.目标函数因此变成非线性
  • C.电池容量会随维度变化
  • D.不再需要价值函数递推

答案:A。动态规划需要在所有离散状态上存储价值函数,状态维度每增加一个,状态数量指数式增长。比如SOC分100档再加温度10档、电价10档,就是1万档,加更多维度就炸了。这就是促使人们转向强化学习(用网络近似价值)的原因之一。

Q9. 新能源出力波动性大时,调度系统可采取哪些应对策略?

多选题 · hard

  • A.提升光伏功率预测精度← 正确答案
  • B.采用滚动时域优化修正计划← 正确答案
  • C.增加储能和鲁棒安全边界← 正确答案
  • D.完全依赖离线固定规则

答案:ABC。提高预测精度能从源头降低不确定性,滚动优化能根据最新预测不断修正,增加储能容量与鲁棒边界可以吸收残差波动。固定规则无法应对复杂多变场景。就像陈阿姨既要听天气预报,又要留冰箱余量,还要随时调整采购计划。

Q10. 实际部署储能调度系统时,以下哪些环节必须纳入工程考量?

多选题 · extreme

  • A.数据采集与异常清洗← 正确答案
  • B.安全约束校验与回退策略← 正确答案
  • C.云边协同的系统架构← 正确答案
  • D.忽略历史数据直接上线

答案:ABC。数据是模型的基础,安全校验是执行前的保险栓,云边架构保证断网也能运行,三者是落地的基本盘。忽略数据、不做安全兜底直接上线,在真实电力系统中会造成设备损坏甚至安全事故。陈阿姨的冰箱再高级,也得定期擦传感器、检查温控阀。