程序名称##
含DG的配电网三相谐波潮流计算(matlab版)
算法说明
基本思想:将叠加原理和频率扫描法应用于三相潮流计算。其核心是:
在多个频率下分别建立电网模型(基波、各次谐波频率)。
非线性负载被建模为谐波电流源,其注入电流取决于其两端的谐波电压(可能具有耦合关系)。
通过迭代求解,使得整个网络在所有频率下的电气关系(基波潮流和谐波注入)同时得到满足。
1.数学模型基础
a.线路与电缆,电容、电抗:
采用分布参数模型或精确的π型等值电路。
电阻考虑集肤效应,电感视为常数,电抗与频率成正比,电容电抗与频率成反比。
Zh=Rh+jhXL−jXCh Z_h = R_h + jhX_L - j\frac{X_C}{h} Zh=Rh+jhXL−jhXC
其中XL=2πfLX_L = 2\pi f LXL=2πfL,XC=12πfCX_C = \frac{1}{2\pi f C}XC=2πfC1,h 为谐波次数,近似公式。
在电力系统中,三相耦合谐波导纳矩阵通常表示为:
Y(h)=Yaa(h)Yab(h)Yac(h) Yba(h)Ybb(h)Ybc(h) Yca(h)Ycb(h)Ycc(h) \mathbf{Y}^{(h)} = \begin{bmatrix} Y_{aa}^{(h)} & Y_{ab}^{(h)} & Y_{ac}^{(h)}\newline \ Y_{ba}^{(h)} & Y_{bb}^{(h)} & Y_{bc}^{(h)}\newline \ Y_{ca}^{(h)} & Y_{cb}^{(h)} & Y_{cc}^{(h)} \end{bmatrix} Y(h)= Yaa(h) Yba(h) Yca(h)Yab(h)Ybb(h)Ycb(h)Yac(h)Ybc(h)Ycc(h)
其中:下标 a,b,ca,b,ca,b,c 表示三相系统(A相、B相、C相);上标 (h)(h)(h) 表示谐波次数(h=1h=1h=1 为基波);矩阵元素 Ymn(h)=Gmn(h)+jBmn(h)Y_{mn}^{(h)} = G_{mn}^{(h)} + jB_{mn}^{(h)}Ymn(h)=Gmn(h)+jBmn(h) 为复数导纳;相角关系需满足 Yab(h)=∣Yab(h)∣ejθab(h)Y_{ab}^{(h)} = |Y_{ab}^{(h)}|e^{j\theta_{ab}^{(h)}}Yab(h)=∣Yab(h)∣ejθab(h) 等形式,包含自感和互感。
注:此程序实际计算中忽略了各相之间互阻抗,仅保留三相自阻抗,简化计算,后续会增加考虑互阻抗潮流计算。
b.变压器:
励磁支路可能产生谐波(饱和时),通常作为谐波电流源处理。
连接组别对谐波传播有重要影响,特别是零序谐波。
Zgh=jhXdL′ Zg_h = jhXd'_L Zgh=jhXdL′
c.负载:
线性负载:在谐波频率下,用其R-L-C等值阻抗表示 Zload(h)。本文仅考虑线性负荷。
非线性负载(核心):通常建模为谐波电流源 Ih与一个谐波导纳Yh的并联组合。其中注入的谐波电流与基波电压V1和谐波电压Vh有关:Yh(inj)=Ih(V1)−YhY_{h}^{(inj)} = I_{h}\left(V_{1}\right)-Y_{h}Yh(inj)=Ih(V1)−Yh。
d.电容器:
在电力系统谐波分析中,电容器需要建立谐波等值模型以反映其在谐波频率下的特性。电容器的阻抗随频率变化,其谐波模型需考虑基波和谐波频率下的等效参数。
电容器的阻抗公式为:ZC(f)=1j2πfC Z_C(f) = \\frac{1}{j2\\pi f C} ZC(f)=j2πfC1
其中 ( f ) 为频率,( C ) 为电容值。在谐波频率f。( h ) 为谐波次数,( f_1 ) 为基波频率)下,阻抗变为: ZC(h)=1j2πhf1C Z_C(h) = \\frac{1}{j2\\pi h f_1 C} ZC(h)=j2πhf1C1
第 h 次谐波下每相导纳:
Y(C,h)=jhwC=jhBC\]\[ \\mathbf{Y}_{(C,h)} = jhwC=jhB_C\]\[Y(C,h)=jhwC=jhBC
2 网络方程------谐波导纳矩阵
对于第 h 次谐波,整个三相网络的节点电压方程可以写为:
I(h)=Y(h)V(h)\]\[ \\mathbf{I}\^{(h)} = \\mathbf{Y}\^{(h)} \\mathbf{V}\^{(h)} \]\[I(h)=Y(h)V(h)
I(h) \\mathbf{I}\^{(h)}I(h) 是n×1 的节点谐波注入电流相量列向量。
V(h) \\mathbf{V}\^{(h)}V(h)是n×1 的节点谐波电压相量列向量。
Y(h) \\mathbf{Y}\^{(h)}Y(h)是n×n 的谐波节点导纳矩阵,它由所有元件在该频率下的三相模型组装而成,通常是高度稀疏的复数矩阵。
3.计算谐波参数
总谐波电压畸变率:
THDV=∑h=2∞Vh2V1×100 THD_V = \frac{\sqrt{\sum_{h=2}^{\infty} V_h^2}}{V_1} \times 100% THDV=V1∑h=2∞Vh2 ×100
总谐波电流畸变率:
THDI=∑h=2∞Ih2I1×100 THD_I = \frac{\sqrt{\sum_{h=2}^{\infty} I_h^2}}{I_1} \times 100% THDI=I1∑h=2∞Ih2 ×100
一般来讲系统中主变对于采用三角形接线的部分(或通过Y/Δ变压器与系统连接的部分),主要需要重点关注和分析正序与负序谐波,即特征次数为 h=6k±1 的谐波(对于6脉波整流器,主要是5、7、11、13、17、19...次)。
4.算法流程
步骤1:求解基波潮流:首先进行三相不平衡潮流计算(通常采用牛顿-拉夫逊法)。这提供了系统的基波电压 V1(幅值和相角),它是非线性负载产生谐波电流的"驱动源"。
步骤2/3:谐波迭代循环:
非线性负载模型计算:根据从基波潮流得到的 V1,基波电流I1和上一次迭代得到的谐波电压 Vh(k−1) \\mathbf{V}_{h}\^{(k-1)}Vh(k−1),根据非线性负载的数学模型,计算出它注入系统的谐波电流源矢量Ih(inj) \\mathbf{I}_{h}\^{(inj)}Ih(inj) 。理想情况(无重叠角,无限大电感)下第 h 次谐波电流幅值:Ih=I1hI_h = \frac{I_1}{h}Ih=hI1。相角公式(考虑触发延迟角 α):θh=θ1−hα±π2θ_h =θ_1-hα± \frac{\pi}{2}θh=θ1−hα±2π(符号取决于谐波次数)。
线性网络求解:对于每个谐波频率 h,将Ih(inj)\mathbf{I}{h}^{(inj)}Ih(inj) 作为注入电流,代入该频率的谐波网络方程 Y(h)V(h)=Ih(inj) \\mathbf{Y}\^{(h)} \\mathbf{V}\^{(h)}= \\mathbf{I}_{h}\^{(inj)}Y(h)V(h)=Ih(inj)中,直接求解(如极坐标牛顿拉夫逊潮流),得到新的谐波电压 Vh(k)\mathbf{V}{h}^{(k)}Vh(k) 。
步骤4:收敛判断比较所有节点、所有次数的谐波电压在前后两次迭代中的变化量。若小于预设容差,则收敛;否则,用新求得的 Vh(k)\mathbf{V}_{h}^{(k)}Vh(k) 更新线性负载模型,再次计算 Ih(inj) \\mathbf{I}_{h}\^{(inj)}Ih(inj) ,重复此过程。
步骤5:结果输出,各节点谐波电压畸变率和各次谐波电压幅值,电流幅值,支路损耗。
程序功能(对象)
- 适用于任意大小的纯交流电网,支持节点和支路的增删;
- 适用于接入多个风电、光伏等分布式电源;
- 适用于接入任意个数谐波以及任意次数谐波(以5/7/11/13/17次谐波为例)
- 适用场景:电网三相不对称或单相DG并网效果凸显
- 子函数包含:节点导纳矩阵计算,雅克比矩阵计算(n-1+m维);
- 程序输出:各个节点三相基波和各次谐波电压幅值相角、各支路三相首末端潮流及损耗、各节点各相谐波电压畸变率;
程序函数说明
-
主程序:Three_NL_PowerFlow
-
输入算例子程序:截图包含的所有case文件
-
节点导纳子程序:createYbus文件
-
雅克比矩阵子程序:Jacobi文件
-
诺顿模型谐波潮流程序:MY_harmonic_flow文件
-
系统参数文件:case33bw2文件

程序计算步骤及流程图 -
参数初始化,读取网络参数,在此标幺化
ac_3phase_data = case33bw2;%三相数据
ac_3phase_baseMVA = ac_3phase_data.baseMVA;
ac_3phase_bus = ac_3phase_data.bus;
ac_3phase_branch = ac_3phase_data.branch;
ac_3phase_gen = ac_3phase_data.gen; %电网三相数据
ac_3phase_dg = ac_3phase_data.dg; %%电网数据
source1 = ac_3phase_data.source; %谐波电流含有率 -
构造单相潮流所需数据
ac_bus = [ac_3phase_bus(:, 1:2), ac_3phase_bus(:, 2*phase+1:2*phase+2),ac_3phase_bus(:, 9:11),ac_3phase_bus(:, 2*phase+10:2*phase+11), ac_3phase_bus(:, 18:end)]; ac_branch = [ac_3phase_branch(:, 1:2),ac_3phase_branch(:, [phase+2 phase+8 phase+11]), ac_3phase_branch(:, 20:24), ac_3phase_branch(:, phase+24), ac_3phase_branch(:, 28:29)]; ac_gen = [ac_3phase_gen(:, 1), ac_3phase_gen(:, 2*phase: 2*phase+1),ac_3phase_gen(:, 8:end)]; %发电机三相数据 -
基于牛拉法的基波潮流计算基波电压电流
dPQ = [dP ; dQ(1:m)];
ang_U = -J^-1dPQ;%基波电压幅值相角修正(参考牛拉法或PQ分解法)
Iii(:, 2) = conj(Sii)./conj(Ui); %注意共轭的取值
Ii = YbusUi; %Ii = Yi1U1+Yi2U2+Yi3*U3+...... -
理想情况(无重叠角,无限大电感)下第 h 次谐波电流:
I_h(source1(:,1)) = -Iii(source1(:,1), 2).*source1(:, i+1); %用节点注入电流约为0.0075时谐波电压畸变率2%
-
各设备的谐波等值模型(可自行根据需求增加)
%发电机谐波模型
XG_h = 1ihac_gen(:, 23)/ZB; %负序电抗0.2;XG=1ih0.2sqrt(real(Sn)2+imag(Sn)2);
yG = 1./XG_h;
Zload([ac_bn;ac_pv] , i) = XG_h;
%负荷谐波阻抗模型
Num_L= find( load_power(ac_pq) ~=0); %pq节点中非零负荷的位置
RL = real(load_power(ac_pq(Num_L))).(Bus_V(ac_pq(Num_L), 2)UB).2./(abs(load_power(ac_pq(Num_L)))).2;%有名值计算
RL = RL/ZB; %33节点系统需要标幺化,下同
XL = imag(load_power(ac_pq(Num_L))).(Bus_V(ac_pq(Num_L), 2)UB).2./(abs(load_power(ac_pq(Num_L)))).2;
XL = XL/ZB;
Zload(ac_pq(Num_L) ,i) = RL+1ih*XL; %Z=U2*S/|S|2 -
形成网络谐波导纳矩阵,求解h次潮流,得到新的谐波电压Vh:
Ybus_h = createYbus(ac_baseMVA, bus_h, branch_h);
U_h = (Ybus_h^-1)*I_h; -
输出支路潮流及损耗,各节点电压向量,各支路电流情况
Sij_branch_h = U_h(from_node).*conj(I_branch_h); %支路ij流过的容量
Sji_branch_h = U_h(to_node).*conj(-I_branch_h); %支路ji流过的容量
loss(: ,i) =abs(real(Sij_branch_h+Sji_branch_h))ac_baseMVA10^6; %谐波潮流有功损耗
THDU = sqrt(sum(V_bus_h_total_abs.^2))./Bus_V(:, 2)'; %各个节点的谐波畸变率 -
计算流程图如下图所示
以电网参数和谐波源特性为输入,通过交替求解基波潮流与谐波网络方程来实现。具体流程是:
首先形成基波导纳矩阵并初始化电压,通过牛顿-拉夫逊法等求解基波潮流,得到系统基波运行状态;随后进入谐波分析阶段,根据已建立的设备谐波等值模型和基波电压,计算各节点的谐波电流注入量,并针对每一次谐波频率形成对应的谐波导纳矩阵,求解谐波网络方程得到各次谐波电压;然后利用新的谐波电压更新非线性负载的谐波注入电流,如此迭代直至谐波电压收敛;最后累加所有频率分量,计算包括电压电流畸变率、谐波损耗在内的各项指标并输出结果。

程序结果分析
- 谐波接入的拓扑结构图,在12/22/25/29节点接入各次三相谐波源。

- 系统三相基波电压幅值对比情况,其中C相负荷和阻抗设置比较大,故电压偏低,A相负荷较小,且接入DG。

- 系统中三相各次谐波电压幅值波动情况。
4. 系统中三相各支路损耗波动情况。

- 系统三相各节点谐波电压畸变大小,其中往往是谐波源中的某一个节点谐波电压畸变率最大,波形可根据自己需求修改。

程序获取
需要完整版程序,通用性程序请私信"深入"探讨V lemonyoungman 提供程序答疑
想要根据自己需求修改的或者python版的也可以联系