先问自己一个问题:配电网里装了光伏、储能、充电桩之后,无功电压还压得住吗?我做主动配电网优化调度那段时间,一开始觉得无功优化是个老掉牙的问题,传统配电网里靠有载调压分接头和并联电容器就能解决,直到分布式电源渗透率上来,拓扑从单电源辐射变成多电源双向潮流,电压波动、越限、倒送等问题一下子全冒出来了,这才发现静态无功优化完全不够用,必须把时间维度加进去做动态无功,同时还要对抗分布式电源出力的不确定性——这就是这个项目“主动配电网动态无功两阶段鲁棒优化”要解决的痛点。
这个项目核心就三件事:第一,把无功力优化放进多时段滚动框架,考虑各设备动作成本,避免分接头和电容器频繁操作;第二,用两阶段鲁棒优化对抗光伏和负荷的不确定性,保证最恶劣场景下电压也不越限;第三,用Matlab+YALMIP+商业求解器把整套模型落成可运行的代码,附上Column-and-Constraint Generation迭代框架,解决你“模型会建但代码不会写”的问题。这套东西特别适合正在做配电网方向研究的研究生、刚接触鲁棒优化的工程师,以及想快速跑通一个两阶段鲁棒案例再往深度改论文的同行。
1. 整体设计与思路拆解:为什么非要用两阶段鲁棒
1.1 动态无功解决的“动作次数”难题
所谓动态无功优化,说人话就是把原本一个时间断面的无功优化,扩展成24小时甚至更长时间尺度的多断面联合优化。传统静态优化每个断面独立求解,看着每个时段的电压和网损都挺漂亮,但把结果拉出来看,有载调压变压器可能一小时动作8次,并联电容器一天投切十几回,这些离散设备是有机械寿命的,动作这么频繁,现场根本不敢用。动态优化的本质,就是在目标函数里引入动作成本,用网损和电压偏差去换设备的动作合理性。
我在建模时把设备分了两类:一类是离散设备,包括OLTC档位、电容器组投切,这些动作慢、有机械约束,放到第一阶段,作为一个“here and now”决策提前定下来;另一类是连续可调设备,比如逆变器的无功出力和储能无功,这些响应快,可以放到第二阶段,根据实际光伏出力情况实时调整。这两类设备的物理特征完全不同,正好对应两阶段鲁棒优化的天然分工。
1.2 不确定性的来源与鲁棒化的必要性
光伏出力和负荷预测不可能完全准。我在算例里看到过这样的情况:某天中午预测光伏出力是2MW,实际云层一遮只有1.2MW,如果按预测值去配置无功,电压会往下掉一大截,甚至低于0.95p.u.。你要是做确定性优化,这种场景根本看不见,等现场出了问题再调逆变器,往往已经越限了。
鲁棒优化的思路是不算命,只画圈——我不需要知道光伏出力服从什么概率分布,只需要知道它会落在某个不确定集合内,我做的决策要保证这个集合里任意一个场景都不越限、不失稳。这一点在实际工程里非常实用,因为光伏出力的概率分布很难精确建模,但你告诉运行人员“最差情况我都能扛住”,对方反而容易接受。
1.3 为什么选两阶段而不是单阶段鲁棒
单阶段鲁棒是所有的决策都在不确定性揭示之前做,为了保证可行性,所有设备都必须按照最坏场景一次性定死,做出来的结果会非常保守——明明大多数日子光伏都挺稳,但你要按全年最差云况去配置无功源,光伏逆变器可能长期满发无功,损耗巨大。
两阶段鲁棒的核心区别在于“应对能力”。第一阶段先定OLTC档位和电容器投切这类慢动作设备,第二阶段等光伏出力实际出来后,再用逆变器无功等快动作设备去“接住”不确定性。这样既保证任何场景下都可行,又不会把所有设备都锁死在最悲观的状态。从数学上讲,这就是一个嵌套的min-max-min结构,外层的第一阶段决策求最小成本,中间的不确定变量求最大(最坏场景),内层的第二阶段决策再求最小成本。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 两阶段鲁棒优化的数学建模要点
2.1 目标函数与动作惩罚的平衡
目标函数
