diff --git a/Script/FileData.py b/Script/FileData.py index ef6cbd3..c79f779 100644 --- a/Script/FileData.py +++ b/Script/FileData.py @@ -20,6 +20,7 @@ class iPsoData: self.__voltLimit = [] self.__ground = [] self.__isAvailable = False + self.__cap=[] self.__read__(filePath) pass @@ -57,6 +58,8 @@ class iPsoData: self.__trans.append(floatSep) if cur == 5: self.__ground.append(floatSep) + if cur==6: + self.__cap.append(floatSep) if cur == 8: self.__nodePwer.append(floatSep) if cur == 9: @@ -67,6 +70,9 @@ class iPsoData: self.__voltLimit.append(floatSep) line = f.readline() + def GetCapcitor(self): + return self.__cap + def GetBasicInfo(self): return self.__basicInfo @@ -105,18 +111,22 @@ class MergeReconfigFile: # 合并重构用文件 self.__mergedIpsoBalance = [] self.__mergedIpsoLine = [] self.__mergedIpsoTrans = [] + self.__mergedCapcitor=[] self.__mergedIpsoLoad = [] self.__mergedIpsoGround = [] self.__mergedNodeNameDic = {} # self.__addNumDic = {} #计算每个文件在新文件中的偏移量 self.__balanceNodeOffset=[]#记录每条线路头节点在整个合并文件中的位置 + self.__nodePlace= dict() self.__merge(fileList) + def __merge(self, fileList): indLine = 1 #序号 indTrans=1 indNode = 2 indGround = 1 + indCap=1 addNum = 1 # offsetNodeNum = {} #记录每个一个文件在新文件里节点的偏移量 count=1 @@ -150,11 +160,17 @@ class MergeReconfigFile: # 合并重构用文件 #接地支路 for g in ipsodata.GetGround(): self.__mergedIpsoGround.append([indGround, g[1] + addNum, g[2], g[3]]) + indGround+=1 + #电容器 + for c in ipsodata.GetCapcitor(): + self.__mergedCapcitor.append([indCap,c[1],c[2]+addNum,c[3],c[4],c[5],c[6],c[7]]) + indCap+=1 #先给PG和QG赋值 node = ipsodata.GetNodePower() #序号 节点编号 节点有功 节点无功 负荷有功 负荷无功 for n in ipsodata.GetNodePower(): self.__mergedIpsoLoad.append([indNode, n[1], n[2] + addNum, n[3], n[4], n[5], n[6], n[7], 0, 0]) + self.__nodePlace[n[2] + addNum]=f indNode += 1 # self.__addNumDic[lineName] = len(ipsodata.GetNodePower()) #每条线路的节点数 # offsetNodeNum[lineName] = addNum #记录的是与之前线路的偏移量 @@ -198,6 +214,9 @@ class MergeReconfigFile: # 合并重构用文件 for g in self.__mergedIpsoGround: f.write('%d %d %f %f\n' % (g[0], g[1], g[2],g[3])) f.write('0\n') + for c in self.__mergedCapcitor: + #[indCap,c[1],c[2]+addNum,c[3],c[4],c[5],c[6],c[7]] + f.write('%d %d %d %f %f %d %d %d\n' % (c[0], c[1], c[2],c[3],c[4],c[5],c[6],c[7])) f.write('0\n') f.write('0\n') for n in self.__mergedIpsoLoad: diff --git a/testHasttable/cimexporter.cpp b/testHasttable/cimexporter.cpp index 1112e8b..157c016 100644 --- a/testHasttable/cimexporter.cpp +++ b/testHasttable/cimexporter.cpp @@ -206,6 +206,8 @@ void CIMExporter::exportTo(const QString& path,const QString &rootID) QList groudBranch;//first is g, second is b. QList nodePQ;//节点注入功率,也就是负荷或者发电机 QStringList usedLoad; + //电容器补偿量 + QHash capacitor; for(QList::iterator ite=this->tf.begin(); ite!=this->tf.end(); ite++) @@ -238,7 +240,9 @@ void CIMExporter::exportTo(const QString& path,const QString &rootID) writer<fromNum, ite->tf->g1,ite->tf->b1));//都只用g1,b1的数据 - + //保存补偿量 + capacitor[ite->toNum]=ite->tf->capacityMVA*.3;//30% 容性 +// std::cout<<"cap "<tf->capacityMVA<< ite->id.toStdString()<toNum] < > vecLoadInfo=loadMapping.getSubstationLoad(sub->getID()); @@ -277,6 +281,13 @@ void CIMExporter::exportTo(const QString& path,const QString &rootID) writer<toNum,-ite->dg->getPG(0.95)/1000,-ite->dg->getQG(0.95)/1000) );//capapcity的单位是kVA + nodePQ.push_back(CIMExporter::NodePQ(ite->toNum,-ite->dg->getPG(0.999)/1000*.5,-ite->dg->getQG(0.999)/1000*.5) );//capapcity的单位是kVA // writer<fromNum<<"\t"; // writer<toNum<<"\t"; // writer<dg->capacity<<"\r\n"; diff --git a/testHasttable/powertransformer.cpp b/testHasttable/powertransformer.cpp index 587eaf8..db7e6f8 100644 --- a/testHasttable/powertransformer.cpp +++ b/testHasttable/powertransformer.cpp @@ -45,7 +45,12 @@ bool PowerTransformer::derivedParse(QXmlStreamReader &reader) QString ratedMVA=reader.readElementText(); bool ok; double _ratedMVA=ratedMVA.toDouble(&ok); - this->powerTransformerRatedMVA_H=ok?_ratedMVA:-10000; + double assignedMVA=ok?_ratedMVA:-10000; + if(assignedMVA>5) + { + assignedMVA=0.63; + } + this->powerTransformerRatedMVA_H=assignedMVA; } return true; }