形成导纳矩阵

Signed-off-by: dmy@lab <dmy@lab.lab>
This commit is contained in:
dmy@lab 2015-05-01 13:00:30 +08:00
parent fadc4d7c94
commit 5d16aa45d1
1 changed files with 11 additions and 6 deletions

View File

@ -10,17 +10,22 @@ def FormYMatrix(lineBlock,transBlock,busNum):
r=lineBlock[:,3] r=lineBlock[:,3]
x=lineBlock[:,4] x=lineBlock[:,4]
gb=1/(r+1j*x) gb=1/(r+1j*x)
y=sparse.coo_matrix((gb,(lineBlock[:,1]-1,lineBlock[:,2]-1)),shape=(busNum,busNum)) y=sparse.coo_matrix((-gb,(lineBlock[:,1]-1,lineBlock[:,2]-1)),shape=(busNum,busNum))
y=sparse.coo_matrix((-gb,(lineBlock[:,2]-1,lineBlock[:,1]-1)),shape=(busNum,busNum))
y-=sparse.coo_matrix((y.sum(1).A1,(numpy.arange(int(busNum)),numpy.arange(int(busNum)))),shape=(busNum,busNum))
#加接地支路 #加接地支路
b2=lineBlock[:,5] b2=lineBlock[:,5]
y+=sparse.coo_matrix((1j*b2,(lineBlock[:,1]-1,lineBlock[:,1]-1)),shape=(busNum,busNum)) y+=sparse.coo_matrix((1j*b2,(lineBlock[:,1]-1,lineBlock[:,1]-1)),shape=(busNum,busNum))
y+=sparse.coo_matrix((1j*b2,(lineBlock[:,2]-1,lineBlock[:,2]-1)),shape=(busNum,busNum)) y+=sparse.coo_matrix((1j*b2,(lineBlock[:,2]-1,lineBlock[:,2]-1)),shape=(busNum,busNum))
print(y.sum(1))
print(numpy.arange(int(busNum)).shape[0])
y+=sparse.coo_matrix((numpy.array(y.sum(1)),(numpy.arange(int(busNum)),numpy.arange(int(busNum)))),shape=(busNum,busNum))
#加变压器 #加变压器
#TODO:没有考虑变比
transX=transBlock[:,3] transX=transBlock[:,3]
transR=transBlock[:,4] transR=transBlock[:,4]
transGB=1/(transR+1j*transX) transGB=1/(transR+1j*transX)
y+=sparse.coo_matrix((transGB,(transBlock[:,1]-1,transBlock[:,2]-1)),shape=(busNum,busNum)) k=transBlock[:,5]
y+=sparse.coo_matrix((-transGB/k,(transBlock[:,1]-1,transBlock[:,2]-1)),shape=(busNum,busNum))
y+=sparse.coo_matrix((-transGB/k,(transBlock[:,2]-1,transBlock[:,1]-1)),shape=(busNum,busNum))
#变压器对角
y+=sparse.coo_matrix((transGB/k/k,(transBlock[:,1]-1,transBlock[:,1]-1)),shape=(busNum,busNum))
y+=sparse.coo_matrix((transGB,(transBlock[:,2]-1,transBlock[:,2]-1)),shape=(busNum,busNum))
#TODO:没有电容接地支路
return y