diff --git a/DynObj.cpp b/DynObj.cpp index d6dad14b..d17ec0bf 100644 --- a/DynObj.cpp +++ b/DynObj.cpp @@ -2705,7 +2705,7 @@ bool TDynamicObject::Update(double dt, double dt1) MoverParameters->CheckSpeedCtrl(); auto eimic = Min0R(MoverParameters->eimic, MoverParameters->eimicSpeedCtrl); - MoverParameters->eimic = eimic; + MoverParameters->eimic_real = eimic; MoverParameters->SendCtrlToNext("EIMIC", Max0R(0, eimic), MoverParameters->CabNo); auto LBR = Max0R(-eimic, 0); diff --git a/McZapkie/MOVER.h b/McZapkie/MOVER.h index aa439b6f..ca040145 100644 --- a/McZapkie/MOVER.h +++ b/McZapkie/MOVER.h @@ -1282,6 +1282,7 @@ public: /*- zmienne dla lokomotyw z silnikami indukcyjnymi -*/ double eimic = 0; /*aktualna pozycja zintegrowanego sterowania jazda i hamowaniem*/ + double eimic_real = 0; /*faktycznie uzywana pozycja zintegrowanego sterowania jazda i hamowaniem*/ int EIMCtrlType = 0; /*rodzaj wariantu zadajnika jazdy*/ double eimv_pr = 0; /*realizowany procent dostepnej sily rozruchu/hamowania*/ double eimv[21]; diff --git a/McZapkie/Mover.cpp b/McZapkie/Mover.cpp index daf5bc76..dbe39204 100644 --- a/McZapkie/Mover.cpp +++ b/McZapkie/Mover.cpp @@ -5055,7 +5055,7 @@ double TMoverParameters::TractionForce( double dt ) { } else { - PosRatio = Max0R(eimic, 0); + PosRatio = Max0R(eimic_real, 0); eimv[eimv_Fzad] = PosRatio; if ((Flat) && (eimc[eimc_p_F0] * eimv[eimv_Fful] > 0)) PosRatio = Min0R(PosRatio * eimc[eimc_p_F0] / eimv[eimv_Fful], 1); @@ -9554,7 +9554,7 @@ bool TMoverParameters::RunCommand( std::string Command, double CValue1, double C end */ else if (Command == "EIMIC") // ElectricInductionMotor Integrated Control - propulsion and brakes in relative values { - eimic = CValue1; + eimic_real = CValue1; OK = SendCtrlToNext(Command, CValue1, CValue2, Couplertype); } else if (Command == "Brake") // youBy - jak sie EP hamuje, to trza sygnal wyslac... diff --git a/Train.cpp b/Train.cpp index b8abbfe2..6977c69d 100644 --- a/Train.cpp +++ b/Train.cpp @@ -5309,7 +5309,7 @@ bool TTrain::Update( double const Deltatime ) // else // fEIMParams[0][3] = // mvControlled->eimv[eimv_Fzad] - mvOccupied->LocalBrakeRatio(); // procent zadany - fEIMParams[0][3] = mvOccupied->eimic; + fEIMParams[0][3] = mvOccupied->eimic_real; fEIMParams[0][4] = Max0R(fEIMParams[0][3], 0); fEIMParams[0][5] = -Min0R(fEIMParams[0][3], 0); fEIMParams[0][1] = fEIMParams[0][4] * mvControlled->eimv[eimv_Fful];