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

torque converter: compute both delta values on dry-run (full-load & drag load)

parent d7ed1574
No related branches found
No related tags found
No related merge requests found
......@@ -107,25 +107,32 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
var engineResponse = (ResponseDryRun)
NextComponent.Request(absTime, dt, inTorque, operatingPoint.InAngularVelocity, true);
TorqueConverterOperatingPoint dryOperatingPoint;
//TorqueConverterOperatingPoint dryOperatingPoint;
//if (false && DataBus.VehicleStopped && DataBus.DriverBehavior == DrivingBehavior.Driving && outTorque.IsGreater(0)) {
// dryOperatingPoint = ModelData.FindOperatingPoint(DataBus.EngineIdleSpeed, outAngularVelocity);
//} else {
dryOperatingPoint = (DataBus.DriverBehavior != DrivingBehavior.Braking && DataBus.BrakePower.IsEqual(0)) ||
(outTorque.IsGreater(0) && DataBus.BrakePower.IsEqual(0))
? GetMaxPowerOperatingPoint(dt, outAngularVelocity, engineResponse,
PreviousState.InTorque * PreviousState.InAngularVelocity)
: GetDragPowerOperatingPoint(dt, outAngularVelocity, engineResponse,
PreviousState.InTorque * PreviousState.InAngularVelocity);
//dryOperatingPoint = (DataBus.DriverBehavior != DrivingBehavior.Braking && DataBus.BrakePower.IsEqual(0)) ||
// (outTorque.IsGreater(0) && DataBus.BrakePower.IsEqual(0))
// ? GetMaxPowerOperatingPoint(dt, outAngularVelocity, engineResponse,
// PreviousState.InTorque * PreviousState.InAngularVelocity)
// : GetDragPowerOperatingPoint(dt, outAngularVelocity, engineResponse,
// PreviousState.InTorque * PreviousState.InAngularVelocity);
//}
var avgOutSpeed = (PreviousState.OutAngularVelocity + dryOperatingPoint.OutAngularVelocity) / 2.0;
var delta = (outTorque - dryOperatingPoint.OutTorque) * avgOutSpeed;
var dryOperatingPointMax = GetMaxPowerOperatingPoint(dt, outAngularVelocity, engineResponse,
PreviousState.InTorque * PreviousState.InAngularVelocity);
var avgOutSpeedMax = (PreviousState.OutAngularVelocity + dryOperatingPointMax.OutAngularVelocity) / 2.0;
var deltaMax = (outTorque - dryOperatingPointMax.OutTorque) * avgOutSpeedMax;
var dryOperatingPointMin = GetDragPowerOperatingPoint(dt, outAngularVelocity, engineResponse,
PreviousState.InTorque * PreviousState.InAngularVelocity);
var avgOutSpeedMin = (PreviousState.OutAngularVelocity + dryOperatingPointMin.OutAngularVelocity) / 2.0;
var deltaMin = (outTorque - dryOperatingPointMin.OutTorque) * avgOutSpeedMin;
return new ResponseDryRun {
Source = this,
DeltaFullLoad = 2 * delta,
DeltaDragLoad = 2 * delta,
TorqueConverterOperatingPoint = dryOperatingPoint
DeltaFullLoad = 2 * deltaMax,
DeltaDragLoad = 2 * deltaMin,
TorqueConverterOperatingPoint = dryOperatingPointMax
};
}
......
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