Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit fb8ca325 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

Merge pull request #748 in VECTO/vecto-sim from...

Merge pull request #748 in VECTO/vecto-sim from ~EMQUARIMA/vecto-sim:bugfix/VECTO-931-at-error-in-vecto-version-3.3.2.1519 to develop

* commit 'f3a10008':
  AT shift strategy: avoid emergency upshift from TC to locked if acc in locked gear is less than 0
  avoid null-reference execption
parents 5fc1abd1 f3a10008
Branches
Tags
No related merge requests found
...@@ -194,7 +194,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl ...@@ -194,7 +194,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
nextInAngularSpeed = outAngularVelocity * ModelData.Gears[gear + 1].Ratio; nextInAngularSpeed = outAngularVelocity * ModelData.Gears[gear + 1].Ratio;
nextInTorque = outTorque / ModelData.Gears[gear + 1].Ratio; nextInTorque = outTorque / ModelData.Gears[gear + 1].Ratio;
} }
if (!IsBelowDownShiftCurve(gear + 1, nextInTorque, nextInAngularSpeed)) { var acc = EstimateAccelerationForGear(gear + 1, outAngularVelocity);
if ((acc > 0 || _gearbox.TCLocked) && !IsBelowDownShiftCurve(gear + 1, nextInTorque, nextInAngularSpeed)) {
Log.Debug("engine speed would be above max speed / rated speed - shift up"); Log.Debug("engine speed would be above max speed / rated speed - shift up");
Upshift(absTime, gear); Upshift(absTime, gear);
return true; return true;
......
...@@ -271,6 +271,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl ...@@ -271,6 +271,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
absTime, dt, outAngularVelocity, engineSpeed, absTime, dt, outAngularVelocity, engineSpeed,
x => x.DeltaFullLoad.IsSmaller(0), x => x.DeltaFullLoad.IsSmaller(0),
x => VectoMath.Abs(DataBus.EngineSpeed - x.EngineSpeed).Value()); x => VectoMath.Abs(DataBus.EngineSpeed - x.EngineSpeed).Value());
if (tqOperatingPoint == null) {
return null;
}
tqOperatingPoint.Creeping = true; tqOperatingPoint.Creeping = true;
return tqOperatingPoint; return tqOperatingPoint;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment