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 77075c24 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

gearbox only contains gear full load curve, intersection of gearbox full-load...

gearbox only contains gear full load curve, intersection of gearbox full-load and engine full-load is used for shift polygon computation only
parent a5327aa1
No related branches found
No related tags found
No related merge requests found
......@@ -177,7 +177,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
new GearData {
LossMap = gearLossMap,
ShiftPolygon = shiftPolygon,
FullLoadCurve = gearFullLoad ?? engine.FullLoadCurve,
FullLoadCurve = gearFullLoad,
Ratio = gear.Ratio,
TorqueConverterActive = false
});
......
......@@ -136,7 +136,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
return new KeyValuePair<uint, GearData>((uint)(i + 1), new GearData {
LossMap = lossMap,
ShiftPolygon = shiftPolygon,
FullLoadCurve = gearFullLoad ?? engineData.FullLoadCurve,
FullLoadCurve = gearFullLoad,
Ratio = gear.Ratio,
TorqueConverterActive = gear.TorqueConverterActive
});
......
......@@ -170,22 +170,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
ValidatePowerDemand(totalTorqueDemand); // requires CurrentState.FullDragTorque and DynamicfullLoad to be set!
// get max. torque as limited by gearbox. gearbox only limits torqueOut!
//NewtonMeter deltaGbxFld = null;
NewtonMeter gearboxFullLoad = null;
var curve = DataBus.GearFullLoadCurve;
if (curve != null) {
// if the current gear has a full-load curve, limit the max. torque to the
// gbx. full-load and continue (remmber the delta for further below)
gearboxFullLoad = curve.FullLoadStationaryTorque(avgEngineSpeed);
//var maxGbxTorque = VectoMath.Limit(torqueOut, -gearboxFullLoad, gearboxFullLoad);
//if (!torqueOut.IsEqual(maxGbxTorque)) {
// deltaGbxFld = torqueOut - maxGbxTorque;
//}
//CurrentState.EngineTorqueOut = maxGbxTorque;
}
//CurrentState.EngineTorque = totalTorqueDemand;
var deltaFull = ComputeDelta(torqueOut, totalTorqueDemand, CurrentState.DynamicFullLoadTorque, gearboxFullLoad, true);
var deltaDrag = ComputeDelta(torqueOut, totalTorqueDemand, CurrentState.FullDragTorque,
gearboxFullLoad != null ? -gearboxFullLoad : null, false);
......@@ -217,13 +209,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
CurrentState.EngineTorque = VectoMath.Limit(totalTorqueDemand, minTorque, maxTorque);
CurrentState.EnginePower = CurrentState.EngineTorque * avgEngineSpeed;
//NewtonMeter deltaEngineFld = null;
//Watt delta = null;
//if (!CurrentState.EngineTorque.IsEqual(totalTorqueDemand)) {
// delta = (torqueOut - CurrentState.EngineTorque) * avgEngineSpeed;
//}
if (torqueOut.IsGreater(0.SI<NewtonMeter>()) &&
(deltaFull * avgEngineSpeed).IsGreater(0.SI<Watt>(), Constants.SimulationSettings.EnginePowerSearchTolerance)) {
Log.Debug("requested engine power exceeds fullload power: delta: {0}", deltaFull);
......
......@@ -196,7 +196,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
for (var gear = (uint)Data.Gears.Count; gear > 1; gear--) {
var inAngularSpeed = outEngineSpeed * Data.Gears[gear].Ratio;
if (inAngularSpeed > Data.Gears[gear].FullLoadCurve.RatedSpeed || inAngularSpeed.IsEqual(0)) {
var ratedSpeed = Data.Gears[gear].FullLoadCurve != null
? Data.Gears[gear].FullLoadCurve.RatedSpeed
: DataBus.EngineRatedSpeed;
if (inAngularSpeed > ratedSpeed || inAngularSpeed.IsEqual(0)) {
continue;
}
......
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