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

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

new approach for searching operating point in torque converter:

if both, engine and torque converter are happy, return Delta = 0,
otherwise find operating point suitable for both engine and torque converter, compute delta for torque converter output (for search operating point)
parent 1525614e
No related branches found
No related tags found
No related merge requests found
......@@ -62,28 +62,30 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
true);
var deltaEngine = (engineResponse.DeltaFullLoad > 0 ? engineResponse.DeltaFullLoad : 0.SI<Watt>()) +
(engineResponse.DeltaDragLoad < 0 ? -engineResponse.DeltaDragLoad : 0.SI<Watt>());
if (deltaTorqueConverter.IsEqual(0)) {
if (deltaEngine.IsEqual(0)) {
return new ResponseDryRun {
Source = this,
DeltaFullLoad = 0.SI<Watt>(),
DeltaDragLoad = 0.SI<Watt>(),
TorqueConverterOperatingPoint = dryOperatingPoint
};
}
if (deltaTorqueConverter.IsEqual(0) && deltaEngine.IsEqual(0)) {
return new ResponseDryRun {
Source = this,
DeltaFullLoad = engineResponse.DeltaFullLoad,
DeltaDragLoad = engineResponse.DeltaDragLoad,
DeltaFullLoad = 0.SI<Watt>(),
DeltaDragLoad = 0.SI<Watt>(),
TorqueConverterOperatingPoint = dryOperatingPoint
};
}
if (engineResponse.DeltaFullLoad > 0 || engineResponse.DeltaDragLoad < 0) {
// engine is overloaded with current operating point, reduce torque...
dryOperatingPoint =
ModelData.GetOutTorqueAndSpeed(
outTorque > 0 ? engineResponse.EngineMaxTorqueOut : engineResponse.EngineDragTorque,
dryOperatingPoint.InAngularVelocity);
}
var delta = deltaTorqueConverter.Value() * (deltaEngine.IsEqual(0) ? 1 : deltaEngine.Value());
var delta = (outTorque - dryOperatingPoint.OutTorque) *
(PreviousState.OutAngularVelocity + dryOperatingPoint.OutAngularVelocity) / 2.0;
//deltaTorqueConverter.Value() * (deltaEngine.IsEqual(0) ? 1 : deltaEngine.Value());
return new ResponseDryRun() {
Source = this,
DeltaFullLoad = delta.SI<Watt>(),
DeltaDragLoad = delta.SI<Watt>(),
DeltaFullLoad = delta,
DeltaDragLoad = delta,
TorqueConverterOperatingPoint = dryOperatingPoint
};
}
......
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