文档介绍:电力系统的潮流计算的计算机算法:以 MATLAB 为环境这里理论不做过多介绍,推荐一本专门讲解电力系统分析的计算机算法的书籍---- ----- 《电力系统分析的计算机算法》—邱晓燕、刘天琪编著。这里以这本书上的例题【 2-1 】说明计算机算法计算的过程,分别是牛顿拉弗逊算法的直角坐标和极坐标算法、 P-Q 分解算法。主要是简单的网络的潮流计算, 其实简单网络计算和大型网络计算并无本质区别,代码里面只需要修改循环迭代的 N 即可,这里旨在弄清计算机算法计算潮流的本质。代码均有详细的注释. 其中简单的高斯赛德尔迭代法是以我们的电稳教材为例子讲, 其实都差不多, 只要把导纳矩阵 Y 给你,节点的编号和分类给你,就可以进行计算了,不必要找到原始的电气接线图。简单的高斯赛德尔迭代法: 这里我们只是迭代算出各个节点的电压值,支路功率并没有计算。 S_ij=P_ij+Q_ij=V_i(V_i* - V_j*) * y_ij* 可以计算出各个线路的功率在显示最终电压幅角的时候注意在 MATLAB 里面默认的是弧度的形式, 需要转化成角度显示。 clear;clc; % 电稳书 Page 102 例题 3-5 % 计算网络的潮流分布--- 高斯- 赛德尔算法% 其中节点 1 是平衡节点% 节点 2 、3 是 PV 节点,其余是 PQ 节点% 如果节点有对地导纳支路% 需将对地导纳支路算到自导纳里面%------------------------------------------------% % 输入原始数据,每条支路的导纳数值,包括自导和互导纳; y=zeros(5,5); y(1,2)=1/(+*1i); y(1,5)=1/(+*1i); y(2,3)=1/(+*1i); y(2,4)=1/(+*1i); % 由于电路网络的互易性,导纳矩阵为对称的矩阵 for i=1:1:5 for j=1:1:5 y(j,i)=y(i,j); end end % 节点导纳矩阵的形成 Y=zeros(5,5); % 求互导纳 for i=1:1:5 for j=1:1:5 if i~=j Y(i,j)=-y(i,j); end end end % 求自导纳 for i=1:1:5 % 这句话是说将 y 矩阵的第 i 行的所有元素相加,得到自导纳的值 Y(i,i)=sum(y(i,:)); end % 上面求得的自导纳不包含该节点的对地导纳数值,需要加上 Y(2,2)=Y(2,2)+*1i; Y(3,3)=Y(3,3)+*1i; Y(4,4)=Y(4,4)+*1i; Y(5,5)=Y(5,5)+*1i; % 导纳矩阵的实部和虚部 G= real(Y); B= imag(Y); Qc2=0;Qc3=0; % 原始节点功率% 这里电源功率为正,负荷功率为负 S(1)=0; S(2)=--*1i+Qc2*1i; S(3)=--*1i+Qc3*1i; S(4)=-+*1i; S(5)=--*1i; % 节点功率的 PQP= real(S); Q= imag(S); % 下面是两个 PV 节点的无功初始值 Q(2) = 0; Q(3) = 0; U=ones(5,1); %1 列5 行的‘1’矩阵% 节点电压初始值 U(1)=;U(2)=;U(3)=; U_reg=U; Sum_YU0=0; % 中间变量 Sum_YU1=0; % 中间变量 for cont=1:1:6 % 这里的 cont 是迭代次数 for i=2:1:5 for j=1:1:i if i~=j Sum_YU0 = Sum_YU0 + Y(i,j)*U_reg(j); end end for j=i+1:1:5 Sum_YU1 = Sum_YU1 + Y(i,j)*U(j); end U(i)=( (P(i)-Q(i)*1i )/ conj(U(i)) - Sum_YU0 - Sum_YU1 )/ Y(i,i); U_reg(i)=U(i); %PV 节点计算% 下面是把求出的 U2 、 U3 只保留其相位,幅值不变 if i==2 angle_U2 = angle(U(2)); U(2)=*cos(angle_U2)+*sin(angle_U2)*1i; Q(2)=imag( U(2)*( conj(Sum_YU0) + conj(Sum_YU1) + conj(Y(2,2)*U(2)) ) ); end if i==3 angle_