16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-22 06:59:18 +02:00

Minimal power for SpeedCtrl with EIMCtrlType = 0

This commit is contained in:
Królik Uszasty
2020-10-10 00:26:30 +02:00
parent 0261f30448
commit 1bc8e70021

View File

@@ -6940,6 +6940,8 @@ void TMoverParameters::CheckEIMIC(double dt)
if ((eimic < -0.001) && (BrakeHandle != TBrakeHandle::MHZ_EN57)) if ((eimic < -0.001) && (BrakeHandle != TBrakeHandle::MHZ_EN57))
eimic = std::min(-0.002, eimic * (double)LocalBrakePosNo / ((double)LocalBrakePosNo - 1.0) + 1.0 / ((double)LocalBrakePosNo - 1.0)); eimic = std::min(-0.002, eimic * (double)LocalBrakePosNo / ((double)LocalBrakePosNo - 1.0) + 1.0 / ((double)LocalBrakePosNo - 1.0));
} }
if ((eimic > 0.001) && (SpeedCtrlUnit.IsActive))
eimic = std::max(eimic, SpeedCtrlUnit.MinPower);
break; break;
case 1: case 1:
switch (MainCtrlPos) switch (MainCtrlPos)
@@ -7089,7 +7091,7 @@ void TMoverParameters::CheckSpeedCtrl(double dt)
if (true) { if (true) {
if ((!SpeedCtrlUnit.Standby)) { if ((!SpeedCtrlUnit.Standby)) {
if (SpeedCtrlUnit.ManualStateOverride) { if (SpeedCtrlUnit.ManualStateOverride) {
if (eimic > 0.009) eimic = 1.0; if (eimic > 0.0009) eimic = 1.0;
} }
double error = (std::max(SpeedCtrlValue + SpeedCtrlUnit.Offset, 0.0) - Vel); double error = (std::max(SpeedCtrlValue + SpeedCtrlUnit.Offset, 0.0) - Vel);
double factorP = error > 0 ? SpeedCtrlUnit.FactorPpos : SpeedCtrlUnit.FactorPneg; double factorP = error > 0 ? SpeedCtrlUnit.FactorPpos : SpeedCtrlUnit.FactorPneg;