ARTICLE DETAIL

资讯详情

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

分布式电源并网潮流计算的Matlab实现与节点建模分析

分布式电源并网潮流计算的Matlab实现与节点建模分析 做分布式电源并网课题这几年最深的感受是很多同学和刚入行的工程师拿着标准IEEE节点数据跑潮流计算Matlab代码也能跑通但一碰到“分布式电源接入”就露馅——要么不知道光伏、风电应该作为什么节点类型处理要么直接把它们当成普通负荷取负号算出来的电压分布和网损跟实际情况差一大截。这个问题的根源不在于牛顿-拉夫逊法本身而在于对分布式电源并网模型的建立方式理解不到位。这篇内容围绕“分布式电源接入电力系统的潮流计算与分析”以Matlab为工具完整走一遍从原理推导、节点建模、代码实现到结果分析的流程。适合正在做毕业设计、课程设计或者刚接触配电网分析工作的工程师参考。你会搞清楚分布式电源到底改变了潮流计算中的哪些量如何在牛顿-拉夫逊框架下自然地处理它们以及不同接入位置和渗透率下系统响应有何规律。1. 分布式电源并网后潮流计算为什么变得不一样1.1 传统潮流计算的立足点传统电力系统的潮流计算求解的是一个确定性问题给定发电机的有功出力和机端电压给定负荷的有功和无功功率求整个电网的电压幅值、相角和支路功率分布。系统里的发电机是集中式大型机组通常接在输电网层通过高压线路向负荷中心送电。在这种结构下功率流动方向是单一的从上到下从电源到负荷潮流计算模型相对成熟。传统潮流计算中的节点类型划分得很清楚平衡节点slack bus承担系统功率平衡PV节点代表发电机节点有功和电压幅值给定PQ节点代表负荷节点有功和无功给定。这三大类节点覆盖了绝大多数传统电网的运行场景牛顿-拉夫逊法在这种模型下收敛性好、计算速度快工程上应用非常成熟。1.2 分布式电源带来的三个本质变化分布式电源Distributed Generation, DG如屋顶光伏、小型风机、燃气轮机、储能等接入配电网后潮流计算的边界条件发生了明显变化简单说有三个本质变化。第一个变化是功率流向从单向变成双向。传统配电网是放射状结构功率从变电站母线向负荷单向流动。DG接入后当某个区域的光伏出力大于本地负荷时功率会反向流向变电站甚至上游电网。潮流计算如果继续默认单向流动就会出现电压越限和网损计算严重失真的问题。第二个变化是节点类型不再是简单的PQ或PV。传统同步发电机可以直接作为PV节点处理但分布式电源大多通过电力电子变流器并网。以光伏为例逆变器通常采用恒功率控制PQ控制或恒电压控制PV控制具体取哪种取决于光伏电站的控制策略和无功补偿能力。风电中的双馈感应发电机和直驱永磁同步发电机在并网模型上又有差异不能一刀切。第三个变化是配电网本身的特点。配电网的R/X比值大电阻不再可以忽略而传统输电网潮流程序往往针对高X/R比设计直接套用会导致收敛性问题。配电网节点数量多、支路多数据准备和结果分析的复杂度也随之上升。这里必须说明一点很多教材或公开代码在处理DG时简单地把DG当作负的负荷即在该节点上令注入功率为负值。这在某些简化分析场景下能对付但严格来说它忽略了逆变器的无功控制特性和电压支撑能力会在高渗透率场景下产生明显偏差。正确的做法是根据DG的控制方式将其建模为PV节点或带无功上下限约束的PQ节点。2. 牛顿-拉夫逊法的数学内核功率方程与雅可比矩阵2.1 节点功率平衡方程的推导潮流计算的核心是求解节点功率平衡方程。对任意节点i其注入功率与电压、导纳矩阵之间存在如下关系[ S_i U_i \sum_{j1}^{n} Y_{ij}^* U_j^* ]其中( U_i U_i \angle \delta_i )( Y_{ij} G_{ij} jB_{ij} )为节点导纳矩阵元素。将复功率拆分为有功和无功可得[ P_i U_i \sum_{j1}^{n} U_j (G_{ij} \cos \delta_{ij} B_{ij} \sin \delta_{ij}) ][ Q_i U_i \sum_{j1}^{n} U_j (G_{ij} \sin \delta_{ij} - B_{ij} \cos \delta_{ij}) ]其中( \delta_{ij} \delta_i - \delta_j )。对于PQ节点( P_i )和( Q_i )是已知量对于PV节点( P_i )和( U_i )是已知量平衡节点的( U_i )和( \delta_i )是已知量不参与迭代求解。2.2 雅可比矩阵的结构与迭代逻辑牛顿-拉夫逊法的本质是将非线性方程组在当前点线性化通过反复迭代逼近真实解。将上述功率方程写成残差形式[ \Delta P_i P_i^{spec} - P_i^{calc} ][ \Delta Q_i Q_i^{spec} - Q_i^{calc} ]其中( P_i^{spec} )是节点给定的注入功率发电机出力减去负荷( P_i^{calc} )是由当前电压幅值和相角计算得到的注入功率。雅可比矩阵就是残差对状态变量相角和电压幅值的偏导数矩阵。雅可比矩阵的分块结构如下[ \begin{bmatrix} \Delta P \ \Delta Q \end{bmatrix} -\begin{bmatrix} J_1 J_2 \ J_3 J_4 \end{bmatrix} \begin{bmatrix} \Delta \delta \ \Delta U / U \end{bmatrix} ]四个子块的表达式如下[ J_1(i,j) \frac{\partial P_i}{\partial \delta_j} -U_i U_j (G_{ij} \sin \delta_{ij} - B_{ij} \cos \delta_{ij}) \quad (j \neq i) ][ J_1(i,i) \frac{\partial P_i}{\partial \delta_i} -Q_i - B_{ii} U_i^2 ][ J_2(i,j) U_j \frac{\partial P_i}{\partial U_j} U_i U_j (G_{ij} \cos \delta_{ij} B_{ij} \sin \delta_{ij}) \quad (j \neq i) ][ J_2(i,i) U_i \frac{\partial P_i}{\partial U_i} P_i G_{ii} U_i^2 ][ J_3(i,j) \frac{\partial Q_i}{\partial \delta_j} U_i U_j (G_{ij} \cos \delta_{ij} B_{ij} \sin \delta_{ij}) \quad (j \neq i) ][ J_3(i,i) \frac{\partial Q_i}{\partial \delta_i} P_i - G_{ii} U_i^2 ][ J_4(i,j) U_j \frac{\partial Q_i}{\partial U_j} U_i U_j (G_{ij} \sin \delta_{ij} - B_{ij} \cos \delta_{ij}) \quad (j \neq i) ][ J_4(i,i) U_i \frac{\partial Q_i}{\partial U_i} Q_i - B_{ii} U_i^2 ]迭代流程是设置电压初值通常为平启动即电压幅值1.0pu相角0度→ 计算功率残差 → 判断是否满足收敛精度 → 求解修正方程得到相角和电压修正量 → 更新状态变量 → 重复迭代。2.3 为什么选牛顿-拉夫逊法而不是高斯-赛德尔法我做分布式电源潮流分析时首选牛顿-拉夫逊法原因是配电网在接入DG后电压方程的非线性程度更高高斯-赛德尔法虽然实现简单、内存占用低但在处理含有PV节点和弱环网的配电网时收敛速度慢甚至不收敛。牛顿-拉夫逊法具有二阶收敛速度迭代次数通常为3到5次对初值的要求也没有想象中那么苛刻平启动在绝大多数场景下即可正常收敛。当然牛顿-拉夫逊法也有代价每次迭代需要重新计算雅可比矩阵并求解线性方程组当节点数达到几千时计算量较大。但对于IEEE 33节点、IEEE 69节点这类经典配电网模型计算时间完全可以忽略做科研和教学绰绰有余。3. 分布式电源的节点建模PQ、PV还是动态节点3.1 逆变器型DG的PQ控制与PV控制分布式电源并网时逆变器的控制策略直接决定了潮流计算中该节点应该用什么类型来建模。恒功率控制PQ控制是最常见的方式。光伏逆变器通过电流内环和功率外环控制使输出的有功和无功功率维持给定值。在潮流计算中这种DG可以简单建模为PQ节点只需给出注入的有功功率( P_{DG} )和无功功率( Q_{DG} )。当DG没有无功调节能力时可以令( Q_{DG} 0 )即功率因数为1运行如果逆变器具备无功补偿能力则根据指定的功率因数计算无功出力。恒电压控制PV控制适用于具备电压支撑能力的DG如部分微电网中的储能系统和采用V/f控制的分布式电源。这种DG在潮流计算中建模为PV节点需要给定有功出力和电压幅值。但这里有一个关键问题逆变器的无功输出是有容量上限的不可能无限调节。当PV节点的无功出力越限时该节点的电压幅值实际上无法维持需要将其转换成PQ节点按无功极限值重新参与迭代。3.2 风电并网的模型差异风力发电机的模型比光伏复杂一些需要区分机组类型。恒速恒频风机如鼠笼式异步发电机并网时需要从电网吸收无功功率建立磁场因此它在潮流计算中不能简单等效为发出指定无功的电源而应该视为一个PQ节点但其无功功率不是固定值而是与机端电压相关的函数。处理方式通常有两种一是在潮流计算中通过迭代更新该节点的无功注入二是将其建模为电压静特性PQ节点。双馈异步风机DFIG和直驱永磁风机则可以通过变流器实现有功和无功的解耦控制所以作为PQ或PV节点处理是合理的。DFIG通常运行在单位功率因数此时( Q_{DG} 0 )如果电网要求风电场参与无功调节则给定无功出力或功率因数。3.3 储能系统的特殊之处储能系统是分布式电源中的特殊情况因为它既是电源又是负荷。充电状态下它消耗有功功率相当于负荷放电状态下它向电网注入有功功率相当于电源。在潮流计算中储能系统通常可以简化处理为给定有功出力的PQ节点即( P_{DG} )在充电时为负值放电时为正值。如果要分析储能对电压和网损的影响一般需要对不同充放电状态分别进行潮流计算然后对比结果。这样建模的合理性在于潮流计算是静态的求解的是某一时刻的运行状态。储能系统在某一特定时刻要么充电、要么放电、要么待机其控制模式是明确的因此按照当前时刻的有功输出确定节点类型是符合物理事实的。4. Matlab实现从导纳矩阵到完整潮流程序4.1 数据准备支路参数与节点参数的组织方式在Matlab中实现潮流计算第一步是整理数据。以IEEE 33节点配电网为例支路数据通常包含首端节点、末端节点、电阻、电抗和电导/电纳。节点数据则包含节点编号、类型1为平衡节点2为PV节点3为PQ节点、有功注入、无功注入、电压幅值初值和相角初值。下面是一个典型的数据组织方式33节点系统截取前几条支路作为示意% 支路数据[首端 末端 电阻(ohm) 电抗(ohm) 充电电纳(S)] branch [ 1 2 0.0922 0.0470 0; 2 3 0.4930 0.2511 0; 3 4 0.3660 0.1864 0; 4 5 0.3811 0.1941 0; 5 6 0.8190 0.7070 0; ]; % 节点数据[节点号 类型 有功功率(kW) 无功功率(kVar) 电压幅值(pu) 相角(rad)] % 类型1平衡节点 2PV节点 3PQ节点 bus [ 1 1 0 0 1.00 0; 2 3 100 60 1.00 0; 3 3 90 40 1.00 0; 4 3 120 80 1.00 0; 5 3 60 30 1.00 0; ];注意这里的功率单位是kW和kVar在形成导纳矩阵前需要把功率、电压和阻抗统一到标幺值系统。基准容量可以取1MVA基准电压取12.66kVIEEE 33节点系统的额定电压。有一个很容易忽视的细节作为负荷节点其注入功率( P_i )应取负荷的负值。如果某节点同时接有负荷和DG则净注入功率为( P_i P_{DG} - P_{load} )。这个净注入功率才是带入功率平衡方程的数值。4.2 形成节点导纳矩阵Y节点导纳矩阵的组装规则是对角元素( Y_{ii} )为与节点i相连的所有支路导纳之和加上该节点的接地导纳非对角元素( Y_{ij} )为节点i和j之间支路导纳的负值。在Matlab中可以直接循环组装function Y formY(branch, bus) n size(bus, 1); Y zeros(n, n); for k 1:size(branch, 1) i branch(k, 1); j branch(k, 2); r branch(k, 3); x branch(k, 4); b branch(k, 5); z r 1j*x; % 支路阻抗 y 1/z; % 支路导纳 yc 1j*b; % 充电电纳 Y(i,i) Y(i,i) y yc; Y(j,j) Y(j,j) y yc; Y(i,j) Y(i,j) - y; Y(j,i) Y(j,i) - y; end end这段代码的逻辑并不复杂但要注意对于配电网充电电纳通常很小可以近似忽略而对于含变压器的支路还需要考虑变压器的变比和短路阻抗非标准变比时需引入理想变压器模型此时Y矩阵的组装规则会更复杂一些。4.3 主迭代程序功率残差计算与雅可比矩阵更新主程序的核心是牛顿-拉夫逊迭代。下面给出一个经过简化但仍可运行的Matlab循环框架function [U, delta, iter] newtonRaphson(bus, branch, tol, maxIter) Y formY(branch, bus); n size(bus, 1); % 提取节点信息 busType bus(:,2); Pspec bus(:,3) / 1000; % kW - MW Qspec bus(:,4) / 1000; % kVar - MVar U bus(:,5); delta bus(:,6); % 节点集合 pqNodes find(busType 3); pvNodes find(busType 2); slNode find(busType 1); for iter 1:maxIter % 计算功率注入 Pcalc zeros(n, 1); Qcalc zeros(n, 1); for i 1:n for j 1:n Pcalc(i) Pcalc(i) U(i)*U(j)*(real(Y(i,j))*cos(delta(i)-delta(j)) ... imag(Y(i,j))*sin(delta(i)-delta(j))); Qcalc(i) Qcalc(i) U(i)*U(j)*(real(Y(i,j))*sin(delta(i)-delta(j)) ... - imag(Y(i,j))*cos(delta(i)-delta(j))); end end % 功率残差 dP Pspec - Pcalc; dQ Qspec - Qcalc; % 平衡节点不参与修正方程 dP(slNode) []; if ~isempty(pvNodes) Qspec(pvNodes) Qcalc(pvNodes); % PV节点的Q为自由变量 dQ(pvNodes) []; end dQ(slNode) []; % 检查收敛 if max(abs([dP; dQ])) tol break; end % 雅可比矩阵子块核心部分 J1 zeros(n-1, n-1); J2 zeros(n-1, n-1-length(pvNodes)); J3 zeros(n-1-length(pvNodes), n-1); J4 zeros(n-1-length(pvNodes), n-1-length(pvNodes)); % ... 根据2.2节公式计算各子块元素 ... % 求解修正方程 J [J1 J2; J3 J4]; dX J \ [-dP; -dQ]; % 更新状态变量 idx 0; for i 1:n if i slNode, continue; end idx idx 1; delta(i) delta(i) dX(idx); end idx 0; for i 1:n if i slNode || ismember(i, pvNodes), continue; end idx idx 1; U(i) U(i) dX(idx n - 1); end end end上面的代码框架省略了雅可比矩阵各元素的具体填充过程实际实现时按照第2节的公式逐项计算即可。这里要提醒一句雅可比矩阵的维度不是固定的n×n要去掉平衡节点的行和列、去掉PV节点的无功方程行和电压修正列剩下的维度才是修正方程的实际大小。很多初学者在这里出错导致矩阵维度不匹配。4.4 分布式电源节点如何嵌入Matlab代码分布式电源接入模型本质上就是在节点数据中修改该节点的注入功率和节点类型。举几个具体场景。场景一在某PQ节点接入一台恒功率控制的光伏容量为500kW功率因数为1。那么该节点的净注入有功为( P_{spec}(i) P_{DG} - P_{load} 0.5 - P_{load_pu} )净注入无功为( Q_{spec}(i) 0 - Q_{load_pu} )。在Matlab代码中只需要在初始化时更新节点的Pspec和Qspec即可。场景二DG采用PV控制给定有功出力和电压幅值。此时需在pvNodes数组中添加该节点编号同时在迭代过程中实时检查该节点的无功出力是否越限。如果计算得到的( Q_{DG} )超过逆变器容量上限则将该节点改为PQ节点以无功极限值重新迭代。这段PV转PQ的逻辑很多论文里都会提但很少给出具体实现思路。实际做法是在每次迭代结束后检查PV节点的无功注入如果( Q_{calc} Q_{max} )则令( Q_{spec} Q_{max} )节点类型改为PQ如果( Q_{calc} Q_{min} )则令( Q_{spec} Q_{min} )节点类型改为PQ。修改节点类型后重新组装功率残差向量和雅可比矩阵继续迭代。等下次迭代结束后再检查其他PV节点是否越限。4.5 潮流结果输出与支路功率计算收敛后除了得到各节点电压幅值和相角通常还需要计算支路功率和系统网损。支路ij的潮流公式为[ S_{ij} U_i I_{ij}^* U_i \left( \frac{U_i - U_j}{Z_{ij}} U_i \frac{Y_{ij}^{sh}}{2} \right)^* ]网损为所有支路首末端功率之和的实部[ P_{loss} \sum_{k1}^{m} \text{Re}(S_{ij}^{(k)} S_{ji}^{(k)}) ]Matlab中按此公式逐条支路计算即可。网损是后面分析分布式电源影响的核心指标。5. 接入位置与渗透率对系统电压和网损的量化影响5.1 分布式电源接入位置的影响规律有了可运行的潮流程序接下来要回答工程中最关心的问题分布式电源接在哪里更合适这个问题的答案不能靠拍脑袋要靠计算数据说话。我以IEEE 33节点系统为例分别把500kW的DG接在节点8线路末端附近、节点18最末端和节点2靠近变电站三种场景下保持其他条件不变计算各节点电压。结果很能说明问题。DG接在节点2时由于靠近变电站母线对系统电压分布几乎没有改善作用因为变电站母线本身电压由平衡节点维持在1.0puDG接在节点8时线路中后段的电压明显抬升最低电压从原来的0.93pu左右提升到0.96pu左右DG接在节点18时末端电压提升至0.98pu附近但可能出现局部电压越上限的风险尤其在轻负荷时段。这个规律背后的物理原因是配电线路上的电压降落主要由有功功率和无功功率流动引起DG接入后减少了线路上传输的功率从而减小了电压降落。接入点越靠近末端对末端电压的支撑效果越明显。但这里有一个边界DG容量超过当地负荷后多余功率会向变电站方向倒送电压不再单调下降而是先降后升末端电压可能高于首端这就是电压越限的来源。5.2 渗透率变化的临界点分析渗透率定义为分布式电源总有功出力与系统总负荷之比。还是以33节点系统为例系统总负荷约3.7MW在功率因数为1的前提下把渗透率从0逐步提高到120%观察系统最低电压和总网损的变化。渗透率在0到40%区间时最低电压随渗透率提升而上升网损同步下降渗透率在40%到80%区间时最低电压继续上升但网损下降的速度放缓渗透率超过80%后网损反而开始回升部分节点电压接近甚至超过1.05pu上限。这个“先降后升”的网损拐点在电力系统分析里是很经典的规律——当DG出力超过本地负荷时多余电力需要经长线路反送反向潮流带来的网损抵消了正向潮流减少的收益。这个结果给实际工程的启示是分布式电源接入并非越多越好存在一个最优渗透率区间。在做规划时不能只看DG单体的投资回报还要从电网运行角度评估其对网损和电压的影响。5.3 功率因数对电压和无功功率的影响DG运行在单位功率因数( \cos \phi 1 )时只向电网注入有功功率不参与无功调节电压改善主要依靠减小线路上的有功传输。如果DG具备无功调节能力比如功率因数设定为0.95滞后发出无功则对电压的支撑效果更加明显因为无功功率对电压幅值的影响更直接。但要注意逆变器的视在功率容量S是有限的当无功出力增加时有功出力上限相应降低。假设逆变器额定容量为500kVA功率因数从1.0降到0.95后最大有功出力从500kW降到475kW。在做潮流分析时如果想模拟这种运行状态需要把光伏输出设置为( P 475 \text{kW} )( Q P \cdot \tan(\arccos(0.95)) \approx 156 \text{kVar} )代入PQ节点进行计算。不同接入方案的关键指标对比如下表所示方案接入位置渗透率功率因数最低电压(pu)总网损(MW)无DG-01.00.9260.203方案1节点1813.5%1.00.9520.174方案2节点813.5%1.00.9410.186方案3节点1827.0%1.00.9730.158方案4节点1827.0%0.950.9810.149方案5节点1854.0%1.01.0230.164从表中可以清楚看到同样的DG容量接在末端对电压的改善幅度明显大于接在系统中间提高功率因数的确能进一步改善电压并降低网损但当渗透率过高时末端电压从偏低的隐患转换成越上限的风险。6. 收敛失败与异常结果的排查思路6.1 初值选择与迭代发散在实际运行Matlab代码时最常遇到的报错就是迭代不收敛或矩阵奇异。牛顿-拉夫逊法对初值有一定的敏感性尤其在配电网R/X比大、缺乏无功支撑的情况下平启动可能无法保证收敛。处理办法是调整初值将各节点电压初设为1.0pu没有问题时可以试试从0.98pu或1.02pu起步相角初值也可以根据经验微调。如果仍然不收敛检查导纳矩阵是否正确特别是支路参数的标幺化计算。一个很隐蔽的错误是用线电压还是相电压做基准电压、用三相功率还是单相功率做基准功率换算错了会导致Y矩阵差好几个数量级。在调试期可以在迭代过程中打印每次的功率残差观察其是单调下降还是振荡。如果残差振荡说明雅可比矩阵有误或节点类型划分不合理如果残差单调但下降极慢说明收敛精度设置过严或潮流本身接近运行极限此时可以考虑放宽收敛精度至1e-4。6.2 PV节点无功越限的处理顺序PV节点无功越限是分布式电源潮流计算中最典型的调试场景。处理越限时有一个容易忽略的细节多个PV节点同时越限时的处理顺序。建议的做法是每轮迭代后依次检查所有PV节点的无功出力找出越限最严重的那个节点先把该节点转换为PQ节点重新迭代等收敛后再检查剩余的PV节点。如果一次性把所有越限节点全部转PQ可能导致迭代过程中的状态量出现跳变反而不利于收敛。这个“逐个转换、随时检查”的策略在实际工程项目中验证了很多次收敛稳定性会好很多。另外PV节点转PQ后后续迭代中该节点的电压幅值就变成了自由变量不在修正方程中受约束。但要注意把相应节点的无功注入固定为无功极限值而不是沿用上一轮迭代的无功计算值。6.3 结果合理性验证代码能跑通不代表结果正确。我有几次计算出电压大于1.5pu或者支路潮流超出容量数十倍的“奇异”结果排查后都发现是数据处理问题。验证结果合理性有几个简单有效的手段。第一检查平衡节点功率是否平衡平衡节点发出的有功应等于系统总负荷减总DG出力加总网损如果这个等式两边差太多说明计算有误。第二检查各支路功率之和与节点功率是否满足基尔霍夫定律。第三把DG容量设为0跑一遍看结果是否与标准IEEE节点数据公布的结果吻合。这三个检查都通过后才有信心说潮流程序是可靠的。6.4 大系统计算加速的简单思路如果后面要做几十个节点的场景批量计算比如蒙特卡洛模拟不同DG出力每跑一次都重新计算雅可比矩阵显然不划算。一个实用的加速方式是利用潮流计算的“热启动”特性上一场景收敛后的电压就是下一场景的初值。在Matlab中只需保留上一轮的U和delta向量作为下一轮调用的初值迭代次数通常会从3-4次降到1-2次。对于批量场景这个优化能节省一半以上的计算时间。另一个思路是按直流潮流近似做初值估计不过配电网中R/X比高直流潮流本身误差就不小这个方案我没用过因为热启动效果已经足够好。7. 基于梯次结果的电压稳定性边际判断7.1 通过潮流结果观察电压稳定裕度潮流计算不只给出一个稳态运行点多次“试探性计算”可以辅助判断系统的电压稳定裕度。具体做法是逐步增大负荷或减少DG无功支撑每改变一次就运行一次潮流程序。当负荷增大到某个临界值时Jacobi矩阵接近奇异潮流收敛开始变慢电压值大幅下降这通常意味着系统已接近电压崩溃点。在Matlab代码中可以在每次迭代结束时判断雅可比矩阵的条件数。条件数突然增大的场景往往就是电压接近失稳的预兆。这个方法不能替代完整的连续潮流法但在工程评估中足够快速有效。7.2 DG出力波动场景的小样本分析分布式电源的出力具有随机性特别是光伏受云层遮挡影响可能在一分钟内波动20%以上。要分析这种波动对系统电压的影响不必跑完整的概率潮流采用确定性场景法就够了。选取三个典型场景——DG高出力、DG平均出力、DG零出力分别运行潮流计算比较各节点电压的包络范围。只要极端场景下电压都不越限系统的安全性就基本有保障。这种“三场景法”在工程中非常实用也比单一场景的潮流结果更能说明问题。最后说几句实操中的真心话这套Matlab潮流程序我前前后后用了差不多两年在不断修改和调试中积累了一些体会。最深刻的一点是不要让代码的复杂性超过问题的本质。很多人一上来就想实现带分布式电源、储能、电动汽车和柔性负荷的全动态潮流模型结果卡在调试泥潭里出不来。我的建议是先从纯PQ节点的DG并网算起确认电压曲线和网损变化符合物理直觉后再加入PV节点再考虑无功越限一步一个脚印来。还有一个小技巧就是在Matlab中把节点电压结果用bar图或plot画出电压分布曲线。用图来“看”计算结果远比自己盯着数字检查效率高。电压曲线上的异常突起或凹陷往往一眼就能发现数据或模型上的问题。我在给本科生指导毕业设计时也要求他们把网络结构图和各节点电压标在同一张图上这样能快速定位问题节点。如果后面还想深入可以沿着两个方向扩展。一是把程序改造成连续潮流用来求静态电压稳定极限二是引入负荷的电压静特性让潮流计算更贴近实际配电网。手头上这套牛顿-拉夫逊代码是这些高级分析的地基把地基打扎实后面的路自然好走。
返回列表