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

Skip to content
Snippets Groups Projects
Commit 2f65d1df authored by Michael KRISPER's avatar Michael KRISPER
Browse files

removed gearbox-auxiliary

parent 6377573e
No related branches found
No related tags found
No related merge requests found
Showing
with 1399 additions and 1355 deletions
File added
{
"Header": {
"CreatedBy": " ()",
"Date": "2016-10-05T12:54:17.7100746Z",
"Date": "2016-10-05T13:29:06.6680746Z",
"AppVersion": "3",
"FileVersion": 7
},
......
{
"Header": {
"CreatedBy": " ()",
"Date": "2016-10-05T12:54:29.6470746Z",
"Date": "2016-10-05T13:31:02.2810746Z",
"AppVersion": "3",
"FileVersion": 3
},
......
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_PTO_consum [kWh],E_aux_CONSTANTAUX [kWh],E_aux_PTO_transm [kWh],E_aux_sum [kWh],E_air [kWh],E_roll [kWh],E_grad [kWh],E_inertia [kWh],E_brake [kWh],E_gbx_loss [kWh],E_axl_loss [kWh],E_angle_loss [kWh],E_ret_loss [kWh],E_tc_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,Class4_RigidTruck_ENG_PTO,PTO_Collector.vdri,Success,11500.0000,7100.0000,1104.6000,0.8003,2.6083,-1.2842,6463.2975,2477.9974,6463.2975,2477.9974,6463.2975,2477.9974,6463.2975,2477.9974,6463.2975,2477.9974,297836.2270,41948.7644,7830.4718,1102.8834,3.2488,1.6730,0.0000,0.0000,19.6764,-18.0379,27.3844,3.8377,1.0746,0.3070,2.3028,0.0111,0.2319,-0.0649,0.0420,0.5133,0.3526,0.0582,0.0000,0.0121,0.0000,4.7190,-0.3328,7.4714,-0.0049,0.5244,-0.5821,13.5870,13.0435,0.0000,71.5191
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_CONSTANTAUX [kWh],E_aux_PTO_transm [kWh],E_aux_PTO_consum [kWh],E_aux_sum [kWh],E_air [kWh],E_roll [kWh],E_grad [kWh],E_inertia [kWh],E_brake [kWh],E_gbx_loss [kWh],E_axl_loss [kWh],E_angle_loss [kWh],E_ret_loss [kWh],E_tc_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,Class4_RigidTruck_ENG_PTO,PTO_Collector.vdri,Success,11500.0000,7100.0000,1204.6015,0.8003,2.3917,-1.2842,6071.2739,2538.4281,6071.2739,2538.4281,6071.2739,2538.4281,6071.2739,2538.4281,6071.2739,2538.4281,305099.5365,42971.7657,8021.4329,1129.7793,2.9791,1.4832,0.0000,0.0000,19.2070,-18.7557,26.1092,1.1719,0.3348,3.4161,2.7418,0.0111,0.2319,-0.0649,-0.0702,0.4963,0.1601,0.0589,0.0000,0.0121,0.0000,4.4784,-0.3685,7.5566,-0.0045,0.5244,-0.5821,12.4585,11.9601,0.0000,73.8834
t,Engine speed,PTO Torque
# [s],[rpm],[Nm]
0,900,0
1,1200,47.87750415802
2,1200,67.919510269165
3,1200,103.593413925171
4,1200,142.536326217651
5,1200,166.111408996582
6,1200,171.062832641602
7,1200,165.079675292969
8,1200,158.691968536377
9,1200,153.263214111328
10,1200,144.4956199646
11,1200,135.513938903809
12,1200,131.448246882512
13,1200,128.489419555664
14,1200,131.62604195731
15,1200,153.772752380371
16,1200,175.96669998169
17,1200,183.548304507607
18,1200,183.855127716065
19,1200,177.9237159729
20,1200,167.708172607422
21,1200,154.899810791016
22,1200,141.347167205811
23,1200,134.180838775635
24,1200,126.824409103394
25,1200,121.674592590332
26,1200,80.8518249511718
27,900,0
\ No newline at end of file
0,600,0
1,600,0
2,900,0
3,1200,47.87750416
4,1200,67.91951027
5,1200,103.5934139
6,1200,142.5363262
7,1200,166.111409
8,1200,171.0628326
9,1200,165.0796753
10,1200,158.6919685
11,1200,153.2632141
12,1200,144.49562
13,1200,135.5139389
14,1200,131.4482469
15,1200,128.4894196
16,1200,131.626042
17,1200,153.7727524
18,1200,175.9667
19,1200,183.5483045
20,1200,183.8551277
21,1200,177.923716
22,1200,167.7081726
23,1200,154.8998108
24,1200,141.3471672
25,1200,134.1808388
26,1200,126.8244091
27,1200,121.6745926
28,1200,80.85182495
29,900,0
30,600,0
31,600,0
......@@ -264,6 +264,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
aux.AddConstant(Constants.Auxiliaries.IDs.PTOTransmission,
DeclarationData.PTOTransmission.Lookup(data.PTO.TransmissionType));
container.ModalData.AddAuxiliary(Constants.Auxiliaries.IDs.PTOTransmission);
aux.Add(Constants.Auxiliaries.IDs.PTOConsumer,
n => container.CycleData.LeftSample.PTOActive ? null : data.PTO.LossMap.GetTorqueLoss(n) * n);
container.ModalData.AddAuxiliary(Constants.Auxiliaries.IDs.PTOConsumer);
}
return aux;
......
......@@ -30,12 +30,11 @@
*/
using TUGraz.VectoCore.Models.Simulation.DataBus;
using TUGraz.VectoCore.Models.SimulationComponent.Impl;
namespace TUGraz.VectoCore.Models.SimulationComponent
{
/// <summary>
/// Defines interfaces for a gearbox.
/// </summary>
public interface IGearbox : IPowerTrainComponent, IAuxOutProvider, IGearboxInfo {}
public interface IGearbox : IPowerTrainComponent, IGearboxInfo {}
}
\ No newline at end of file
......@@ -72,10 +72,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
var torqueLossResult = effectiveLossMap.GetTorqueLoss(outAngularVelocity, outTorque);
CurrentState.TorqueLossResult = torqueLossResult;
//todo mk-2016-08-22: aux loss from out-direction or in-direction of the gearbox?
var auxTorqueLoss = Auxiliary == null ? 0.SI<NewtonMeter>() : Auxiliary.Initialize(outTorque, outAngularVelocity);
inTorque = outTorque / effectiveRatio + torqueLossResult.Value + auxTorqueLoss;
inTorque = outTorque / effectiveRatio + torqueLossResult.Value;
}
if (Disengaged) {
return NextComponent.Initialize(0.SI<NewtonMeter>(), null);
......@@ -104,10 +101,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
? ModelData.Gears[gear].LossMap.GetTorqueLoss(outAngularVelocity, outTorque)
: ModelData.Gears[Gear].TorqueConverterGearLossMap.GetTorqueLoss(outAngularVelocity, outTorque);
//todo mk-2016-08-22: aux loss from out-direction or in-direction of the gearbox?
var auxTorqueLoss = Auxiliary == null ? 0.SI<NewtonMeter>() : Auxiliary.Initialize(outTorque, outAngularVelocity);
var inTorque = outTorque / effectiveRatio + torqueLossResult.Value + auxTorqueLoss;
var inTorque = outTorque / effectiveRatio + torqueLossResult.Value;
IResponse response;
if (torqueConverterLocked) {
......@@ -189,11 +183,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
var inTorque = outTorque / effectiveRatio + inTorqueLossResult.Value;
if (Auxiliary != null) {
//todo mk-2016-08-22: aux loss from out-direction or in-direction of the gearbox?
inTorque += Auxiliary.TorqueDemand(absTime, dt, outTorque, inTorque, outAngularVelocity, dryRun);
}
if (!TorqueConverterLocked && !ModelData.Gears[Gear].HasTorqueConverter) {
throw new VectoSimulationException("Torque converter requested by strategy for gear without torque converter!");
}
......
......@@ -20,8 +20,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
/// </summary>
[Required, ValidateObject] internal readonly GearboxData ModelData;
protected IAuxPort Auxiliary;
protected AbstractGearbox(IVehicleContainer container, GearboxData gearboxModelData) : base(container)
{
ModelData = gearboxModelData;
......@@ -78,15 +76,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
#endregion
#region IAuxPortProvider
public void Connect(IAuxPort aux)
{
Auxiliary = aux;
}
#endregion
public abstract bool ClutchClosed(Second absTime);
}
......
......@@ -90,11 +90,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
inAngularVelocity;
inTorque += torqueLossInertia;
if (Auxiliary != null) {
//todo mk-2016-08-17: aux loss from out-direction or in-direction of the gearbox?
inTorque += Auxiliary.Initialize(outTorque, outAngularVelocity);
}
} else {
inTorque = 0.SI<NewtonMeter>();
inAngularVelocity = DataBus.EngineIdleSpeed;
......@@ -103,7 +98,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
PreviousState.InertiaTorqueLossOut = 0.SI<NewtonMeter>();
PreviousState.Gear = Gear;
var response = NextComponent.Initialize(inTorque, inAngularVelocity);
response.GearboxPowerRequest = inTorque * inAngularVelocity;
return response;
......@@ -138,7 +132,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
throw new VectoSimulationException("Requested Gear {0} from driving cycle is not available", Gear);
}
var retVal = Gear == 0
? RequestDisengaged(absTime, dt, outTorque, outAngularVelocity, dryRun)
: RequestEngaged(absTime, dt, outTorque, outAngularVelocity, dryRun);
......@@ -175,12 +168,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
CurrentState.InertiaTorqueLossOut = 0.SI<NewtonMeter>();
}
// todo mk 2016-08-23: add pto auxiliaries!!
//todo mk-2016-08-17: aux loss from out-direction or in-direction of the gearbox?
if (Auxiliary != null) {
inTorque += Auxiliary.Initialize(outTorque, outAngularVelocity);
}
if (dryRun) {
if (TorqueConverter != null && TorqueConverterActive != null && TorqueConverterActive.Value) {
return RequestTorqueConverter(absTime, dt, inTorque, inAngularVelocity, true);
......@@ -279,7 +266,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
engineResponse = (ResponseDryRun)NextComponent.Request(absTime, dt, dryOperatingPoint.InTorque,
dryOperatingPoint.InAngularVelocity, true);
var delta = (outTorque - dryOperatingPoint.OutTorque) *
(PreviousState.OutAngularVelocity + dryOperatingPoint.OutAngularVelocity) / 2.0;
//deltaTorqueConverter.Value() * (deltaEngine.IsEqual(0) ? 1 : deltaEngine.Value());
......@@ -432,7 +418,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
container[ModalResultField.TC_angularSpeedIn] = CurrentState.InAngularVelocity;
container[ModalResultField.TC_angularSpeedOut] = CurrentState.OutAngularVelocity;
container[ModalResultField.P_TC_out] = CurrentState.InTorque * avgInAngularSpeed;
container[ModalResultField.P_TC_loss] = 0.SI<Watt>();
} else {
......@@ -445,12 +430,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
container[ModalResultField.TC_angularSpeedOut] = CurrentState.TorqueConverterOperatingPoint.OutAngularVelocity;
var avgOutVelocity = ((PreviousState.TorqueConverterOperatingPoint != null
? PreviousState.TorqueConverterOperatingPoint.OutAngularVelocity
: PreviousState.InAngularVelocity) +
? PreviousState.TorqueConverterOperatingPoint.OutAngularVelocity
: PreviousState.InAngularVelocity) +
CurrentState.TorqueConverterOperatingPoint.OutAngularVelocity) / 2.0;
var avgInVelocity = ((PreviousState.TorqueConverterOperatingPoint != null
? PreviousState.TorqueConverterOperatingPoint.InAngularVelocity
: PreviousState.InAngularVelocity) +
? PreviousState.TorqueConverterOperatingPoint.InAngularVelocity
: PreviousState.InAngularVelocity) +
CurrentState.TorqueConverterOperatingPoint.InAngularVelocity) / 2.0;
container[ModalResultField.P_TC_out] = CurrentState.OutTorque * avgOutVelocity;
container[ModalResultField.P_TC_loss] = CurrentState.InTorque * avgInVelocity -
......
......@@ -108,14 +108,16 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
return 0.SI<NewtonMeter>();
}
protected virtual Watt ComputePowerDemand(PerSecond engineSpeed)
protected Watt ComputePowerDemand(PerSecond engineSpeed)
{
CurrentState.PowerDemands = new Dictionary<string, Watt>(_auxiliaries.Count);
CurrentState.TotalPowerDemand = 0.SI<Watt>();
foreach (var item in _auxiliaries) {
var value = item.Value(engineSpeed);
CurrentState.PowerDemands[item.Key] = value;
CurrentState.TotalPowerDemand += value;
if (value != null) {
CurrentState.PowerDemands[item.Key] = value;
CurrentState.TotalPowerDemand += value;
}
}
return CurrentState.TotalPowerDemand;
}
......
......@@ -95,11 +95,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
var gearboxTorqueLoss = ModelData.Gears[Gear].LossMap.GetTorqueLoss(outAngularVelocity, outTorque);
CurrentState.TorqueLossResult = gearboxTorqueLoss;
var auxTorqueLoss = Auxiliary == null ? 0.SI<NewtonMeter>() : Auxiliary.Initialize(null, inAngularVelocity);
var inTorque = outTorque / ModelData.Gears[Gear].Ratio
+ gearboxTorqueLoss.Value
+ auxTorqueLoss;
+ gearboxTorqueLoss.Value;
PreviousState.SetState(inTorque, inAngularVelocity, outTorque, outAngularVelocity);
PreviousState.InertiaTorqueLossOut = 0.SI<NewtonMeter>();
......@@ -126,10 +123,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
var inertiaPowerLoss = Formulas.InertiaPower(inAngularVelocity, alpha, ModelData.Inertia,
Constants.SimulationSettings.TargetTimeInterval);
inTorque += inertiaPowerLoss / inAngularVelocity;
//todo mk-2016-08-17: aux loss from out-direction or in-direction of the gearbox?
if (Auxiliary != null)
inTorque += Auxiliary.Initialize(null, inAngularVelocity);
}
var response = NextComponent.Initialize(inTorque, inAngularVelocity);
......@@ -305,10 +298,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
var inAngularVelocity = outAngularVelocity * ModelData.Gears[Gear].Ratio;
if (Auxiliary != null) {
inTorque += Auxiliary.TorqueDemand(absTime, dt, outTorque, inTorque, inAngularVelocity, dryRun);
}
if (dryRun) {
CurrentState.InertiaTorqueLossOut = !inAngularVelocity.IsEqual(0)
? Formulas.InertiaPower(outAngularVelocity, PreviousState.OutAngularVelocity, ModelData.Inertia, dt) /
......
using TUGraz.VectoCore.Models.Simulation;
namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
{
public class GearboxAuxiliary : EngineAuxiliary
{
public GearboxAuxiliary(IVehicleContainer container) : base(container) {}
}
}
\ No newline at end of file
Technology, Power Loss
None, 0
"only the drive shaft of the PTO - shift claw, synchronizer, Schieberad", 50
only the drive shaft of the PTO - multi-disc clutch, 1000
"only the drive shaft of the PTO - multi-disc clutch, oil pump", 2000
"drive shaft and/or up to 2 gear wheels - shift claw, synchronizer, Schieberad", 300
drive shaft and/or up to 2 gear wheels - multi-disc clutch, 1500
"drive shaft and/or up to 2 gear wheels - multi-disc clutch, oil pump", 3000
"drive shaft and/or more than 2 gear wheels - shift claw, synchronizer, Schieberad", 600
drive shaft and/or more than 2 gear wheels - multi-disc clutch, 2000
"drive shaft and/or more than 2 gear wheels - multi-disc clutch, oil pump", 4000
\ No newline at end of file
None,0
"only the drive shaft of the PTO - shift claw, synchronizer, sliding gearwheel",50
only the drive shaft of the PTO - multi-disc clutch,1000
"only the drive shaft of the PTO - multi-disc clutch, oil pump",2000
"drive shaft and/or up to 2 gear wheels - shift claw, synchronizer, sliding gearwheel",300
drive shaft and/or up to 2 gear wheels - multi-disc clutch,1500
"drive shaft and/or up to 2 gear wheels - multi-disc clutch, oil pump",3000
"drive shaft and/or more than 2 gear wheels - shift claw, synchronizer, sliding gearwheel",600
drive shaft and/or more than 2 gear wheels - multi-disc clutch,2000
"drive shaft and/or more than 2 gear wheels - multi-disc clutch, oil pump",4000
......@@ -118,13 +118,6 @@ namespace TUGraz.VectoCore.Utils
public static IPowerTrainComponent AddComponent(this IPowerTrainComponent prev, IGearbox gearbox, RetarderData data,
PTOData pto, IVehicleContainer container)
{
if (pto != null) {
var aux = new GearboxAuxiliary(container);
aux.Add(Constants.Auxiliaries.IDs.PTOConsumer, n => pto.LossMap.GetTorqueLoss(n) * n);
container.ModalData.AddAuxiliary(Constants.Auxiliaries.IDs.PTOConsumer);
gearbox.Connect(aux);
}
switch (data.Type) {
case RetarderType.TransmissionOutputRetarder:
return prev.AddComponent(new Retarder(container, data.LossMap, data.Ratio)).AddComponent(gearbox);
......
......@@ -147,7 +147,6 @@
<Compile Include="Models\SimulationComponent\Data\PTOData.cs" />
<Compile Include="Models\SimulationComponent\ILossMap.cs" />
<Compile Include="Models\SimulationComponent\Data\PTOLossMap.cs" />
<Compile Include="Models\SimulationComponent\Impl\GearboxAuxiliary.cs" />
<Compile Include="Models\SimulationComponent\Impl\AbstractGearbox.cs" />
<Compile Include="Models\SimulationComponent\Impl\ATGearbox.cs" />
<Compile Include="Models\SimulationComponent\Impl\ATShiftStrategy.cs" />
......
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