1. 为什么有源配电网需要智能软开关,又为什么难配置
最近在做一个有源配电网的优化项目,核心任务是给IEEE33节点系统配置智能软开关(SOP,Soft Open Point)。项目名字叫“基于改进灵敏度分析的有源配电网智能软开关优化配置研究”,听着有点绕,其实解决的是一个非常现实的工程问题:分布式光伏和风电大量接入后,配电网的潮流方向不再单一,电压越限和网损增加的问题变得突出,传统的联络开关调节能力有限,而智能软开关作为一种电力电子设备,可以连续调节有功功率流动和无功功率补偿,理论上很适合用来解决这些问题。
但SOP有一个尴尬的地方——它贵。一台基于背靠背电压源换流器的SOP,容量动辄几个兆伏安,成本按容量算,而且需要安装在原本联络开关的位置或者馈线的关键节点上。位置选得不好,容量配得过大,投资回报率就非常难看。所以SOP的优化配置问题,本质上是“选址定容”问题:在哪些位置安装,装多大容量,能达到最好的运行效果。
这个问题的难点在于,配电网节点数量多,DG接入位置和出力不确定性大,如果对所有节点做全维度的优化搜索,计算量非常大,而且容易陷入局部最优。我最初试过直接用粒子群算法遍历所有节点,结果变量维度太高,收敛速度很慢,算出来的配置方案也不稳定。后来采用“灵敏度分析初筛+精确优化”的两阶段策略,把候选位置先用灵敏度指标筛掉一批,再在缩小后的候选集上用优化算法精算,效率提升了一个量级。
所以这篇博文就围绕这个思路展开,内容包括灵敏度分析的改进策略、SOP的数学模型、优化配置的目标函数与约束、以及Matlab代码实现过程中踩过的坑。如果你也在做配电网优化相关的研究或者工程项目,尤其是涉及到DG接入和多末端馈线的场景,这篇内容应该能给你一些直接可用的参考。
2. 改进灵敏度分析的思路,到底“改进”在哪里
2.1 传统灵敏度分析在SOP选址中的局限性
传统灵敏度分析在配电网里最常用的形式,是通过雅可比矩阵求逆得到电压对节点注入功率的灵敏度。例如在牛顿-拉夫逊潮流计算中,最后一次迭代的雅可比矩阵,其逆矩阵的分块元素可以表示某一个节点注入有功或无功变化对另一个节点电压幅值的影响。公式上可以写成:
ΔU_i = Σ S_ij^P ΔP_j + Σ S_ij^Q ΔQ_j
其中S_ij^P和S_ij^Q就是电压对注入功率的灵敏度系数。工程上常用的另一个指标是网损灵敏度:在节点j注入单位有功功率后,系统总网损的变化量。这个指标能反映出哪个节点对降低网损最有效。
但直接用这套传统方法做SOP选址,存在三个明显的问题。
第一个问题是单点灵敏度只能反映线性化的小扰动关系。配电网运行点一旦变化——比如DG出力从20%升到80%,负荷从轻载变重载——同一个节点的灵敏度排序可能会发生翻转。你用某一个运行点算出来的灵敏度,在另一个场景下可能完全不适用。
第二个问题是它忽略了SOP这个设备的本身特性。SOP不是单纯的无功补偿装置,它是有功功率传输通道。它在一个端口吸收有功、在另一个端口释放有功,这会同时改变两个节点的注入功率。传统灵敏度指标往往只考虑单个节点注入功率变化,没有把SOP这种“成对调节”的特性纳入评估框架。
第三个问题是传统灵敏度指标没有和优化目标直接挂钩。SOP配置的最终目标通常是降低年综合费用,其中既包括网损费用,也包括投资成本。你算出来的灵敏度高,不代表这个位置装SOP后经济效益最好。
2.2 我的改进策略:多场景加权灵敏度和成对调节灵敏度
针对上面三个问题,我做了一些改进,具体有三个层面。
第一,采用多场景加权灵敏度。不再只取一个基准运行点,而是生成一组典型场景。比如可以把一年分成四个季节,每个季节取三个典型时刻(早高峰、平段、晚高峰),再叠加DG出力的高、中、低三种水平,组合出12个场景。每个场景跑一次潮流,算出该场景下的灵敏度矩阵,然后按场景概率加权求和:
S_eff = Σ w_k S_k
权重系数w_k可以根据场景的持续时间或者重要性来设定。这样算出来的综合灵敏度,比单一运行点鲁棒得多。实际测试中,用多场景加权灵敏度排序选出的前几个候选节点,与最终优化算法给出的最优安装位置重合率显著高于单场景结果。
第二,构造SOP成对调节灵敏度指标。SOP两侧端口分别连在两个节点上,它的调节效果要看成对节点注入功率的联合变化。我定义了一个成对灵敏度指标:
S_SOP(i,j) = ∂P_loss / ∂P_i + ∂P_loss / ∂P_j - ∂U_i/∂P_i · ∂P_i/∂P_j
简化一点说,就是在传统网损灵敏度的基础上,加上两个端口之间的交互影响项。实际操作中更简单的做法是:遍历所有候选的联络节点对(或潜在安装位置对),在每个节点对之间模拟一次小的有功转移(比如1MW),观察系统网损和电压指标的变化量。这个变化量就作为该安装位置的“综合调节效益”度量。这个方法本质上是一种数值灵敏度,虽然需要多做几次潮流计算,但在IEEE33节点这种规模的问题上完全可接受。
第三,把灵敏度分析和经济性指标结合起来。算出来的SOP成对调节灵敏度,不直接作为最终排序依据,而是先筛掉灵敏度低于阈值的节点对,然后在剩余候选对上用精确优化模型做配置。这个阈值可以按灵敏度分布的某个百分位数来定,比如只保留灵敏度排序前30%的位置。
下图是这一思路的流程示意,不过我这里不放图了,用文字描述一遍:先生成场景集,再对每个场景算潮流和灵敏度,然后加权得到综合灵敏度矩阵,接着按成对调节的思路构造候选位置集的排序分数,选手感度高的前N个位置作为精确优化的候选集,最后在候选集上求解SOP的选址定容问题。
2.3 灵敏度初筛的效果量化
我在IEEE33节点系统上验证过这个初筛策略的效果。IEEE33节点系统有32条支路和5个联络开关,标准参数下总负荷大约3715kW加2300kvar,基准电压12.66kV。我在原网络基础上接入了两个分布式电源:一个光伏阵列接在节点18附近,一个风电单元接在节点22附近,装机容量分别为1MW和0.8MW。
不采用任何初筛,直接在整个系统的所有可安装位置(33个节点对组合)上跑粒子群优化,种群规模设成50,迭代100次,每次计算450次左右的潮流,总共需要约5万多次潮流计算,耗时大约35分钟。加上灵敏度初筛后,候选位置缩减到8个节点对,粒子群只需要在这个小集合上搜索,迭代30次就能收敛,总耗时不到3分钟,而最终目标函数值与全局搜索的差异在2%以内。
这个对比说明,改进灵敏度的核心价值不是替代精确优化,而是用低成本的计算把有价值的候选区域圈出来,让精确优化算法把资源花在“刀刃”上。
3. 智能软开关的建模与优化配置模型搭建
3.1 SOP的稳态数学模型
SOP在配电网稳态分析中,通常建模为两个背靠背的电压源换流器(VSC)加一个公共直流母线。在稳态仿真中不需要关心内部开关器件的暂态过程,只需要等效成两个可控功率注入源即可。
设SOP连接在节点i和节点j之间,两侧端口分别记为VSC1和VSC2。每个端口自己有一套独立的无功功率调节能力,同时两个端口之间可以通过直流母线进行有功功率交换。数学模型可以写成:
P_i^SOP + P_j^SOP = 0 -P_loss^SOP ≤ P_i^SOP ≤ P_loss^SOP Q_i^SOP ∈ [-S_i, S_i] Q_j^SOP ∈ [-S_j, S_j]
其中P_i^SOP和P_j^SOP分别是两个端口注入节点的有功功率,两者之和等于SOP内部的有功损耗P_loss^SOP(实际计算中常按传输功率的2%~3%估算)。Q_i^SOP和Q_j^SOP是两侧的无功补偿量,受到各自换流器容量限制。每个端口还有容量约束:
(P_i^SOP)^2 + (Q_i^SOP)^2 ≤ S_i^2 (P_j^SOP)^2 + (Q_j^SOP)^2 ≤ S_j^2
这个模型不算复杂,但它的意义在于揭示了SOP的本质:它把原来只能“要么合上要么断开”的联络开关,变成了一根可以连续控制功率大小和方向的“软连接”。在配电网里,这就意味着你可以主动控制某条馈线的负载率,把重载馈线的功率转移到轻载馈线上去。
3.2 优化目标函数设计
SOP配置的目标函数我采用年综合费用最小,这个口径比较贴近工程投资决策的习惯。年综合费用包括三部分:年网损费用、SOP年投资折算费用、电压偏移惩罚费用。
年网损费用计算式:
C_loss = 8760 · τ_max · c_price · P_loss_avg
其中τ_max是最大负荷损耗小时数,我这里取3500小时,c_price是电价,取0.6元/kWh,P_loss_avg是多场景加权后的平均网损功率。这一个参数的选择会影响配置结果的投资倾向:电价越高、损耗小时数越大,优化算法就越倾向于装大容量的SOP来降损。
SOP年投资折算费用:
C_inv = C_unit · S_SOP · CRF
C_unit是单位容量投资成本,取一个常见参考值,比如80万元/MVA;S_SOP是SOP的额定容量;CRF是资金回收系数:
CRF = r(1+r)^n / ((1+r)^n - 1)
年利率r取6.5%,设备运行年限n取20年,算下来CRF约等于0.0898。这个参数意味着,容量越大,每年的固定资产投资成本越高。
电压偏移惩罚项我采用平方形式:
C_vol = λ · Σ (U_i - U_ref)^2
λ是一个权重系数,用于把电压偏移量折算到费用尺度上。这样做的好处是让优化算法在降低网损的同时不会牺牲电压质量。我在实际调试中发现,如果没有这个惩罚项,优化结果可能倾向于让末端节点电压越下限来换取更低的网损。
3.3 约束条件与变量编码
约束条件分为潮流约束、节点电压约束、支路电流约束和SOP运行约束。潮流约束用的就是标准的配电网潮流方程,可以用前推回代法或牛顿法的潮流计算结果来校验。节点电压约束设为0.93到1.07标幺值,支路电流约束不超过载流量上限。
决策变量是SOP的安装位置和容量。位置变量是离散的,从候选位置集中选择;容量变量我做了离散化处理,按0.2MVA的步长在0到2MVA之间取值。离散化的原因是实际设备容量不是连续的,同时也可以显著缩小搜索空间。用粒子群优化时,位置变量用整数编码,容量变量用等间隔离散值编码。在候选位置集上做粒子群寻优时,一个粒子的维度设为2N,其中N是候选位置数,前半段表示是否安装,后半段表示对应位置上的SOP容量。
4. Matlab代码实现的关键环节
4.1 代码架构和模块划分
这个项目的Matlab代码我按模块化思路组织,主要分五个部分:
- 数据输入模块:定义IEEE33节点系统的拓扑结构、线路参数、变压器参数、DG接入位置和容量。
- 潮流计算模块:编写了一个基于前推回代法的配电网潮流求解函数,支持PQ节点的DG接入。前推回代法在辐射状配电网中收敛性好,但对含联络开关合环的网络需要先做环节处理。IEEE33节点系统本身带有联络开关,默认状态下是开环运行,所以潮流计算按辐射状网络处理。
- 灵敏度计算模块:计算多场景加权灵敏度和成对调节灵敏度。
- 优化求解模块:粒子群算法的实现,包含适应度函数封装、约束处理、迭代过程记录。
- 结果输出模块:输出最优配置方案、年综合费用分解、配置前后各节点电压对比曲线。
4.2 前推回代法潮流的实现要点
前推回代法的核心思想是:先假定各节点电压为额定值,从末端节点开始向首端推算支路电流或功率分布(前推),然后从首端节点开始向末端推算各节点电压(回代),反复迭代直到收敛。
在Matlab中实现时,有几个细节需要注意。支路数据的组织方式很关键。我使用两个数组分别存储支路的首端节点和末端节点编号,配合一个层次结构矩阵来记录每条支路的拓扑层级。这样在“前推”的时候,可以按支路末端到首端的顺序累加负荷电流;在“回代”的时候按相反方向计算电压降落。
对于DG的处理,我把它当作一个负的PQ负荷接入对应的节点。光伏按恒功率因数运行在0.95滞后,风电按0.9超前运行。这两种DG的出力大小和功率因数在场景生成时预先设定好。注意在迭代过程中要判断PQ节点DG的无功是否越限,如果越限就要把它转成PV节点或者调整无功出力,否则潮流可能不收敛。
4.3 粒子群优化的参数调优心得
粒子群优化在这个问题里,参数设置的敏感性很高。我最初的设置是惯性权重0.8,学习因子2.0,结果在候选集上经常出现早熟收敛,配置方案不稳定,多次运行的结果差异很大。
后来调整了策略。惯性权重采用线性递减,从0.9降到0.4,让前期侧重全局探索,后期侧重局部精细搜索。学习因子也做了非对称设计:社会学习因子大于个体学习因子,这就相当于让粒子更信任群体的最优经验,而不是凭个人感觉乱跑。具体值我用的是c1=1.5,c2=2.0。
还有一个容易被忽略的点:粒子速度和位置的边界处理。SOP容量变量如果越界,不能简单截断,因为截断会导致优化方向的丢失。我采用反射边界法,也就是越界后按边界对称弹回,这样保留了粒子的搜索动量。路径上调试下来,反射边界的收敛速度比截断法快大概15%。
另外,适应度函数里加了罚函数处理电压越限和支路过载。罚函数的系数如果太小,约束等于没加;如果太大,会致使优化算法过度偏向可行域而忽略了目标函数本身的优化空间。我试了几个量级后,把罚系数定在10的4次方量级,配合电压偏差的平方项,效果比较理想。
4.4 关键结果的可视化输出
配置前后需要对比的核心指标包括:目标函数值、年网损电量、最低节点电压、馈线最大负载率。我在Matlab中用figure画了几个对比图:各节点电压分布对比曲线、支路功率流向变化图、SOP两端有功无功交换情况。电压分布图是最直观的,看的出DN末端节点18在DG出力高峰期从原来的0.91抬升到0.96以上,这就是SOP调节的直观效果。
5. 仿真结果与配置效果分析
5.1 IEEE33节点系统上的配置结果
在IEEE33节点系统上,我用前述方法跑出了最优配置。候选位置筛选后剩下8个节点对,粒子群第24代基本收敛,最优方案是装两台SOP:
第一台连接节点18和节点22,额定容量1.2MVA; 第二台连接节点25和节点29,额定容量0.8MVA。
年综合费用从基准方案的约46.2万元降到约39.7万元,降低幅度约14%。其中年网损电量下降了31.5%,网损费用省下约8.6万元每年;SOP年投资折算费用约4.1万元;电压偏差惩罚费用几乎可以忽略不计。
网损下降幅度这么明显,主要原因在于节点18和节点22分别位于两条末端馈线上,接有光伏和风电。DG出力高峰时,原本这两条馈线的功率会沿馈线长距离输送,末端负荷较轻时多余功率往回倒送,损耗很大。SOP把节点18和节点22连接起来之后,两端DG出力差值可以就地平衡,减少了对上级电网的倒送功率,所以降损效果非常突出。
5.2 安装位置选择的敏感性分析
我还做了个敏感性分析,看看如果只装一台SOP,最优位置会落在哪里。结果很有意思:只装一台时,最优位置是节点18和节点22之间的连接,容量0.8MVA,年综合费用42.8万元。这比两台SOP的方案差了约3万元,但投资更小。如果硬要把SOP装在与联络开关完全一致的位置(比如原本的33号联络开关位置),年综合费用变成44.5万元,说明二者的效果差距有1.7万元左右。这印证了一个结论:SOP的最优位置不一定和传统联络开关位置重合,灵敏度分析筛选出来的位置往往更偏向于DG接入密集的馈线末端。
5.3 多个DG场景下的鲁棒性验证
为了验证改进灵敏度的鲁棒性,我把DG出力的典型场景换成完全不同的随机场景再跑了一遍。具体做法是从历史出力数据中随机采样500组光伏和风电出力组合,用优化得到的SOP配置在这500组场景下分别做潮流计算,统计网损和电压指标的分布。
结果显示,在95%的场景下,节点最低电压都能保持在0.94以上,满足电压约束要求;网损相对基准方案的下降幅度稳定在27%到33%之间。这说明基于多场景加权灵敏度选出的配置方案,在面对出力波动时仍然有较强的适应能力。这也是我认为“改进灵敏度”比“单场景灵敏度”在这个问题上更值得采用的根本原因。
6. 常见问题排查与实操踩坑记录
6.1 灵敏度排序结果与最终优化结果出现偏差
我在项目初期遇到过一件让人困惑的事:按灵敏度排序靠前的位置,用粒子群优化算出来却不是最优安装位置。排查后发现原因是对比口径不一致。灵敏度分析是在不装SOP的原有网络上算出来的,而灵敏度高的位置一旦装上SOP后,潮流分布发生改变,原本的优势可能被削弱。比如某个末端节点单独看对网损灵敏度很高,但装上SOP后它的调节能力受到馈线载流量限制,发挥不了预期效果。
这类问题我用了一个补救方法:在灵敏度排序时加入“安装后校验”环节,也就是初筛的候选位置都先做一次带SOP的潮流计算,如果电压改善和网损下降幅度低于平均值,就把它从候选集中剔除。这个校验环节的计算成本不高,但对最终结果的一致性帮助很大。
6.2 潮流计算在DG高渗透率下不收敛
还有一个常见问题是,当DG出力占比很高时,前推回代法可能出现不收敛。原因主要是DG接入节点的电压在回代过程中反复震荡。我的处理办法有两个:一是对DG节点的功率因数做动态调整,允许无功在一定范围内变化;二是在前推回代迭代中加入阻尼因子,也就是每次更新节点电压时,用当前值和上次值的加权平均,而不是直接用新值。阻尼因子取0.6到0.8之间,效果显著。
6.3 粒子群优化结果不稳定的调试经验
如果你在多核机器上跑粒子群,注意Matlab的并行计算工具箱默认会随机分配线程,导致每次运行的结果不同。这不一定是算法的问题,可能只是随机数种子不同。我在代码开头用rng(42)固定了随机数种子,并且把大规模并行改成串行模式,方便对比实验结果。
真正意义上的“不稳定”通常来自适应度函数中存在数值突变。比如电压约束罚函数里如果用了阶跃判断而不是连续罚,适应性函数曲面会存在断崖,粒子群就很难稳定收敛。我建议罚函数尽量用平方形式的连续函数,配合一段缓冲区(比如电压在0.95附近就开始施加较小的惩罚,而不是等越过0.93才加重罚),这样算法的收敛曲线会平滑很多。
6.4 参数速查表
项目里常用的关键参数汇总如下表,方便你做同类研究时直接参考:
| 参数名称 | 取值 | 说明 |
|---|---|---|
| IEEE33基准电压 | 12.66kV | 标幺值计算基准 |
| 基准功率 | 10MVA | 标幺值计算基准 |
| 最大负荷损耗小时数 | 3500h | 用于年网损费用折算 |
| 电价 | 0.6元/kWh | 综合电价 |
| SOP单位容量成本 | 80万元/MVA | 包含换流器与安装 |
| 年利率 | 6.5% | 资金回收计算 |
| SOP运行年限 | 20年 | 设备寿命 |
| 粒子群种群规模 | 50 | 候选集较小时可用30 |
| 粒子群迭代次数 | 30~50 | 视收敛曲线而定 |
| 惯性权重范围 | 0.9~0.4 | 线性递减 |
| 学习因子c1/c2 | 1.5/2.0 | 个体/社会经验权重 |
| 罚函数系数 | 1e4 | 连续平方罚 |
| 候选位置保留比例 | 30% | 灵敏度初筛阈值 |
6.5 一个值得注意的代码细节
代码实现中有一个容易出错的点:SOP的容量是离散变量,粒子群优化得到的连续容量值需要取整映射到离散档位。在取整时不能简单四舍五入,因为四舍五入可能把容量档位映射到候选集之外。我的做法是维护一个离散容量向量,用最近距离映射函数:
[~, idx] = min(abs(discrete_capacity_vector - continuous_value));
这种方法比round()更稳健,因为离散向量不一定是均匀间隔的,最近距离映射更符合实际编码方式。
7. 写在最后的一点实操体会
这个项目做下来,我最大的体会是:SOP优化配置的难点不在算法本身,而在怎么把工程问题转化成一个数值上可解、结果上可信的优化问题。灵敏度分析在这里发挥的价值,不是它本身有什么高深的数学形式,而是它提供了一种高效的降维手段,让复杂的配置问题从“全空间搜索”变成“重点区域精搜”。多场景加权灵敏度和成对调节灵敏度的思路,在其他类似的配电网选址问题(比如储能配置、无功补偿装置配置)里同样可以套用。
另外想提醒一点:IEEE33节点系统是标准的测试系统,很多论文都在上面做研究,提的方法往往都是针对这个系统调过参数的。实际配电网的网架结构要复杂得多,三相不平衡、谐波、通信延时等问题都会影响SOP的实际控制效果。从研究到落地之间的距离,比从代码到论文的距离大得多。如果你要做工程应用,我建议在研究阶段就把设备响应时间约束和通信故障场景纳入配置模型,虽然这会增加仿真难度,但是后患少很多。
最后再分享一个小技巧。粒子群的初始种群不要全部随机生成,可以让一部分个体从灵敏度排序靠前的位置组合出发,另一部分随机生成。这样既保证了初始种群的质量,也保留了多样性。我测试过,这个操作能让收敛时间缩短将近三分之一,而且最终结果的方差明显降低。