diff --git a/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs b/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs index 7cbfdcc1a9d6594e1c40d756e2788f8dcb215f9a..83e7096fef3aedbcedcf373820cb155d94906756 100644 --- a/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs +++ b/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs @@ -122,7 +122,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl if (CurrentGear.FullLoadCurve != null) { var maxTorque = CurrentGear.FullLoadCurve.FullLoadStationaryTorque(inEngineSpeed); - if (inTorque.Abs() > maxTorque) { + if (inEngineSpeed > 0 && inTorque.Abs() > maxTorque) { _gear = _previousGear; return new ResponseGearboxOverload { Delta = Math.Sign(inTorque.Value()) * (inTorque.Abs() - maxTorque) * inEngineSpeed, diff --git a/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs b/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs index ff0b9b352350bad45eef1d18745b7c91d6e362e4..df3abe21e490bedb3fc6eb803f3f7106611a85db 100644 --- a/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs +++ b/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs @@ -168,15 +168,15 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent new { gear = 2, t = 2450, n = 800, loss = 58.11, responseType = typeof(ResponseGearShift) }, new { gear = 2, t = -1000, n = 800, loss = 29.11, responseType = typeof(ResponseSuccess) }, new { gear = 2, t = 850, n = 800, loss = 26.11, responseType = typeof(ResponseSuccess) }, - new { gear = 2, t = 850, n = 0, loss = 22.06, responseType = typeof(ResponseSuccess) }, + new { gear = 2, t = 850, n = 0, loss = 22.06, responseType = typeof(ResponseGearShift) }, new { gear = 2, t = 850, n = 400, loss = 11.334, responseType = typeof(ResponseGearShift) }, new { gear = 2, t = 850, n = 2000, loss = 32.18, responseType = typeof(ResponseGearShift) }, - new { gear = 7, t = -1000, n = 0, loss = 10.06, responseType = typeof(ResponseSuccess) }, + new { gear = 7, t = -1000, n = 0, loss = 10.06, responseType = typeof(ResponseGearShift) }, new { gear = 7, t = -1000, n = 1200, loss = 16.132, responseType = typeof(ResponseSuccess) }, - new { gear = 7, t = 850, n = 0, loss = 9.31, responseType = typeof(ResponseSuccess) }, + new { gear = 7, t = 850, n = 0, loss = 9.31, responseType = typeof(ResponseGearShift) }, new { gear = 7, t = 850, n = 1200, loss = 15.382, responseType = typeof(ResponseSuccess) }, new { gear = 7, t = 850, n = 2000, loss = 19.43, responseType = typeof(ResponseGearShift) }, - new { gear = 7, t = 2450, n = 0, loss = 17.31, responseType = typeof(ResponseSuccess) }, + new { gear = 7, t = 2450, n = 0, loss = 17.31, responseType = typeof(ResponseGearShift) }, new { gear = 7, t = 2450, n = 1200, loss = 23.382, responseType = typeof(ResponseGearboxOverload) } }; @@ -195,10 +195,6 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent var response = gearbox.OutPort().Request(absTime, dt, torque, angularVelocity); Assert.IsInstanceOfType(response, exp.responseType, exp.ToString()); - if (angularVelocity.IsEqual(0)) { - expectedT = 0.SI<NewtonMeter>(); - } - if (exp.responseType == typeof(ResponseSuccess)) { AssertHelper.AreRelativeEqual(absTime, port.AbsTime, message: exp.ToString()); AssertHelper.AreRelativeEqual(dt, port.Dt, message: exp.ToString());