做配电网规划或者新能源接入评估的朋友,应该都遇到过这种尴尬:方案汇报时只算了一个“最大负荷时刻”的潮流断面,结果现场运行没两天,电压越限和线路过载就找上门了。说到底,分布式电源和电动汽车都是典型的时序性元素——光伏白天高发、风电夜里抢出力、电动汽车偏偏爱在晚高峰扎堆充电。这几条曲线叠在一块儿,单靠一个静态断面根本看不出问题。我这段时间用IEEE33节点配电网系统搭了一个含风光分布式电源和电动汽车接入的潮流计算模型,专门把风光出力时序特性和充电负荷时序特性都放进去,对比不同接入场景下的电压分布、支路负载和网损变化,效果非常直观。这篇文章就把完整思路、模型构造、求解方法和调试经验都梳理出来,供正在做配电网仿真、毕业设计或者真实项目前期评估的同学参考。
1. 为什么是IEEE33节点:辐射配电网的“标准考试题”
1.1 系统结构与典型参数
IEEE33节点系统是一个经典的辐射状配电网算例,一共33个节点、32条支路,根节点编号是0,通过降压变压器从高压网络受电,系统基准电压通常取12.66kV,基准功率取10MVA。全网总的有功负荷大约3.715MW,无功负荷大约2.3Mvar,负荷沿着主干线和几条分支线分散布置。这个结构其实非常贴近现实中典型的10kV馈线:主干线比较长,末端离电源远,越靠近末端电压越低,重负荷时末端电压跌落问题非常明显。
当初我觉得IEEE33节点真正好用的地方在于,它的规模不大不小。节点太多(比如IEEE123节点)虽然更接近实际,但做机理分析时容易陷入细节;节点太少(类似单馈线3节点)又表达不出分布式电源接入位置不同带来的差异性。IEEE33节点恰好可以同时容纳“接入中段”“接入末端”“接入分支”这些典型位置,方便做多场景对比。而且它的线路参数是公开的标准值,阻抗、负荷分布都可以直接查到,仿真结果便于和文献对照,不容易出现“自己都不知道算得对不对”的情况。
1.2 分布式电源和电动汽车评估为何钟爱它
很多人一开始接触潮流计算都是输电网起步,那里R/X很小,潮流方向基本由电压相位差决定。但配电网完全不一样,线路电阻往往比电抗还要大,R/X比值可以达到1甚至2以上,电压降落中电阻分量占了很大一部分。这意味着分布式电源注入有功功率时,对节点电压的影响远比想象中大得多,甚至可能直接抬高节点电压造成过电压。
同时配电网是辐射状网络,潮流方向通常是从根节点流向各负荷节点。一旦接入的分布式电源容量超过当地负荷,功率就会反向流向上游,出现“反送电”。这种反向潮流会让某些节点电压升高,也可能导致馈线保护整定复杂化。既然要研究分布式电源和电动汽车接入后对配电网的影响,就必须找一个能体现这些特征的平台,IEEE33节点刚好都满足。我经常拿它当“标准考试题”——如果连IEEE33节点上出现的问题都把握不住,放到更复杂网架上也很难做准。
2. 风光时序特性和充电负荷一起建模:别再用“最大出力”糊弄事
2.1 风电出力的时序模型
风力发电的出力完全取决于风速。在做潮流计算时,不能把风电处理成恒定出力,而要建立风速到输出功率的转换关系。工程上最常用的是一组分段函数:
- 风速低于切入风速或高于切出风速时,出力为0;
- 风速在切入风速和额定风速之间,出力随风速按三次方关系上升;
- 风速达到额定风速后,出力恒定在额定容量。
举个例子,某台风机的切入风速是3m/s,切出风速25m/s,额定风速12m/s,额定容量500kW。那么风速从3m/s升到12m/s的区间里,功率曲线近似按风速三次方的比例缩放。算时序潮流时,可以取全年8760小时的风速数据,或者取某个典型日的24点风速序列,再按上述关系转成功率序列。还有一种更精细的做法是先用威布尔分布描述风速的不确定性,再通过蒙特卡洛抽样得到一天的随机风速场景,不过作为初步评估,用典型日实测或者参考数据集折算已经足够。
2.2 光伏出力的时序模型
光伏出力主要受太阳辐照度和温度影响。理想晴朗天气下,辐照度从早上升高、中午达到峰值、傍晚归零,类似一条平滑的抛物线。但现实中有云层遮挡,辐照度会出现分钟级波动,简单做法是用小时级辐照度曲线,如果需要研究短期波动对电压的影响,再加密到15分钟。
典型的光伏输出功率公式可以写成:
Ppv = η · S · I · [1 - 0.005 × (T - 25)]
其中 η 是综合光电转换效率,S 是光伏板总面积,I 是当前时刻的辐照度,T 是组件表面温度。可以看到温度越高,光伏出力反而下降一点点,中午前后如果组件温度到了50℃以上,实际出力会比按辐照度理想折算的值低一些。算时序潮流时,可以用一天24点的辐照度曲线,配合环境温度曲线,构造出一天内的光伏出力序列。这个序列和风电出力序列结合,就能得到分布式电源的24点“总注入曲线”。
2.3 电动汽车充电负荷的时序曲线
电动汽车和普通负荷最大的区别在于,它的充电行为具有明显的时段集中性。以居民区为主的配电网里,大部分私家车车主下班回家后就开始充电,时间段集中在傍晚18点到22点,这恰好和系统晚高峰重叠。如果不做任何控制,无序充电会进一步抬高晚高峰负荷,加大线路过载风险。
构建充电负荷曲线时,我习惯用蒙特卡洛模拟:设定电动汽车数量,假设每辆车的日行驶里程、起始充电时间服从一定的概率分布(比如起始充电时间在17点到21点集中),电池容量和充电功率也给出分布区间。然后抽样得到每一辆车的充电开始时间和持续时长,累加得到整个区域的全天充电负荷曲线。如果需要为了简化,也可以直接用一条典型曲线,比如晚上的负荷系数从18点开始爬升,20点达到峰值,23点回落。
关键点是“同时率”这个概念。100辆车同时接入,每一辆都按额定功率7kW计算,总充电需求是700kW,但因为每辆车开始充电时间有先后、充满电后功率下降,实际峰值可能是450kW左右。如果做规划时把700kW直接叠上去,结果会偏保守得过度,导致无谓的扩容投资;但如果把同时率忽略而只取平均,又容易低估晚高峰的电压问题。所以时序建模不是“加个曲线”这么简单,它要服务于你关注的指标。
3. 潮流计算模型与求解过程:从前推回代法到分布式电源处理
3.1 辐射配电网的潮流方程
配电潮流的求解方法很多,比如牛顿-拉夫逊法、前推回代法、隐式Zbus法等。对于IEEE33节点这种辐射状网络,最经典、最容易编程实现的是前推回代法。它的基本思路是反复交替执行两步:
第一步,回代(从末端到源端)——已知各节点电压初值,从末端节点出发,根据节点功率和当前电压计算流向该节点的支路功率或电流。公式可以写成:
Pi + jQi = 节点注入功率考虑负荷和分布式电源折算后的净功率 Iij = ((Pi + jQi) / (Vi * 共轭))
也就是将支路电流从负荷端往上累加,得到每条支路流向源端的电流。
第二步,前推(从源端到末端)——从根节点已知的电压开始,逐段往下推算各节点电压:
Vj = Vi - Z_ij · I_ij
其中 Z_ij 是节点 i 到节点 j 之间的线路阻抗。每一步都更新节点电压,然后用新电压再重复回代,如此反复直到最大电压偏差小于设定的收敛精度(比如10^-6)。
用基尔霍夫电压定律套一遍就能理解:潮流从树根流向树梢,每个节点电压等于上游节点电压减去这一段线路上的电压降落。当某个节点注入功率变化时,线路电流变了,电压降落也跟着变,最终所有节点电压会稳定在一个新的运行点上。
3.2 分布式电源和电动汽车怎么进入潮流方程
把分布式电源和电动汽车负荷接入潮流模型时,不能把它们直接“甩”进去,需要根据它们的控制特性设置节点类型。
- 恒功率并网的分布式电源,比如经过逆变器控制的光伏、储能变流器,常设置为PQ节点。在潮流计算中,有功出力为正值,无功出力按功率因数设定(比如0.95滞后吸收无功或0.9超前进相调节电压)。严格说就是把节点功率再减去这个注入功率。
- 采用恒电压控制的光伏逆变器,或者风电场如果配备动态无功补偿装置,可以处理成PV节点。这时需要额外迭代修正无功输出,让该节点电压保持在设定值附近。
- 电动汽车充电负荷,正常充电时属于PQ负荷,有功为正值,无功视功率因数而定(通常较好,功率因数接近1)。如果考虑车网互动放电(V2G),那么电动汽车在放电时段相当于一个负的PQ负荷,只要在对应时段把节点注入功率加上放电功率即可。
处理起来的核心思路就是“把DG和EV折算成节点注入功率”,正的注入就是输出,负的注入就是负荷。所有节点完成功率折算后,再统一做前推回代求解。
3.3 配电网潮流计算的收敛问题
我实际调试中遇到最多的问题是DG容量设置得不收敛,特别是靠近根节点接入大容量恒功率DG时,前推回代法容易震荡不收敛。原因不复杂——DG注入功率过大,导致局部节点电压高于根节点电压,反向潮流和电压抬升同时出现,而简单PQ模型没有限制电压范围,迭代时就容易发散。
常规做法是设置合理的初值,通常所有节点电压初值取1.0标幺。如果还是不收敛,就要检查DG接入容量是否合理,或者在迭代中加入阻尼系数。对于PV节点,还需要对无功出力做限幅,一旦达到无功上限,就退回PQ模型。这些细节虽然在标准教材里只是一句话,实际做的时候却能卡住你好几个小时。
3.4 算例参数准备
为了后面的场景对比,我整理了一张简化版的IEEE33节点参数表,方便快速搭建模型。这里列出一部分典型节点数据,完整数据可以从公开的IEEE测试馈线资料里找到。
| 节点编号 | 注入有功/kW | 注入无功/kvar | 说明 |
|---|---|---|---|
| 0 | 平衡节点 | 平衡节点 | 根节点,电压约1.0标幺 |
| 7 | 200 | 100 | 中段居民混合负荷 |
| 18 | 90 | 40 | 末端负荷 |
| 21 | 90 | 40 | 分支负荷 |
| 25 | 420 | 200 | 较重负荷 |
实际做时序潮流时,每个时刻都要重新组装节点注入功率。把风电、光伏和充电负荷都乘以各自的时序曲线,才能得到这一时刻的全网负荷。
4. 场景设计:接入位置、容量和时序方案怎么搭才有意义
4.1 分布式电源接入位置和容量原则
分布式电源接入哪里,直接决定它对电压的影响方向和程度。在IEEE33节点上,我把风光电源分成几种策略:
- 方案A:DG集中接入末端节点(比如节点18)。这是最“激进”的接入方式,好处是可以明显抬升末端电压,改善线路重载时的低电压问题;但坏处是光伏大发时末端电压可能过高,甚至超过限值。
- 方案B:DG分散接入中段节点(比如节点8、22、25)。这种方式更贴近实际,因为屋顶光伏通常分布在多个位置。
- 方案C:DG全部集中在根节点附近(比如节点1)。相当于在电源侧附近发电,对下游电压改善作用非常有限,价值不大。
容量方面,我一般取系统峰值负荷的20%~50%作为分布式电源总容量,比如IEEE33峰值负荷大约3.7MW,那么分布式电源总容量可以取0.75MW到1.5MW之间。容量设太小,影响被噪声淹没,看不出问题;容量设太大,潮流直接发散,失真了。
4.2 电动汽车渗透率和时段设置
电动汽车负荷同样要确定规模和空间分布。我的做法是假设节点7、10、18、25、32等居民集中节点各接入一定数量的电动汽车,总规模取常规车辆数的10%~30%。每辆车用7kW慢充,起始充电时间按概率分布抽样。为了对比有序充电,我还设计了“错峰充电”场景——通过分时电价引导,让大部分车辆从23点后开始充电,把晚高峰腾出来。
因为需要研究全天变化,我采用典型日时序方式:一天按96点或24点时间刻度,分别生成风电出力系数、光伏出力系数和充电负荷系数,然后代入潮流计算。这种方式比8760小时计算量小很多,又能体现“午后光伏高发、夜间风电抬升、晚高峰电动车集中充电”这三个关键时间窗。
4.3 对比场景矩阵
我一直觉得,做接入评估不看对照,结果会让你完全迷失。所以至少要有以下几个场景:
| 场景编号 | 分布式电源 | 电动汽车 | 时段 |
|---|---|---|---|
| S0 | 无 | 无 | 全天 |
| S1 | 风光接入 | 无 | 全天 |
| S2 | 风光接入 | 无序充电 | 全天 |
| S3 | 风光接入 | 有序错峰充电 | 全天 |
对比S0和S1,可以单独观察DG接入后的电压抬升和线损改变;对比S1和S2,可以观察EV无序充电给晚高峰带来的额外压力;对比S2和S3,则能看出有序充电的回归效果。这套矩阵不复杂,但能覆盖大部分规划人员关心的场景。
5. 算例结果暴露出的三个核心矛盾:电压越限、支路过载、DG消纳困难
5.1 午后光伏大发时的电压抬升
我在模拟场景S1里看到最明显的现象是:午后12点到14点之间,光伏出力达到全天最高,如果分布式电源集中在末端节点18附近,那么节点18的电压会从基准值的1.015一路抬升到1.045左右。如果把光伏容量再加大,甚至会接近1.06标幺,已经触碰到电压合格范围的上限。
这个现象背后的物理过程很直观:光伏出力大了,末端负荷又没那么多,多余功率就顺着馈线往根节点方向送,线路压降方向反过来了。原本从根节点到末端是电压不断降低,现在末端反而出现电压抬升。在实际工程中,这就是常见的“高渗透率分布式电源接入导致电压越限”的典型场景。要解决,一是靠逆变器无功吸收,把电压拉回来;二是靠储能或负荷侧响应,在光伏大发时段增加本地消纳。
5.2 晚高峰EV无序充电时的低电压
到了18点到22点,光伏出力已经归零,风电出力虽然在爬升但未必能覆盖晚高峰,这时电动汽车开始集中充电。在场景S2里,节点25(本身负荷较重)叠加电动车后,该段支路负载率从45%直接冲到78%,节点25的电压从0.962又跌到0.938附近,已经低于0.95的合格下限了。
这段结果告诉我们:EV无序充电的本质是在系统最疲弱的时段又加了一份重担,而且这份重担还非常集中。如果在规划中只算一个“常规日最大负荷”断面,很可能会把EV充电时段正好错过,计算结果自然乐观得离谱。做了时序潮流之后,你才能看到电压谷值发生在哪个小时、支路负载率峰值发生在哪个小时,这些信息直接决定要不要增加线路容量、要不要配置储能。
5.3 网损随DG渗透率的变化不是单调的
这个可能是很多人会忽略的地方。不少人的直觉是“分布式电源靠近负荷,所以网损一定会降低”,但实际并不全对。在场景S1里,初期增加DG容量时网损确实下降了,因为DG就地供应了一部分负荷,线路潮流减小。但当DG容量超过该馈线负荷的某个比例后,多余功率开始反送,反而导致部分线路电流增加,网损又回升了。存在一个“最优渗透率”区间。
我们算例里,当DG容量从0增加到1.2MW时,网损从大约170kW下降到115kW左右;再增加到1.8MW,部分支路出现反向潮流,网损又反弹到135kW以上。这个曲线在规划阶段非常值得画出来。很多人不理解为什么“绿电发多了电网反而更耗”,其实就是反送电流在线路上产生的热损耗。
6. 实际调试中绕不开的几个坑与工具建议
6.1 负荷时序数据从哪来
如果有实测数据那最理想,直接把某条馈线的负荷曲线拿过来用。没有实测的话,可以用公开的典型日负荷曲线,或者按“冬季、夏季、过渡季”各取一个代表日。再不行,可以从负荷模型库里把居民、商业、工业的日负荷系数表借用过来,乘上节点峰值负荷,就能得到一组有波动的时序负荷。关键是记录你的数据出处和假设,否则结果很难复现。
6.2 前推回代法不收敛时怎么调整
排错顺序我一般固定如下:
第一,检查节点功率是否输错符号。分布式电源注入功率希望是负值还是根据公式处理?搞反了就会奔放。第二,检查线路参数是不是用了欧姆值还是标幺值,阻抗基值是否匹配。第三,检查PV节点的无功是否越界。如果无功早就越限,按PV节点算就会反复震荡。第四,检查DG总容量是否超过该馈线可消纳水平。如果大得离谱,潮流本身可能就不存在,得降容量再算。
这三板斧下来,绝大多数不收敛问题都能解决。
6.3 推荐工具链:从自己写代码到开源库
我自己早期用MATLAB手写前推回代法,写清楚一次之后,对算法理解非常深刻,建议准备做研究的人至少手写一遍。不过日常做项目时,效率更重要,我会用Python加pandapower,几行就能搭出IEEE33节点模型,做时序潮流非常方便。示例代码块如下:
import pandapower as pp import pandapower.networks as pn net = pn.case33bw() net.ext_grid["vm_pu"] = 1.0 # 在节点18添加光伏电源,有功功率0.5MW pp.create_sgen(net, 18, p_mw=0.5, q_mvar=0.0) # 在节点25添加EV充电负荷0.3MW pp.create_load(net, 25, p_mw=0.3, q_mvar=0.0) pp.runpp(net) print(net.res_bus[["vm_pu", "p_mw"]])节点编号、电压等级、线路阻抗这些在pandapower里都已经帮你封装好了,你只需要把自己的时序功率叠加上去,然后循环调用runpp。我建议先用这段代码跑通基本潮流,再手写前推回代法去对照结果,互相印证,不容易出错。
6.4 结果校验的经验
论文或报告里总不能只放一张电压曲线图,还需要和基准情况做校验。我的习惯是先把无DG无EV的基准潮流算出来,然后和公开文献里IEEE33节点基准潮流结果对比,如果网损和最低电压点位置都能对得上,就说明建模没问题。接着再逐步加入DG、EV,看每一层的变化趋势是否符合物理直觉。比如DG加入后,近电源点电压上升、网损先降后升,这些趋势如果反常,一定是某个环节忘记了符号或者时序曲线叠加错了。
最后说点实际操作中的体会
玩这套模型有一阵子,我最大的感受是:时序潮流计算的价值不在于把曲线画得多漂亮,而在于它能逼着你去想“哪个时刻、哪个节点、哪条支路才是真正的最短板”。很多静态潮流里看起来还不错的接入方案,放到时序场景里马上露馅;反过来,有些静态判断说“不行”的方案,在时序场景里可能通过错峰、有序充电就变得完全可用。所以我的建议是,做这类评估时,不要一上来就追求最复杂的8760小时仿真,先选定一个典型日、建好基准场景、跑几组对比曲线,等把机理弄明白,再逐步扩大时间尺度和场景数量。另外一个小技巧是:画结果图的时候,把“电压最低的节点曲线”和“负载率最高的支路曲线”单独挑出来,比画全网的斑马线图要有用得多。这样的一套流程走下来,你对配电网、分布式电源和电动汽车之间的互动关系,心里会踏实不少。