#include "head.h" #include "transformerparser.h" #include "linetypeparser.h" #include "qt_readxml.h" void Qt_readxml::XmlReaderDealData() { qDebug()<<"Get Transformer Power:"; int trans_no=power_transformer.size(); double UN=10.5; base_power[0].basePower=100; double SB=base_power[0].basePower; //double SB=100; //QString transPowerData="E:\\line loss\\nn06302000.csv"; QString transPowerData="E:\\line loss\\lz00.csv"; QString transParaData="E:\\line loss\\trans.csv"; QString lineParaData="E:\\line loss\\LineType.txt"; if(!QFile::exists(transPowerData)) { //std::cout<<"nn06302000 "<<"not found."<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(b.right(a-1))); power_transformer[i].UB=base_voltage[it->no].nominalVoltage; double UB=power_transformer[i].UB; if (!power_transformer[i].ratedMVA) { power_transformer[i].ratedMVA=630; } double ratedMVA=power_transformer[i].ratedMVA/1000; if (power_transformer[i].Model.trimmed()=="") { power_transformer[i].Model="S11-M"; } power_transformer[i].APower=TransformerParser::GetTransformerAPower(transPowerData,power_transformer[i].Serial_Number); power_transformer[i].BPower=TransformerParser::GetTransformerBPower(transPowerData,power_transformer[i].Serial_Number); power_transformer[i].CPower=TransformerParser::GetTransformerCPower(transPowerData,power_transformer[i].Serial_Number); power_transformer[i].Pk=TransformerParser::GetDisTransformerPk(transParaData,power_transformer[i].Model); power_transformer[i].Uk=TransformerParser::GetDisTransformerUk(transParaData,power_transformer[i].Model); double Pk=power_transformer[i].Pk; double Uk=power_transformer[i].Uk; power_transformer[i].AReactivePower=TransformerParser::GetTransformerAReactivePower(transPowerData,power_transformer[i].Serial_Number); power_transformer[i].BReactivePower=TransformerParser::GetTransformerBReactivePower(transPowerData,power_transformer[i].Serial_Number); power_transformer[i].CReactivePower=TransformerParser::GetTransformerCReactivePower(transPowerData,power_transformer[i].Serial_Number); power_transformer[i].P0=TransformerParser::GetDisTransformerP0(transParaData,power_transformer[i].Model); power_transformer[i].I0=TransformerParser::GetDisTransformerI0(transParaData,power_transformer[i].Model); double P0=power_transformer[i].P0; double I0=power_transformer[i].I0; if (!power_transformer[i].Uk && !power_transformer[i].Pk) { QString newModel=power_transformer[i].Model+"-"+QString::number(ratedMVA*1000); power_transformer[i].Pk=TransformerParser::GetDisTransformerPk(transParaData,newModel); power_transformer[i].Uk=TransformerParser::GetDisTransformerUk(transParaData,newModel); power_transformer[i].P0=TransformerParser::GetDisTransformerP0(transParaData,newModel); power_transformer[i].I0=TransformerParser::GetDisTransformerI0(transParaData,newModel); Pk=power_transformer[i].Pk; Uk=power_transformer[i].Uk; P0=power_transformer[i].P0; I0=power_transformer[i].I0; } if (!power_transformer[i].Uk && !power_transformer[i].Pk) { // QString newModel="S11-M"; // power_transformer[i].Pk=TransformerParser::GetDisTransformerPk(transParaData,newModel); // power_transformer[i].Uk=TransformerParser::GetDisTransformerUk(transParaData,newModel); // power_transformer[i].P0=TransformerParser::GetDisTransformerP0(transParaData,newModel); // power_transformer[i].I0=TransformerParser::GetDisTransformerI0(transParaData,newModel); // Pk=power_transformer[i].Pk; // Uk=power_transformer[i].Uk; // P0=power_transformer[i].P0; // I0=power_transformer[i].I0; Pk=0.0001; Uk=0.0001; P0=0.0001; I0=0.0001; } power_transformer[i].r=(Pk*UB*UB/(1000*ratedMVA*ratedMVA))*SB/(UN*UN); power_transformer[i].x=(Uk*UB*UB/(100*ratedMVA))*SB/(UN*UN); //在这,UN为基准电压,UB为额定电压 power_transformer[i].g=(P0/(1000*UB*UB))*(UN*UN)/SB; power_transformer[i].b=(I0*ratedMVA/(100*UB*UB))*(UN*UN)/SB; } qDebug()<<"Get Line Parameters:"; int ac_no=acline_segment.size(); for (int i=0;i::iterator it = find_if(list1.begin(), list1.end(), vector_finder(b.right(a-1))); acline_segment[i].UB=base_voltage[it->no].nominalVoltage; double UB=acline_segment[i].UB; std::vector::iterator ac = find_if(ac_kind.begin(), ac_kind.end(), ac_finder(acline_segment[i].GIS_ID)); double length=acline_segment[i].LongLength/(ac->quantity); acline_segment[i].secLength = length; if (!length) { length=0.3; acline_segment[i].LongLength=length; acline_segment[i].secLength = length; } if (acline_segment[i].Model.left(4)=="YJV-") { acline_segment[i].Model=acline_segment[i].Model.insert(3,"22"); } else if (acline_segment[i].Model.left(5)=="YJLV-") { acline_segment[i].Model=acline_segment[i].Model.insert(4,"22"); } else if (acline_segment[i].Model.left(9)=="JKLGYJ-10") { acline_segment[i].Model=acline_segment[i].Model+"/2"; } else if (acline_segment[i].Model.left(9)=="JKLGYJ-16") { acline_segment[i].Model=acline_segment[i].Model+"/3"; } else if (acline_segment[i].Model.left(9)=="JKLGYJ-25") { acline_segment[i].Model=acline_segment[i].Model+"/4"; } else if (acline_segment[i].Model.left(9)=="JKLGYJ-35") { acline_segment[i].Model=acline_segment[i].Model+"/6"; } else if (acline_segment[i].Model.left(9)=="JKLGYJ-50") { acline_segment[i].Model=acline_segment[i].Model+"/8"; } else if (acline_segment[i].Model.left(9)=="JKLGYJ-70") { acline_segment[i].Model=acline_segment[i].Model+"/10"; } else if (acline_segment[i].Model.left(9)=="JKLGYJ-95") { acline_segment[i].Model=acline_segment[i].Model+"/20"; } else if (acline_segment[i].Model.left(10)=="JKLGYJ-120") { acline_segment[i].Model=acline_segment[i].Model+"/20"; } else if (acline_segment[i].Model.left(10)=="JKLGYJ-150") { acline_segment[i].Model=acline_segment[i].Model+"/20"; } else if (acline_segment[i].Model.left(10)=="JKLGYJ-185") { acline_segment[i].Model=acline_segment[i].Model+"/25"; } else if (acline_segment[i].Model.left(10)=="JKLGYJ-240") { acline_segment[i].Model=acline_segment[i].Model+"/30"; } else if (acline_segment[i].Model.left(10)=="JKLGYJ-300") { acline_segment[i].Model=acline_segment[i].Model+"/50"; } acline_segment[i].x=(LineTypeParser::GetReactance(lineParaData,acline_segment[i].Model)*length)*SB/(UN*UN); acline_segment[i].r=(LineTypeParser::GetResistance(lineParaData,acline_segment[i].Model)*length)*SB/(UN*UN); if (acline_segment[i].r==0 && acline_segment[i].x==0) { acline_segment[i].r=0.8*length*SB/(UN*UN); acline_segment[i].x=0.7*length*SB/(UN*UN); // acline_segment[i].r=0.01; // acline_segment[i].x=0.01; } total_length=total_length+length; } }