Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit e8fee69d authored by Stefanos Doumpoulakis's avatar Stefanos Doumpoulakis
Browse files

added custom CycleGearbox for BEVs

parent 29193189
No related branches found
No related tags found
No related merge requests found
......@@ -841,7 +841,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
.AddComponent(new AxleGear(container, data.AxleGearData))
.AddComponent(data.AngledriveData != null ? new Angledrive(container, data.AngledriveData) : null)
.AddComponent(GetRetarder(RetarderType.TransmissionOutputRetarder, data.Retarder, container))
.AddComponent(new CycleGearbox(container, data))
.AddComponent(new BEVCycleGearbox(container, data))
.AddComponent(GetRetarder(RetarderType.TransmissionInputRetarder, data.Retarder, container))
.AddComponent(em);
......@@ -1095,7 +1095,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
.AddComponent(new Brakes(container))
.AddComponent(new AxleGear(container, data.AxleGearData))
.AddComponent(data.AngledriveData != null ? new Angledrive(container, data.AngledriveData) : null)
.AddComponent(new CycleGearbox(container, data))
.AddComponent(new BEVCycleGearbox(container, data))
.AddComponent(em);
new ATClutchInfo(container);
......
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.Models.Simulation;
using TUGraz.VectoCore.Models.Simulation.Data;
namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
{
public class BEVCycleGearbox : CycleGearbox
{
public BEVCycleGearbox(IVehicleContainer container, VectoRunData runData) : base(container, runData)
{}
protected override IResponse GetDisengagedResponse(Second absTime, Second dt, PerSecond outAngularVelocity)
{
var outVelocity = outAngularVelocity * ((NextGear.Gear > 0) ? ModelData.Gears[NextGear.Gear].Ratio : 1);
return NextComponent.Request(absTime, dt, 0.SI<NewtonMeter>(), outVelocity, false);
}
}
}
......@@ -346,16 +346,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
};
}
IResponse disengagedResponse;
if (GearboxType.AutomaticTransmission()) {
disengagedResponse = EngineIdleRequest(absTime, dt);
} else {
disengagedResponse = NextGear.Gear > 0
? NextComponent.Request(
absTime, dt, 0.SI<NewtonMeter>(),
outAngularVelocity * ModelData.Gears[NextGear.Gear].Ratio, false)
: EngineIdleRequest(absTime, dt);
}
IResponse disengagedResponse = GetDisengagedResponse(absTime, dt, outAngularVelocity);
if (TorqueConverter != null) {
if (DataBus.VehicleInfo.VehicleStopped) {
TorqueConverter.Locked(
......@@ -376,6 +368,23 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
return disengagedResponse;
}
protected virtual IResponse GetDisengagedResponse(Second absTime, Second dt, PerSecond outAngularVelocity)
{
IResponse disengagedResponse;
if (GearboxType.AutomaticTransmission()) {
disengagedResponse = EngineIdleRequest(absTime, dt);
} else {
disengagedResponse = (NextGear.Gear > 0)
? NextComponent.Request(
absTime, dt, 0.SI<NewtonMeter>(),
outAngularVelocity * ((NextGear.Gear > 0) ? ModelData.Gears[NextGear.Gear].Ratio : 1), false)
: EngineIdleRequest(absTime, dt);
}
return disengagedResponse;
}
private IResponse EngineIdleRequest(Second absTime, Second dt)
{
var disengagedResponse = NextComponent.Request(absTime, dt, 0.SI<NewtonMeter>(), DataBus.EngineInfo.EngineIdleSpeed, false);
......
......@@ -32,13 +32,13 @@ namespace TUGraz.VectoCore.Tests.Integration.BatteryElectric
TestCase(E2_JOB, 1, 1, 3.9969, 120.1189, TestName = "E2 BEV TimeRun MeasuredSpeed RegionalDelivery"),
TestCase(E2_JOB, 2, 2, 26.2759, 143.7661, TestName = "E2 BEV TimeRun MeasuredSpeed UrbanDelivery"),
TestCase(E2_JOB, 6, 0, 1.128, 120.0374, TestName = "E2 BEV TimeRun MeasuredSpeedGear LongHaul"),
TestCase(E2_JOB, 7, 1, 4.3124, 117.0889, TestName = "E2 BEV TimeRun MeasuredSpeedGear RegionalDelivery"),
TestCase(E2_JOB, 8, 2, 28.8197, 125.4709, TestName = "E2 BEV TimeRun MeasuredSpeedGear UrbanDelivery"),
TestCase(E2_JOB, 6, 0, 1.128, 120.0309, TestName = "E2 BEV TimeRun MeasuredSpeedGear LongHaul"),
TestCase(E2_JOB, 7, 1, 4.3124, 117.0313, TestName = "E2 BEV TimeRun MeasuredSpeedGear RegionalDelivery"),
TestCase(E2_JOB, 8, 2, 28.8197, 125.1797, TestName = "E2 BEV TimeRun MeasuredSpeedGear UrbanDelivery"),
TestCase(E2_JOB, 9, 0, 1.155, 119.989, TestName = "E2 BEV TimeRun PWheel LongHaul"),
TestCase(E2_JOB, 10, 1, 4.4643, 116.9733, TestName = "E2 BEV TimeRun PWheel RegionalDelivery"),
TestCase(E2_JOB, 11, 2, 30.4811, 125.033, TestName = "E2 BEV TimeRun PWheel UrbanDelivery"),
TestCase(E2_JOB, 9, 0, 1.155, 119.9847, TestName = "E2 BEV TimeRun PWheel LongHaul"),
TestCase(E2_JOB, 10, 1, 4.4643, 116.9218, TestName = "E2 BEV TimeRun PWheel RegionalDelivery"),
TestCase(E2_JOB, 11, 2, 30.4811, 124.8204, TestName = "E2 BEV TimeRun PWheel UrbanDelivery"),
TestCase(E3_JOB, 0, 0, 0.7916, 101.6194, TestName = "E3 BEV TimeRun MeasuredSpeed LongHaul"),
TestCase(E3_JOB, 1, 1, 3.3777, 104.792, TestName = "E3 BEV TimeRun MeasuredSpeed RegionalDelivery"),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment