From fadc4d7c941b48e9b5ccae100bc5d7c8aff27a1b Mon Sep 17 00:00:00 2001 From: "dmy@lab" Date: Thu, 30 Apr 2015 22:42:21 +0800 Subject: [PATCH] =?UTF-8?q?y=E7=9F=A9=E9=98=B5=E5=BD=A2=E6=88=90=E5=88=B0?= =?UTF-8?q?=E4=B8=80=E5=8D=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: dmy@lab --- YMatrix.py | 26 ++++++++++++++++++++++++++ pso.py | 2 ++ reader.py | 44 ++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 68 insertions(+), 4 deletions(-) create mode 100644 YMatrix.py 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