mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 19:49:19 +02:00
Add sustain parameter (BRVto in Engine section)
This commit is contained in:
@@ -1342,6 +1342,8 @@ public:
|
|||||||
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
|
||||||
int Imaxrpc = 0; // Maksymalny prad rezystora hamowania chlodzonego pasywnie
|
int Imaxrpc = 0; // Maksymalny prad rezystora hamowania chlodzonego pasywnie
|
||||||
|
int BRVto = 0; // Czas jaki wentylatory jeszcze dodatkowo schladzaja rezystor
|
||||||
|
double BRVtimer = 0; // Timer dla podtrzymania wentylatora
|
||||||
std::map<double, double> EIM_Pmax_Table; /*tablica mocy maksymalnej od predkosci*/
|
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
|
||||||
|
|||||||
@@ -1597,6 +1597,26 @@ void TMoverParameters::compute_movement_( double const Deltatime ) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Uproszczona symulacja wentylatorow rezystora hamowania
|
||||||
|
|
||||||
|
// Prad oddawany na rezystor
|
||||||
|
double Irh = abs(eimv[eimv_Pe]) - abs(eimv[eimv_Ipoj]);
|
||||||
|
|
||||||
|
// Wlacz wentylator jesli prad rekuperacji przekroczy maksymalny dla pasywnego chlodzenia rezystora
|
||||||
|
if (Irh > Imaxrpc && eimv[eimv_Ipoj] < 0)
|
||||||
|
{
|
||||||
|
BRVtimer = 0;
|
||||||
|
BRVentilators = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
BRVtimer += Deltatime;
|
||||||
|
if (BRVtimer > BRVto)
|
||||||
|
BRVentilators = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// automatyczny rozruch
|
// automatyczny rozruch
|
||||||
if( EngineType == TEngineType::ElectricSeriesMotor ) {
|
if( EngineType == TEngineType::ElectricSeriesMotor ) {
|
||||||
if( AutoRelayCheck() ) {
|
if( AutoRelayCheck() ) {
|
||||||
@@ -6408,18 +6428,6 @@ double TMoverParameters::TractionForce( double dt ) {
|
|||||||
0.007 * (std::abs(EngineVoltage) - (EnginePowerSource.CollectorParameters.MaxV - 100)));
|
0.007 * (std::abs(EngineVoltage) - (EnginePowerSource.CollectorParameters.MaxV - 100)));
|
||||||
Itot = eimv[eimv_Ipoj] * (0.01 + std::min(0.99, 0.99 - Vadd));
|
Itot = eimv[eimv_Ipoj] * (0.01 + std::min(0.99, 0.99 - Vadd));
|
||||||
|
|
||||||
// Uproszczona symulacja rezystora hamowania
|
|
||||||
if (eimv[eimv_Ipoj] < 0)
|
|
||||||
{
|
|
||||||
// Prad oddawany na rezystor
|
|
||||||
double Irh = abs(eimv[eimv_Pe]) - abs(eimv[eimv_Ipoj]);
|
|
||||||
|
|
||||||
// Wlacz wentylator jesli prad przekroczy maksymalny dla pasywnego chlodzenia
|
|
||||||
BRVentilators = Irh > Imaxrpc;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
BRVentilators = false;
|
|
||||||
|
|
||||||
|
|
||||||
EnginePower = abs(eimv[eimv_Ic] * eimv[eimv_U] * NPoweredAxles) / 1000;
|
EnginePower = abs(eimv[eimv_Ic] * eimv[eimv_U] * NPoweredAxles) / 1000;
|
||||||
// power inverters
|
// power inverters
|
||||||
@@ -11033,6 +11041,7 @@ void TMoverParameters::LoadFIZ_Engine( std::string const &Input ) {
|
|||||||
extract_value( InvertersNo, "InvNo", Input, "" );
|
extract_value( InvertersNo, "InvNo", Input, "" );
|
||||||
extract_value( InverterControlCouplerFlag, "InvCtrCplFlag", Input, "" );
|
extract_value( InverterControlCouplerFlag, "InvCtrCplFlag", Input, "" );
|
||||||
extract_value(Imaxrpc, "Imaxrpc", Input, "");
|
extract_value(Imaxrpc, "Imaxrpc", Input, "");
|
||||||
|
extract_value(BRVto, "BRVto", Input, "");
|
||||||
extract_value( Flat, "Flat", Input, "");
|
extract_value( Flat, "Flat", Input, "");
|
||||||
|
|
||||||
if (eimc[eimc_p_Pmax] > 0 && Power > 0 && InvertersNo == 0) {
|
if (eimc[eimc_p_Pmax] > 0 && Power > 0 && InvertersNo == 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user