ARTICLE DETAIL

资讯详情

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

基于Matlab的分布式电源接入配电网影响分析方案

基于Matlab的分布式电源接入配电网影响分析方案 做配电网研究的人这两年一定绕不开一个词分布式电源。光伏板、小风机、储能柜一批批接到10kV甚至380V馈线上传统单一电源供电的辐射状配电网被改成了多电源、双向潮流的复杂网络电压怎么变、线损怎么算、保护还灵不灵都是实打实的问题。这篇文章要讲的就是用Matlab搭建一套”分布式电源接入对配电网影响“的分析方案里面包含了完整的代码结构、潮流计算逻辑、影响评价指标和场景设计思路。你拿过去可以改节点参数、改DG容量、换接入位置直接跑出电压分布曲线、网损对比曲线和渗透率敏感性结果特别适合研究生课题起步、电网规划初筛、设计院可研论证这些场景。我自己用这套思路做过好几个10kV馈线评估确实比拿着规范硬套靠谱得多。1. 分布式电源接入配电网到底在研究什么1.1 为什么配电网必须重新评估过去配电网是”大电源-单向辐射”结构潮流从变电站母线流向各负荷节点方向单一、数值可控。分布式电源接入后配电网变成了“多电源双向潮流”的混合网络最直接的影响有三类第一类电压分布被改变。常规配电网电压沿馈线逐渐下降DG的功率注入会抬升局部电压接入位置越靠近末端抬升作用越明显严重时会引起10kV母线电压越上限。第二类网络损耗不再是单调递减。DG容量较小时可能降低网损但容量过大、就地消纳不了时多余功率沿着馈线倒送网损反而上升。第三类继电保护和短路电流配合变复杂。DG提供的故障电流会改变流过保护装置的短路电流大小和方向可能引起保护误动或拒动。此外还有谐波、三相不平衡、孤岛效应等问题。电网行业常把这些归为“分布式电源对配电网的影响”。核心问题是在什么位置、接多大容量、以什么控制方式运行会让配电网处于安全经济状态这就是我们仿真要回答的事。1.2 这套Matlab方案能帮我们回答什么问题Matlab做配电网分析有天然优势矩阵运算方便、绘图能力强、Simulink还能做动态仿真。我们用纯M语言就能完成稳态潮流计算和影响评估不需要额外商业软件适合批量扫描场景例如“31个可选接入位置×5个容量档次×2种运行方式”一次性跑出全部组合的结果。用这套方案可以输出五类指标各节点电压幅值和电压偏移百分比用于评估DG接入后的电压质量。各支路潮流和线路损耗用于计算系统总网损。不同DG容量和位置组合下的电压-网损曲线用于选址定容初筛。短路电流水平变化值用于校核断路器开断能力和保护定值。三相不平衡度或谐波含有率需要在Simulink侧扩展用于电能质量评估。如果你是刚开始做这个方向的研究生最需要的就是一个能跑通、能理解、能改参数的梯形结构代码而不是一上来就搞复杂的优化算法。下面我会把模型选择、代码实现、场景设计讲透。2. 仿真模型选型与核心思路拆解2.1 为什么选IEEE 33节点系统做基准配电网影响分析第一件事是选基准模型。IEEE 33节点系统是目前国内学术论文和工程验证用得最多的辐射状配电网络模型整条馈线有33个节点、32条支路、1个根节点基准电压12.66kV基准功率10MVA总负荷大约5084.26kW2046.32kvar不同文献略有差异。它规模适中节点少便于画图分析同时又保留了长馈线、分支线、末端电压偏低这些典型特征特别适合做DG接入影响研究。如果你已经有实际10kV馈线的参数比如某一回线从变电站母线到末端杆变的线路长度、线型、负荷台账也可以把这些参数替换进去代码逻辑不用改。这就是用标准算例起步的价值先用标准网络验证代码正确性再替换成实际参数不会一上来就卡在调试上。IEEE 33节点还有一个好处公开数据多你和别人论文对比时很容易找到基准结果来校验自己的潮流程序。比如无DG时IEEE 33节点节点电压最低通常在节点18附近全网总网损大约210kW左右跑出来和这个标准相近代码基本没问题。2.2 DG的建模光伏、风电和储能怎么进潮流计算分布式电源类型很多潮流计算里需要把它们等效成合适的节点类型。我的经验是不要一上来就建光伏电池板的详细开关模型那属于电磁暂态范畴。稳态影响分析用电源等效模型就足够了。光伏发电系统若按照最大功率跟踪运行稳态下看作恒功率源这个点注入的有功P恒定无功Q按功率因数运行例如设定功率因数0.95则QP×tan(arccos(0.95))。风力发电系统双馈风机具有无功调节能力可以看作PQ节点或PV节点恒速恒频风机一般按PQ节点处理无功按吸收或发出给定值。储能系统充电时等效为负荷P为负数放电时等效为电源P为正数通常按PQ节点建模有功为设定值、无功为0或按逆变器功率因数设定。燃气轮机、柴油机等可控电源转速和励磁可调通常作为PV节点即电压幅值恒定、有功恒定无功根据电压支撑需求自动调整。在代码里我会把DG参数统一存成一个矩阵每一行记录“接入节点编号、有功、无功、节点类型”然后在潮流迭代中根据节点类型选择处理方式。2.3 三种常用DG节点类型与适用场景节点类型已知量待求量适用对象PQ节点有功P、无功Q电压幅值V、相角θ恒功率因数光伏、储能充放电PV节点有功P、电压幅值V无功Q、相角θ具有自动电压调节能力的风机/燃气机PI节点有功P、电流幅值I无功Q、相角θ部分逆变器控制为恒定电流输出PQ节点最容易收敛但无法反映DG的电压支撑能力。PV节点能模拟恒电压控制效果但无功功率是迭代出来的如果计算出来的无功超过逆变器容量上限必须退化成PQ节点重新迭代否则结果会失真。这一点我在第5部分会详细展开。2.4 前推回代法与牛顿拉夫逊法的取舍配电网潮流计算方法很多常见的有牛顿-拉夫逊法、PQ分解法、前推回代法和隐式Zbus高斯法。其中前推回代法最简单、最快而且对辐射状配电网收敛性非常好。为什么建议用前推回代法因为它不需要构造雅可比矩阵编程逻辑直白回代从末端节点向根节点利用节点注入功率和节点电压计算支路电流。前推从根节点向末端节点利用支路电流计算各节点电压。两个过程反复迭代直到相邻两次迭代的节点电压差值小于设定阈值。牛顿法虽然通用性强能处理环网和复杂控制方式但配电网的R/X比值较高用牛顿法时雅可比矩阵容易病态初值不好就不收敛。对于辐射状网络前推回代法是首选。如果后面要扩展含有联络开关的环网再考虑叠加网孔修正或者改成牛顿法也不迟。3. Matlab代码实现从数据表到潮流计算全流程3.1 配电网线路与负荷参数表怎么搭在Matlab里我习惯用三个矩阵保存网络数据分别是节点参数表、支路参数表、DG配置表。节点参数表存节点编号和该节点负荷的有功、无功单位统一用kW/kvar或MW/Mvar。提醒一句所有数据必须统一单位我一开始用kW算负荷、用MW配DG结果差了1000倍电压算出来离谱得很。支路参数表存的是支路首端节点、末端节点、线路电阻、线路电抗单位是欧姆。IEEE 33节点的部分典型数据如下支路编号首端节点末端节点R(Ω)X(Ω)1120.09220.04702230.49300.25113340.36600.1864...............3232330.34100.5302搭建支路表时最关键的是保证首末端方向一致前推回代法对方向非常敏感方向错了会直接导致电流递归发散。建议在程序开头加一段检查确保每个末端节点只有一个父节点避免出现环状错误。3.2 前推回代潮流计算核心逻辑下面给出一个简化但可运行的核心代码结构方便理解整套流程。% 功率基准值 Sb 10e6; % 10MVA Vb 12.66e3; % 12.66kV Zb Vb^2 / Sb; % 读取IEEE33节点数据电阻电抗转换到标幺 branch branch_data(:, 3:4) / Zb; % 支路阻抗 load_pu load_data(:, 2:3) / Sb; % 负荷有功、无功标幺 % 迭代初始化 V ones(33,1); % 电压幅值初值为1.0pu theta zeros(33,1); % 相角初值为0 tol 1e-4; iter 0; maxIter 50; while iter maxIter V_iter V; %% 回代过程从末端到根计算支路电流 Ibranch zeros(32,1); for k 32:-1:1 n1 branch_data(k,1); % 首端节点 n2 branch_data(k,2); % 末端节点 % 节点注入电流 (节点负荷 / 电压) - (DG注入 / 电压) inj_node conj(load_pu(n2) / V(n2)) ... - conj(dg_power(n2) / V(n2)); % 累加该支路流向末端的电流 Ibranch(k) inj_node sum_children_current(k); end %% 前推过程从根到末端计算节点电压 for k 1:32 n1 branch_data(k,1); n2 branch_data(k,2); V(n2) V(n1) - branch_impedance(k) * Ibranch(k); end iter iter 1; if max(abs(V - V_iter)) tol break; end end这里最容易犯的错是没有把子节点的电流累加到父支路上。逐个支路回代的时候一条母线往下可能带了好几路负荷那你得把这条支路下游“所有”负荷电流都叠加起来才算这个支路的总电流。我的做法是先用深度优先搜索把每个节点的下游总电流列表预先算出来再直接调用避免每次迭代反复遍历网络。3.3 接入DG后的修正与迭代控制DG接入后只需在节点注入功率中把DG功率加到对应节点上即节点净注量原有负荷- DG功率。如果接入的是PQ型DG修改方式特别简单就是在回代公式里减去DG电流。PV型DG的处理要绕一些需要增加无功修正外层循环内层做传统前推回代潮流。外层计算PV节点无功缺额如果某个PV节点电压幅值比目标电压低就增加无功出力比目标电压高就减少无功出力。每轮修正后判断无功是否越限越限则把该节点改为PQ节点固定到边界无功值并退出电压控制。我用一个比例积分方式做无功修正公式是Q_new Q_old Kp × (V_target - V_current)其中Kp一般取10到30具体和系统容量基准有关调试时从小往大加。如果Kp太大无功来回振太小则收敛慢。收敛判据也很讲究。除了看节点电压幅值变化差还要看最大无功修正量两步同时满足才算真正收敛。有几次我只查电压无功还在震荡就停了结果算出来的网损波动特别明显。3.4 可视化与评价指标计算计算结果不画图等于白算。我做影响分析时至少输出三张图第一张无DG和有DG的节点电压分布对比曲线。X轴是节点编号Y轴是电压标幺值能一眼看出DG靠在哪个位置抬高了电压是否越限。第二张DG渗透率-网损曲线。渗透率定义为DG总出力占系统总负荷的比例比如50%就是DG发2.5MW对应总负荷5MW。横坐标从0%到120%步长10%纵坐标为全网功率损耗。这条曲线能直观看出“最优渗透率”在哪。第三张DG位置扫描图。把DG分别接到不同节点统计全网网损和最低电压做成柱状图或热力图用于选址判断。计算电压偏移公式很简单电压偏移率 (V_i - V_N) / V_N × 100%其中V_N是额定电压。10kV配电网允许的偏差范围通常是±7%也就是标幺值0.93到1.07之间。网损计算则是把所有支路的有功损耗累加Ploss sum(real(Ibranch .^ 2 × Z)) 其中Ibranch是支路电流幅值Z是支路阻抗。注意这里用的是电流幅值平方乘电阻如果用相量形式容易算错。4. 影响分析场景设计与结果解读4.1 接入位置对电压分布的影响场景设计时我通常把DG放在三个典型位置做对比馈线首端节点2附近、馈线中部节点18附近、馈线末端节点33附近。三种位置的电压影响完全不同。DG接在首端时由于靠近电源点只改变很小范围内的电压对末端电压提升帮助不大同时容易出现功率倒送因为首端DG出力可能直接通过变电站母线向上级输送。DG接在中部时对中后段电压都有支撑是相对合理的接入位置。DG接在末端时对末端电压抬升最明显但如果出力超过本地负荷末端电压可能被推高到1.05甚至1.07标幺以上。这类现象从理论上解释很简单电压降落的根本原因是负荷电流在线路阻抗上产生了压降。DG就地发出功率后线路传输电流减小压降随之减小末端电压自然提升。等效来看DG相当于在接入点注入一个负的负荷电流让上游支路电流变少。所以接入位置越靠末端被削减的支路越长电压提升幅度越大。如果你发现某种DG配置让末端电压超过1.07pu那就要调整容量或改变控制方式例如让光伏逆变器吸收无功把功率因数从1.0改成0.95滞后多出来的无功电流会在线路上形成附加压降从而把电压拉回允许区间。4.2 接入容量渗透率对网损的影响网损随DG容量变化的曲线通常呈U形或纺锤形这是做影响分析必出的图。当DG出力小于本地负荷时部分就地消纳减少了线路输送功率网损下降。随着DG出力继续增加发电量超过本地负荷多余功率倒送回电网线路电流重新增大网损开始上升。在我实际跑IEEE 33节点时把2MW的光伏接在节点33渗透率大概在40%附近时网损最低全网有功损耗能从约0.21MW下降到0.13MW左右降幅接近40%。但如果把容量加到5MW渗透率超过80%网损反而比无DG时还要高。这个结果明确说明并不是DG装的越多越好分布式电源存在一个经济最优容量区间。从规划角度讲这就是选址定容的意义。如果是非线性系统网损不是简单线性函数而是一个受电压分布和电流分布共同影响的函数所以工程上不能拍脑袋定容量必须通过潮流计算找拐点。4.3 短路电流与保护配合的影响稳态潮流之外分布式电源对短路电流的影响同样关键。DG提供的短路电流是有限的逆变器型DG通常只能提供1.2到1.5倍额定电流且持续时间很短旋转电机型DG如直接并网的双馈风机、燃气轮机则能提供3到6倍甚至更高的短路电流。所以在短路计算时要按DG类型给不同等效内电抗和故障特性。接入DG后可能出现三类保护问题保护灵敏度降低DG助增电流导致本线路保护感受到的故障电流变大或变小造成灵敏度变化。保护范围改变DG注入使故障支路电流重新分配可能导致过流保护的保护范围缩短或伸长。失去选择性下游故障时DG提供的反向故障电流可能导致上游保护误动扩大停电范围。在一份完整的影响评估报告里短路电流校核是不可缺的一块。Matlab中可以用短路电流程序计算各母线三相短路电流比较接入DG前后的变化核对设备额定开断容量是否满足要求。如果短路电流超标往往需要在DG并网点加装限流电抗器或故障电流限制器。4.4 谐波与电能质量的影响分布式电源大量通过逆变器并网开关器件会产生谐波主要特征次数是5次、7次、11次、13次等。光伏逆变器PWM调制还会产生开关频率附近的高频成分。如果你用的是Simulink的Simscape电力电子模型可以通过FFT分析得到各次谐波含有率和总谐波畸变率THD。谐波评估一般需要满足国家标准中压配电网电压THD不超过5%奇次谐波含有率不超过4%偶次谐波不超过2%。在仿真中如果THD超标可以调整逆变器的调制策略或添加无源滤波器。需要提醒的是普通的潮流计算不考虑谐波因为你算的是50Hz稳态基波。谐波影响需要单独做暂态/频域仿真。合理的思路是先用前推回代潮流快速筛出候选方案再针对少数重点方案搭Simscape模型做谐波验证这样可以节省大量计算时间。5. 常见问题与排查技巧实录5.1 潮流不收敛的常见原因这是我被问得最多的一个问题。总结下来主要集中在这几个方面现象可能原因排查方法迭代次数达到上限仍不收敛初始电压给得太离谱或PV节点无功修正环节振荡将V初值全部设1.0puKP调小到5~10电压出现负值或复数支路方向填错导致电流递归错误检查支路首末端方向画拓扑图核对树形关系结果受初始值影响很大恒功率负荷重负荷时雅可比矩阵病态或阈值太严收敛精度放宽到1e-3增大最大迭代次数接入DG后不收敛DG容量过大导致潮流无解逐步减小DG容量试算观察收敛边界处理不收敛时不要盲目调迭代次数。我一般先降负荷系数从50%的负荷开始计算用半载结果作为满载工况的初值这样可以让潮流稳定滑入解。这个方法对重负载网络尤其有效。5.2 DG节点类型设置导致的电压越限很多人把光伏电源设成PQ节点功率因数设成1.0结果末端电压飙升到1.08pu以上就以为是模型错了。其实这是正确的“镜像结果”因为恒功率因数无无功调节的DG确实会把电压顶得很高。实际工程中光伏逆变器通常具备无功电压控制功能可以建模成PV节点或带无功上下限的PQ节点。处理办法是在DG配置表里加上无功出力上下限例如逆变器容量为1MVA时有功输出0.8MW无功调节范围约为±0.58Mvar。此时如果电压控制需要吸收0.6Mvar无功超限了就应该固定为-0.58Mvar并把节点转为PQ节点。只有实现了无功越限回退仿真结果才符合实际设备运行能力。5.3 仿真结果与理论不符时的排查思路有次我算一个DG容量从1MW提高到2MW的案例结果电压不仅没抬升反而降了第一反应是数据写错了。最后定位到是负荷数据里面那个节点原本就接了1.8MW的电动机负荷功率因数滞后且电压降低时吸收电流快速增加对DG功率起到了“抵消”作用。这说明在稳态评估中负荷模型选择非常关键。工程计算中恒功率负荷模型是最常见的也是偏保守的因为恒功率负荷在电压降低时电流增大会进一步压低电压。恒阻抗负荷则在电压降低时电流同步减小等于多了负反馈计算出来的电压偏移比较温和。如果你用恒阻抗模型做分析容易低估DG接入的电压影响导致实际运行时电压越限。所以我的建议是标准分析用恒功率负荷模型如果要做系统级偏乐观评估再搭配恒阻抗模型做敏感性对比。这也算给结论加个安全余量。5.4 提速与工程化扩展建议如果要做大批量场景扫描用双重循环直接调用潮流函数会有点慢但IEEE 33节点规模不大几十毫秒一个工况几百个场景也就几十秒基本不需要优化。如果你换到IEEE 123节点甚至实际系统几百上千个节点就要注意下面几点构建稀疏矩阵存储支路关联关系和节点导纳矩阵避免全矩阵运算。把每个节点的子节点列表预先计算好不要每次迭代都重新搜索网络拓扑。用parfor并行扫描不同DG组合反正不同场景的潮流计算彼此独立。将潮流计算的迭代函数写成mex或编译成pcode能减少解释器开销。网上也有不少开源的Matpower工具包可以结合使用。但我不建议完全依赖Matpower因为自己写前推回代会让你更懂网络如何求解后续扩展动态仿真、孤岛划分、优化算法时都能直接改内核。另外如果你的终极目标是做DG选址定容优化不要用穷举法处理大系统。先用灵敏度分析预筛节点再用遗传算法或粒子群算法搜索。我在做实际项目时会把潮流函数封装成目标函数优化算法每次调用它计算网损或电压偏差这样代码结构清晰也方便并行计算。最后再分享一个小技巧做影响分析报告时除了算一堆数据最好把全网电压最低的几个节点和无DG场景逐一对比用表格列出“DG接入位置、容量、最低电压、最高电压、网损、最大支路负载率”六项。这六项基本就是评审专家和规划人员最关心的内容。我自己的使用习惯是先跑标准IEEE 33节点验证算法再替换实际线路和负荷数据最后针对敏感方案做Simulink动态仿真。整个流程下来从拿到数据到出完整评估报告大概三天时间大部分工作量其实在数据整理仿真本身很快。如果你也是做配电规划或新能源接入研究的可以直接按这个思路搭一套自己的分析工具后续换案例只改参数表就行。
返回列表