先说一个做调度项目时经常让人头疼的矛盾:光伏和负荷的预测误差是随着时间尺度缩短而逐步缩小的,但调度决策一旦定下来,想回头改的代价却越来越高。如果只做一个时间尺度的优化,无论算法本身多漂亮,落地运行中总会出现两种结果——要么日前计划太激进,日内根本执行不下去;要么太保守,储能设备白白闲置,该削的峰没削到,该填的谷也没填上。这也是我最终把方案改成“粒子群算法 + 多时间尺度 + 模型预测控制滚动优化”这套组合的直接原因。
这篇文章想聊的,就是这个组合到底怎么搭起来的:日前层为什么选粒子群而不是一上来就上MPC,日内和超短期层为什么又必须切换到MPC滚动优化,三级时间尺度各自的目标函数怎么设计、多目标加权怎么处理,以及整个方案在Matlab里落地时那些文档里不会写清楚的事。适合正在做微电网、智能配电网调度,或者纯粹想搞懂PSO和MPC怎么协同工作的朋友,也适合拿Matlab做仿真的同学作为参考。
1. 三级时间尺度拆解的逻辑:日前、日内、超短期分别解决什么问题
1.1 单一优化窗口为什么管不住新能源波动
先看一个最简单的场景:你做一个24小时的日前调度,用某组历史数据预测了光伏出力曲线和负荷曲线,然后求解出一个蓄电池充放电计划。结果到了第二天,上午十点突然来了一片云,光伏出力比预测值跌了40%。你的日前计划是上午十点让蓄电池放电配合高峰负荷,现在光伏一跌,系统功率缺口比预期大了一圈,储能却已经在按计划放电、没有多少余量。这时候日内调度能做什么?只能干着急。
问题出在预测精度上。光伏功率预测的误差有个基本规律:时间尺度越长,误差越大。24小时级别的预测误差普遍在15%到25%以上,4小时到1小时级别的日内预测能把误差压到10%上下,而15分钟级别的超短期预测误差可以控制在5%以内。只用日前单层优化的话,相当于你拿最粗糙的预测数据去做最不可逆的决策,结果自然不稳定。
所以调度架构必须跟着预测精度走:先把粗颗粒度的计划定下来,然后随着时间推进、预测数据变准了,再去修正短期内的操作。这就是多时间尺度调度最本质的出发点。
1.2 三层时间尺度的窗口设计与刷新频率
我在项目中采用的划分方式比较经典,也是现在论文和工程里最常见的做法:
| 时间尺度 | 预测窗口 | 时间分辨率 | 刷新频率 | 主要职责 |
|---|---|---|---|---|
| 日前调度 | 未来24小时 | 1小时 | 每24小时一次 | 制定全天充放电计划、联络线功率计划 |
| 日内调度 | 未来4小时 | 15分钟 | 每1小时滚动刷新 | 修正日前计划,应对负荷和新能源预测偏差 |
| 超短期调度 | 未来1小时 | 5分钟或15分钟 | 每15分钟滚动刷新 | 平抑快速功率波动,跟踪日内计划 |
这套设计有几个关键点需要展开说。
首先是时间窗口的重叠设计。日内层往前看4小时、每1小时刷新一次,刷新后窗口整体平移一个小时,这个设计是有讲究的:它保证了相邻两次滚动优化之间有4/1=4倍的冗余度,即使某一次优化因为预测突变给出了不太合理的控制量,下一次刷新也有机会修正回来。超短期层的窗口和刷新频率同理,只是把时间尺度缩小到了分钟级。
其次是时间分辨率的匹配问题。日前层用1小时间隔,是因为24小时×1小时刚好生成24个点,决策变量的维度合适,PSO搜索空间不会爆炸。日内层用15分钟是因为在这个时间尺度下追逐5分钟级的变化没有意义——预测模型根本撑不起那么细的精度。超短期层把分辨率压缩到5分钟到15分钟,才能对光伏云层遮挡这种秒级到分钟级的变化做出响应。
这里有一个新手经常犯的错误:把三层的时间分辨率全设成一样,比如全都用15分钟。表面上看是简化了实现,实际上把多时间尺度的意义抹掉了一半。日内层用15分钟分辨率往前看4小时,那是16个控制点,可在超短期层里,15分钟分辨率往前看1小时才4个点,控制器还没反应过来窗口就滚完了。三层的时间分辨率理应是逐级加密的。
1.3 各层预测信息的不确定性差异决定了策略差异
三层之间最本质的区别不是窗口和分辨率,而是“你所面对的预测不确定性有多大”。这个区别直接决定了各层目标函数的设计方向。
日前层的预测不确定性最大,所以它不应该过度追求精细跟踪,它的任务是把储能安排在大概率正确的时段,确保全天经济性最优。日内层面对的是中等级别的预测误差,这时候就需要在保持经济性的前提下,让实际出力尽量贴近日前计划——否则联络线功率会超出合同约束,产生考核费用。超短期层面对的预测误差最小,但此时扰动也最频繁,控制目标应该转向功率平抑:减少出力波动、延长储能寿命、维持系统稳定性。
在代码实现层面,三层需要传递的数据也不同。日前层传给日内层的是一整天的计划值序列,日内层把未来4小时的计划从全局计划中截取出来作为跟踪参考;日内层传给超短期层的则是未来1小时的高分辨率计划值。每层优化结束后,还要把最新的储能SOC、实际出力值回传给上一层,作为下一轮滚动优化的初始状态。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 日前调度层:PSO寻优框架与多目标加权目标函数设计
2.1 目标函数怎么构造:经济性、跟踪偏差与SOC三方取舍
日前调度层是整个调度架构的“大盘子”,它的目标函数必须兼顾多个方面。我在项目里选了三个最核心的目标:运行经济性、日前计划跟踪偏差、储能SOC维持。
经济性目标很好理解,就是让系统总运行成本最小,包括购电成本、储能充放电老化成本、弃光惩罚等。用公式表示的话:
matl复制
