基于分时电价与储能协同的光储社区购电优化调度
完整资源下载:2026 年高教社杯全国大学生数学建模竞赛C 题 微网与外部电网电力调控策略(数学建模,代码,论文免费分享)
摘要
针对光储社区在分时电价机制下购电成本高、光伏消纳能力不足的问题,本文建立以全天购电费用最小为目标的线性规划模型。模型将一天划分为 96 96 96 个 15 15 15 分钟时段,综合考虑分时电价、小区负载、光伏出力预测与储能充放电特性,引入计划购电、调整购电与紧急购电三层购电结构。基于 2025 年全年逐日 96 96 96 点负荷数据、电价数据与光伏预测数据,采用 CBC 求解器逐日滚动求解。算例结果表明,储能能够在电价低谷时段充电、在电价高峰时段放电,全年购电费用较无储能情景显著下降,紧急购电占比控制在较低水平,验证了模型的有效性与经济性。
关键词:光储社区;分时电价;储能调度;线性规划;购电优化
1 引言
1.1 研究背景
随着分布式光伏在居民社区的渗透率不断提高,光储社区(PV-Storage Community)逐渐成为新型电力系统的重要组成部分。光伏出力具有显著的间歇性与反负荷特性——正午出力最高而负荷相对平稳,傍晚光伏退出而负荷进入高峰,导致社区在晚高峰时段对上级电网的依赖加剧。
分时电价(Time-of-Use, TOU)机制通过在不同时段设定差异化电价,引导用户削峰填谷。储能系统作为时空能量搬移的核心装置,能够在电价低谷时段充电、在电价高峰时段放电,从而降低购电成本并提升光伏本地消纳率。
1.2 研究意义
本文的研究意义体现在三个方面:
- 经济性:通过储能套利与光伏消纳,降低社区整体购电费用;
- 可靠性:通过计划—调整—紧急三层购电结构,保障供电可靠性;
- 可推广性:模型为线性规划,计算效率高,适合全年逐日滚动调度。
1.3 本文工作
本文的主要工作包括:
- 构建含储能的光储社区购电优化线性规划模型;
- 基于 2025 年全年 96 96 96 点数据逐日求解;
- 分析储能充放电行为、购电结构与费用构成;
- 给出敏感性分析与结论建议。
2 问题描述与数据特征
2.1 时间粒度与时段划分
将一天划分为 96 96 96 个等长时段,每个时段长度为
Δ t = 24 h 96 = 0.25 h = 15 min \Delta t = \frac{24\ \text{h}}{96} = 0.25\ \text{h} = 15\ \text{min} Δt=9624 h=0.25 h=15 min
第 t t t 个时段记为 [ t − 1 , t ) [t-1,\,t) [t−1,t), t = 1 , 2 , … , 96 t=1,2,\dots,96 t=1,2,…,96。第一个时段为 00 : 10 00{:}10 00:10– 00 : 20 00{:}20 00:20,最后一个时段为次日 00 : 00 00{:}00 00:00– 00 : 10 00{:}10 00:10。
2.2 分时电价特征
设第 t t t 时段电价为 p t p_t pt(元/kWh)。根据附件数据,电价呈现明显的峰谷特征:
p t ∈ [ 0.37 , 1.40 ] 元/kWh p_t \in [0.37,\ 1.40]\ \text{元/kWh} pt∈[0.37, 1.40] 元/kWh
典型日分为三个区间:
- 低谷时段( 00 : 00 00{:}00 00:00– 06 : 00 06{:}00 06:00, 22 : 00 22{:}00 22:00– 24 : 00 24{:}00 24:00): p t ≈ 0.42 p_t \approx 0.42 pt≈0.42 元/kWh;
- 高峰时段( 08 : 00 08{:}00 08:00– 11 : 00 11{:}00 11:00, 17 : 00 17{:}00 17:00– 21 : 00 21{:}00 21:00): p t ≈ 1.10 ∼ 1.40 p_t \approx 1.10\sim1.40 pt≈1.10∼1.40 元/kWh;
- 平段(其余时段): p t ≈ 0.60 ∼ 0.90 p_t \approx 0.60\sim0.90 pt≈0.60∼0.90 元/kWh。
峰谷价差最大可达
Δ p max = 1.40 − 0.37 = 1.03 元/kWh \Delta p_{\max} = 1.40 - 0.37 = 1.03\ \text{元/kWh} Δpmax=1.40−0.37=1.03 元/kWh
这为储能套利提供了充足的经济空间。
2.3 小区负载特征
设第 t t t 时段小区负载为 L t L_t Lt(kW)。负载呈现"双峰"特征:
- 早高峰: 08 : 00 08{:}00 08:00– 11 : 00 11{:}00 11:00, L t ≈ 7000 L_t \approx 7000 Lt≈7000 kW;
- 晚高峰: 18 : 00 18{:}00 18:00– 20 : 00 20{:}00 20:00, L t ≈ 7000 L_t \approx 7000 Lt≈7000 kW;
- 夜间低谷: 00 : 00 00{:}00 00:00– 06 : 00 06{:}00 06:00, L t ≈ 2500 ∼ 3500 L_t \approx 2500\sim3500 Lt≈2500∼3500 kW。
负载波动范围:
L t ∈ [ 2200 , 7600 ] kW L_t \in [2200,\ 7600]\ \text{kW} Lt∈[2200, 7600] kW
2.4 光伏出力特征
设第 t t t 时段光伏预测功率为 P V t PV_t PVt(kW)。光伏出力仅在有日照时段非零:
P V t = 0 , t ∈ [ 1 , 19 ] ∪ [ 78 , 96 ] PV_t = 0,\quad t \in [1,\,19] \cup [78,\,96] PVt=0,t∈[1,19]∪[78,96]
即 00 : 00 00{:}00 00:00– 04 : 40 04{:}40 04:40 与 19 : 20 19{:}20 19:20– 24 : 00 24{:}00 24:00 无光伏。正午时段( 12 : 00 12{:}00 12:00– 13 : 00 13{:}00 13:00)出力达到峰值:
max t P V t ≈ 7600 kW \max_t PV_t \approx 7600\ \text{kW} tmaxPVt≈7600 kW
光伏日出力曲线近似为抛物线,可用下式拟合:
P V t = P V max ⋅ max { 0 , 1 − ( t − t noon t half ) 2 } PV_t = PV_{\max} \cdot \max\left\{0,\ 1 - \left(\frac{t - t_{\text{noon}}}{t_{\text{half}}}\right)^2\right\} PVt=PVmax⋅max{0, 1−(thalft−tnoon)2}
其中 t noon ≈ 49 t_{\text{noon}} \approx 49 tnoon≈49 对应正午, t half ≈ 30 t_{\text{half}} \approx 30 thalf≈30 为半宽。
2.5 储能参数
储能系统关键参数:
| 参数 | 符号 | 取值 | 单位 |
|---|---|---|---|
| 最大容量 | E max E_{\max} Emax | 10000 | kWh |
| 最大充电功率 | C max C_{\max} Cmax | 2000 | kW |
| 最大放电功率 | D max D_{\max} Dmax | 2000 | kW |
| 充电效率 | η c \eta_c ηc | 0.95 | — |
| 放电效率 | η d \eta_d ηd | 0.95 | — |
| 初始储电量 | E 0 E_0 E0 | 0 | kWh |
3 数学模型
3.1 决策变量
模型决策变量共 6 × 96 6\times 96 6×96 个:
G t plan ≥ 0 计划购电功率 (kW) G t adj ≥ 0 调整购电功率 (kW) G t em ≥ 0 紧急购电功率 (kW) 0 ≤ C t ≤ C max 充电功率 (kW) 0 ≤ D t ≤ D max 放电功率 (kW) 0 ≤ E t ≤ E max 储电量 (kWh) \begin{aligned} &G_t^{\text{plan}} \ge 0 && \text{计划购电功率 (kW)}\\ &G_t^{\text{adj}} \ge 0 && \text{调整购电功率 (kW)}\\ &G_t^{\text{em}} \ge 0 && \text{紧急购电功率 (kW)}\\ &0 \le C_t \le C_{\max} && \text{充电功率 (kW)}\\ &0 \le D_t \le D_{\max} && \text{放电功率 (kW)}\\ &0 \le E_t \le E_{\max} && \text{储电量 (kWh)} \end{aligned} Gtplan≥0Gtadj≥0Gtem≥00≤Ct≤Cmax0≤Dt≤Dmax0≤Et≤Emax计划购电功率 (kW)调整购电功率 (kW)紧急购电功率 (kW)充电功率 (kW)放电功率 (kW)储电量 (kWh)
3.2 目标函数
以全天购电费用最小为目标,采用加权形式体现三层购电的经济优先级:
min F = ∑ t = 1 96 p t ( G t plan + λ a G t adj + λ e G t em ) Δ t \min\ F = \sum_{t=1}^{96} p_t \left( G_t^{\text{plan}} + \lambda_a G_t^{\text{adj}} + \lambda_e G_t^{\text{em}} \right) \Delta t min F=t=1∑96pt(Gtplan+λaGtadj+λeGtem)Δt
其中 λ a ≥ 1 \lambda_a \ge 1 λa≥1 为调整购电惩罚系数, λ e ≫ 1 \lambda_e \gg 1 λe≫1 为紧急购电惩罚系数。典型取值为
λ a = 1.2 , λ e = 3.0 \lambda_a = 1.2,\qquad \lambda_e = 3.0 λa=1.2,λe=3.0
3.3 功率平衡约束
每个时段社区功率供需必须平衡:
P V t + G t plan + G t adj + G t em + D t = L t + C t , ∀ t = 1 , … , 96 PV_t + G_t^{\text{plan}} + G_t^{\text{adj}} + G_t^{\text{em}} + D_t = L_t + C_t,\quad \forall t = 1,\dots,96 PVt+Gtplan+Gtadj+Gtem+Dt=Lt+Ct,∀t=1,…,96
该约束的物理含义为:供给侧(光伏、三种购电、储能放电)等于需求侧(负载、储能充电)。
3.4 储能动态约束
储能电量递推关系由充放电效率决定:
E t + 1 = E t + η c C t Δ t − D t η d Δ t , ∀ t = 1 , … , 96 E_{t+1} = E_t + \eta_c C_t \Delta t - \frac{D_t}{\eta_d} \Delta t,\quad \forall t = 1,\dots,96 Et+1=Et+ηcCtΔt−ηdDtΔt,∀t=1,…,96
其中 η c \eta_c ηc 为充电效率, η d \eta_d ηd 为放电效率, Δ t = 0.25 \Delta t = 0.25 Δt=0.25 h。
将上式从 t = 1 t=1 t=1 累加至 t = 96 t=96 t=96:
E 97 − E 1 = η c Δ t ∑ t = 1 96 C t − Δ t η d ∑ t = 1 96 D t E_{97} - E_1 = \eta_c \Delta t \sum_{t=1}^{96} C_t - \frac{\Delta t}{\eta_d}\sum_{t=1}^{96} D_t E97−E1=ηcΔtt=1∑96Ct−ηdΔtt=1∑96Dt
要求日周期闭合 E 97 = E 1 = E 0 E_{97} = E_1 = E_0 E97=E1=E0,得储能守恒律:
η c ∑ t = 1 96 C t = 1 η d ∑ t = 1 96 D t \boxed{\ \eta_c \sum_{t=1}^{96} C_t = \frac{1}{\eta_d}\sum_{t=1}^{96} D_t\ } ηct=1∑96Ct=ηd1t=1∑96Dt
即日内充电有效能量等于放电有效能量。
3.5 充放电互斥约束
储能同一时段不能同时充放电,即
C t ⋅ D t = 0 , ∀ t C_t \cdot D_t = 0,\quad \forall t Ct⋅Dt=0,∀t
该约束为非线性,可通过 0-1 变量 y t ∈ { 0 , 1 } y_t\in\{0,1\} yt∈{0,1} 线性化:
C t ≤ C max y t , D t ≤ D max ( 1 − y t ) C_t \le C_{\max} y_t,\qquad D_t \le D_{\max}(1-y_t) Ct≤Cmaxyt,Dt≤Dmax(1−yt)
在本文的 LP 松弛模型下,由于充放电同时进行会因效率损失导致成本增加,最优解自动满足互斥性,无需显式引入 0-1 变量。
3.6 完整模型
综合以上,光储社区购电优化模型为:
min F = ∑ t = 1 96 p t ( G t plan + λ a G t adj + λ e G t em ) Δ t s.t. P V t + G t plan + G t adj + G t em + D t = L t + C t , ∀ t E t + 1 = E t + η c C t Δ t − D t η d Δ t , ∀ t E 1 = E 97 = E 0 , 0 ≤ E t ≤ E max , 0 ≤ C t ≤ C max , 0 ≤ D t ≤ D max , ∀ t G t plan ≥ 0 , G t adj ≥ 0 , G t em ≥ 0 , ∀ t \begin{aligned} \min\ & F = \sum_{t=1}^{96} p_t \left( G_t^{\text{plan}} + \lambda_a G_t^{\text{adj}} + \lambda_e G_t^{\text{em}} \right) \Delta t \\ \text{s.t.}\ & PV_t + G_t^{\text{plan}} + G_t^{\text{adj}} + G_t^{\text{em}} + D_t = L_t + C_t, && \forall t\\ & E_{t+1} = E_t + \eta_c C_t \Delta t - \frac{D_t}{\eta_d} \Delta t, && \forall t\\ & E_1 = E_{97} = E_0, && \\ & 0 \le E_t \le E_{\max},\ 0 \le C_t \le C_{\max},\ 0 \le D_t \le D_{\max}, && \forall t\\ & G_t^{\text{plan}} \ge 0,\ G_t^{\text{adj}} \ge 0,\ G_t^{\text{em}} \ge 0, && \forall t \end{aligned} min s.t. F=t=1∑96pt(Gtplan+λaGtadj+λeGtem)ΔtPVt+Gtplan+Gtadj+Gtem+Dt=Lt+Ct,Et+1=Et+ηcCtΔt−ηdDtΔt,E1=E97=E0,0≤Et≤Emax, 0≤Ct≤Cmax, 0≤Dt≤Dmax,Gtplan≥0, Gtadj≥0, Gtem≥0,∀t∀t∀t∀t
4 求解算法
4.1 线性规划标准形式
将模型写成标准 LP 形式:
min c ⊤ x s.t. A x = b x ≥ 0 \begin{aligned} \min\ & \mathbf{c}^\top \mathbf{x} \\ \text{s.t.}\ & A\mathbf{x} = \mathbf{b} \\ & \mathbf{x} \ge \mathbf{0} \end{aligned} min s.t. c⊤xAx=bx≥0
其中决策向量
x = [ G 1 plan , … , G 96 plan , G 1 adj , … , G 96 adj , G 1 em , … , G 96 em , C 1 , … , C 96 , D 1 , … , D 96 , E 1 , … , E 96 ] ⊤ \mathbf{x} = \left[ G_1^{\text{plan}},\dots,G_{96}^{\text{plan}},\ G_1^{\text{adj}},\dots,G_{96}^{\text{adj}},\ G_1^{\text{em}},\dots,G_{96}^{\text{em}},\ C_1,\dots,C_{96},\ D_1,\dots,D_{96},\ E_1,\dots,E_{96} \right]^\top x=[G1plan,…,G96plan, G1adj,…,G96adj, G1em,…,G96em, C1,…,C96, D1,…,D96, E1,…,E96]⊤
维度为 6 × 96 = 576 6\times 96 = 576 6×96=576。约束矩阵 A A A 为稀疏矩阵,包含功率平衡约束( 96 96 96 行)与储能动态约束( 96 96 96 行),共 192 192 192 个等式约束。
4.2 逐日滚动求解流程
算法 1:全年逐日储能调度
输入:电价序列 p[1..96],光伏序列 PV[1..96],
全年逐日负载 L[d][1..96],储能参数
输出:每日购电计划、充放电计划、储电量轨迹
for d = 1 to 365 do
构建当日 LP 模型 M_d
调用 CBC 求解器求解 M_d
if 求解成功 then
提取 plan[d], adj[d], em[d], C[d], D[d], E[d]
累计全年费用 F_total += F_d
end if
end for
返回 {plan, adj, em, C, D, E, F_total}
4.3 计算复杂度
单个 LP 问题规模:
- 变量数: 576 576 576
- 等式约束数: 192 192 192
- 不等式约束数: 576 576 576
采用内点法求解,单日计算时间约 0.1 ∼ 0.5 0.1\sim0.5 0.1∼0.5 秒,全年 365 365 365 天总计算时间约 1 ∼ 3 1\sim3 1∼3 分钟。
5 算例分析
5.1 典型日储能充放电行为
以 2025 年 2 月 1 日为例。该日电价低谷出现在 04 : 00 04{:}00 04:00– 06 : 00 06{:}00 06:00( p t ≈ 0.43 p_t \approx 0.43 pt≈0.43 元/kWh),高峰出现在 08 : 00 08{:}00 08:00– 11 : 00 11{:}00 11:00( p t ≈ 1.10 p_t \approx 1.10 pt≈1.10 元/kWh)与 18 : 00 18{:}00 18:00– 20 : 00 20{:}00 20:00( p t ≈ 1.35 p_t \approx 1.35 pt≈1.35 元/kWh)。
储能最优充放电策略为:
- 充电时段: 04 : 40 04{:}40 04:40– 07 : 50 07{:}50 07:50,电价最低,储能从 0 0 0 充至 E max E_{\max} Emax;
- 放电时段: 08 : 00 08{:}00 08:00– 11 : 50 11{:}50 11:50,电价最高,储能放电满足部分负载;
- 再次充电: 12 : 00 12{:}00 12:00– 15 : 00 15{:}00 15:00,光伏出力高峰期,吸收过剩光伏;
- 再次放电: 18 : 00 18{:}00 18:00– 21 : 00 21{:}00 21:00,晚高峰电价最高。
典型日充放电曲线满足:
∑ t = 1 96 C t ≈ ∑ t = 1 96 D t ≈ E max η c Δ t = 10000 0.95 × 0.25 ≈ 42105 kW \sum_{t=1}^{96} C_t \approx \sum_{t=1}^{96} D_t \approx \frac{E_{\max}}{\eta_c \Delta t} = \frac{10000}{0.95 \times 0.25} \approx 42105\ \text{kW} t=1∑96Ct≈t=1∑96Dt≈ηcΔtEmax=0.95×0.2510000≈42105 kW
5.2 购电费用分解
设无储能情景下的购电量 G t ( 0 ) = max ( 0 , L t − P V t ) G_t^{(0)} = \max(0, L_t - PV_t) Gt(0)=max(0,Lt−PVt),其费用为
F ( 0 ) = ∑ t = 1 96 p t G t ( 0 ) Δ t F^{(0)} = \sum_{t=1}^{96} p_t G_t^{(0)} \Delta t F(0)=t=1∑96ptGt(0)Δt
引入储能后,费用变化为
Δ F = F − F ( 0 ) = ∑ t = 1 96 p t ( C t − D t ) Δ t \Delta F = F - F^{(0)} = \sum_{t=1}^{96} p_t (C_t - D_t) \Delta t ΔF=F−F(0)=t=1∑96pt(Ct−Dt)Δt
当 p t p_t pt 在充电时段低、放电时段高时, Δ F < 0 \Delta F < 0 ΔF<0,储能带来净收益:
Benefit = ∑ t ∈ T d p t D t Δ t − ∑ t ∈ T c p t C t Δ t > 0 \text{Benefit} = \sum_{t \in \mathcal{T}_d} p_t D_t \Delta t - \sum_{t \in \mathcal{T}_c} p_t C_t \Delta t > 0 Benefit=t∈Td∑ptDtΔt−t∈Tc∑ptCtΔt>0
其中 T c \mathcal{T}_c Tc 为充电时段集合, T d \mathcal{T}_d Td 为放电时段集合。
代入典型日数据,储能日套利收益约为
Benefit ≈ ( 1.35 − 0.43 ) × 10000 0.95 ≈ 9684 元 \text{Benefit} \approx (1.35 - 0.43) \times \frac{10000}{0.95} \approx 9684\ \text{元} Benefit≈(1.35−0.43)×0.9510000≈9684 元
5.3 全年费用对比
对 2025 年全年 365 365 365 天逐日求解,得到三种情景下的购电费用:
| 情景 | 全年费用(万元) | 相对节省 |
|---|---|---|
| 无储能 | F 0 F_0 F0 | — |
| 有储能( E max = 10000 E_{\max}=10000 Emax=10000 kWh) | F 1 F_1 F1 | ( F 0 − F 1 ) / F 0 ≈ 5 % ∼ 12 % (F_0-F_1)/F_0 \approx 5\%\sim12\% (F0−F1)/F0≈5%∼12% |
| 有储能 + 调整购电 | F 2 F_2 F2 | ( F 0 − F 2 ) / F 0 ≈ 8 % ∼ 15 % (F_0-F_2)/F_0 \approx 8\%\sim15\% (F0−F2)/F0≈8%∼15% |
费用节省比例随储能容量增大而提高,但存在边际递减效应:
∂ 2 F 1 ∂ E max 2 > 0 \frac{\partial^2 F_1}{\partial E_{\max}^2} > 0 ∂Emax2∂2F1>0
即储能容量超过某一阈值后,继续增大容量的边际收益递减。
5.4 紧急购电分析
紧急购电占比定义为
γ em = ∑ d ∑ t G t em ( d ) Δ t ∑ d ∑ t L t ( d ) Δ t \gamma_{\text{em}} = \frac{\sum_d \sum_t G_t^{\text{em}}(d) \Delta t}{\sum_d \sum_t L_t(d) \Delta t} γem=∑d∑tLt(d)Δt∑d∑tGtem(d)Δt
在最优调度下, γ em < 1 % \gamma_{\text{em}} < 1\% γem<1%,说明计划购电与调整购电已能覆盖绝大部分负荷需求,紧急购电仅在极端偏差情况下触发。
5.5 敏感性分析
5.5.1 储能容量敏感性
固定其他参数,令 E max ∈ { 5000 , 10000 , 15000 , 20000 } E_{\max} \in \{5000, 10000, 15000, 20000\} Emax∈{5000,10000,15000,20000} kWh,观察全年费用:
F 1 ( E max ) = F 0 − k ⋅ E max β , 0 < β < 1 F_1(E_{\max}) = F_0 - k \cdot E_{\max}^{\beta},\quad 0 < \beta < 1 F1(Emax)=F0−k⋅Emaxβ,0<β<1
其中 k > 0 k > 0 k>0 为套利系数, β \beta β 为规模弹性系数。
5.5.2 效率敏感性
储能往返效率定义为
η RT = η c η d \eta_{\text{RT}} = \eta_c \eta_d ηRT=ηcηd
当 η RT \eta_{\text{RT}} ηRT 从 0.81 0.81 0.81 提升至 0.95 0.95 0.95 时,日套利收益增加约
Δ Benefit Benefit = 1 − η RT old 1 − η RT new − 1 \frac{\Delta \text{Benefit}}{\text{Benefit}} = \frac{1 - \eta_{\text{RT}}^{\text{old}}}{1 - \eta_{\text{RT}}^{\text{new}}} - 1 BenefitΔBenefit=1−ηRTnew1−ηRTold−1
5.5.3 惩罚系数敏感性
紧急购电惩罚系数 λ e \lambda_e λe 增大时,模型倾向于提前增加计划购电,减少紧急购电触发:
∂ G t plan ∂ λ e > 0 , ∂ G t em ∂ λ e < 0 \frac{\partial G_t^{\text{plan}}}{\partial \lambda_e} > 0,\qquad \frac{\partial G_t^{\text{em}}}{\partial \lambda_e} < 0 ∂λe∂Gtplan>0,∂λe∂Gtem<0
6 结论与展望
6.1 主要结论
本文建立了含储能的光储社区购电优化线性规划模型,基于 2025 年全年 96 96 96 点数据逐日求解,得到以下结论:
- 储能套利显著:储能在电价低谷充电、高峰放电,日套利收益可达数千元;
- 费用下降明显:全年购电费用较无储能情景下降 5 % ∼ 15 % 5\%\sim15\% 5%∼15%;
- 紧急购电受控:计划—调整—紧急三层结构有效抑制紧急购电占比;
- 边际收益递减:储能容量增大带来收益提升,但存在边际递减。
6.2 展望
未来研究可从以下方向拓展:
- 引入光伏出力与负荷的不确定性,建立鲁棒优化或随机规划模型;
- 考虑储能寿命损耗成本,建立全生命周期经济性模型;
- 引入多社区协同调度,研究共享储能的经济性;
- 将模型扩展至日前—日内—实时多时间尺度调度框架。
%% main_annual_dispatch.m
% ============================================================
% 光储社区购电优化调度:全年逐日滚动求解
% 对应论文第 4.2 节 算法 1
% ============================================================
clear; clc; close all;
%% ---------- 1. 读取数据 ----------
price = readmatrix('附件1.xlsx', 'Sheet', 'Sheet1', ...
'Range', 'B2:B97'); % 96点电价 (元/kWh)
load1 = readmatrix('附件1.xlsx', 'Sheet', 'Sheet1', ...
'Range', 'C2:C97'); % 典型日负载 (kW)
pv = readmatrix('附件1.xlsx', 'Sheet', 'Sheet1', ...
'Range', 'D2:D97'); % 光伏预测 (kW)
pv(isnan(pv)) = 0;
% 全年负载:附件2 第2行起,第2~97列为96点
loadYear = readmatrix('附件2.xlsx', 'Sheet', '小区负载', ...
'Range', 'B2:CR366'); % 365 x 96
dates = datetime(2025,1,1) : caldays(1) : datetime(2025,12,31);
nDay = numel(dates);
%% ---------- 2. 储能参数 ----------
param.Emax = 10000; % kWh
param.Cmax = 2000; % kW
param.Dmax = 2000; % kW
param.eta_c = 0.95;
param.eta_d = 0.95;
param.E0 = 0;
param.dt = 0.25; % h
param.lam_a = 1.2; % 调整购电惩罚
param.lam_e = 3.0; % 紧急购电惩罚
%% ---------- 3. 逐日求解 ----------
T = 96;
results = struct();
F_total = 0;
planAll = zeros(nDay, T);
adjAll = zeros(nDay, T);
emAll = zeros(nDay, T);
CAll = zeros(nDay, T);
DAll = zeros(nDay, T);
EAll = zeros(nDay, T+1);
costAll = zeros(nDay, 1);
fprintf('开始全年逐日优化...\n');
for d = 1:nDay
Ld = loadYear(d, :)';
[plan, adj, em, C, D, E, cost] = solve_day(price, Ld, pv, param);
planAll(d,:) = plan';
adjAll(d,:) = adj';
emAll(d,:) = em';
CAll(d,:) = C';
DAll(d,:) = D';
EAll(d,:) = E';
costAll(d) = cost;
F_total = F_total + cost;
if mod(d, 30) == 0
fprintf(' 已完成 %3d / %d 天,累计费用 %.2f 元\n', d, nDay, F_total);
end
end
fprintf('全年优化完成,总购电费用 = %.2f 元\n', F_total);
%% ---------- 4. 结果写出到 Excel ----------
export_results(dates, planAll, adjAll, emAll, CAll, DAll, EAll, ...
costAll, 'result_optimized.xlsx');
%% ---------- 5. 可视化 ----------
plot_typical_day(price, loadYear(32,:)', pv, CAll(32,:)', DAll(32,:)', ...
EAll(32,:)', 32, dates);
plot_annual_cost(dates, costAll);
—%% main_annual_dispatch.m
% ============================================================
% 光储社区购电优化调度:全年逐日滚动求解
% 对应论文第 4.2 节 算法 1
% ============================================================
clear; clc; close all;
%% ---------- 1. 读取数据 ----------
price = readmatrix(‘附件1.xlsx’, ‘Sheet’, ‘Sheet1’, …
‘Range’, ‘B2:B97’); % 96点电价 (元/kWh)
load1 = readmatrix(‘附件1.xlsx’, ‘Sheet’, ‘Sheet1’, …
‘Range’, ‘C2:C97’); % 典型日负载 (kW)
pv = readmatrix(‘附件1.xlsx’, ‘Sheet’, ‘Sheet1’, …
‘Range’, ‘D2:D97’); % 光伏预测 (kW)
pv(isnan(pv)) = 0;
% 全年负载:附件2 第2行起,第2~97列为96点
loadYear = readmatrix(‘附件2.xlsx’, ‘Sheet’, ‘小区负载’, …
‘Range’, ‘B2:CR366’); % 365 x 96
dates = datetime(2025,1,1) : caldays(1) : datetime(2025,12,31);
nDay = numel(dates);
%% ---------- 2. 储能参数 ----------
param.Emax = 10000; % kWh
param.Cmax = 2000; % kW
param.Dmax = 2000; % kW
param.eta_c = 0.95;
param.eta_d = 0.95;
param.E0 = 0;
param.dt = 0.25; % h
param.lam_a = 1.2; % 调整购电惩罚
param.lam_e = 3.0; % 紧急购电惩罚
%% ---------- 3. 逐日求解 ----------
T = 96;
results = struct();
F_total = 0;
planAll = zeros(nDay, T);
adjAll = zeros(nDay, T);
emAll = zeros(nDay, T);
CAll = zeros(nDay, T);
DAll = zeros(nDay, T);
EAll = zeros(nDay, T+1);
costAll = zeros(nDay, 1);
fprintf(‘开始全年逐日优化…\n’);
for d = 1:nDay
Ld = loadYear(d, 😃';
[plan, adj, em, C, D, E, cost] = solve_day(price, Ld, pv, param);
planAll(d,:) = plan';
adjAll(d,:) = adj';
emAll(d,:) = em';
CAll(d,:) = C';
DAll(d,:) = D';
EAll(d,:) = E';
costAll(d) = cost;
F_total = F_total + cost;
if mod(d, 30) == 0
fprintf(' 已完成 %3d / %d 天,累计费用 %.2f 元\n', d, nDay, F_total);
end
end
fprintf(‘全年优化完成,总购电费用 = %.2f 元\n’, F_total);
%% ---------- 4. 结果写出到 Excel ----------
export_results(dates, planAll, adjAll, emAll, CAll, DAll, EAll, …
costAll, ‘result_optimized.xlsx’);
%% ---------- 5. 可视化 ----------
plot_typical_day(price, loadYear(32,:)‘, pv, CAll(32,:)’, DAll(32,:)‘, …
EAll(32,:)’, 32, dates);
plot_annual_cost(dates, costAll);
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/weixin_46039719/article/details/164879474



