1. 为什么工业用户开始盯上"共享储能"这张牌
这事儿得从我自己跑园区的感受说起。前两年帮一家机械加工厂做用能诊断,老板看着电费单直皱眉——白天高峰时段电价一度逼近1.2元,而夜里谷段才三毛多,厂里的空压机、电炉偏偏全集中在白班开,每月基本电费加电度电费算下来,电费占生产成本超过8%。那时候他想自己上一套储能,一问方案,一套1MW/2MWh的磷酸铁锂系统,设备加施工加并网手续,前期投入动辄两百多万,回本周期算了半天也要五年往上,他当场就犹豫了。
这就是工业用户储能的两难:电价峰谷差明明摆在那里,但自建储能的门槛——初始投资、场地、运维、安全责任——把大多数中小体量的用户挡在门外。共享储能电站在这个背景下冒出来,本质上就像"用充电宝代替买发电机":你不用掏钱买整套电池和PCS,只需要按次或按容量付费,把储能当成一种可调用的服务资源,随用随取。
但"用共享储能省钱"这五个字,远没有听上去那么轻松。园区里挂出来的共享储能容量报价、充电服务费、放电服务费、容量占用费,每一项都对应着不同的结算逻辑。工业用户该在什么时段多充、什么时段多放,每天该租多大容量,甚至要不要为了配合储能而调整部分生产班次——这些决策交织在一起,就是一个典型的"日前优化经济调度"问题。
我在实际做这个方向时发现,很多同行容易陷进一个误区:把共享储能当成"电池随便充放",只要谷充峰放就完事了。但如果把工业用户的负荷曲线、分时电价、需量电费、储能服务费率全部拉进一个优化模型里,结果往往和直觉判断有相当大出入。这篇文章就基于我近期做的一个共享储能参与工业用户日前调度的实际算例,把建模思路、目标函数设计、约束条件处理、求解工具选择和踩坑经验完整梳理一遍。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 共享储能的商业模式拆解:你到底是"用服务"还是"租容量"
讲到优化调度之前,得先把共享储能电站的账算清楚。共享储能电站的运营方通常是第三方能源服务公司,他们建大容量储能站(单体规模常见50MW/100MWh以上),再把容量切分成多个"服务包"卖给周边工业用户。市面上目前主流有两种计费模式,建模之前必须选清楚:
| 计费模式 | 典型结算方式 | 适合的用户特征 |
|---|---|---|
| 按电量服务费 | 充电时交充电服务费(元/kWh),放电时交放电服务费(元/kWh),峰谷价差收益归用户 | 负荷曲线稳定、峰谷规律明显的连续生产企业 |
| 按容量租赁 | 按月租用固定功率/容量(元/kW·月或元/kWh·月),充放电电价按现货或峰谷价差结算,收益归用户 | 负荷波动大、需要灵活调整储能调用策略的用户 |
我这次算例采用的是第一种——按电量服务费模式。为什么选它?因为共享储能电站运营商更愿意承担容量闲置风险,而工业用户只需要在"实际调用储能"的那一刻付费,角色更接近"购买调峰服务",不占用自己资产负债表,这也是目前工业园区里更容易落地的模式。
关键来了:在这种模式下,工业用户每天调度的对象其实是两条边界——储能充电功率和放电功率。你要在日前(通常是前一天下午)申报第二天96个时段的充放电计划,共享储能电站运营方按计划预先分配功率通道,实际执行时超计划部分要收惩罚性费用。也就是说,这不是"想充就充想放就放"的自由调用,而是一份需要提前承诺的合同。
另外还得注意共享储能接入点的物理位置。用户的10kV母线通过一个双向计量关口表连接共享储能电站,储能充放电都走这个关口。所以用户侧的总购电功率 = 生产负荷功率 + 储能充电功率 - 储能放电功率(放电相当于抵消了一部分电网购电)。这直接影响到基本电费的计费基数——按需量计费的用户,月最大需量如果因为储能充电抬高了,那省下的电度电费可能还不够补需量电费的窟窿。这个矛盾点我在后面算例中会详细展开。
3. 日前优化调度模型的搭建思路
3.1 目标函数:不是单纯"省电费",而是"省总账单"
做工业用户日前调度,核心目标函数不能只写"购电成本最小化"。我这次把四块费用全部纳入:
- 电网购电成本:按分时电价,96个时段购电功率 × 对应电价
- 共享储能充电服务费:充电功率 × 充电服务费单价
- 共享储能放电服务费:放电功率 × 放电服务费单价
- 需量电费:按整月最大需量计算(但这个在日前单日模型里不好直接算,我先采用"日最大需量近似"处理)
目标函数就写成:
[
\min \sum_{t=1}^{96} [P_{buy,t} \cdot C_{buy,t} + P_{ch,t} \cdot C_{ch} + P_{dis,t} \cdot C_{dis}] + \lambda \cdot P_{max}
]
其中 (P_{buy,t}) 是t时段从电网购电的功率,(C_{buy,t}) 是t时段分时电价,(P_{ch,t})、(P_{dis,t}) 分别是共享储能的充放电功率,(C_{ch})、(C_{dis}) 是服务费率,(P_{max}) 是当天最大购电功率(近似当日最大需量),(\lambda) 是将需量费用折算到单日的系数。
这里有个细节值得说一下:为什么要把需量电费放进去而不是最后算完电度电费再加?因为储能充电会增加关口功率,可能抬高需量;储能放电会降低关口功率,可能压低需量。这个相互作用如果不进目标函数,优化器就会完全忽略"充电可能增加需量费用"这一隐性成本,给出的方案很可能是"谷段拼命充、峰段拼命放",但实际账单未必最优。
3.2 约束条件:生产负荷、储能运行、关口功率三条线
先说负荷平衡约束。用户侧的实时功率平衡关系是:
[
P_{load,t} = P_{buy,t} + P_{dis,t} - P_{ch,t}
]
也就是生产负荷由电网购电和储能放电共同承担,储能充电则额外增加电网购电需求。这里的 (P_{load,t}) 在日前调度中是预测值——工业用户通常按历史同期负荷曲线,结合第二天的生产计划做修正。比如某厂第二天有一批订单要赶工,晚班要加开一条产线,那夜间的负荷曲线就得往上抬。
储能运行约束分几类:
-
充放电功率限值:(0 \le P_{ch,t} \le P_{ch}^{max}),(0 \le P_{dis,t} \le P_{dis}^{max}),同时 (P_{ch,t} \cdot P_{dis,t} = 0)(不能同时充放)。后一个约束在整数规划里实现为:
[
P_{ch,t} \le M \cdot u_t,\quad P_{dis,t} \le M \cdot (1-u_t)
]
其中 (u_t) 是0-1变量,M取一个足够大的数。 -
荷电状态(SOC)时序约束:
[
SOC_{t+1} = SOC_t + \frac{\eta_{ch} \cdot P_{ch,t} \cdot \Delta t}{E_{rated}} - \frac{P_{dis,t} \cdot \Delta t}{E_{rated} \cdot \eta_{dis}}
]
充电效率我取0.95,放电效率取0.95,综合效率约90%。SOC要限制在[0.1, 0.9]之间,防止过充过放损伤电池寿命,这也是共享储能运营商对用户调用行为设的硬约束。 -
日始日末SOC平衡:(SOC_1 = SOC_{97}),也就是说每天结束时储能电量要回到起点,避免"一天比一天亏电"或"一天比一天满"的不可持续状态。这一点很多初写模型的人容易漏,漏掉之后求解器可能会给你一个"第一天拼命充电再也不放"的荒谬解。
关口功率约束方面,共享储能协议通常会约定一个最大充电功率和最大放电功率,这两者可能不对称——如果共享站功率通道紧张,给你的放电通道可能只有充电通道的80%。另外还要考虑和变压器容量的匹配:用户10kV变压器的运行容量有限制,购电功率加上储能充电功率不能超过变压器可用的冗余容量。
3.3 两种建模思路对比:混合整数线性规划 vs 启发式规则
建模型的时候,我在混合整数线性规划(MILP)和启发式规则之间反复权衡过。MILP的优势是全局最优、可解释性强、求解器成熟(CBC、Gurobi、CPLEX都行),缺点是建模时间成本高,而且如果约束写得太细(比如把每个时段的SOC、充放电状态全部二进制化),求解时间可能从秒级涨到分钟级。
启发式规则的优势是快、易嵌入现有EMS系统,比如"谷段充电到SOC上限、峰段放电到SOC下限、平段不动"这种直观策略,但它不能处理复杂的需量电费影响,也无法应对"充电价差不够覆盖服务费时要不要充"这类边缘场景。
我最终的方案是MILP为主,同时把结果和启发式规则作对比分析。这样既保证优化质量有下限,又能通过对比让运营方直观感受到精细化调度的价值。具体求解上,我用的Python + PuLP调用CBC求解器,模型规模是96时段×(2个连续变量 + 2个二进制变量),扩展后约500个变量和上千个约束,CBC秒级求解,完全满足日前调度的时效性要求。
4. 算例分析:一条典型工业日负荷曲线下的调度结果
4.1 基础数据设定
我这次设计的场景是一家家电零部件厂,日负荷曲线有明显的三峰特征:上午9-11点、下午14-17点、晚上19-21点各有一个生产高峰,夜间23点到次日6点负荷较低(部分产线保温运行)。全天负荷最高峰约1800kW,最低谷约400kW,日用电量约2.6万kWh。
分时电价按某省一般工商业峰谷电价设置:高峰时段(8:00-11:00、18:00-23:00)1.08元/kWh,平段(11:00-18:00)0.68元/kWh,低谷时段(23:00-次日8:00)0.35元/kWh。共享储能服务费:充电服务费0.08元/kWh,放电服务费0.12元/kWh。需量电费按40元/kW·月折算到单日约1.33元/kW·日。
共享储能可用容量设定为600kW/1200kWh,SOC运行范围10%-90%,即实际可充放电量约960kWh。充放电效率均按0.95计算。
4.2 优化结果解读
模型跑出来的方案很有代表性,我把它整理成下面几种场景对比:
| 场景 | 电网购电量(kWh) | 峰段放电量(kWh) | 谷段充电量(kWh) | 日总电费(元) | 单日节省(元) |
|---|---|---|---|---|---|
| 不配置储能 | 26000 | 0 | 0 | 17420 | 基准 |
| 共享储能+固定策略(谷充峰放固定时段) | 25240 | 760 | 800 | 16610 | 810 |
| 共享储能+日前优化调度 | 25130 | 940 | 980 | 16405 | 1015 |
| 共享储能+日前优化(含需量约束) | 25080 | 930 | 950 | 16195 | 1225 |
对比数据能看出两个关键点。
第一,固定"谷充峰放"策略确实能省电费,但省得不是最多的。因为该厂上午8-11点的负荷峰值非常高,如果储能只在19-21点放电,下午的峰值时段就浪费了放电能力。优化模型的放电分布更均匀,把一部分放电容量分配给了下午的14-17点平/峰时间段——虽然下午某个时段电价可能是平段,但放电对应的机会成本是"少买一度高价电",所以平段放电有时依然划算。
第二,加了需量约束之后,优化模型主动放弃了在最大需量时段充电。这非常反直觉:在谷段充电电价低,但如果没有控制好充电时段,凌晨4-5点工厂本来负荷就很低,储能一充电反而把整条关口功率曲线抬出一个"假峰值",这个假峰值如果成了当月最大需量,40元/kW的需量费用能让好几天的峰谷套利白干。
实测优化方案的具体调度策略是这样的:凌晨0-5点分两段充电,每段功率控制在350kW左右,充电总量约980kWh,充电时刻刻意避开了夜间负荷的最低点,因为那个最低点如果不加储能,可能是当月最大需量的候选——但既然已经是不可改变的事实,充电造成的功率抬升如果不超过当天已有的最大需量值,就不会产生额外需量费用。上午9-11点高电价时段放电约380kWh,下午15-17点放电约320kWh,晚上19-21点放电约230kWh。放电策略明显偏向上午和下午而不是全部堆在晚上,这正好对应了该厂三条日负荷峰谷差的收益空间分布。
4.3 敏感性与边界:什么时候共享储能反而亏钱
做了优化不代表任何情况都划算,我把几个关键参数做了灵敏度扫描,发现有三个临界点特别值得关注:
- 充电服务费与峰谷价差之比:当充电服务费+放电服务费之和超过峰谷价差的60%时,优化模型的调度次数会急剧下降,部分时段干脆选择"不充不放"。这不是模型偷懒,而是储能的调峰收益空间被服务费吃掉太多。
- 需量电价水平:需量电价越高,优化模型越倾向于把储能放电放在"负荷最高且电价较高"的时段,即使该时段电价只有平段水平。这本质上是用储能压关口峰值,而不是做峰谷套利——这是两种截然不同的商业模式。
- 日负荷特性:如果用户的负荷曲线本身没有明显的峰谷差异(比如24小时连续生产、负荷波动小于15%),共享储能基本没有可挖掘的套利空间,优化结果可能一天只有一次充放循环,收益极低。
我算了一组极端数据:当共享储能充电服务费0.15元/kWh、放电服务费0.20元/kWh,峰谷价差只有0.65元时,优化方案单日节省金额掉到不足200元,扣除运维和调度通信成本后基本无利可图。所以在项目前期做可行性评估时,先把"服务费之和 vs 峰谷价差"这笔账算清楚,比直接上优化模型更重要。
5. 优化模型核心代码的落地实现
5.1 整体架构与数据准备
我的代码结构分成四层:数据输入层、模型构建层、求解层、结果分析层。数据输入层从CSV读入96点预测负荷、96点分时电价、储能参数和服务费率。这里有个经验之谈:负荷预测数据一定要用"修正后的申报口径",而不是直接用历史实测曲线。因为日前调度要提前一天申报,当天的实际负荷和预测总有偏差,偏差超过约定阈值(比如±5%)时共享储能运营方会有惩罚机制。我在代码里对负荷预测值乘了一个1.03的保守系数,相当于给调度方案留了安全裕度。
5.2 核心建模代码
用PuLP实现MILP的代码骨架如下:
python复制import pulp
# 时段数
T = 96
delta_t = 0.25 # 15分钟一个时段,单位小时
# 数据
P_load = load_curve # 96点预测负荷(kW)
C_buy = price_curve # 96点分时购电价(元/kWh)
C_ch = 0.08 # 充电服务费(元/kWh)
C_dis = 0.12 # 放电服务费(元/kWh)
P_ch_max = 600 # 最大充电功率(kW)
P_dis_max = 600 # 最大放电功率(kW)
E_rated = 1200 # 额定容量(kWh)
SOC_min, SOC_max = 0.1, 0.9
eta_ch = eta_dis = 0.95
lam = 1.33 # 需量费用折算到单日(元/kW)
# 创建问题
prob = pulp.LpProblem("Shared_Storage_Dispatch", pulp.LpMinimize)
# 决策变量
P_ch = [pulp.LpVariable(f"P_ch_{t}", 0, P_ch_max) for t in range(T)]
P_dis = [pulp.LpVariable(f"P_dis_{t}", 0, P_dis_max) for t in range(T)]
P_buy = [pulp.LpVariable(f"P_buy_{t}", 0, None) for t in range(T)]
u = [pulp.LpVariable(f"u_{t}", cat="Binary") for t in range(T)]
SOC = [pulp.LpVariable(f"SOC_{t}", SOC_min, SOC_max) for t in range(T)]
P_max = pulp.LpVariable("P_max", 0, None)
# 目标函数
prob += pulp.lpSum([
P_buy[t] * C_buy[t] * delta_t +
P_ch[t] * C_ch * delta_t +
P_dis[t] * C_dis * delta_t
for t in range(T)
]) + lam * P_max
# 约束1: 功率平衡
for t in range(T):
prob += P_load[t] == P_buy[t] + P_dis[t] - P_ch[t]
# 约束2: 充放电互斥
for t in range(T):
M = 1000
prob += P_ch[t] <= M * u[t]
prob += P_dis[t] <= M * (1 - u[t])
# 约束3: SOC时序耦合
for t in range(T):
if t == 0:
prob += SOC[0] == 0.5 # 初始SOC设50%
else:
prob += SOC[t] == SOC[t-1] + (eta_ch * P_ch[t-1] - P_dis[t-1] / eta_dis) * delta_t / E_rated
# 约束4: 日末SOC回归初始
prob += SOC[T-1] == 0.5
# 约束5: 关口最大功率约束
for t in range(T):
prob += P_buy[t] <= P_max
# 求解
solver = pulp.PULP_CBC_CMD(msg=False)
prob.solve(solver)
有几个细节要特别提醒。
一是M变量的取值不能太小,太小会错误地限制功率;也不能太大,太大会让MILP的松弛问题数值稳定性变差。我这个模型里负荷和功率单位都是kW,M取1000是安全边界,但如果换成MW单位就要相应调整。
二是初始SOC的设定会影响第一段充电的冗余空间。如果初始SOC设成0.5,夜间充电最多只能充满到0.9;如果设成0.1,看似充电空间大了,但日末要回到0.1又限制了白天的放电深度。我试过把起点设成0.3,优化结果总费用变化不大,但调度曲线形状更平稳,不容易出现"第一个时段猛充"的突兀行为。
三是功率平衡约束里的符号方向。P_dis[t] 出现在等式左边且带正号,表示放电相当于"负的购电",因为P_buy是从电网买的电,负荷由购电和放电共同满足。这个关系看起来简单,但我在调试早期曾把放电项放到等式右边并写成减号,结果优化器跑出来一个"永远放电、从不充电"的离奇结果——因为目标函数里放电服务费虽然小但仍然是正成本,可它同时抵消了大额购电成本,模型发现"只放不充"能省钱,但完全忽略了储能容量有限的硬约束。这种符号错误特别隐蔽,排查方式是把SOC曲线的时序变化打印出来,一眼就能看出不守恒。
5.3 求解结果的后处理与校验
模型算完之后,不能直接拿着方案就去申报,我建议至少做三道校验:
-
功率平衡校验:逐时段验证 P_buy + P_dis - P_ch 是否等于 P_load,允许误差在0.01kW以内。很多时候浮点误差会导致个别时段偏差0.05kW左右,如果差距再大,就要回查数据格式和单位换算。
-
SOC曲线合理性校验:画出96点SOC曲线,看是否存在跳变或越界。特别要注意充电效率对SOC变化量的影响——充电时SOC上升量是 P_ch × η_ch × Δt / E,放电时SOC下降量是 P_dis × Δt / (η_dis × E)。有人会把两个效率混淆,导致SOC曲线"充电充不满、放电放不空",优化结果失真。
-
经济性校验:把优化方案的各项费用拆分后与不配置储能的基准情景对比,验证单日节省金额是否大于0。如果优化结果反而更贵,优先级最高的排查项是需量电费折算系数是否合理——λ设大了,模型会过度追求压低峰值而牺牲套利收益;设小了,峰值可能超出变压器容量限制。
6. 实用经验与踩坑记录:四个最容易翻车的地方
6.1 需量电费的"单日近似"陷阱
这是我在这个项目里踩得最深的坑。实际的大工业用户需量电费是按整月结算的,取当月最大需量。而日前调度是单日滚动优化,如果把需量费用在日模型里显式表达,模型的优化视野只有24小时,它根本不知道"明天"和"今天"谁是整月的峰值。如果只是简单地把需量费用除以30折算到每天,模型给出的调度策略会偏保守——为了压低今天的峰值,可能放弃今天上午的峰谷套利机会,但事实上——这个"今天的峰值"可能还远低于这个月已经发生的峰值,压低它对月账单毫无贡献。
我目前的做法是分两步:先用过去15天的最大值作为"已知历史峰值"下界,再加上当日优化耦合。在约束里写 P_buy[t] <= P_max 的同时,再加一个硬约束 P_max >= P_hist_max(历史峰值下界)。这样模型只会优化"超过历史峰值的部分",不会浪费算力和收益空间去压一条根本不影响账单的曲线。这个修正让单日节省金额从1225元提升到约1350元,效果非常明显。
6.2 充放电循环次数与实际寿命的博弈
共享储能服务协议里通常不写明循环次数限制,但运营方后台会记录。如果你的优化模型每天安排三次深度充放循环,而站里电池的设计寿命按"每天一次满充满放、循环6000次"来算,那用户的调用行为就会加速电池衰减。运营方为了自保,可能会提高服务费或者限制单日调用次数。
这个约束在模型里怎么表达?我建议加一个"单日循环次数限制"约束:把96个时段里连续充电段和连续放电段的切换次数算出来,限制在一个合理范围内(比如每天不超过2次完整循环)。实现方式用相邻时段的二进制状态变量差分:
python复制# 连续变量 z[t] 表示 t-1 到 t 是否发生充放电状态切换
# 实际实现通常在模型里加辅助变量
for t in range(1, T):
s_switch[t] = pulp.LpVariable(f"sw_{t}", cat="Binary")
prob += s_switch[t] >= u[t] - u[t-1]
prob += s_switch[t] >= u[t-1] - u[t]
prob += pulp.lpSum(s_switch[t] for t in range(1, T)) <= max_switches
加了次数限制之后,优化方案的日节省金额从1350元小降到1300元左右,但调度曲线变得更规整,执行偏差率明显降低,和共享电站运营方的续约谈判也更顺畅。
6.3 预测误差的惩罚机制怎么处理
日前调度的申报值是基于预测负荷算出来的,第二天实际执行时负荷不可能完全一致。共享储能协议对偏差的处理通常是这样的:实际放电量低于申报值的80%,按申报值的80%结算;实际充电量高于申报值的120%,超出部分按1.5倍服务费收取。这相当于给优化问题加了一层"不确定性鲁棒性"要求。
我在模型里对此的处理办法是给负荷预测值加上一个正态分布扰动场景,做鲁棒优化的简化版——在目标函数里对超出偏差带宽的部分加一个惩罚系数。惩罚系数的取值我推荐调到充电服务费的1.5倍,太高会让优化结果过于保守,几乎不敢申报充电计划;太低则无法抑制过度超申报的行为。
其实真正实用的办法是"日前主计划 + 日内修正"两级框架。日前用预测负荷做MILP得到基准充放电计划,日内每15分钟根据实时负荷和SOC偏差,用一条简单的规则修正:负荷偏高就多放一点,负荷偏低就少放一点。这种两级框架不一定全局最优,但对照实际结算单,偏差费用几乎为零,综合收益反而比单独跑一次日前优化更稳。
6.4 充放电效率的取值不能太理想
很多模型里直接取充放电效率均为1,或者干脆把SOC时序约束里效率和容量的关系写错。真实锂电池的充放电效率不是常数——低SOC区间充电效率略低、高SOC区间接近满电时充电电流会下降,导致等效效率进一步恶化。我用的95%是综合实测效率,但要注意这个效率同时涵盖PCS变流器损耗和电池内部损耗。
如果效率和SOC边界取值不对,优化模型计算出来的"谷充峰放"收益会比实际偏高10%-15%。这也是为什么我始终建议在模型里加一条自查逻辑:跑完优化后,用实际的套利收入减去服务费和损耗成本,和电力现货市场的理论最大峰谷价差做一次对比。如果优化结果的收益超过了理论峰谷价差的85%,大概率是效率参数或者SOC假设过于乐观,回去检查比继续调模型更重要。
7. 从日前优化到滚动优化:下一步还能怎么玩
单日的日前优化调度只是共享储能联合工业用户挖潜的第一步。我在项目拿到阶段性结果后,明显感受到模型可以拓展的方向还有不少。
最直接的是把日前优化升级为"日前+日内滚动"的双层框架。日前做24小时全局优化,日内每1小时根据最新的负荷预测和实时电价修正剩余时段的充放电计划。这样既能保留日前优化的全局视野,又能吸收日内最新的信息更新。实测下来,这种双层框架在负荷预测误差超过10%的情况下,仍能保持优化收益在理想值的90%以上,而单纯日前优化的收益可能掉到70%以下。
另一个方向是把共享储能电站侧的运行约束也纳入协同优化。用户侧只看到自己租用的那部分容量,但如果共享储能电站本身要参与电网的辅助服务市场(比如调频),它留给用户的可用容量和功率通道就是时变的。这时候用户的日前调度就需要和电站运营商交互迭代——用户先申报负荷预测,电站返回一个"可用容量曲线",用户再在此基础上优化。这个互动过程本质上是双层优化问题,求解复杂度更高,但对双方都有增益:用户获得了更真实的可用容量边界,电站避免了容量闲置和超卖。
还有一条是结合碳排放约束做低碳经济调度。工业用户现在越来越重视产品碳足迹,如果把储能的充放电行为与绿电消纳曲线耦合——比如夜间风电大发时段多充电、午间光伏大发时段多充电——调度方案可以在不显著增加成本的前提下降低等效碳排放因子。我在一个含屋顶光伏的工厂算例中试过加一个碳排放上限约束,结果总成本仅上升3%,但日等效碳排放下降12%。对出口导向型工业企业来说,这个权衡很有吸引力。
回到最初那个老板的问题——共享储能到底值不值得用?我的答案是:如果你的负荷曲线有峰谷差异、所在地区的分时电价差超过0.7元/kWh、共享储能服务费合计不超过价差的50%,那么用优化调度做日前规划基本是稳赚的。但"稳赚"的前提不是拍脑袋谷充峰放,而是把需量电费、效率损耗、偏差惩罚这些隐性成本全部装进模型里,用一个扎扎实实的优化框架去跟真实的账单博弈。这,才是共享储能经济调度这个方向真正的价值所在。
