博客
关于我
1至m为PQ节点,m+1至n-1为PV节点,n为平衡节点
阅读量:798 次
发布时间:2023-04-17

本文共 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 = -2
e(i);
X6 = -2
f(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/

你可能感兴趣的文章
Mysql group by
查看>>
MySQL I 有福啦,窗口函数大大提高了取数的效率!
查看>>
mysql id自动增长 初始值 Mysql重置auto_increment初始值
查看>>
MySQL in 太多过慢的 3 种解决方案
查看>>
MySQL InnoDB 三大文件日志,看完秒懂
查看>>
Mysql InnoDB 数据更新导致锁表
查看>>
Mysql Innodb 锁机制
查看>>
MySQL InnoDB中意向锁的作用及原理探
查看>>
MySQL InnoDB事务隔离级别与锁机制深入解析
查看>>
Mysql InnoDB存储引擎 —— 数据页
查看>>
Mysql InnoDB存储引擎中的checkpoint技术
查看>>
Mysql InnoDB存储引擎中缓冲池Buffer Pool、Redo Log、Bin Log、Undo Log、Channge Buffer
查看>>
MySQL InnoDB引擎的锁机制详解
查看>>
Mysql INNODB引擎行锁的3种算法 Record Lock Next-Key Lock Grap Lock
查看>>
mysql InnoDB数据存储引擎 的B+树索引原理
查看>>
mysql innodb通过使用mvcc来实现可重复读
查看>>
mysql insert update 同时执行_MySQL进阶三板斧(三)看清“触发器 (Trigger)”的真实面目...
查看>>
mysql interval显示条件值_MySQL INTERVAL关键字可以使用哪些不同的单位值?
查看>>
Mysql join原理
查看>>
MySQL Join算法与调优白皮书(二)
查看>>