微网与外部电网电力调控策略:两版解答与独立复核
本站同时收录 C 题的两版完整解答,可在每个结果区块自由切换对照。gpt6 astra 是先完成的原始解答;claude code opus5 是在对其做逐项独立复核后、修正三处建模选择重算的版本。复核确认 gpt6 astra 的物理可行性与全部表格数值均可复现、无计算错误;修正后 2 月至 12 月总费用下降 —。判定解质量的标尺是完美预见下界——把全年真实数据全部告知模型所能达到的费用,任何因果策略都不可能更低;修正后四个方案距该下界 1.16–1.25 倍,修正前为 1.43–1.69 倍。
A gpt6 astra
原始解答。10 分钟步长、四问完整建模:问题一确定性线性规划;问题二至四采用加权历史预测、分位数安全裕量与日内滚动储能控制。负载用最近 28 天滑动加权预测;安全裕量分位数按报童临界值取 α=0.8;问题三的减量按“原电费照付+加收 50%”结算;日内控制对期末储电量采用单边缺额惩罚。
B claude code opus5
复核修正版。保留物理模型与因果信息边界,改三处:预测式改为同星期加权(负载与电价的滞后 7 天自相关达 0.987 与 0.963,滑动平均会把周周期平均掉);减量按 $0.5p_t$ 结算(题面口径);期末储电量改为线性计价。α 随之重标定为问题二 0.65、问题三 0.50。四方案总费用合计降 —。
两版共用同一份附件数据、同一物理约束与同一“0:00 不得使用当日之后信息”的边界,因此费用差异可归因于口径与参数,而非数据或求解器。
四问核心结果(claude code opus5)
解质量的标尺
两版的费用对比
柱高为 2025-02-01 至 12-31(334 天)累计费用,分为计划购电费、调整费用与紧急购电费三类。1 月用于预测暖启动,不计入。
01 题意、口径与符号
四问要求
- 问题一
- 电价、负载、光伏预测已知且每天相同,储能首尾电量相等,求 0:00 制定的计划购电策略。确定性线性规划。
- 问题二
- 电价固定,负载与光伏随日变化;0:00 定计划,供电不足时按 5 倍电价紧急购电。
- 问题三
- 0/6/12/18 时可获未来 24 小时整点光伏预报,可调整计划;减量按 50% 电价违约结算,增量按 150% 电价结算。
- 问题四
- 电价实时波动,重算问题二与问题三。
储能与运行参数(附录 1)
- 最大容量
- 12 000 kWh,运行区间 1 200–10 800 kWh
- 充放电功率
- ≤ 5 000 kW(电网侧),即每 10 min ≤ 833.33 kWh
- 充放电效率
- 各 90%,循环效率 81%
- 初始电量
- 2025-01-01 0:00 为 6 000 kWh
- 时间步长
- 10 min,每日 144 段
时间标签口径
符号
| 符号 | 含义 | 单位 |
|---|---|---|
| $d,\;t$ | 日期;日内时段,$t=1,\dots,144$ | — |
| $L_t,\;V_t$ | 时段负载电量、光伏发电量 | kWh |
| $g_t^0,\;g_t$ | 0:00 计划购电量、最终常规购电量 | kWh |
| $e_t$ | 紧急购电量(5 倍电价) | kWh |
| $c_t,\;b_t$ | 电网侧充电输入、放电输出 | kWh |
| $s_t$ | 时段开始时储电量 | kWh |
| $w_t$ | 弃用电量 | kWh |
| $\hat p_t,\;p_t$ | 预测电价、实际结算电价 | 元/kWh |
| $\eta,\;M$ | 单程效率 0.9;每时段功率限额 833.33 | —,kWh |
统一物理约束
式 (4) 的互斥性在允许无成本弃电时自动成立:若同时充放电,将 $c_t$ 减 $\delta$、$b_t$ 减 $\eta^2\delta$ 可保持 $s_{t+1}$ 不变而增加可弃电量,故连续松弛加 $10^{-7}$ 元/kWh 循环惩罚即可,求解后逐时段复核。
02 数据总览
全年逐日负载、光伏与电价
逐日汇总。附件 4 的波动电价按当日成交量加权前的简单均值绘制。
负载与光伏的日内 × 全年分布
横轴为日期,纵轴为小时(整点聚合)。用于观察季节性与日内形态。
预测精度(策略可用信息)
净负载 $L-V$ 的日总量预测误差标准差约 1.8 万 kWh,而储能可用容量仅 9 600 kWh。这决定了问题二中日级不确定性无法由电池对冲,必然产生紧急购电。
03 问题一:确定性计划购电
附件 1 的电价、负载与光伏预测视为已知输入,紧急购电为零,储能首尾电量均为 6 000 kWh。
全天调度
储能在低价时段与光伏富余时段充电,在高价时段放电。12:00 附近仍出现购电,是为后续高价时段储备,不能只看当前光伏是否充足。
04 问题二:固定电价、负载与光伏不确定
预测与安全裕量
0:00 决策时只能使用当日之前的历史数据。负载用最近 28 天、对近期与同星期日加权;光伏用最近 7 天指数加权:
用最近 28 个已完成日的净负载预测误差构造分位数裕量:
0:00 计划优化
日内储能滚动控制
计划固定后,每 10 分钟以实际储电量为初值、对剩余时段重优化电池与预计紧急购电,仅执行首段:
式 (10) 中 $-\lambda_d s_{145}$ 为期末储电量的线性价值项:储电可结转次日,因此富余电量入池优于弃电。gpt6 astra 此处使用单边缺额惩罚 $\lambda_d\max\{0,6000-s_{145}\}$,对高于目标的电量零估值,导致把大量免费富余电量弃掉而后续再以 5 倍电价紧急补电——这是修正的第二处偏差(见 第 09 节)。式 (11) 禁止借紧急购电给电池充电。最终账单
05 问题三:预报更新与计划调整
预报对齐
附件 3 的“预报 h 小时”对应发布后第 h 个整点。以发布时刻刚结束时段的实测光伏为左端锚点,连接未来整点预报后线性插值到 10 分钟;发布时刻之后的实际值不参与插值,信息边界严格因果。
结算与调整决策
记相对 0:00 计划的增、减量 $a_t=(g_t-g_t^0)_+$、$h_t=(g_t^0-g_t)_+$。题面“计划购电量高于调整购电量的部分,违约电价是交易时刻电价的 50%”,即未提取的电量按 $0.5p_t$ 结算:
在更新时刻 $k\in\{36,72,108\}$(6:00 / 12:00 / 18:00),以最新光伏预报、负载偏差修正与同发布时刻的历史误差裕量,对未执行区间 $\tau\ge k$ 重解式 (9),目标改为式 (13) 的可变部分:
是否需要引入其他时刻的预报
在同一负载预测、同一裕量与同一实时规则下,枚举 6/12/18 时三个更新时刻的全部 8 种组合,组合预先固定、逐日按时间运行。
三个时刻各自的边际价值
18 时的边际价值最大:该更新恰好覆盖傍晚至夜间的用电高峰,而此时光伏已基本退出,净负载的绝对量最大、预报的相对增益也最大。
结论对结算口径的依赖
06 问题四:波动电价
决策时未来电价未知。0:00 用最近 14 天指数加权均值预测,日内以最近 1 小时的价格预测偏差向未来指数衰减外推(时间常数 6 小时),当前时段用实测价;结算一律采用附件 4 交付时段的实际电价。
平滑历史预测无法预知短期尖峰;日内逐步修正,并优先用储能规避高价补电。完整实际曲线仅用于回测展示。
对应问题二(固定 0:00 计划)
对应问题三(允许 6/12/18 时调整)
07 方案对比
月度费用与紧急购电量
安全裕量分位数的敏感性
横轴为式 (8) 的分位数 α。gpt6 astra 按“1−1/5=0.8”的报童临界分位数取 α=0.8;实际最优值明显不同(问题二 α=0.95 但曲线极平,问题三 α=0.35),因为电池已吸收了部分误差、且富余电量在修正后的调度中可入池而非全额损失。
样本内外一致性
α 是唯一在全样本上标定的参数(每个模型一个标量)。将 334 天切成 2–6 月与 7–12 月两段分别汇总,所选 α 在两段均为最优或与最优相差 <1%,说明该标定不是只在某一段有效。
两套独立实现的交叉校验
交付的 MATLAB 实现与一套独立的 Python/HiGHS 实现逐项比对,用于排除编程错误。完整记录见支撑材料 交叉校验记录.txt。
08 验证与复核
独立复核范围
- 用独立代码从附件 1 重解问题一线性规划,对照 gpt6 astra 的目标值与全部表格数值。
- 对 gpt6 astra 四个主方案的 365×144 个时段,逐段复核供需平衡式 (1)、电池递推式 (2)、容量与功率上下限、充放电互斥、跨日电量连续性;claude code opus5 的四个方案同样逐段复核。
- 按式 (12)(13) 用附件 4/附件 1 的实际电价独立重算三类费用,与两版 JSON 的逐日金额对照。
- 把五份 result*.xlsx 的每一个单元格与计算值对照(计划表 334×144、调整表 334×144、充放电表 334×6、紧急购电表逐区间)。
- 检查信息因果性:0:00 计划不依赖当日之后的实测负载、光伏与电价。
物理约束复核结果
09 两版差异与修正依据
复核确认 gpt6 astra 没有算错:物理约束、数值一致性、文件一致性与信息因果性全部通过。两版的差异只在“目标函数与预测式写成什么”这一层。下表在同一套 MATLAB 实现内逐项叠加各处修正,因此排除了实现差异与求解器差异的干扰。可以看到预测式的选择是第一驱动因素,单独贡献 −24.6% 至 −30.8%,远大于任何调度技巧。
10 结果工作簿在线查看
下列内容与 result1.xlsx…result4-3.xlsx 的工作表逐格一致,可直接在线核对,无需打开 Excel。两个版本的工作簿都在这里,可用左侧「版本」下拉切换:claude code opus5 为推荐提交版(文件名即题目要求的 resultN.xlsx),gpt6 astra 为原始解答(文件名带 _gpt6-astra 后缀)。
11 MATLAB 源程序
提交的源程序为 MATLAB 代码,共 — 行、— 个文件,入口 main.m。下列代码按 MATLAB 编辑器的配色显示:注释绿、关键字蓝、字符串紫。运行环境为 MATLAB R2020b 及以上 + Optimization Toolbox;缺少 linprog 时 linprog_solve.m 自动改用 GLPK,缺少 Excel 读写能力时改读写 CSV,因此同一份代码在 MATLAB 与 GNU Octave 下都能运行。
论文公式与代码实现的对照
正文 19 个编号公式逐一对应到源码位置。对照关系由生成程序按锚点文本自动解析,源码改动后行号随之更新,不会出现过时的引用。
源码浏览
12 论文、支撑材料与导出
📄 建模论文
按竞赛论文格式规范排版:摘要页起连续编页,正文含 19 个编号公式、39 个表、15 幅图(本站图表已尽数并入),附录含支撑材料文件列表与完整 MATLAB 源程序。Word 版与 PDF 同源,公式为 Word 原生公式对象,可直接编辑。
下载 PDF 下载 Word 承诺书与编号页📦 支撑材料
MATLAB 源程序(20 个 .m 文件,入口 main.m)、五份 result 工作簿、四份逐时段运行明细、预报组合与分位数灵敏度的完整扫描、物理约束检验与交叉校验记录、复现说明。
💻 源程序说明
程序为 MATLAB 代码(R2020b + Optimization Toolbox)。无 linprog 时自动改用 GLPK;无 Excel I/O 时改读写 CSV。本次交付的全部数值在 GNU Octave 9.2.0 + GLPK 下实跑产生,非未经运行的代码。
结果文件与中间结果
两个版本各五份结果工作簿、逐时段明细 CSV 与本站全部数据均可下载。resultN.xlsx 为 claude code opus5(推荐提交版,文件名即题目要求),resultN_gpt6-astra.xlsx 为 gpt6 astra。表格旁的 CSV / XLSX 按钮可导出当前显示的任意表格。