ELAI S.r.l.

用电更少还不够:为什么功率峰值反而升高

用电更少还不够:为什么功率峰值反而升高 通过完整算例解释方法、假设与局限。

用电更少还不够:为什么功率峰值反而升高

一小时用电更少,却可能需要更高功率

AI 方案降低过程总能耗,就能断言峰值也下降吗?集中作业可能降低千瓦时,却提高测量窗口内功率。我们用可完整计算的合成曲线区分目标,不分析真实电价或承诺客户节省,重点是定义优化量。

能量与功率单位不同

功率 P 是能量使用速率,这里用 kW;能量 E 是其时间积分,时间以小时计则为 kWh。设六十个恒功率一分钟区间,能量为功率和乘 1/60 小时。总时长恰一小时,能量与平均功率数值相同,但单位和概念仍不同。

E = Σ_(t=0..59) P_t · (1/60 h); mean(P) = (1/60) Σ_t P_t

A 全小时维持 100 kW,耗能 100 kWh。B 前十分钟 180 kW、后五十分钟 60 kW,耗能 (180·10+60·50)/60=80 kWh,能量更少但瞬时峰值为 180 而非 100 kW。未验证两过程产出相同,只隔离数学指标差异,不证明工业方案可行。

测得峰值取决于窗口

若关心对齐 0、15、30、45 分钟的固定十五分钟均值之最大值,A 各块均为 100 kW。B 第一块为 (10·180+5·60)/15=140,其余为 60。因此总能量更小,块峰值却更高。仅预测总能量不包含此时间约束。

fixed_peak = max_(j=0..3) (1/15) Σ_(t=15j..15j+14) P_t

先算每块均值,再取最大,结果单位仍为 kW 而非 kWh。假设块均值上限 120 kW,A 满足,B 不满足。优化一个目标不能替代其他约束,低总能耗可能与不允许的功率需求同时出现。

移动峰值不等于降低峰值

C 把 B 的十分钟高段移至 [10,20),其他仍为 60。能量及瞬时峰值不变,但高段被两个固定块均分,各为五分钟高、十分钟低,均值 100 kW。固定峰值降为 100;滑动十五分钟窗口仍可包含全部十分钟高段与五分钟低段,所以峰值仍 140。

曲线能量(kWh)固定峰值(kW)滑动峰值(kW)
A100.0100.0100.0
B80.0140.0140.0
C80.0100.0140.0
B、C 能量及瞬时峰值相同,但高段在固定窗口内位置不同。一分钟步长合成曲线。
B、C 能量及瞬时峰值相同,但高段在固定窗口内位置不同。一分钟步长合成曲线。

代码枚举小时内全部 46 个完整滑动窗口和四个固定块,不补造小时外样本或混用粒度。对齐、长度及聚合规则属于问题定义。只有小时均值时,许多曲线不可区分,无法无额外假设重建十五分钟峰值。

从指标到决策,边界必须明确

EIA 区分能量、最大需求及需求区间,本实验不解释特定电价。真实成本取决于合同及其他项目。未模拟账单、电池或电气瞬态,也未建模等产出、爬坡、无功与设备约束。图上可行不代表电气验证。

AI 规划应按目标粒度预测:总量看能量,峰值看功率曲线,可行性另列约束。直接枚举工作量为窗口数乘窗口长度,滚动和可减少计算但不改变指标。未报告硬件基准或 EL-AI 节省成果。

少用能量仍可能提高峰值,移动高段也可能只改善一种指标。这不是 AI 悖论,而是向数据提出了不同问题。先明确单位、窗口及约束,才能知道究竟减少了什么。

U.S. EIA — Demand and demand interval.

import json,sys
from pathlib import Path
A=[100.]*60;B=[180.]*10+[60.]*50;C=[60.]*10+[180.]*10+[60.]*40
def stats(x):
 block=[sum(x[i:i+15])/15 for i in range(0,60,15)];rolling=[sum(x[i:i+15])/15 for i in range(46)]
 return dict(energyKWh=sum(x)/60,meanKW=sum(x)/60,instantPeakKW=max(x),fixed15KW=block,fixedPeakKW=max(block),rollingPeakKW=max(rolling),traceKW=x)
r=dict(python=sys.version.split()[0],seed=None,scope='Constructed one-minute piecewise-constant profiles, not tariff advice or measured factory data',profiles={k:stats(v) for k,v in [('A',A),('B',B),('C',C)]})
assert r['profiles']['B']['energyKWh']<r['profiles']['A']['energyKWh'];assert r['profiles']['B']['fixedPeakKW']==140 and r['profiles']['C']['fixedPeakKW']==100 and r['profiles']['C']['rollingPeakKW']==140
Path(__file__).with_name('results.json').write_text(json.dumps(r,indent=2),encoding='utf8')

代码、数据与说明 · JSON. 教学计算使用 Python 3.14.0,图使用 Matplotlib 3.11.2。分析由 AI 辅助,不声称经过同行评审或人工审核。原创 ImageGen 封面仅作示意,不记录 EL-AI 人员、场所或实际安装。来源查阅于 2026 年 10 月 25 日。