案例 068 谷电充电省多少

案例 068 谷电充电省多少

摘要:小哥 20:00 收车插枪、07:00 出车,电池 3.0 度只剩 0.5 度,当日要补 2.3 度才能顶到 2.8 度。电价分三档,峰 1.00、平 0.60、谷 0.30 元每度,谷段是 0:00—07:00 的 7 小时。把 11 个可用小时各设一个充电量变量 \(x_{t}\),用 0-1 变量 \(b_{t}\) 刻画"已插枪"、以 \(n_{r}=\lceil E/\bar{P}\rceil\) 作充电小时数,在"补足 2.3 度"和"1.2 kW 功率上限"下最小化电费加占位费。Gurobi 求得最优开始时刻为 5:00,日支出 0.69 元,比"回家就充"的 6.80 元省 6.11 元、年省 2230 元;谷段窗口短于 1.92 小时就必须动用平价电。

关键词:分时电价;充电调度;0-1 调度;占位费;临界窗口


1 问题提出

1.1 一晚上的充电账

小哥跑一整天耗 2.3 度电,夜里回家只剩 0.5 度。次日 07:00 出车前要把电量顶到 2.8 度,也就是补 2.3 度。小区充电桩 1.2 kW,纯充电至少要 1.92 小时。电价按小时分三档,谷段集中在 0:00 之后:

表 1 逐小时电价、桩可用性与三策略充电量

时刻 时段 电价/元每度 回家就充/kWh 谷段集中/kWh 优化分时/kWh
20:00 峰 1.00 1.20 0.00 0.00
23:00 平 0.60 0.00 0.00 0.00
0:00 谷 0.30 0.00 1.20 0.00
5:00 谷 0.30 0.00 0.00 1.20
6:00 谷 0.30 0.00 0.00 1.10

桩从 20:00 到次日 07:00 可用,共 11 个小时;07:00 之后人车都走了。表 1 最后三列是三种策略的充电量:优化方案只在 5:00 与 6:00 两个小时里充,其余九个小时一度不动。

1.2 为什么要优化

价差本身并不惊人:2.3 度电全在峰段是 2.30 元,全在谷段是 0.69 元,一天差 1.61 元,一年 588 元,只占峰段电费的 70%。真正咬人的是占位费:共享桩按 0.50 元每小时收,从"充满"到"拔枪"这段时间照样计费。20:00 插枪 22:00 就满了,人却睡到 07:00,白交 9 小时、4.50 元,是电费的 2.0 倍。所以三条路的差距不在"用不用谷电",而在"什么时候插枪"。

1.3 Gurobi 如何求解

把一晚上切成 11 个小时,每小时一个连续变量 \(x_{t}\)(充多少度)加一个 0-1 变量 \(b_{t}\)(插没插枪),模型就是一个 22 个变量的混合整数规划。求解分三步:先由"补足 2.3 度"定出可行域下界,再用 \(b_{t}\) 的单调性保证"插枪后一直插到出门",最后由目标里的占位费把解推到"尽量晚开始"。总共 23 条约束,Gurobi 在根节点即得最优。

2 数学模型

2.1 符号说明

表 2 符号说明

符号 含义 取值/单位
\(t\) 到家后第 t 小时(1 即 20:00) 1—11
\(x_{t}\) 第 t 小时充电量 kWh
\(b_{t}\) 第 t 小时是否已插枪(0-1) -
\(n_{r}\) 满功率充满所需小时数 2 h
\(p_{t}\) 第 t 小时电价 元/度
\(E\) 当日需补回电量 2.3 kWh
\(\bar{P}\) 充电桩功率上限 1.2 kW
\(c_{o}\) 占位费率 0.50 元/h
\(W\) 谷段可用时长 7 h

2.2 目标函数

电价是时间 \(t\) 的分段函数,谷段只覆盖 0:00 起的 \(W\) 小时:

\[p_{t}=\begin{cases}1.00 & t\le 3\\ 0.60 & t=4\\ 0.30 & 5\le t\le 4+W\\ 0.60 & 5+W<t\le 11\end{cases}\tag{1} \]

一晚总支出等于各小时电费之和,加上"插着却没在充"的占位费:

\[\min\ Z=\sum_{t=1}^{11}p_{t}x_{t}+c_{o}\left(\sum_{t=1}^{11}b_{t}-n_{r}\right)+\varepsilon\sum_{t=1}^{11}b_{t}\tag{2} \]

其中 \(\varepsilon=10^{-4}\) 只用于打破"早充晚充同样便宜"的平局,不影响最优成本的量级。

2.3 约束条件

补电总量必须够次日跑:

\[\sum_{t=1}^{11}x_{t}=E\tag{3} \]

每小时充电量受桩功率与插枪状态双重限制,没插枪就不能充:

