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;
|
|||
|
|
}
|
|||
|
|
}
|