From 7249ffd06834e0cba8002b364ec2841c61c10361 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kr=C3=B3lik=20Uszasty?= Date: Thu, 14 Mar 2019 18:58:31 +0100 Subject: [PATCH] Small fix to eimic and speedcontrol interaction --- DynObj.cpp | 2 +- McZapkie/MOVER.h | 1 + McZapkie/Mover.cpp | 4 ++-- Train.cpp | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/DynObj.cpp b/DynObj.cpp index 3169c642..d444aeff 100644 --- a/DynObj.cpp +++ b/DynObj.cpp @@ -2703,7 +2703,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 814e3258..7dca6b4a 100644 --- a/McZapkie/MOVER.h +++ b/McZapkie/MOVER.h @@ -1281,6 +1281,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 7a93fdc4..aaf74092 100644 --- a/McZapkie/Mover.cpp +++ b/McZapkie/Mover.cpp @@ -5051,7 +5051,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); @@ -9550,7 +9550,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 85359348..d1b77982 100644 --- a/Train.cpp +++ b/Train.cpp @@ -5261,7 +5261,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];