__author__ = 'dmy' import numpy import scipy.sparse as sparse import scipy.sparse def FormYMatrix(lineBlock,transBlock,busNum): r=lineBlock[:,3] x=lineBlock[:,4] gb=1/(r+1j*x) y=sparse.coo_matrix((gb,(lineBlock[:,1]-1,lineBlock[:,2]-1)),shape=(busNum,busNum)) #加接地支路 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[:,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] transR=transBlock[:,4] transGB=1/(transR+1j*transX) y+=sparse.coo_matrix((transGB,(transBlock[:,1]-1,transBlock[:,2]-1)),shape=(busNum,busNum))