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

Rework of speed control algorithm for DieselEngine - functions for PESA-DMU

This commit is contained in:
Królik Uszasty
2019-10-12 16:54:33 +02:00
committed by tmj-fstate
parent 936e537a7a
commit e43ea7fcfe
9 changed files with 909 additions and 721 deletions

View File

@@ -2831,8 +2831,10 @@ bool TDynamicObject::Update(double dt, double dt1)
&& (MoverParameters->EngineType == TEngineType::DieselEngine)
&& (MoverParameters->EIMCtrlType > 0)) {
MoverParameters->CheckEIMIC(dt1);
MoverParameters->eimic_real = MoverParameters->eimic;
MoverParameters->SendCtrlToNext("EIMIC", MoverParameters->eimic, MoverParameters->CabNo);
if (MoverParameters->SpeedCtrl)
MoverParameters->CheckSpeedCtrl(dt1);
MoverParameters->eimic_real = std::min(MoverParameters->eimic,MoverParameters->eimicSpeedCtrl);
MoverParameters->SendCtrlToNext("EIMIC", MoverParameters->eimic_real, MoverParameters->CabNo);
}
if( ( Mechanik->primary() )
&& ( MoverParameters->EngineType == TEngineType::ElectricInductionMotor ) ) {
@@ -2852,10 +2854,10 @@ bool TDynamicObject::Update(double dt, double dt1)
if( ( MoverParameters->Power < 1 )
&& ( ctOwner != nullptr ) ) {
MoverParameters->MainCtrlPos = ctOwner->Controlling()->MainCtrlPos*MoverParameters->MainCtrlPosNo / std::max(1, ctOwner->Controlling()->MainCtrlPosNo);
MoverParameters->ScndCtrlActualPos = ctOwner->Controlling()->ScndCtrlActualPos;
MoverParameters->SpeedCtrlValue = ctOwner->Controlling()->SpeedCtrlValue;
}
MoverParameters->CheckEIMIC(dt1);
MoverParameters->CheckSpeedCtrl();
MoverParameters->CheckSpeedCtrl(dt1);
auto eimic = Min0R(MoverParameters->eimic, MoverParameters->eimicSpeedCtrl);
MoverParameters->eimic_real = eimic;