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 6e7874ed authored by Markus QUARITSCH's avatar Markus QUARITSCH
Browse files

Pull request #874: set gearbox disengage speed for AT transmissions based on...

Pull request #874: set gearbox disengage speed for AT transmissions based on downshift line in first locked gear

Merge in VECTO/vecto-sim from VECTO/mq_vecto-sim:feature/VECTO-1549-error-in-gearshift-behavior-for-at-transmissions-when-braking to develop

* commit '6b7dc0b1':
  set gearbox disengage speed for AT transmissions based on downshift line in first locked gear
parents ece25b29 6b7dc0b1
Branches
Tags
No related merge requests found
......@@ -362,6 +362,18 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
retVal.TorqueConverterData.CertificationNumber = torqueConverter.CertificationNumber;
}
// update disengageWhenHaltingSpeed
if (retVal.Type.AutomaticTransmission()) {
var firstGear = retVal.GearList.First(x => x.IsLockedGear());
if (retVal.Gears[firstGear.Gear].ShiftPolygon.Downshift.Any()) {
var downshiftSpeedInc = retVal.Gears[firstGear.Gear].ShiftPolygon
.InterpolateDownshiftSpeed(0.SI<NewtonMeter>()) * 1.05;
var vehicleSpeedDisengage = downshiftSpeedInc / axlegearRatio / retVal.Gears[firstGear.Gear].Ratio *
dynamicTyreRadius;
retVal.DisengageWhenHaltingSpeed = vehicleSpeedDisengage;
}
}
return retVal;
}
......
......@@ -333,6 +333,18 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
gearshiftData.CLUpshiftMinAcceleration, gearshiftData.CCUpshiftMinAcceleration);
}
// update disengageWhenHaltingSpeed
if (retVal.Type.AutomaticTransmission()) {
var firstGear = retVal.GearList.First(x => x.IsLockedGear());
if (retVal.Gears[firstGear.Gear].ShiftPolygon.Downshift.Any()) {
var downshiftSpeedInc = retVal.Gears[firstGear.Gear].ShiftPolygon
.InterpolateDownshiftSpeed(0.SI<NewtonMeter>()) * 1.05;
var vehicleSpeedDisengage = downshiftSpeedInc / axlegearRatio / retVal.Gears[firstGear.Gear].Ratio *
dynamicTyreRadius;
retVal.DisengageWhenHaltingSpeed = vehicleSpeedDisengage;
}
}
return retVal;
}
......
......@@ -38,6 +38,7 @@ using System.Runtime.Serialization;
using Newtonsoft.Json;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.Configuration;
using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
using TUGraz.VectoCore.Models.SimulationComponent.Impl;
......@@ -52,6 +53,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
public class GearboxData : SimulationComponentData
{
private GearList _gearlist;
private MeterPerSecond _disengageWhenHaltingSpeed;
public GearboxType Type { get; internal set; }
......@@ -73,6 +75,19 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
[JsonIgnore]
public GearList GearList => _gearlist ?? (_gearlist = CreateGearList());
public MeterPerSecond DisengageWhenHaltingSpeed {
get {
return _disengageWhenHaltingSpeed != null
? _disengageWhenHaltingSpeed
: (Type.AutomaticTransmission()
? Constants.SimulationSettings.ATGearboxDisengageWhenHaltingSpeed
: Constants.SimulationSettings.ClutchDisengageWhenHaltingSpeed);
}
internal set {
_disengageWhenHaltingSpeed = value;
}
}
private GearList CreateGearList()
{
var gearList = new List<GearshiftPosition>();
......
......@@ -157,7 +157,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
var braking = DataBus.DriverInfo.DriverBehavior == DrivingBehavior.Braking;
var torqueNegative = outTorque.IsSmaller(0);
var slowerThanDisengageSpeed =
DataBus.VehicleInfo.VehicleSpeed.IsSmaller(Constants.SimulationSettings.ATGearboxDisengageWhenHaltingSpeed);
DataBus.VehicleInfo.VehicleSpeed.IsSmaller(GearboxModelData.DisengageWhenHaltingSpeed);
var disengageBeforeHalting = braking && torqueNegative && slowerThanDisengageSpeed;
// 2) L -> 0: disengage if inAngularVelocity == 0
......
......@@ -258,7 +258,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
(inAngularVelocity.IsSmaller(DataBus.EngineInfo.EngineIdleSpeed))) &&
(DataBus.Brakes.BrakePower.IsGreater(0) || inTorque.IsSmaller(0));
var vehicleSpeedBelowThreshold =
DataBus.VehicleInfo.VehicleSpeed.IsSmaller(Constants.SimulationSettings.ClutchDisengageWhenHaltingSpeed);
DataBus.VehicleInfo.VehicleSpeed.IsSmaller(ModelData.DisengageWhenHaltingSpeed);
if (halted || (driverDeceleratingNegTorque && vehicleSpeedBelowThreshold)) {
EngageTime = VectoMath.Max(EngageTime, absTime + dt);
_strategy?.Disengage(absTime, dt, outTorque, outAngularVelocity);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment