From a2c854ef2f6d3c1c4358fdf9bbc22e12bf30e847 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Fri, 2 Apr 2021 13:04:50 +0200 Subject: [PATCH] electric motor: handle the case that inertia torque eats up the recuperation torque --- .../Models/SimulationComponent/Impl/ElectricMotor.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs index acabf8d216..c3fa563e6f 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs @@ -146,6 +146,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var maxDriveTorqueEm = maxDriveTorqueEmMap == null ? null : maxDriveTorqueEmMap + inertiaTorqueEm; // inertia has to be added here. recuperation torque is positive, when accelerating inertia is positive and adds more drag to the drivetrain, var maxRecuperationTorqueEm = maxRecuperationTorqueEmMap == null ? null : maxRecuperationTorqueEmMap + inertiaTorqueEm; + if (maxRecuperationTorqueEm != null && maxRecuperationTorqueEm.IsSmallerOrEqual(0)) { + // max recuperation torque may get negative due to torque losses + maxRecuperationTorqueEm = null; + } var maxDriveTorqueDt = maxDriveTorqueEm == null ? null : ConvertEmTorqueToDrivetrain(maxDriveTorqueEm); var maxRecuperationTorqueDt = maxRecuperationTorqueEm == null ? null : ConvertEmTorqueToDrivetrain(maxRecuperationTorqueEm); -- GitLab