cimforreduceloss/core/DealData.cpp

186 lines
8.2 KiB
C++
Raw Permalink Normal View History

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