本文共 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/