ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

分布式电源接入配电网的节点电压影响与仿真分析

分布式电源接入配电网的节点电压影响与仿真分析 1. 项目背景与选题价值每一次看到有人选“分布式电源接入对配电网节点电压的影响”这个题目我都觉得挺对路子的——因为这个问题不止是学术练习它几乎是分布式光伏、风电、储能大规模接入后基层电网运行人员每天早上都会遇到的真实困扰。简单说这个项目的核心对象是一个标准的9节点配电网模型研究对象是分布式电源Distributed GenerationDG比如屋顶光伏、小型风电场、用户侧储能接入后系统各个节点的电压会发生什么变化。你可能会想电压变化有什么好研究的电网本来就有电压波动。但分布式电源接入带来的电压问题和传统负荷变化引起的电压问题机理完全不同一个在末端多发了点功率节点电压可能直接越上限烧掉用户设备反过来如果接入位置不合适末端电压照样低到不达标DG装了对电压改善毫无帮助。这个项目适合三类人参考。一是电力系统方向的学生做课程设计或者毕业课题需要快速搭建一个能说明问题的仿真模型二是刚接触配电网规划的工程师想搞明白分布式电源的接入位置、接入容量到底怎么影响电压避免以后做方案时全靠经验拍脑袋三是做光伏、储能项目开发的人经常要和电网对接懂一点电压影响逻辑沟通方案时能少被“专业玄学”绕晕。我自己在复现这个题目的过程中踩了不少坑也梳理出一套相对顺手的分析路径。比如9节点系统怎么搭才合理、DG用PQ节点还是PV节点建模、潮流迭代为什么不收敛、电压越限怎么定位。这些细节在教科书里往往一笔带过但实操中全是拦路虎。下面我按自己的实操顺序把这些内容完整整理出来尽量做到你能照着思路自己从头做一遍。2. 电压为什么会被分布式电源改变要想搞懂DG对节点电压的影响先要搞清楚配电网电压的本质规律。中压配电网一般是10kV或20kV的辐射状网络功率从变电站母线单向流向末端负荷。这个过程中线路阻抗会造成电压降落所以正常运行时线路末端的电压总是比首端低这就是“电压沿馈线递减”规律。电压降落的具体计算并不复杂。对于一条线路段其首末端电压差近似等于ΔU ≈ (P×R Q×X) / U其中P是有功功率Q是无功功率R和X分别是线路的电阻和电抗。这个公式看起来平平无奇但它背后隐藏了配电网和输电网最重要的区别——配电网线路的R/X比值远比输电网大甚至可能超过1也就是说电阻分量不能忽略。这一点直接决定了分布式电源调压策略的取向在输电网里调无功Q效果显著在配电网里调有功P同样能明显改变电压。在不含DG的原始网络中馈线各节点从变电站汲取有功和无功P和Q都是正值有功潮流和无功潮流都从首端流向末端电压沿馈线逐步下降。DG接入后情况完全不同。DG会向节点注入有功功率这个注入功率会在本节点及上游线路上产生一个“反向”的电压抬升相当于把原来电压曲线整体往上顶。顶多少取决于DG出力和接入点位置。接入点越靠近线路末端电压抬升越显著。原因是末端原本电压跌落最大相当于一个很深的坑DG在这里注入功率就像往坑里填土效果立竿见影。如果DG接在变电站母线附近母线电压本身由主网电压支撑DG注入功率几乎不会引起电压变化相当于把它放在了一个水位恒定的大水池边上加水也看不出水位涨。这里有一个新手容易犯的理解误区以为DG只在接入的那个节点抬升电压。实际不是它会抬升该节点以及所有上游节点的电压影响范围是DG接入点往电源方向的整条路径。DG容量越大抬升量越大当DG出力大于本地负荷时多余功率还会倒送上游这就是潮流反向。潮流反向对电压的影响特别值得警惕——倒送功率在阻抗上一样会产生压降但方向相反可能让原本电压偏高的上游节点更高甚至全线电压都逼近上限。所以分析DG对电压的影响本质上就三件事算清楚DG注入功率大小算清楚注入点在哪算清楚这个注入在电网上引起的电压增量是多少。这三件事叠加在原始电压分布曲线上就是接入后的节点电压结果。这个逻辑贯穿整个项目后面所有仿真分析都是围绕它展开的。3. 节点电压法与潮流计算模型要定量算电压就不能只停留在定性理解必须建立数学模型。配电网稳态分析最常用的方法就是潮流计算而潮流计算的基础又是节点电压法。节点电压法的核心思想是对电力网络中的每个节点根据基尔霍夫电流定律建立方程把网络所有支路的电压电流关系用节点导纳矩阵Y统一表达然后列写矩阵方程I Y·U这个方程把问题从“逐条线路算电压降落”升级成了“全网节点电压联立求解”。对9节点这样的小型网络导纳矩阵只有9×9规模手工列写虽然麻烦但不复杂。真正麻烦的是配电网中节点注入电流不是常量而是随电压变化的功率所以需要把功率方程代入通过迭代逼近真实解。配电网潮流计算有好几种方法经典的牛顿-拉夫逊法、快速解耦法以及配电网领域特别常用的前推回代法。我自己在这个项目里更推荐前推回代法原因有三点。第一前推回代法物理概念非常直观就是反复从一个电源点出发顺着馈线推算各节点的功率分布再从末端往回推算电压分布循环迭代到收敛。这种迭代路径和配电网单电源辐射状结构完全一致不像牛顿法那样需要处理复杂的Jacobian矩阵实现起来容易得多。第二前推回代法对R/X比较大的配电网收敛性比牛顿法更好。牛顿法在R/X大时Jacobian矩阵的条件数会变差容易出现迭代震荡甚至不收敛。我见过不少人用牛顿法算配电网潮流反复调整初值都不收敛最后发现换前推回代一步到位。第三前推回代法处理DG接入很方便。DG在潮流模型里一般作为PQ节点指定有功和无功出力处理只需在节点注入功率中加上相应的负负荷即可不需要修改迭代主流程。不过要说明如果你用的是现成仿真软件算法已经被封装了你不需要自己实现迭代流程但理解原理对排查问题帮助很大。比如仿真算着算着报“潮流不收敛”如果你懂节点电压法的原理就会知道大概率是模型参数有问题而不是软件坏了。在建立9节点配电网潮流计算模型时有几类节点要分清楚。变电站母线作为平衡节点电压幅值和相角固定通常取1.0 p.u.普通负荷节点作为PQ节点有功无功已知电压待求DG接入节点在简化分析中也按PQ节点处理有功出力由DG容量决定无功出力取决于功率因数。如果光伏逆变器带电压控制功能可以建模为PV节点电压目标值固定无功出力待求但这种模型会改变迭代结构初学时建议先从PQ节点做起。4. 9节点系统建模与仿真搭建说完原理到了动手建模的环节。9节点系统并没有一个全球统一的“标准测试系统”不像IEEE 14节点、IEEE 30节点那样有公开标准数据。所以实操中9节点网络通常是参考IEEE 13节点、IEEE 33节点等经典辐射状配电网的结构自行简化而来的。我采用的做法是搭一个10kV中压辐射状馈线系统变电站出口接一条主干馈线带若干个负荷节点部分节点带分支。下面是我实际使用的系统参数供参考。变电站母线为平衡节点电压10.5kV线路采用架空线单位阻抗取R0.27Ω/kmX0.35Ω/km线路总长度根据节点间距设定。系统总负荷有功约3.8MW无功约1.2Mvar分布在各个节点上末端节点负荷偏重模拟实际馈线中末端压降最大的特点。系统拓扑结构如下表所示节点节点类型负荷有功(kW)负荷无功(kvar)上级线路长度(km)1平衡节点---2PQ3501200.83PQ4201401.24PQ5001601.05PQ4501501.56PQ5201701.27PQ4801501.88PQ3801201.09PQ7002401.5这个参数下未接入DG时的计算结果是节点1电压1.0 p.u.沿馈线逐步下降末端节点9电压约为0.93 p.u.——已经低于0.95 p.u.的合格下限。这个基线很重要它给后面DG接入的改善效果提供了参照。如果原始电压本身就高DG接入很容易越上限反而不利于做“改善”的结论所以设定基线时要心里有数。仿真工具我用的是Python的pandapower库它是专门做配电网分析的库API简洁文档齐全非常适合做这类课题。核心代码如下。安装只需一条命令pip install pandapower。import pandapower as pp import pandapower.networks as pn # 创建一个空的配电网模型 net pp.create_empty_network(sn_mva10) # 创建节点 bus1 pp.create_bus(net, vn_kv10.5, name变电站母线) for i in range(2, 10): pp.create_bus(net, vn_kv10.0, namef节点{i}) # 连接线路 # 线路参数r_ohm_per_km, x_ohm_per_km, c_nf_per_km, max_i_ka line_para dict(r_ohm_per_km0.27, x_ohm_per_km0.35, c_nf_per_km0.0, max_i_ka0.4) line_lengths [0.8, 1.2, 1.0, 1.5, 1.2, 1.8, 1.0, 1.5] for i, length in enumerate(line_lengths): pp.create_line_from_parameters( net, from_busbus1 if i 0 else i, to_busi 1, length_kmlength, **line_para ) # 添加负荷kT0表示负荷视为恒功率 load_data [ (2, 350, 120), (3, 420, 140), (4, 500, 160), (5, 450, 150), (6, 520, 170), (7, 480, 150), (8, 380, 120), (9, 700, 240) ] for bus_idx, p_kw, q_kvar in load_data: pp.create_load(net, busbus_idx, p_mwp_kw / 1000, q_mvarq_kvar / 1000) # 设置平衡节点 pp.create_ext_grid(net, busbus1, vm_pu1.0, va_degree0) # 运行潮流计算 pp.runpp(net, algorithmiwamoto_nr) # 输出各节点电压 print(net.res_bus[[name, vm_pu]].to_string(indexFalse))这段代码跑出来的电压结果就是我前面说的基线节点9电压约0.93 p.u.欠压。这个结果同时验证了两个问题模型搭得对不对以及这个系统适不适合做DG电压影响分析。如果打印出来的末端电压偏离0.93太多说明负荷分配或者线路参数设得有问题需要返回去检查。pandapower有个特别方便的地方就是它支持result表格直接展示所有节点的电压幅值、相角以及线路潮流省去了自己画潮流结果图的麻烦。不过要注意pandapower默认采用严格牛顿法初值不好有时会报错。我实测中遇到过一次节点电压初值设为0导致不收敛的情况解决办法是在runpp里设置initflat让算法从平启动开始迭代或者直接像我代码里那样选algorithmiwamoto_nr它对初值敏感度更低。5. 分布式电源建模与接入仿真基线算好之后开始搭建分布式电源模型。分布式电源在这个项目里的建模比很多人想象中简单也可能比很多人想象中复杂。简单之处在于稳态潮流分析不需要去构建光伏电池板、逆变器内部开关动态只需要把DG当成一个注入节点功率的电源复杂之处在于不同控制模式、不同功率因数会直接改变注入功率的构成从而改变电压影响规律。我按三种常见的DG类型来分析。第一种是纯有功注入型功率因数等于1只输出有功不吸收也不发出无功对应没有无功补偿的光伏电站或小型风电第二种是恒功率因数型比如功率因数0.9有功和无功同步输出对应传统无功补偿配置的电站第三种是恒电压控制型DG根据并网点的电压自动调节无功输出力图维持电压在目标值对应现代智能逆变器。在pandapower里DG建模非常直观就是在选定的节点上创建一个sgenstatic generator元件指定有功出力和功率因数即可。下面的代码演示了在节点9接入一个500kW、功率因数1.0的光伏电源。# 在节点9接入分布式电源有功出力500kW功率因数1.0 pp.create_sgen(net, bus9, p_mw0.5, sn_mva0.5, nameDG_节点9, typePV) # 功率因数1.0即q_mvar0 net.sgen.loc[net.sgen.name DG_节点9, q_mvar] 0.0 # 重新运行潮流 pp.runpp(net, algorithmiwamoto_nr) print(net.res_bus[[name, vm_pu]].to_string(indexFalse))接入后节点9电压从0.93 p.u.抬高到了0.97 p.u.左右改善效果立竿见影。这个结果背后的物理机制就是前面讲的电压抬升效应DG注入500kW有功相当于原本末端要吸收的功率减少了500kW线路上传输的功率变小压降变小末端电压自然就抬上来了。这里要强调一个容易出错的细节在建立DG模型时有功出力P的数值必须和系统基准容量保持一致。如果你直接在网架参数中把p_mw写成500而不是0.5就是500MW的电源接到10kV配网里潮流计算结果必然夸张电压直接飞到1.5 p.u.以上这就是典型的量纲错误。建议在代码开头用p_kw变量保存千瓦值传给p_mw时统一除以1000减少出错概率。我还观察到一个很有意思的现象在节点9接入500kW DG后不仅节点9电压提升了节点6、节点7、节点8的电压也有不同程度的抬升。这个现象验证了DG影响的是“整条上游路径”的判断。反过来如果在节点2靠近母线接同样容量的DG节点9的电压几乎纹丝不动因为DG离末端太远对末端电压鞭长莫及。6. 接入位置和接入容量对电压影响的定量分析搭建好模型、调通DG接入流程之后真正出成果的部分来了定量分析DG接入位置、接入容量对节点电压的影响规律。这部分是课题的核心结论所在也是论文或报告里最有说服力的图表来源。我采用控制变量法分成两组仿真。第一组固定DG容量为500kW分别把它接在节点2、4、6、9四个不同位置记录全网各节点的电压分布第二组固定在节点9接入DG容量从0kW逐步增加到900kW观察末端电压的变化趋势。第一组的仿真结果很典型DG接入位置节点4电压(p.u.)节点6电压(p.u.)节点9电压(p.u.)电压改善幅度无DG0.960.950.93基准值节点20.970.950.93末端几乎不变节点40.980.960.94略改善节点60.980.970.95明显改善节点90.980.970.97末端改善最大结论非常清晰DG接入位置越靠近馈线末端对抬升末端电压的效果越好。这在实际工程中的意义是如果你要解决线路末端低电压问题优先考虑在线路末端或者靠近末端的位置建设分布式电源而不是把它放在靠近变电站的位置。第二组仿真固定接入点为节点9改变DG容量结果如下DG容量(kW)节点9电压(p.u.)线路最大电压(p.u.)是否越限00.931.00末端欠压3000.951.00勉强合格5000.971.00合格7000.991.01合格8501.021.03合格10001.041.06越上限从这个表可以看得很清楚DG容量对电压的影响不是线性的“越多越好”而是有一个合理的区间。在本系统的参数下节点9接入容量低于300kW时末端电压刚爬回到合格下限改善不够充分超过900kW后节点电压已经逼近甚至超过1.05 p.u.的合格上限出现了“过度补偿”问题。也就是说DG接入容量有一个最优区间过低不够过高反而制造新的电压问题。这个发现对工程实践非常有价值。分布式电源接入方案里经常只关心“变压器容量够不够”“线路载流量够不够”忽略了电压约束往往才是更严苛的限制条件。在规划阶段用这种仿真表就可以快速估算出单个节点的合理接入容量范围避免方案反复被打回。同时功率因数的作用在仿真中也体现得很明显。同样是500kW接入节点9功率因数从1.0降到0.9即无功出力增加时节点9电压进一步提升到接近1.0 p.u.而功率因数从1.0升到0.95超前即吸收无功时电压反而下降。这说明DG在发出有功的同时发出无功会额外抬升电压逆变器如果设置成无功吸收模式则能压制电压抬升。利用这个特性可以设计“有功出力大时吸收无功、有功出力小时发出无功”的逆变器控制策略平滑电压波动。7. 不同DG控制策略下的电压改善效果对比如果只是静态地看一个固定出力的DG对电压的影响这个课题的深度显然不够。实际运行的分布式电源出力是波动的尤其是光伏早上出力爬升中午达到峰值傍晚快速归零。如果按最大出力瞬间来校核电压结果一定偏保守但按平均出力来算又可能在出力峰值时发生电压越限。这就要引入DG控制策略的时域概念。在本次分析中我重点对比了三种控制策略下的电压特性。第一种是恒功率因数控制DG出力变化时无功按固定比例跟随有功变化。第二种是恒电压控制DG通过调节无功输出来维持并网点电压在设定值附近这种方式相当于在并网点装了一个“电压锚”。第三种是功率因数随有功变化的可变控制模拟现代光伏逆变器的Q(P)曲线低出力时少发无功高出力时多发无功进行电压支撑。在9节点系统的仿真中我选择在节点9接入600kW的光伏DG并按其典型日出力曲线设置了12个时段的出力序列分别用三种控制策略计算全天电压分布。最终结果差异很明显恒功率因数控制下节点9中午电压达到1.03 p.u.夜间回落到0.95 p.u.左右电压全天波动幅度约0.08 p.u.恒电压控制下节点电压被牢牢稳定在1.0 p.u.全天波动不超过0.01 p.u.而Q(P)可变控制下电压略高于恒电压控制但全天波动也只有0.03 p.u.左右。从工程效果来说恒电压控制对电压稳定最有利但它需要DG具备动态无功调节能力这对应的是具备动态无功控制功能的光伏逆变器或储能变流器。而传统固定功率因数的DG如果逆变器没有调压功能那么它的无功输出只能是有功出力的固定比例对电压波动的抑制能力就非常有限。我在这个环节还发现了一个实操细节如果DG采用恒电压控制在潮流计算里它就不能简单当成PQ节点而应该建模成PV节点指定电压幅值让潮流程序去迭代求解无功出力。用pandapower实现时可以从源侧用PPNodePV节点机制来实现或者在DG节点外接一个可调无功源反复试算找到维持电压所需的无功。后者虽然略显笨拙但胜在直观而且不需要修改潮流求解器设定。控制策略的对比结论可以给实际项目提供不少参考。如果你所在地区的电网对光伏并网电压波动有考核要求那么从设计之初就应该要求逆变器选型时具备Q(U)或Q(P)电压调节模式而不是只盯着MPPT效率和价格。这也是DG电压影响分析从“知道怎么了”走向“知道怎么办”的关键一步。8. 仿真过程中的常见问题与排查心得下面这部分是我最想写给后来者的实操经验。做这个项目期间我大概来回折腾了十几遍踩过的问题、查到根因的技巧都比较典型整理成一个速查表希望能帮大家省掉不必要的调试时间。常见问题现象排查方向解决办法潮流不收敛程序报错或迭代发散初值设置、变压器接线设置initflat检查升压降压关系电压结果离谱某节点电压1.3 p.u.以上或0.5以下单位错误、阻抗参数误差检查MW/kW换算核对R/X参数量纲DG接入后电压反而降低接入点电压下降负荷模型错误、DG被当负荷检查sgen有功符号确认方向为输出所有节点电压同时大幅下降全线电压低于0.8 p.u.平衡节点电压设定错误检查ext_grid的vm_pu是否为1.0线路载流量越限某段线路过载DG容量过大或接入点不合理调整DG容量或改接入位置结果与理论分析趋势不一致电压变化和预期相反节点编号混乱仔细核对节点连接关系打印网架结构这里面最典型也最容易踩的是第一个“潮流不收敛”。我一开始用pandapower默认设置跑仿真节点2到节点9全部用牛顿法结果报错说“there is no convergence”。排查了大半天最后发现是初值问题配电网线路R/X大雅可比矩阵条件差从平启动到带负荷运行状态需要更稳的迭代路径。换成iwamoto_nr算法后一步收敛之后再也没出过问题。这件事给我的教训是仿真工具越方便越要关注内部的数值算法特性出问题时不要急着怀疑模型先想想是不是算法适配问题。还有一个让我印象深刻的经验是关于“量纲统一”的。这个项目涉及到MW、kvar、Ω/km、km等多种单位稍有疏忽结果就会错得离谱。我建议在建模开始前先列一张单位对照表明确电网基准容量选多少MVA、电压基准是多少kV、阻抗单位用多少Ω/km然后在所有输入参数上都保持这个约定不变。这个小习惯帮我避免了一半以上的低级错误。另外针对“结果可视化”也给一个建议不要只看数值表画出电压沿馈线的分布曲线。横轴是节点从首端到末端的排序纵轴是电压标幺值把无DG、不同位置接DG、不同容量接DG的几条曲线画在一张图上。电压低谷、电压凸起、临界越限点都会一目了然汇报时领导或导师对图的理解速度远远快于对表的理解速度。我习惯在pandapower结果基础上直接用matplotlib画折线图几十行代码就能出一张规范的专业插图。9. 从电压一个指标看DG接入的全局思维这个项目虽然题目紧紧扣在“节点电压”上但做到后面我越来越有感触电压从来不是孤立指标它和潮流方向、线路损耗、功率因数、继电保护都有连带关系一个指标的变化往往是系统连锁反应的一部分。只盯着电压做文章容易陷入“头痛医头”的误区。举个例子仿真过程中我尝试过在节点8和节点9之间再补接一台500kW的DG想把末端电压进一步抬高到1.0 p.u.以上。结果电压确实抬起来了但主干线路上的潮流反向穿越了几段节点的电压虽然都在合格范围内可线路的有功损耗不降反升。原因在于两条距离很近的DG在一条馈线上各自出力它们之间的线路上出现了局部环流这个环流不对外做功只增加损耗。这就是典型的“电压没问题但损耗恶化了”的情况。所以说分析DG接入时电压质量只是第一道考核关卡。一个完整的接入方案至少还要同时看三样东西电压是否越限、馈线是否过载、系统损耗是否增加。理想的结果是DG既改善电压分布又降低损耗还运行在设备容量范围内。但在真实系统里这三个目标有时候是互相冲突的需要做权衡。比如为了把末端电压托到合格线上DG容量选大一点结果造成倒送功率增加、损耗变大这时就要考虑通过无功优化和位置优化来两头兼顾。这个“全局思维”对做工程项目的意义远大于完成一个仿真课题。分布式电源接入方案做得好不好最后看的就是你在电压、损耗、可靠性、经济性这些维度之间能不能找到一个合理的平衡点。9节点系统虽然小但它足以让你在极简的网架结构里看清这些维度的冲突关系。把这个逻辑想明白了以后遇到更大规模的配电网项目思路完全可以平移过去。回顾整个项目我最深的体会是仿真模型的搭建和调试只是手段真正有价值的是通过几十次参数扫描之后形成的“电压变化直觉”——看到某个位置接了某容量的DG大概就能预判末端电压会怎么变、会不会触限。这种直觉不是背公式背出来的是亲手改参数、看曲线、查问题练出来的。如果你也在做类似的分析建议多花时间做扫描实验不要只跑一两个案例就下结论。最后分享一个小技巧把DG容量从0到最大值、按接入位置的每个节点做双维扫描生成一个电压热力图——横轴是接入位置纵轴是接入容量颜色代表末端节点电压。这张图可以直接作为论文里的核心成果图信息量极大而且一眼就能看出哪个区域是安全区哪个区域是越限区。我用这个方法把仿真结论压缩到了一张图里效果比任何文字描述都直观。
返回列表