mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 18:39:18 +02:00
Added velocity for brake intervention of speed control
This commit is contained in:
committed by
tmj-fstate
parent
2acace52bf
commit
49c2f9b04b
@@ -706,6 +706,7 @@ struct speed_control {
|
|||||||
double FactorPneg = 0.5;
|
double FactorPneg = 0.5;
|
||||||
double FactorIpos = 0.0;
|
double FactorIpos = 0.0;
|
||||||
double FactorIneg = 0.0;
|
double FactorIneg = 0.0;
|
||||||
|
double BrakeInterventionVel = 30.0;
|
||||||
};
|
};
|
||||||
|
|
||||||
class TMoverParameters
|
class TMoverParameters
|
||||||
|
|||||||
@@ -6670,10 +6670,10 @@ void TMoverParameters::CheckSpeedCtrl(double dt)
|
|||||||
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;
|
||||||
double eSCP = clamp(factorP * error, -1.2, 1.0); //P module
|
double eSCP = clamp(factorP * error, -1.2, 1.0); //P module
|
||||||
bool hydrounlock = (EngineType != TEngineType::DieselEngine) || (Vel < hydro_TC_UnlockSpeed);
|
bool retarder_not_work = (EngineType != TEngineType::DieselEngine) || (Vel < SpeedCtrlUnit.BrakeInterventionVel);
|
||||||
if (eSCP < -1.0)
|
if (eSCP < -1.0)
|
||||||
{
|
{
|
||||||
SpeedCtrlUnit.BrakeInterventionBraking = (eSCP < -1.1) && hydrounlock;
|
SpeedCtrlUnit.BrakeInterventionBraking = (eSCP < -1.1) && retarder_not_work;
|
||||||
eSCP = -1.0;
|
eSCP = -1.0;
|
||||||
}
|
}
|
||||||
SpeedCtrlUnit.BrakeInterventionUnbraking = (eSCP > 0.0) || (Vel == 0.0);
|
SpeedCtrlUnit.BrakeInterventionUnbraking = (eSCP > 0.0) || (Vel == 0.0);
|
||||||
@@ -9741,6 +9741,8 @@ void TMoverParameters::LoadFIZ_SpeedControl(std::string const &Line) {
|
|||||||
extract_value(SpeedCtrlUnit.FactorPneg, "kPneg", Line, "");
|
extract_value(SpeedCtrlUnit.FactorPneg, "kPneg", Line, "");
|
||||||
extract_value(SpeedCtrlUnit.FactorIpos, "kIpos", Line, "");
|
extract_value(SpeedCtrlUnit.FactorIpos, "kIpos", Line, "");
|
||||||
extract_value(SpeedCtrlUnit.FactorIneg, "kIneg", Line, "");
|
extract_value(SpeedCtrlUnit.FactorIneg, "kIneg", Line, "");
|
||||||
|
extract_value(SpeedCtrlUnit.BrakeInterventionVel, "BrakeIntMaxVel", Line, "");
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user