\[x_{t}\le\bar{P}b_{t},\qquad 0\le x_{t}\le\bar{P},\qquad b_{t}\in\{0,1\}\tag{4} \]

插枪是一去不回的,\(b_{t}\) 单调不减,把插枪时段锁成一段连续区间;插枪时长又必须容得下 \(n_{r}=\lceil E/\bar{P}\rceil\) 个满功率小时:

\[b_{t}\ge b_{t-1},\qquad \sum_{t=1}^{11}b_{t}\ge n_{r}\tag{5} \]

2.4 规模与性质

22 个变量(11 个连续 + 11 个 0-1)、23 条约束,规模很小但结构清楚:\(b\) 单调加 \(\sum b\ge n_{r}\),可行集等价于"选一个插枪起点 \(s\),从 \(s\) 一直插到 11",占位恰好是 \((11-s+1)-n_{r}\)。去掉 0-1 后 LP 松弛会把 \(b\) 摊成小数、占位费被抹平,所以 0-1 不能省。

3 Gurobi 求解实现

3.1 建模要点

x = m.addVars(ts, lb=0, ub=P)
b = m.addVars(ts, vtype=GRB.BINARY)
m.addConstr(gp.quicksum(x[t] for t in ts) == E)
m.addConstr(gp.quicksum(b[t] for t in ts) >= nreq)
for t in ts:
    m.addConstr(x[t] <= P*b[t])
for t in ts[1:]:
    m.addConstr(b[t] >= b[t-1])
m.setObjective(gp.quicksum(p[t-1]*x[t] for t in ts)
               + co*(gp.quicksum(b[t] for t in ts) - nreq) + 1e-4*gp.quicksum(b[t] for t in ts))

一个实现细节:占位费不能写成 \(c_{o}\sum(b_{t}-y_{t})\) 再引入"正在充"的 \(y_{t}\)。那样求解器会让 \(y_{t}=1\) 而 \(x_{t}\approx0\),等于"假装在充、免费续占位",占位一小时 0.50 元、假装充电一小时只要几分钱,套利空间极大。改用常量 \(n_{r}=\lceil E/\bar{P}\rceil\) 作充电小时数,占位 \(=\sum b-n_{r}\),既保持线性又堵死了这条路。

3.2 求解结果

表 3 三种策略的日支出分解

策略 开始时刻 谷/平/峰电量 kWh 电费/元 占位/h 合计/元
回家就充 20:00 0 / 0 / 2.3 2.30 9 6.80
谷段集中充 00:00 2.3 / 0 / 0 0.69 5 3.19
优化分时 5:00 2.3 / 0.0 / 0.0 0.69 0 0.69

最优解把 2.3 度电全部塞进 5:00—07:00 这两个小时,电费 0.69 元、占位 0 小时,合计 0.69 元。同样用谷电的"谷段集中充"因为 0:00 就插枪,充满后仍占位 5 小时,多付 2.50 元,是 3.19 元——充电时段对了、插枪时刻不对,这就是占位费的杀伤力。

4 结果分析

4.1 电价结构与充电落点(图 1、图 2)

图 1 把一晚上的电价画成阶梯:前 3 小时峰、23:00 平、0:00 之后 7 小时谷,07:00 出车拔枪。谷段在可用窗口里占 7/11,看起来绰绰有余——只需 1.92 小时就能充满,窗口是需求的 3.7 倍。图 2 的气泡是三条路的落点:峰段的两个点贴着 1.00 元那条台阶,谷段的四个点贴着 0.30 元,位置越高越贵、越靠右越省。

图 1 分时电价阶梯与桩可用窗口:谷段 7 小时,需求仅 1.92 小时

图 2 三种策略的充电落点:峰段贵、谷段便宜

4.2 三策略与累计过程(图 3、图 4)

图 3 把日支出拆成四段:回家就充几乎全是峰段电费 2.30 元,再压上 4.50 元占位费;谷段集中充电费只有 0.69 元,但占位 5 小时又是 2.50 元;优化分时把两项都清零,只剩 0.69 元。合计从 6.80 元降到 0.69 元,降幅 90%。

图 3 三种策略的日支出分解:电费按峰/平/谷三段,另加占位费

图 4 是这一晚的时间轴:柱子是逐小时充电量,在 5:00 与 6:00 各 1.2 度与 1.1 度;折线是累计补电量从 0 爬到 2.3 度,正好停在目标线的位置;底色是三个电价时段,两根柱子都落在谷段底色里。充满即出门,占位为零。

图 4 优化方案的逐小时充电量与累计补电量(底色为电价时段)

4.3 谷段窗口、电量与占位费率(图 5—图 7)

