186 lines
8.2 KiB
C++
186 lines
8.2 KiB
C++
#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."<<std::endl;
|
||
std::cout<<"lz00.csv "<<"not found."<<std::endl;
|
||
}
|
||
if(!QFile::exists(transParaData))
|
||
{
|
||
std::cout<<"trans "<<"not found."<<std::endl;
|
||
}
|
||
if(!QFile::exists(lineParaData))
|
||
{
|
||
std::cout<<"LineType "<<"not found."<<std::endl;
|
||
}
|
||
for (int i=0;i<trans_no;i++)
|
||
{
|
||
int a=power_transformer[i].BaseVoltage_res[0].length();
|
||
QString b=power_transformer[i].BaseVoltage_res[0];
|
||
std::vector<List>::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<ac_no;i++)
|
||
{
|
||
int a=acline_segment[i].BaseVoltage_res[0].length();
|
||
QString b=acline_segment[i].BaseVoltage_res[0];
|
||
std::vector<List>::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<AC_kind>::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;
|
||
}
|
||
}
|