diff --git a/YMatrix.py b/YMatrix.py new file mode 100644 index 0000000..a4405c1 --- /dev/null +++ b/YMatrix.py @@ -0,0 +1,26 @@ +__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)) \ No newline at end of file diff --git a/pso.py b/pso.py index d2fba08..deb35e8 100644 --- a/pso.py +++ b/pso.py @@ -1,7 +1,9 @@ __author__ = 'dmy' from reader import * +from YMatrix import * if __name__=='__main__': ieeeData=IEEEData('IEEE4.dat') + yMatrix=FormYMatrix(ieeeData.lineBlock,ieeeData.transBlock,ieeeData.busNum) print('Finished.') \ No newline at end of file diff --git a/reader.py b/reader.py index 55811cc..7f1d5f0 100644 --- a/reader.py +++ b/reader.py @@ -8,9 +8,17 @@ class IEEEData: self._seperator=seperator self._read() def _convertToVector(self,lineVec):#把数据文件按分隔符存成矩阵,像Matlab一样。 - self._array=numpy.array(lineVec) - print(lineVec) - print(self._array[0]) + #先全部转换为列表 + maxLen=0 + for v in lineVec: + if maxLen