Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS will be completely phased out by mid-2025. To see alternatives please check here

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

Merge branch 'develop' into feature/VECTO-405-add-clucht-losses-during-drive-off

parents c9935c55 8179d308
No related branches found
No related tags found
No related merge requests found
......@@ -133,7 +133,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
return false;
}
if (ModelData.Gears[2].HasTorqueConverter) {
return false; // nextGear.TorqueConverterLocked || nextGear.Gear == 2;
return nextGear.TorqueConverterLocked; // || nextGear.Gear == 2;
}
return nextGear.TorqueConverterLocked;
}
......@@ -143,9 +143,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
var torqueGbxIn = outTorque / ModelData.Gears[Gear].Ratio;
var deltaEngineSpeed = DataBus.EngineSpeed - outAngularVelocity * ModelData.Gears[Gear].Ratio;
var deltaClutchSpeed = (DataBus.EngineSpeed - PreviousState.OutAngularVelocity * ModelData.Gears[Gear].Ratio) / 2;
var torqueInertia = EngineInertia * deltaEngineSpeed / dt;
var torqueInertia = ModelData.PowershiftInertiaFactor * EngineInertia * deltaEngineSpeed / dt;
var averageEngineSpeed = (DataBus.EngineSpeed + outAngularVelocity * ModelData.Gears[Gear].Ratio) / 2;
var torqueLoss = (torqueGbxIn + torqueInertia) * deltaClutchSpeed / averageEngineSpeed;
var torqueLoss = (torqueGbxIn + torqueInertia) * deltaClutchSpeed / averageEngineSpeed *
(ModelData.PowershiftShiftTime / dt);
return torqueLoss.Abs();
}
......
......@@ -59,19 +59,31 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
}
[Test,
TestCase(200, 2u, 562, 620, 36.4855),
TestCase(400, 2u, 562, 620, 55.9878),
TestCase(600, 2u, 562, 620, 75.4901),
TestCase(800, 2u, 562, 620, 94.9924),
TestCase(200, 2u, 562, 600, 39.6371),
TestCase(400, 2u, 562, 600, 59.4279),
TestCase(600, 2u, 562, 600, 79.218),
TestCase(800, 2u, 562, 600, 99.0095),
TestCase(400, 3u, 500, 490, 9.6354),
TestCase(400, 3u, 550, 490, 17.325),
TestCase(600, 3u, 550, 490, 33.5574),
TestCase(200, 2u, 1, 562, 620, 36.4855),
TestCase(400, 2u, 1, 562, 620, 55.9878),
TestCase(600, 2u, 1, 562, 620, 75.4901),
TestCase(800, 2u, 1, 562, 620, 94.9924),
TestCase(200, 2u, 1, 562, 600, 39.6371),
TestCase(400, 2u, 1, 562, 600, 59.4279),
TestCase(600, 2u, 1, 562, 600, 79.218),
TestCase(800, 2u, 1, 562, 600, 99.0095),
TestCase(400, 3u, 1, 500, 490, 9.6354),
TestCase(400, 3u, 1, 550, 490, 17.325),
TestCase(600, 3u, 1, 550, 490, 33.5574),
TestCase(200, 2u, 0.7, 562, 620, 31.3906),
TestCase(400, 2u, 0.7, 562, 620, 50.8929),
TestCase(600, 2u, 0.7, 562, 620, 70.3952),
TestCase(800, 2u, 0.7, 562, 620, 89.8975),
TestCase(200, 2u, 0.7, 562, 600, 33.6832),
TestCase(400, 2u, 0.7, 562, 600, 53.4741),
TestCase(600, 2u, 0.7, 562, 600, 73.2648),
TestCase(800, 2u, 0.7, 562, 600, 93.0557),
TestCase(400, 3u, 0.7, 500, 490, 15.9818),
TestCase(400, 3u, 0.7, 550, 490, 21.8670),
TestCase(600, 3u, 0.7, 550, 490, 38.0991),
]
public void TestShiftLossComputation(double torqueDemand, uint gear, double preShiftRpm, double postShiftRpm,
public void TestShiftLossComputation(double torqueDemand, uint gear, double inertiaFactor, double preShiftRpm,
double postShiftRpm,
double expectedShiftLoss)
{
var engineInertia = 5.SI<KilogramSquareMeter>();
......@@ -79,6 +91,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
var gearboxData = ATPowerTrain.CreateGearboxData(GearboxType.ATSerial);
var container = new VehicleContainer(ExecutionMode.Engineering);
gearboxData.PowershiftInertiaFactor = inertiaFactor;
var cycleDataStr = "0, 0, 0, 2\n100, 20, 0, 0\n1000, 50, 0, 0";
var cycleData = SimpleDrivingCycles.CreateCycleData(cycleDataStr);
......
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