图 5 扫谷段可用时长 \(W\):把占位费置零后(实线),\(W\ge2\) 曲线就平了,全部用谷电;\(W=1\) 时只剩 1.2 度谷电,缺的 1.1 度只能用平价,日电费从 0.69 元抬到 1.02 元。临界值 1.92 小时由此而来,它是 \(E/\bar{P}\),只由电量和功率决定,与电价无关。把占位费加回来(虚线,0.50 元每小时),曲线整体抬高:\(W=5\) 要 1.38 元、\(W=6\) 要 1.02 元,只有 \(W=7\) 才回落到 0.69 元——谷段必须一直拖到出门,才能既用谷电又不占位。

图 5 谷段时长对日电费与总支出的影响及临界窗口 1.92 小时

图 6 把谷电价和需补电量放在一张热图上:等值线是一族双曲线,往右(补电更多)、往上(谷价更贵)颜色同时加深,左下浅黄、右上深红。星标在 \((2.3,\ 0.30)\),正是本案参数。谷价从 0.15 涨到 0.45,日支出从 0.34 涨到 1.03 元;补电从 1.8 涨到 2.9 度,日支出从 0.54 涨到 0.87 元。两个方向的斜率都是常数——谷段充足时,日支出就是"单价乘电量",没有别的结构。真正的结构性风险在图 5 的窗口上。

图 6 谷电价与需补电量的二维日支出曲面(星号为本案参数)

图 7 单独扫占位费率:0.50 元每小时是本案取值,此时回家就充 6.80 元、谷段集中 3.19 元、优化 0.69 元。费率降到 0,三者变成 2.30 / 0.69 / 0.69 元,优化与谷段集中打平;费率涨到 0.40 元每小时,回家就充与谷段集中持平,再涨"先插上再说"就彻底不划算。这条交叉线给了一个判据:占位费一旦超过 0.40 元每小时,就必须定时到最后一刻再充。

图 7 占位费率对三策略的影响与交叉点 0.40 元每小时

4.4 前沿、分布与汇总(图 8—图 10)

图 8 把"等"和"花"画成前沿:20:00 就充要 6.80 元,等到 0:00 降到 3.19 元,等到 5:00 降到 0.69 元;再往后(右侧阴影)就来不及在 07:00 前充满,属于不可行区。前沿在 5:00 处终止,这就是"最晚可行开始时刻"——等待本身不要钱,因为那 9 小时都在睡觉,要的只是一个定时器。

图 8 等待时长—日支出前沿与来不及充满的不可行区

图 9 让日耗在 1.8—2.8 度之间波动、谷段窗口在 2—7 小时之间随机,跑 400 天:节省额集中在 5.45 元附近,最少的一天也省 4.96 元,反例 0 天。节省额全部为正,优化调度在随机场景下稳定占优。

图 9 400 天随机场景下相对回家就充的日节省分布

图 10 把从回家就充到优化分时的差额逐项拆开:峰段电费清零 +2.30 元、谷段电费新增 +0.69 元、占位费清零 +4.50 元,合计 -6.11 元。占位费一项就是峰段电费的两倍,这次优化真正省下的不是电价、是"占着位不挪车"。

图 10 从回家就充到优化分时的边际贡献分解

5 结论

第一,最优调度是把 2.3 度电压在 5:00—07:00 的最后两个小时,电费 0.69 元、占位 0 小时,日支出 0.69 元,比回家就充省 6.11 元。第二,省下的钱里电费只占 1.61 元(年 588 元,与"一年省六百"的量级吻合),占位费占 4.50 元。只盯电价会漏掉大头。

第三,谷段窗口的临界值是 1.92 小时(\(E/\bar{P}\))。窗口长于它,多出来的谷电时段毫无价值;短于它,每缺 1 小时就要用 1.2 度平价电顶上,日电费多 0.36 元。第四,占位费率 0.40 元每小时是一条分界线:低于它,"等到谷段"仍然值得;高于它,"先插上、早上再拔"的代价会吞掉全部价差。

第五,这套"逐小时量 + 插枪 0-1 + 占位计费"的骨架只有 22 个变量,可直接搬到电动自行车、电动摩托乃至家用储能的夜间补电,换的只是电价表和功率。


参考文献

[1] Gurobi Optimization LLC. Gurobi Optimizer Reference Manual[Z]. 2024.

[2] Kellerer H, Pferschy U, Pisinger D. Knapsack Problems[M]. Berlin: Springer, 2004.

[3] Martello S, Toth P. Knapsack Problems: Algorithms and Computer Implementations[M]. Chichester: John Wiley & Sons, 1990.

[4] 司守奎, 孙玺菁. 数学建模算法与应用[M]. 3 版. 北京: 国防工业出版社, 2021.


复现方式:python batch_068.py;数据与结果见同目录 .csv / .json,图见 figs/

posted @ 2026-11-11 18:04  小青蛙电气  阅读(3)  评论(0)    收藏  举报