mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 05:49:19 +02:00
Added Pmax curve for EIM, e.g. EN57AL
This commit is contained in:
@@ -1338,6 +1338,7 @@ public:
|
|||||||
double InvertersRatio = 0.0;
|
double InvertersRatio = 0.0;
|
||||||
std::vector<inverter> Inverters; //all inverters
|
std::vector<inverter> Inverters; //all inverters
|
||||||
int InverterControlCouplerFlag = 4; //which coupling flag is necessary to controll inverters
|
int InverterControlCouplerFlag = 4; //which coupling flag is necessary to controll inverters
|
||||||
|
std::map<double, double> EIM_Pmax_Table; /*tablica mocy maksymalnej od predkosci*/
|
||||||
/* -dla pojazdów z blendingiem EP/ED (MED) */
|
/* -dla pojazdów z blendingiem EP/ED (MED) */
|
||||||
double MED_Vmax = 0; // predkosc maksymalna dla obliczen chwilowej sily hamowania EP w MED
|
double MED_Vmax = 0; // predkosc maksymalna dla obliczen chwilowej sily hamowania EP w MED
|
||||||
double MED_Vmin = 0; // predkosc minimalna dla obliczen chwilowej sily hamowania EP w MED
|
double MED_Vmin = 0; // predkosc minimalna dla obliczen chwilowej sily hamowania EP w MED
|
||||||
@@ -1989,6 +1990,7 @@ private:
|
|||||||
bool readDMList(std::string const &line);
|
bool readDMList(std::string const &line);
|
||||||
bool readV2NMAXList(std::string const &line);
|
bool readV2NMAXList(std::string const &line);
|
||||||
bool readHTCList(std::string const &line);
|
bool readHTCList(std::string const &line);
|
||||||
|
bool readPmaxList(std::string const &line);
|
||||||
bool readFFList( std::string const &line );
|
bool readFFList( std::string const &line );
|
||||||
bool readWWList( std::string const &line );
|
bool readWWList( std::string const &line );
|
||||||
bool readLightsList( std::string const &Input );
|
bool readLightsList( std::string const &Input );
|
||||||
|
|||||||
@@ -6159,6 +6159,10 @@ double TMoverParameters::TractionForce( double dt ) {
|
|||||||
ActiveInverters += 1.0;
|
ActiveInverters += 1.0;
|
||||||
}
|
}
|
||||||
InvertersRatio = ActiveInverters / (double)InvertersNo;
|
InvertersRatio = ActiveInverters / (double)InvertersNo;
|
||||||
|
if (EIM_Pmax_Table.size() > 1)
|
||||||
|
{
|
||||||
|
eimc[eimc_p_Pmax] = TableInterpolation(EIM_Pmax_Table, Vel);
|
||||||
|
}
|
||||||
//tempomat
|
//tempomat
|
||||||
if (ScndCtrlPosNo == 4 && SpeedCtrlTypeTime)
|
if (ScndCtrlPosNo == 4 && SpeedCtrlTypeTime)
|
||||||
{
|
{
|
||||||
@@ -8905,7 +8909,7 @@ bool TMoverParameters::switch_physics(bool const State) // DO PRZETLUMACZENIA NA
|
|||||||
bool startBPT;
|
bool startBPT;
|
||||||
bool startMPT, startMPT0;
|
bool startMPT, startMPT0;
|
||||||
bool startRLIST, startUCLIST;
|
bool startRLIST, startUCLIST;
|
||||||
bool startDIZELMOMENTUMLIST, startDIZELV2NMAXLIST, startHYDROTCLIST;
|
bool startDIZELMOMENTUMLIST, startDIZELV2NMAXLIST, startHYDROTCLIST, startPMAXLIST;
|
||||||
bool startDLIST, startFFLIST, startWWLIST;
|
bool startDLIST, startFFLIST, startWWLIST;
|
||||||
bool startLIGHTSLIST;
|
bool startLIGHTSLIST;
|
||||||
bool startCOMPRESSORLIST;
|
bool startCOMPRESSORLIST;
|
||||||
@@ -9219,6 +9223,26 @@ bool TMoverParameters::readHTCList(std::string const &line) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TMoverParameters::readPmaxList(std::string const &line) {
|
||||||
|
|
||||||
|
cParser parser(line);
|
||||||
|
if (false == parser.getTokens(2, false)) {
|
||||||
|
|
||||||
|
WriteLog("Read PmaxList: arguments missing in line " + std::to_string(LISTLINE + 1));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
auto idx = LISTLINE++;
|
||||||
|
double x = 0.0;
|
||||||
|
double y = 0.0;
|
||||||
|
parser
|
||||||
|
>> x
|
||||||
|
>> y;
|
||||||
|
|
||||||
|
EIM_Pmax_Table.emplace(x, y);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool TMoverParameters::readFFList( std::string const &line ) {
|
bool TMoverParameters::readFFList( std::string const &line ) {
|
||||||
|
|
||||||
cParser parser( line );
|
cParser parser( line );
|
||||||
@@ -9418,7 +9442,8 @@ bool TMoverParameters::LoadFIZ(std::string chkpath)
|
|||||||
startDIZELMOMENTUMLIST = false;
|
startDIZELMOMENTUMLIST = false;
|
||||||
startDIZELV2NMAXLIST = false;
|
startDIZELV2NMAXLIST = false;
|
||||||
startHYDROTCLIST = false;
|
startHYDROTCLIST = false;
|
||||||
startFFLIST = false;
|
startPMAXLIST = false;
|
||||||
|
startFFLIST = false;
|
||||||
startWWLIST = false;
|
startWWLIST = false;
|
||||||
startLIGHTSLIST = false;
|
startLIGHTSLIST = false;
|
||||||
startCOMPRESSORLIST = false;
|
startCOMPRESSORLIST = false;
|
||||||
@@ -9510,6 +9535,11 @@ bool TMoverParameters::LoadFIZ(std::string chkpath)
|
|||||||
startHYDROTCLIST = false;
|
startHYDROTCLIST = false;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (issection("END-PML", inputline)) {
|
||||||
|
startBPT = false;
|
||||||
|
startPMAXLIST = false;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if( issection( "endff", inputline ) ) {
|
if( issection( "endff", inputline ) ) {
|
||||||
startBPT = false;
|
startBPT = false;
|
||||||
startFFLIST = false;
|
startFFLIST = false;
|
||||||
@@ -9771,6 +9801,14 @@ bool TMoverParameters::LoadFIZ(std::string chkpath)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (issection("PmaxList:", inputline))
|
||||||
|
{
|
||||||
|
startBPT = false;
|
||||||
|
fizlines.emplace("PmaxList", inputline);
|
||||||
|
startPMAXLIST = true; LISTLINE = 0;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (issection("V2NList:", inputline))
|
if (issection("V2NList:", inputline))
|
||||||
{
|
{
|
||||||
startBPT = false;
|
startBPT = false;
|
||||||
@@ -9847,6 +9885,10 @@ bool TMoverParameters::LoadFIZ(std::string chkpath)
|
|||||||
readHTCList(inputline);
|
readHTCList(inputline);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (true == startPMAXLIST) {
|
||||||
|
readPmaxList(inputline);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if( true == startFFLIST ) {
|
if( true == startFFLIST ) {
|
||||||
readFFList( inputline );
|
readFFList( inputline );
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
Reference in New Issue
Block a user