本文共 2479 字,大约阅读时间需要 8 分钟。
节点排序:1至m为PQ节点,m+1至n-1为PV节点,n为平衡节点。
清空变量;
清空控制标志;初始化数据矩阵Y,设置为零矩阵;对于i从1到n:
如果X(i,2)不等于0:p = X(i,1);Y(p,p) = 1./X(i,2);对于i从1到nl:
如果B1(i,6)等于0:p = B1(i,1);q = B1(i,2);否则:p = B1(i,2);q = B1(i,1);Y(p,q) = Y(p,q) - 1/(B1(i,3)*B1(i,5));Y(q,p) = Y(p,q);Y(q,q) = Y(q,q) + 1/(B1(i,3)*B1(i,5)^2) + B1(i,4)/2;Y(p,p) = Y(p,p) + 1/B1(i,3) + B1(i,4)/2;输出导纳矩阵Y;
G = 实数部分(Y);
B = 虚数部分(Y);对于i从1到n:
e(i) = 实数部分(B2(i,3));f(i) = 虚数部分(B2(i,3));V(i) = B2(i,4);对于i从1到n:
S(i) = B2(i,1) - B2(i,2);Ps = 实数部分(S);
Qs = 虚数部分(S);初始化数值和矩阵:
num = 0;control = 1;J = 零矩阵,大小为(2n-2, 2n-2);b = 零向量,大小为(2n-2,1);while control ≠ 0:
对于i从1到n-1:计算C和D:C = G(i,j)*e(j) - B(i,j)*f(j);D = G(i,j)*f(j) + B(i,j)*e(j);对于j从1到n:C = C + G(i,j)*e(j) - B(i,j)*f(j);D = D + G(i,j)*f(j) + B(i,j)*e(j);P(i) = e(i)*C + f(i)*D;Q(i) = f(i)*C - e(i)*D;V2 = e(i)^2 + f(i)^2;如果i ≤ m:DP = Ps(i) - P(i);DQ = Qs(i) - Q(i);对于j从1到n-1:如果i == j:X1 = -C - G(i,i)*e(i) - B(i,i)*f(i);X2 = -D + B(i,i)*e(i) - G(i,i)*f(i);X3 = D + B(i,i)*e(i) - G(i,i)*f(i);X4 = -C + G(i,i)*e(i) + B(i,i)*f(i);否则:X1 = -G(i,j)*e(i) - B(i,j)*f(i);X2 = B(i,j)*e(i) - G(i,j)*f(i);X3 = X2;X4 = -X1;p = 2i-1;q = 2j-1;u = p+1;v = q+1;J(p,q) = X1;J(p,v) = X2;J(u,q) = X3;J(u,v) = X4;b(p,1) = DP;b(u,1) = DQ;如果i > m:DV = V(i)^2 - V2;对于j从1到n-1:如果i == j:X1 = -C - G(i,i)*e(i) - B(i,i)*f(i);X2 = -D + B(i,i)e(i) - G(i,i)f(i);X5 = -2e(i);X6 = -2f(i);否则:X1 = -G(i,j)*e(i) - B(i,j)*f(i);X2 = B(i,j)*e(i) - G(i,j)*f(i);X5 = 0;X6 = 0;p = 2i-1;q = 2j-1;u = p+1;v = q+1;J(p,q) = X1;J(p,v) = X2;J(u,q) = X5;J(u,v) = X6;b(p,1) = DP;b(u,1) = DV;J = -J; x = J \ b; 对于i从1到n-1: e(i) = e(i) + x(2i-1); f(i) = f(i) + x(2i); ABS = 绝对值(b); MAX = ABS的最大值; 如果MAX ≤ pr: control = 0; 否则: num = num + 1;
对于i从1到num:
Dy(num,i) = sqrt(e(i)^2 + f(i)^2);输出迭代次数;
对于i从1到n:
V(i) = sqrt(e(i)^2 + f(i)^2);O(i) = atan(f(i)/e(i)) * 180/π;输出各节点的电压大小和电压相角;
对于p从1到n:
C(p) = 0;对于q从1到n:C(p) = C(p) + Y(p,q)*E(q);S(p) = E(p) * conj(C(p));输出各节点的功率;
对于i从1到nl:
如果B1(i,6)等于0:p = B1(i,1);q = B1(i,2);否则:p = B1(i,2);q = B1(i,1);Si(p,q) = E(p) * (conj(E(p)) * conj(B1(i,4)) + (conj(E(p)/B1(i,5)) - conj(E(q))) * conj(1/(B1(i,3)*B1(i,5))));对于i从1到nl:
如果B1(i,6)等于0:p = B1(i,1);q = B1(i,2);否则:p = B1(i,2);q = B1(i,1);Sj(q,p) = E(q) * (conj(E(q)) * conj(B1(i,4)) + (conj(E(q)/B1(i,5)) - conj(E(p))) * conj(1/(B1(i,3)*B1(i,5))));输出各条支路的首端功率和末端功率;
输出各条支路的功率损耗;
输出各节点的功率;
输出各条支路的功率损耗;
输出各节点的功率;
生成迭代次数与电压迭代曲线的图形;
转载地址:http://htgfk.baihongyu.com/