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

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

adapting cycle gearbox when using torque converter (incl. some refactoring),...

adapting cycle gearbox when using torque converter (incl. some refactoring), adding testcases for measured speed powersplit and serial TC
parent 7452cbee
No related branches found
No related tags found
No related merge requests found
Showing
with 1416 additions and 83 deletions
......@@ -161,8 +161,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
IterationStatistics.Increment(this, "Requests");
Log.Debug("Engine Powertrain Power Request: torque: {0}, angularVelocity: {1}, power: {2}", outTorque,
outAngularVelocity,
outTorque * outAngularVelocity);
outAngularVelocity, outTorque * outAngularVelocity);
return DoHandleRequest(absTime, dt, outTorque, outAngularVelocity, dryRun);
}
......
......@@ -126,94 +126,216 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
if (TorqueConverter != null && TorqueConverterActive == null) {
throw new VectoSimulationException("Driving cycle does not contain information about TorqueConverter!");
}
if (Gear != 0 && !ModelData.Gears.ContainsKey(Gear)) {
throw new VectoSimulationException("Requested Gear {0} from driving cycle is not available", Gear);
}
return Gear == 0
? RequestDisengaged(absTime, dt, outTorque, outAngularVelocity, dryRun)
: RequestEngaged(absTime, dt, outTorque, outAngularVelocity, dryRun);
}
/// <summary>
/// Handles requests when a gear is engaged
/// </summary>
/// <param name="absTime"></param>
/// <param name="dt"></param>
/// <param name="outTorque"></param>
/// <param name="outAngularVelocity"></param>
/// <param name="dryRun"></param>
/// <returns></returns>
private IResponse RequestEngaged(Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity,
bool dryRun)
{
var avgOutAngularVelocity = (PreviousState.OutAngularVelocity + outAngularVelocity) / 2.0;
var inTorqueLossResult = ModelData.Gears[Gear].LossMap.GetTorqueLoss(avgOutAngularVelocity, outTorque);
var inTorque = outTorque / ModelData.Gears[Gear].Ratio - inTorqueLossResult.Value;
CurrentState.TorqueLossResult = inTorqueLossResult;
var inAngularVelocity = outAngularVelocity * ModelData.Gears[Gear].Ratio;
if (!inAngularVelocity.IsEqual(0)) {
// MQ 19.2.2016: check! inertia is related to output side, torque loss accounts to input side
CurrentState.InertiaTorqueLossOut =
Formulas.InertiaPower(outAngularVelocity, PreviousState.OutAngularVelocity, ModelData.Inertia, dt) /
avgOutAngularVelocity;
inTorque += CurrentState.InertiaTorqueLossOut / ModelData.Gears[Gear].Ratio;
} else {
CurrentState.InertiaTorqueLossOut = 0.SI<NewtonMeter>();
}
if (Gear == 0) {
//disengaged
if (dryRun) {
// if gearbox is disengaged the 0-line is the limit for drag and full load
return new ResponseDryRun {
Source = this,
GearboxPowerRequest = outTorque * avgOutAngularVelocity,
DeltaDragLoad = outTorque * avgOutAngularVelocity,
DeltaFullLoad = outTorque * avgOutAngularVelocity,
};
}
// todo mk 2016-08-23: add pto auxiliaries!!
if ((outTorque * avgOutAngularVelocity).IsGreater(0.SI<Watt>(),
Constants.SimulationSettings.LineSearchTolerance)) {
return new ResponseOverload {
Source = this,
Delta = outTorque * avgOutAngularVelocity,
GearboxPowerRequest = outTorque * avgOutAngularVelocity
};
if (dryRun) {
if (TorqueConverter != null && TorqueConverterActive != null && TorqueConverterActive.Value) {
return RequestTorqueConverter(absTime, dt, outTorque, outAngularVelocity, true);
}
var dryRunResponse = NextComponent.Request(absTime, dt, inTorque, inAngularVelocity, true);
dryRunResponse.GearboxPowerRequest = outTorque * avgOutAngularVelocity;
return dryRunResponse;
}
if ((outTorque * avgOutAngularVelocity).IsSmaller(0.SI<Watt>(),
Constants.SimulationSettings.LineSearchTolerance)) {
return new ResponseUnderload {
Source = this,
Delta = outTorque * avgOutAngularVelocity,
GearboxPowerRequest = outTorque * avgOutAngularVelocity
};
}
// this code has to be _after_ the check for a potential gear-shift!
// (the above block issues dry-run requests and thus may update the CurrentState!)
CurrentState.TransmissionTorqueLoss = inTorque - (outTorque / ModelData.Gears[Gear].Ratio);
CurrentState.SetState(0.SI<NewtonMeter>(), 0.RPMtoRad(), outTorque, outAngularVelocity);
CurrentState.Gear = Gear;
CurrentState.SetState(inTorque, inAngularVelocity, outTorque, outAngularVelocity);
CurrentState.Gear = Gear;
// end critical section
var disengagedResponse = NextComponent.Request(absTime, dt, 0.SI<NewtonMeter>(), null);
disengagedResponse.GearboxPowerRequest = outTorque * avgOutAngularVelocity;
return disengagedResponse;
} else {
//engaged
var inTorqueLossResult = ModelData.Gears[Gear].LossMap.GetTorqueLoss(avgOutAngularVelocity, outTorque);
var inTorque = outTorque / ModelData.Gears[Gear].Ratio - inTorqueLossResult.Value;
CurrentState.TorqueLossResult = inTorqueLossResult;
var inAngularVelocity = outAngularVelocity * ModelData.Gears[Gear].Ratio;
if (!inAngularVelocity.IsEqual(0)) {
// MQ 19.2.2016: check! inertia is related to output side, torque loss accounts to input side
CurrentState.InertiaTorqueLossOut =
Formulas.InertiaPower(outAngularVelocity, PreviousState.OutAngularVelocity, ModelData.Inertia, dt) /
avgOutAngularVelocity;
inTorque += CurrentState.InertiaTorqueLossOut / ModelData.Gears[Gear].Ratio;
} else {
CurrentState.InertiaTorqueLossOut = 0.SI<NewtonMeter>();
}
if (TorqueConverter != null && TorqueConverterActive != null && TorqueConverterActive.Value) {
return RequestTorqueConverter(absTime, dt, outTorque, outAngularVelocity);
}
// todo mk 2016-08-23: add pto auxiliaries!!
var response = NextComponent.Request(absTime, dt, inTorque, inAngularVelocity);
response.GearboxPowerRequest = outTorque * avgOutAngularVelocity;
return response;
}
if (dryRun) {
var dryRunResponse = NextComponent.Request(absTime, dt, inTorque, inAngularVelocity, true);
dryRunResponse.GearboxPowerRequest = outTorque * avgOutAngularVelocity;
return dryRunResponse;
/// <summary>
/// Handle Requests when Torque Converter is active
/// </summary>
/// <param name="absTime"></param>
/// <param name="dt"></param>
/// <param name="outTorque"></param>
/// <param name="outAngularVelocity"></param>
/// <param name="dryRun"></param>
/// <returns></returns>
private IResponse RequestTorqueConverter(Second absTime, Second dt, NewtonMeter outTorque,
PerSecond outAngularVelocity, bool dryRun = false)
{
if (dryRun) {
return RequestTorqueConverterDryRun(absTime, dt, outTorque, outAngularVelocity);
}
var operatingPoint = FindOperatingPoint(outTorque, outAngularVelocity);
if (!outAngularVelocity.IsEqual(operatingPoint.OutAngularVelocity) || !outTorque.IsEqual(operatingPoint.OutTorque)) {
// a different operating point was found...
var delta = (outTorque - operatingPoint.OutTorque) *
(PreviousState.OutAngularVelocity + operatingPoint.OutAngularVelocity) / 2.0;
if (!delta.IsEqual(0, Constants.SimulationSettings.LineSearchTolerance)) {
if (delta > 0) {
return new ResponseOverload { Source = this, Delta = delta, TorqueConverterOperatingPoint = operatingPoint };
}
return new ResponseUnderload { Source = this, Delta = delta, TorqueConverterOperatingPoint = operatingPoint };
}
}
var tcResponse = NextComponent.Request(absTime, dt, operatingPoint.InTorque, operatingPoint.InAngularVelocity);
return tcResponse;
}
// this code has to be _after_ the check for a potential gear-shift!
// (the above block issues dry-run requests and thus may update the CurrentState!)
CurrentState.TransmissionTorqueLoss = inTorque - (outTorque / ModelData.Gears[Gear].Ratio);
/// <summary>
/// Handle Requests when searching an operating point and torque converter is active
/// </summary>
/// <param name="absTime"></param>
/// <param name="dt"></param>
/// <param name="outTorque"></param>
/// <param name="outAngularVelocity"></param>
/// <returns></returns>
private IResponse RequestTorqueConverterDryRun(Second absTime, Second dt, NewtonMeter outTorque,
PerSecond outAngularVelocity)
{
var dryOperatingPoint = FindOperatingPoint(outTorque, outAngularVelocity);
var deltaTorqueConverter = (outTorque - dryOperatingPoint.OutTorque) *
(PreviousState.OutAngularVelocity + dryOperatingPoint.OutAngularVelocity) / 2.0;
// operatingPoint.inAngularVelocity is for sure between engine idle speed and max TC speed
var engineResponse =
(ResponseDryRun)
NextComponent.Request(absTime, dt, dryOperatingPoint.InTorque, dryOperatingPoint.InAngularVelocity,
true);
var deltaEngine = (engineResponse.DeltaFullLoad > 0 ? engineResponse.DeltaFullLoad : 0.SI<Watt>()) +
(engineResponse.DeltaDragLoad < 0 ? -engineResponse.DeltaDragLoad : 0.SI<Watt>());
if (deltaTorqueConverter.IsEqual(0) && deltaEngine.IsEqual(0)) {
return new ResponseDryRun {
Source = this,
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 =
TorqueConverter.GetOutTorqueAndSpeed(
outTorque > 0 ? engineResponse.EngineMaxTorqueOut : engineResponse.EngineDragTorque,
dryOperatingPoint.InAngularVelocity, null);
}
CurrentState.SetState(inTorque, inAngularVelocity, outTorque, outAngularVelocity);
CurrentState.Gear = Gear;
// end critical section
var delta = (outTorque - dryOperatingPoint.OutTorque) *
(PreviousState.OutAngularVelocity + dryOperatingPoint.OutAngularVelocity) / 2.0;
return new ResponseDryRun() {
Source = this,
DeltaFullLoad = delta,
DeltaDragLoad = delta,
TorqueConverterOperatingPoint = dryOperatingPoint
};
}
if (TorqueConverter != null && TorqueConverterActive != null && TorqueConverterActive.Value) {
var tcOperatingPoint = TorqueConverter.FindOperatingPoint(inTorque, inAngularVelocity);
if (tcOperatingPoint.InAngularVelocity.IsSmaller(DataBus.EngineIdleSpeed)) {
throw new VectoException("Invalid operating point, inAngularVelocity below engine's idle speed: {0}",
tcOperatingPoint.InAngularVelocity);
}
if (tcOperatingPoint.InAngularVelocity.IsGreater(TorqueConverter.TorqueConverterSpeedLimit)) {
tcOperatingPoint = TorqueConverter.GetOutTorque(TorqueConverter.TorqueConverterSpeedLimit, outAngularVelocity);
}
var tcResponse = NextComponent.Request(absTime, dt, tcOperatingPoint.InTorque, tcOperatingPoint.InAngularVelocity);
return tcResponse;
}
/// <summary>
/// Handles Requests when no gear is engaged
/// </summary>
/// <param name="absTime"></param>
/// <param name="dt"></param>
/// <param name="outTorque"></param>
/// <param name="outAngularVelocity"></param>
/// <param name="dryRun"></param>
/// <returns></returns>
private IResponse RequestDisengaged(Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity,
bool dryRun)
{
var avgOutAngularVelocity = (PreviousState.OutAngularVelocity + outAngularVelocity) / 2.0;
if (dryRun) {
// if gearbox is disengaged the 0-line is the limit for drag and full load
return new ResponseDryRun {
Source = this,
GearboxPowerRequest = outTorque * avgOutAngularVelocity,
DeltaDragLoad = outTorque * avgOutAngularVelocity,
DeltaFullLoad = outTorque * avgOutAngularVelocity,
};
}
if ((outTorque * avgOutAngularVelocity).IsGreater(0.SI<Watt>(),
Constants.SimulationSettings.LineSearchTolerance)) {
return new ResponseOverload {
Source = this,
Delta = outTorque * avgOutAngularVelocity,
GearboxPowerRequest = outTorque * avgOutAngularVelocity
};
}
if ((outTorque * avgOutAngularVelocity).IsSmaller(0.SI<Watt>(),
Constants.SimulationSettings.LineSearchTolerance)) {
return new ResponseUnderload {
Source = this,
Delta = outTorque * avgOutAngularVelocity,
GearboxPowerRequest = outTorque * avgOutAngularVelocity
};
}
var response = NextComponent.Request(absTime, dt, inTorque, inAngularVelocity);
response.GearboxPowerRequest = outTorque * avgOutAngularVelocity;
return response;
CurrentState.SetState(0.SI<NewtonMeter>(), 0.RPMtoRad(), outTorque, outAngularVelocity);
CurrentState.Gear = Gear;
var disengagedResponse = NextComponent.Request(absTime, dt, 0.SI<NewtonMeter>(), DataBus.EngineIdleSpeed);
disengagedResponse.GearboxPowerRequest = outTorque * avgOutAngularVelocity;
return disengagedResponse;
}
private TorqueConverterOperatingPoint FindOperatingPoint(NewtonMeter outTorque,
PerSecond outAngularVelocity)
{
try {
var operatingPoint = TorqueConverter.FindOperatingPoint(outTorque, outAngularVelocity);
if (operatingPoint.InAngularVelocity.IsSmaller(DataBus.EngineIdleSpeed)) {
throw new VectoException("Invalid operating point, inAngularVelocity below engine's idle speed: {0}",
operatingPoint.InAngularVelocity);
}
if (operatingPoint.InAngularVelocity.IsGreater(TorqueConverter.TorqueConverterSpeedLimit)) {
operatingPoint = TorqueConverter.GetOutTorque(TorqueConverter.TorqueConverterSpeedLimit, outAngularVelocity);
}
return operatingPoint;
} catch (VectoException ve) {
Log.Debug(ve, "failed to find torque converter operating point, fallback: creeping");
var tqOperatingPoint = TorqueConverter.GetOutTorque(DataBus.EngineIdleSpeed, outAngularVelocity);
return tqOperatingPoint;
}
}
......
......@@ -438,12 +438,23 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
}
[TestMethod]
public void MeasuredSpeed_Gear_AT_Run()
public void MeasuredSpeed_Gear_AT_PS_Run()
{
RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedGearAT.vecto",
@"TestData\MeasuredSpeed\Results\MeasuredSpeedGear_MeasuredSpeed_GearAT_SORT.vmod",
@"TestData\MeasuredSpeed\MeasuredSpeedGear_MeasuredSpeed_GearAT_SORT.vmod",
@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearAT.vsum", @"TestData\MeasuredSpeed\MeasuredSpeedGearAT.vsum");
RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedGearAT-PS.vecto",
@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearAT-PS_MeasuredSpeedGear_AT-PS.vmod",
@"TestData\MeasuredSpeed\MeasuredSpeedGearAT-PS_MeasuredSpeedGear_AT-PS.vmod",
@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearAT-PS.vsum",
@"TestData\MeasuredSpeed\MeasuredSpeedGearAT-PS.vsum");
}
[TestMethod]
public void MeasuredSpeed_Gear_AT_Ser_Run()
{
RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedGearAT-Ser.vecto",
@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearAT-Ser_MeasuredSpeedGear_AT-Ser.vmod",
@"TestData\MeasuredSpeed\MeasuredSpeedGearAT-Ser_MeasuredSpeedGear_AT-Ser.vmod",
@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearAT-Ser.vsum",
@"TestData\MeasuredSpeed\MeasuredSpeedGearAT-Ser.vsum");
}
[TestMethod]
......
{
"Header": {
"CreatedBy": " ()",
"Date": "03.08.2016 14:16:58",
"AppVersion": "2.2",
"FileVersion": 6
},
"Body": {
"SavedInDeclMode": false,
"ModelName": "AT Serial",
"Inertia": 0.0,
"TracInt": 0.0,
"Gears": [
{
"Ratio": 6.2,
"Efficiency": "0.98"
},
{
"Ratio": 3.4,
"Efficiency": "0.98",
"ShiftPolygon": "ShiftPolygonsAT.vgbs",
"FullLoadCurve": "<NOFILE>"
},
{
"Ratio": 1.9,
"Efficiency": "0.98",
"ShiftPolygon": "ShiftPolygonsAT.vgbs",
"FullLoadCurve": "<NOFILE>"
},
{
"Ratio": 1.42,
"Efficiency": "0.98",
"ShiftPolygon": "ShiftPolygonsAT.vgbs",
"FullLoadCurve": "<NOFILE>"
},
{
"Ratio": 1.0,
"Efficiency": "0.98",
"ShiftPolygon": "ShiftPolygonsAT.vgbs",
"FullLoadCurve": "<NOFILE>"
},
{
"Ratio": 0.7,
"Efficiency": "0.98",
"ShiftPolygon": "ShiftPolygonsAT.vgbs",
"FullLoadCurve": "<NOFILE>"
},
{
"Ratio": 0.62,
"Efficiency": "0.98",
"ShiftPolygon": "ShiftPolygonsAT.vgbs",
"FullLoadCurve": "<NOFILE>"
}
],
"TqReserve": 0.0,
"SkipGears": false,
"ShiftTime": 0,
"EaryShiftUp": false,
"StartTqReserve": 0.0,
"StartSpeed": 2.0,
"StartAcc": 0.6,
"GearboxType": "ATSerial",
"TorqueConverter": {
"Enabled": true,
"File": "TorqueConverter.vtcc",
"RefRPM": 1000.0,
"Inertia": 0.0,
"ShiftPolygon": "ShiftPolygonsAT.vgbs"
},
"DownshiftAferUpshiftDelay": 0.0,
"UpshiftAfterDownshiftDelay": 0.0,
"UpshiftMinAcceleration": 0.0
}
}
\ No newline at end of file
......@@ -11,7 +11,7 @@
"EngineFile": "EngineAT.veng",
"GearboxFile": "GearboxPowerSplit.vgbx",
"Cycles": [
"MeasuredSpeedGearAT.vdri"
"MeasuredSpeedGear_AT-PS.vdri"
],
"AuxiliaryAssembly": "CLASSIC",
"AuxiliaryVersion": "CLASSIC",
......
{
"Header": {
"CreatedBy": "Raphael Luz IVT TU-Graz (f513c787-07a6-4a67-8bd9-81abd760bcfc)",
"Date": "2016-08-02 14:42:10",
"AppVersion": "2.2",
"FileVersion": 2
},
"Body": {
"SavedInDeclMode": false,
"VehicleFile": "VehicleAT.vveh",
"EngineFile": "EngineAT.veng",
"GearboxFile": "GearboxSerial.vgbx",
"Cycles": [
"MeasuredSpeedGear_AT-Ser.vdri"
],
"AuxiliaryAssembly": "CLASSIC",
"AuxiliaryVersion": "CLASSIC",
"AdvancedAuxiliaryFilePath": "",
"VACC": "Driver.vacc",
"EngineOnlyMode": false,
"StartStop": {
"Enabled": false,
"MaxSpeed": 5.0,
"MinTime": 5.0,
"Delay": 0
},
"LAC": {
"Enabled": false,
"Dec": -0.5,
"MinSpeed": 50.0,
"PreviewDistanceFactor": 10.0,
"DF_offset": 2.5,
"DF_scaling": 1.5,
"DF_targetSpeedLookup": "",
"Df_velocityDropLookup": ""
},
"OverSpeedEcoRoll": {
"Mode": "Off",
"MinSpeed": 0.0,
"OverSpeed": 0.0,
"UnderSpeed": 0.0
}
}
}
\ No newline at end of file
<t>,<v>,<grad>,<gear>,<tc_active>,<Padd>
1,0.5,-0.3,1,1,4.5
2,2.7,-0.3,1,1,4.5
3,6.4,-0.3,1,1,4.5
4,10.3,-0.3,1,1,4.5
5,14.1,-0.3,1,1,4.5
6,17.5,-0.3,1,1,4.5
7,20.6,-0.3,1,0,4.5
8,23.8,-0.3,1,0,4.5
9,27.1,-0.3,1,0,4.5
10,29.4,-0.3,2,0,4.5
11,30.7,-0.3,2,0,4.5
12,30.8,-0.3,3,0,4.5
13,30.7,-0.3,3,0,4.5
14,30.5,-0.3,3,0,4.5
15,30.4,-0.3,3,0,4.5
16,30.3,-0.3,3,0,4.5
17,30.1,-0.3,3,0,4.5
18,30.0,-0.3,3,0,4.5
19,29.9,-0.3,3,0,4.5
20,29.8,-0.3,3,0,4.5
21,29.7,-0.3,3,0,4.5
22,29.7,-0.3,3,0,4.5
23,29.8,-0.3,2,0,4.5
24,29.7,-0.3,0,0,4.5
25,28.6,-0.3,0,0,4.5
26,26.4,-0.3,2,0,4.5
27,23.4,-0.3,1,0,4.5
28,20.8,-0.3,1,0,4.5
29,17.3,-0.3,1,0,4.5
30,13.5,-0.3,1,1,4.5
31,9.0,-0.3,0,0,4.5
32,4.5,-0.3,0,0,4.5
33,0.8,-0.3,0,0,4.5
34,0.0,-0.3,0,0,4.5
35,0.0,-0.3,0,0,4.5
36,0.0,-0.3,1,1,4.5
37,0.0,-0.3,1,1,4.5
38,0.0,-0.3,1,1,4.5
39,0.0,-0.3,1,1,4.5
40,0.0,-0.3,1,1,4.5
41,0.0,-0.3,1,1,4.5
42,0.0,-0.3,1,1,4.5
43,0.0,-0.3,1,1,4.5
44,0.0,-0.3,1,1,4.5
45,0.3,-0.3,1,1,4.5
46,3.2,-0.3,1,1,4.5
47,6.8,-0.3,1,1,4.5
48,10.7,-0.3,1,1,4.5
49,14.3,-0.3,1,1,4.5
50,17.5,-0.3,1,0,4.5
51,20.2,-0.3,1,0,4.5
52,22.9,-0.3,1,0,4.5
53,25.4,-0.3,1,0,4.5
54,27.7,-0.3,1,0,4.5
55,29.8,-0.3,2,0,4.5
56,32.1,-0.3,2,0,4.5
57,34.6,-0.3,2,0,4.5
58,37.1,-0.3,2,0,4.5
59,39.3,-0.3,2,0,4.5
60,41.1,-0.3,3,0,4.5
61,43.0,-0.3,3,0,4.5
62,45.0,-0.3,3,0,4.5
63,46.9,-0.3,3,0,4.5
64,48.7,-0.3,3,0,4.5
65,50.2,-0.3,3,0,4.5
66,50.9,-0.3,3,0,4.5
67,50.9,-0.3,3,0,4.5
68,50.8,-0.3,3,0,4.5
69,50.8,-0.3,3,0,4.5
70,50.6,-0.3,3,0,4.5
71,50.5,-0.3,3,0,4.5
72,50.4,-0.3,3,0,4.5
73,50.3,-0.3,3,0,4.5
74,50.2,-0.3,3,0,4.5
75,50.1,-0.3,3,0,4.5
76,50.0,-0.3,3,0,4.5
77,49.9,-0.3,3,0,4.5
78,49.9,-0.3,3,0,4.5
79,49.8,-0.3,3,0,4.5
80,49.7,-0.3,3,0,4.5
81,49.8,-0.3,3,0,4.5
82,49.8,-0.3,3,0,4.5
83,49.8,-0.3,3,0,4.5
84,49.9,-0.3,3,0,4.5
85,50.0,-0.3,3,0,4.5
86,50.1,-0.3,3,0,4.5
87,49.9,-0.3,3,0,4.5
88,49.4,-0.3,3,0,4.5
89,48.3,-0.3,3,0,4.5
90,46.6,-0.3,3,0,4.5
91,44.6,-0.3,3,0,4.5
92,41.9,-0.3,3,0,4.5
93,39.1,-0.3,2,0,4.5
94,36.3,-0.3,2,0,4.5
95,33.1,-0.3,2,0,4.5
96,29.0,-0.3,2,0,4.5
97,24.8,-0.3,1,0,4.5
98,20.6,-0.3,1,0,4.5
99,15.8,-0.3,1,1,4.5
100,11.0,-0.3,0,0,4.5
101,6.2,-0.3,0,0,4.5
102,1.6,-0.3,0,0,4.5
103,0.0,-0.3,0,0,4.5
104,0.0,-0.3,0,0,4.5
105,0.0,-0.3,1,1,4.5
106,0.0,-0.3,1,1,4.5
107,0.0,-0.3,1,1,4.5
108,0.0,-0.3,1,1,4.5
109,0.0,-0.3,1,1,4.5
110,0.0,-0.3,1,1,4.5
111,0.0,-0.3,1,1,4.5
112,0.0,-0.3,1,1,4.5
113,0.0,-0.3,1,1,4.5
114,0.0,-0.3,1,1,4.5
115,0.0,-0.3,1,1,4.5
116,0.0,-0.3,1,1,4.5
117,0.0,-0.3,1,1,4.5
118,0.0,-0.3,1,1,4.5
119,0.1,-0.3,1,1,4.5
120,1.9,-0.3,1,1,4.5
121,5.0,-0.3,1,1,4.5
122,8.5,-0.3,1,1,4.5
123,12.1,-0.3,1,1,4.5
124,15.5,-0.3,1,1,4.5
125,18.4,-0.3,1,0,4.5
126,21.0,-0.3,1,0,4.5
127,23.5,-0.3,1,0,4.5
128,25.6,-0.3,1,0,4.5
129,27.3,-0.3,2,0,4.5
130,29.0,-0.3,2,0,4.5
131,30.6,-0.3,2,0,4.5
132,32.2,-0.3,2,0,4.5
133,33.9,-0.3,2,0,4.5
134,35.6,-0.3,2,0,4.5
135,37.2,-0.3,3,0,4.5
136,38.9,-0.3,3,0,4.5
137,40.7,-0.3,3,0,4.5
138,42.6,-0.3,3,0,4.5
139,44.4,-0.3,3,0,4.5
140,46.1,-0.3,3,0,4.5
141,47.8,-0.3,3,0,4.5
142,49.4,-0.3,3,0,4.5
143,51.0,-0.3,3,0,4.5
144,52.5,-0.3,3,0,4.5
145,54.0,-0.3,3,0,4.5
146,55.6,-0.3,3,0,4.5
147,57.0,-0.3,3,0,4.5
148,58.2,-0.3,3,0,4.5
149,59.2,-0.3,3,0,4.5
150,60.0,-0.3,3,0,4.5
151,60.1,-0.3,3,0,4.5
152,60.2,-0.3,3,0,4.5
153,60.2,-0.3,3,0,4.5
154,60.2,-0.3,3,0,4.5
155,60.3,-0.3,3,0,4.5
156,60.3,-0.3,3,0,4.5
157,60.3,-0.3,3,0,4.5
158,60.3,-0.3,3,0,4.5
159,60.3,-0.3,3,0,4.5
160,60.2,-0.3,3,0,4.5
161,59.6,-0.3,3,0,4.5
162,57.9,-0.3,3,0,4.5
163,55.1,-0.3,3,0,4.5
164,53.3,-0.3,3,0,4.5
165,51.8,-0.3,3,0,4.5
166,49.4,-0.3,3,0,4.5
167,46.4,-0.3,3,0,4.5
168,42.6,-0.3,2,0,4.5
169,39.1,-0.3,2,0,4.5
170,35.4,-0.3,2,0,4.5
171,31.0,-0.3,2,0,4.5
172,26.6,-0.3,1,0,4.5
173,22.0,-0.3,1,0,4.5
174,17.0,-0.3,1,0,4.5
175,11.9,-0.3,0,0,4.5
176,6.8,-0.3,0,0,4.5
177,2.4,-0.3,0,0,4.5
178,0.0,-0.3,0,0,4.5
179,0.0,-0.3,0,0,4.5
180,0.0,-0.3,1,1,4.5
181,0.0,-0.3,1,1,4.5
182,0.0,-0.3,1,1,4.5
183,0.0,-0.3,1,1,4.5
184,0.0,-0.3,1,1,4.5
185,0.0,-0.3,1,1,4.5
186,0.0,-0.3,1,1,4.5
187,0.0,-0.3,1,1,4.5
188,0.0,-0.3,1,1,4.5
189,0.0,-0.3,1,1,4.5
190,0.0,-0.3,1,1,4.5
191,0.1,0.3,1,1,4.5
192,1.9,0.3,1,1,4.5
193,5.6,0.3,1,1,4.5
194,9.6,0.3,1,1,4.5
195,13.6,0.3,1,1,4.5
196,17.1,0.3,1,1,4.5
197,20.3,0.3,1,0,4.5
198,23.4,0.3,1,0,4.5
199,26.7,0.3,1,0,4.5
200,29.1,0.3,1,0,4.5
201,30.4,0.3,2,0,4.5
202,30.5,0.3,3,0,4.5
203,30.2,0.3,3,0,4.5
204,29.9,0.3,3,0,4.5
205,29.7,0.3,3,0,4.5
206,29.6,0.3,3,0,4.5
207,29.6,0.3,3,0,4.5
208,29.5,0.3,3,0,4.5
209,29.5,0.3,3,0,4.5
210,29.6,0.3,3,0,4.5
211,29.6,0.3,3,0,4.5
212,29.8,0.3,3,0,4.5
213,29.9,0.3,3,0,4.5
214,29.8,0.3,0,0,4.5
215,29.0,0.3,0,0,4.5
216,27.5,0.3,1,0,4.5
217,24.7,0.3,2,0,4.5
218,21.5,0.3,1,0,4.5
219,17.7,0.3,1,0,4.5
220,13.4,0.3,0,0,4.5
221,9.1,0.3,0,0,4.5
222,5.0,0.3,0,0,4.5
223,1.1,0.3,0,0,4.5
224,0.0,0.3,0,0,4.5
225,0.0,0.3,0,0,4.5
226,0.0,0.3,1,1,4.5
227,0.0,0.3,1,1,4.5
228,0.0,0.3,1,1,4.5
229,0.0,0.3,1,1,4.5
230,0.0,0.3,1,1,4.5
231,0.0,0.3,1,1,4.5
232,0.0,0.3,1,1,4.5
233,0.0,0.3,1,1,4.5
234,0.0,0.3,1,1,4.5
235,0.0,0.3,1,1,4.5
236,0.0,0.3,1,1,4.5
237,0.8,0.3,1,1,4.5
238,4.0,0.3,1,1,4.5
239,8.0,0.3,1,1,4.5
240,11.9,0.3,1,1,4.5
241,15.5,0.3,1,1,4.5
242,18.3,0.3,1,0,4.5
243,21.1,0.3,1,0,4.5
244,24.1,0.3,1,0,4.5
245,26.8,0.3,1,0,4.5
246,29.1,0.3,1,0,4.5
247,31.1,0.3,2,0,4.5
248,33.7,0.3,2,0,4.5
249,36.2,0.3,2,0,4.5
250,38.5,0.3,2,0,4.5
251,40.1,0.3,3,0,4.5
252,41.9,0.3,3,0,4.5
253,43.8,0.3,3,0,4.5
254,45.6,0.3,3,0,4.5
255,47.2,0.3,3,0,4.5
256,48.8,0.3,3,0,4.5
257,50.1,0.3,3,0,4.5
258,50.7,0.3,3,0,4.5
259,50.5,0.3,3,0,4.5
260,50.2,0.3,3,0,4.5
261,50.1,0.3,3,0,4.5
262,49.9,0.3,3,0,4.5
263,49.8,0.3,3,0,4.5
264,49.7,0.3,3,0,4.5
265,49.7,0.3,3,0,4.5
266,49.7,0.3,3,0,4.5
267,49.7,0.3,3,0,4.5
268,49.8,0.3,3,0,4.5
269,49.9,0.3,3,0,4.5
270,49.9,0.3,3,0,4.5
271,50.0,0.3,3,0,4.5
272,50.0,0.3,3,0,4.5
273,50.1,0.3,3,0,4.5
274,50.2,0.3,3,0,4.5
275,50.2,0.3,3,0,4.5
276,50.2,0.3,3,0,4.5
277,50.3,0.3,3,0,4.5
278,50.2,0.3,3,0,4.5
279,49.7,0.3,3,0,4.5
280,48.9,0.3,3,0,4.5
281,46.8,0.3,3,0,4.5
282,44.1,0.3,3,0,4.5
283,41.1,0.3,2,0,4.5
284,38.4,0.3,2,0,4.5
285,35.5,0.3,2,0,4.5
286,32.5,0.3,2,0,4.5
287,29.2,0.3,1,0,4.5
288,27.1,0.3,1,0,4.5
289,24.3,0.3,1,0,4.5
290,21.6,0.3,1,0,4.5
291,18.4,0.3,1,0,4.5
292,13.6,0.3,0,0,4.5
293,7.8,0.3,0,0,4.5
294,2.3,0.3,0,0,4.5
295,0.0,0.3,0,0,4.5
296,0.0,0.3,0,0,4.5
297,0.0,0.3,1,1,4.5
298,0.0,0.3,1,1,4.5
299,0.0,0.3,1,1,4.5
300,0.0,0.3,1,1,4.5
301,0.0,0.3,1,1,4.5
302,0.0,0.3,1,1,4.5
303,0.0,0.3,1,1,4.5
304,0.0,0.3,1,1,4.5
305,0.0,0.3,1,1,4.5
306,0.0,0.3,1,1,4.5
307,1.0,0.3,1,1,4.5
308,4.2,0.3,1,1,4.5
309,7.7,0.3,1,1,4.5
310,11.4,0.3,1,1,4.5
311,14.9,0.3,1,1,4.5
312,17.9,0.3,1,0,4.5
313,20.5,0.3,1,0,4.5
314,23.2,0.3,1,0,4.5
315,25.5,0.3,1,0,4.5
316,27.3,0.3,2,0,4.5
317,29.1,0.3,2,0,4.5
318,31.0,0.3,2,0,4.5
319,32.8,0.3,2,0,4.5
320,34.7,0.3,2,0,4.5
321,36.4,0.3,2,0,4.5
322,37.9,0.3,3,0,4.5
323,39.5,0.3,3,0,4.5
324,41.2,0.3,3,0,4.5
325,43.0,0.3,3,0,4.5
326,44.7,0.3,3,0,4.5
327,46.4,0.3,3,0,4.5
328,48.1,0.3,3,0,4.5
329,49.7,0.3,3,0,4.5
330,51.3,0.3,3,0,4.5
331,52.8,0.3,3,0,4.5
332,54.4,0.3,3,0,4.5
333,56.0,0.3,3,0,4.5
334,57.4,0.3,3,0,4.5
335,58.6,0.3,3,0,4.5
336,59.6,0.3,3,0,4.5
337,59.8,0.3,3,0,4.5
338,59.8,0.3,3,0,4.5
339,59.8,0.3,3,0,4.5
340,59.8,0.3,3,0,4.5
341,59.8,0.3,3,0,4.5
342,59.8,0.3,3,0,4.5
343,59.8,0.3,3,0,4.5
344,59.8,0.3,3,0,4.5
345,59.8,0.3,3,0,4.5
346,59.8,0.3,3,0,4.5
347,59.7,0.3,3,0,4.5
348,59.0,0.3,3,0,4.5
349,57.2,0.3,3,0,4.5
350,54.7,0.3,3,0,4.5
351,52.1,0.3,3,0,4.5
352,49.3,0.3,3,0,4.5
353,46.3,0.3,3,0,4.5
354,42.7,0.3,2,0,4.5
355,39.2,0.3,2,0,4.5
356,35.8,0.3,2,0,4.5
357,32.1,0.3,2,0,4.5
358,28.4,0.3,1,0,4.5
359,25.0,0.3,1,0,4.5
360,22.7,0.3,1,0,4.5
361,20.8,0.3,1,0,4.5
362,18.1,0.3,1,0,4.5
363,14.8,0.3,1,1,4.5
364,10.6,0.3,0,0,4.5
365,6.7,0.3,0,0,4.5
366,3.0,0.3,0,0,4.5
367,0.2,0.3,0,0,4.5
368,0.0,0.3,0,0,4.5
369,0.0,0.3,1,1,4.5
370,0.0,0.3,1,1,4.5
371,0.0,0.3,1,1,4.5
372,0.0,0.3,1,1,4.5
373,0.0,0.3,1,1,4.5
374,0.0,0.3,1,1,4.5
375,0.0,0.3,1,1,4.5
376,0.0,0.3,1,1,4.5
377,0.0,0.3,1,1,4.5
378,0.0,0.3,1,1,4.5
379,0.0,0.3,1,1,4.5
380,0.0,0.3,1,1,4.5
Job [-],Input File [-],Cycle [-],Status,Mass [kg],Loading [kg],time [s],distance [km],speed [km/h],altitudeDelta [m],FC-Map [g/h],FC-Map [g/km],FC-AUXc [g/h],FC-AUXc [g/km],FC-WHTCc [g/h],FC-WHTCc [g/km],FC-AAUX [g/h],FC-AAUX [g/km],FC-Final [g/h],FC-Final [g/km],FC-Final [l/100km],FC-Final [l/100tkm],CO2 [g/km],CO2 [g/tkm],P_wheel_in_pos [kW],P_brake_loss [kW],P_angle_loss [kW],P_tc_loss [kW],P_clutch_pos [kW],P_clutch_neg [kW],P_fcmap_pos [kW],E_aux_sum [kWh],E_air [kWh],E_roll [kWh],E_grad [kWh],E_inertia [kWh],E_brake [kWh],E_gbx_axl_loss [kWh],E_ret_loss [kWh],E_tc_loss [kWh],E_angle_loss [kWh],E_clutch_pos [kWh],E_clutch_neg [kWh],E_fcmap_pos [kWh],a [m/s^2],a_pos [m/s^2],a_neg [m/s^2],AccelerationTimeShare [%],DecelerationTimeShare [%],CruiseTimeShare [%],StopTimeShare [%]
1-0,MeasuredSpeedGearAT-PS,MeasuredSpeedGear_AT-PS.vdri,Success,17000.0000,4800.0000,378.0000,2.8858,27.4839,0.0036,10493.7756,381.8161,10493.7756,381.8161,10493.7756,381.8161,10493.7756,381.8161,10493.7756,381.8161,45.8914,9.5607,1206.5388,251.3622,40.9339,25.1055,0.0000,0.0000,64.3973,-20.3393,62.6837,0.4738,0.2436,1.0119,0.0002,0.0018,2.6361,-0.0016,0.0000,0.0000,0.0000,5.0266,-0.3898,5.4500,-0.0004,0.6096,-0.8120,33.4218,25.1989,0.0000,20.1058
Job [-],Input File [-],Cycle [-],Status,Mass [kg],Loading [kg],time [s],distance [km],speed [km/h],altitudeDelta [m],FC-Map [g/h],FC-Map [g/km],FC-AUXc [g/h],FC-AUXc [g/km],FC-WHTCc [g/h],FC-WHTCc [g/km],FC-AAUX [g/h],FC-AAUX [g/km],FC-Final [g/h],FC-Final [g/km],FC-Final [l/100km],FC-Final [l/100tkm],CO2 [g/km],CO2 [g/tkm],P_wheel_in_pos [kW],P_brake_loss [kW],P_angle_loss [kW],P_tc_loss [kW],P_clutch_pos [kW],P_clutch_neg [kW],P_fcmap_pos [kW],E_aux_sum [kWh],E_air [kWh],E_roll [kWh],E_grad [kWh],E_inertia [kWh],E_brake [kWh],E_gbx_axl_loss [kWh],E_ret_loss [kWh],E_tc_loss [kWh],E_angle_loss [kWh],E_clutch_pos [kWh],E_clutch_neg [kWh],E_fcmap_pos [kWh],a [m/s^2],a_pos [m/s^2],a_neg [m/s^2],AccelerationTimeShare [%],DecelerationTimeShare [%],CruiseTimeShare [%],StopTimeShare [%]
1-0,MeasuredSpeedGearAT-Ser,MeasuredSpeedGear_AT-Ser.vdri,Success,17000.0000,4800.0000,271.0000,1.0248,13.6138,-0.0054,8520.1501,625.8482,8520.1501,625.8482,8520.1501,625.8482,8520.1501,625.8482,8520.1501,625.8482,75.2221,15.6713,1977.6802,412.0167,22.6545,12.3931,0.0000,0.0000,46.1985,-19.0583,50.0667,0.3400,0.0342,0.3594,-0.0004,0.0018,0.9329,-0.0006,0.0000,0.0000,0.0000,2.6692,-0.3388,2.9623,-0.0002,0.7012,-0.7280,26.6667,25.5556,0.0000,35.0554
Speed Ratio, Torque Ratio,MP1000
0.0,1.80,377.80
0.1,1.71,365.21
0.2,1.61,352.62
0.3,1.52,340.02
0.4,1.42,327.43
0.5,1.33,314.84
0.6,1.23,302.24
0.7,1.14,264.46
0.8,1.04,226.68
0.9,0.95,188.90
1.0,0.95,0.00
1.100,1.000,-40.34
1.222,1.000,-80.34
1.375,1.000,-136.11
1.571,1.000,-216.52
1.833,1.000,-335.19
2.200,1.000,-528.77
2.750,1.000,-883.40
4.400,1.000,-2462.17
11.000,1.000,-16540.98
\ No newline at end of file
......@@ -1130,6 +1130,9 @@
<None Include="TestData\MeasuredSpeed\GearboxPowerSplit.vgbx">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\MeasuredSpeed\GearboxSerial.vgbx">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\MeasuredSpeed\Gear_Axle_loss.vtlm">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
......@@ -1154,10 +1157,13 @@
<None Include="TestData\MeasuredSpeed\MeasuredSpeed.vecto">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\MeasuredSpeed\MeasuredSpeedGearAT.vdri">
<None Include="TestData\MeasuredSpeed\MeasuredSpeedGearAT-PS.vecto">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\MeasuredSpeed\MeasuredSpeedGear_AT-Ser.vdri">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\MeasuredSpeed\MeasuredSpeedGearAT.vecto">
<None Include="TestData\MeasuredSpeed\MeasuredSpeedGearAT-Ser.vecto">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\MeasuredSpeed\MeasuredSpeedGearAux.vecto">
......@@ -1169,6 +1175,9 @@
<None Include="TestData\MeasuredSpeed\MeasuredSpeedGearVairAux.vecto">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\MeasuredSpeed\MeasuredSpeedGear_AT-PS.vdri">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\MeasuredSpeed\MeasuredSpeedVair.vdri">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
......@@ -1223,6 +1232,18 @@
<None Include="TestData\MeasuredSpeed\Results\MeasuredSpeedGear.vsum">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\MeasuredSpeed\Results\MeasuredSpeedGearAT-PS.vsum">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\MeasuredSpeed\Results\MeasuredSpeedGearAT-PS_MeasuredSpeedGear_AT-PS.vmod">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\MeasuredSpeed\Results\MeasuredSpeedGearAT-Ser.vsum">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\MeasuredSpeed\Results\MeasuredSpeedGearAT-Ser_MeasuredSpeedGear_AT-Ser.vmod">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\MeasuredSpeed\Results\MeasuredSpeedGearAux.vsum">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
......@@ -1283,6 +1304,9 @@
<None Include="TestData\MeasuredSpeed\ShiftPolygonsAT.vgbs">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\MeasuredSpeed\TorqueConverter.vtcc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\MeasuredSpeed\TorqueConverterPowerSplit.vtcc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
......
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