diff --git a/VectoCommon/VectoCommon/Models/IResponse.cs b/VectoCommon/VectoCommon/Models/IResponse.cs index 4dfac835d59ec0dbaf110abff30609e6a084d7f7..f85876b82b68b9246ad452629c74c40608c270f8 100644 --- a/VectoCommon/VectoCommon/Models/IResponse.cs +++ b/VectoCommon/VectoCommon/Models/IResponse.cs @@ -99,6 +99,10 @@ namespace TUGraz.VectoCommon.Models public NewtonMeter InputTorque { get; set; } public GearshiftPosition Gear { get; set; } + + public PerSecond OutputSpeed { get; set; } + + public NewtonMeter OutputTorque { get; set; } } public class TorqueConverterResponse : AbstractPowertrainComponentResponse diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs index 2f012c0b671cf9d28ff15bef7f8383ba6273eeb8..674a8bcdeab3b4d6d27d9c2fa30c92c04cf48477 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs @@ -384,6 +384,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl response.Gearbox.InputSpeed = inAngularVelocity; response.Gearbox.InputTorque = inTorque; + response.Gearbox.OutputSpeed = outAngularVelocity; + response.Gearbox.OutputTorque = outTorque; return response; } @@ -398,7 +400,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl } retVal.Gearbox.InputSpeed = inAngularVelocity; retVal.Gearbox.InputTorque = inTorque; - + retVal.Gearbox.OutputSpeed = outAngularVelocity; + retVal.Gearbox.OutputTorque = outTorque; return retVal; } @@ -437,6 +440,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl PowerRequest = outTorque * avgAngularVelocity, InputTorque = inTorque, // in case ICE is off (hybrid vehicle) the AT gearbox is disengaged - we need some 'reference point' for searching the operating point - use input torque InputSpeed = inAngularVelocity, + OutputTorque = outTorque, + OutputSpeed = outAngularVelocity, }, DeltaDragLoad = outTorque * avgAngularVelocity, DeltaFullLoad = outTorque * avgAngularVelocity, @@ -452,6 +457,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl PowerRequest = outTorque * avgAngularVelocity, InputTorque = inTorque, InputSpeed = inAngularVelocity, + OutputTorque = outTorque, + OutputSpeed = outAngularVelocity, + }, Engine = { TotalTorqueDemand = 0.SI<NewtonMeter>(), //outTorque, @@ -475,6 +483,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl PowerRequest = outTorque * avgAngularVelocity, InputTorque = inTorque, InputSpeed = inAngularVelocity, + OutputTorque = outTorque, + OutputSpeed = outAngularVelocity, + }, Engine = { TotalTorqueDemand = 0.SI<NewtonMeter>(), //outTorque, @@ -523,6 +534,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var retVal = NextComponent.Request(absTime, dt, 0.SI<NewtonMeter>(), inAngularVelocity, false); retVal.Gearbox.InputSpeed = inAngularVelocity; retVal.Gearbox.InputTorque = inTorque; + retVal.Gearbox.OutputTorque = outTorque; + retVal.Gearbox.OutputSpeed = outAngularVelocity; return retVal; } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs index c7f0c4577b560e866daf00ca93b1e5c1d3031ef4..4e80989f7560ab70216d9b2771977b63e7de8e39 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs @@ -185,6 +185,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl PowerRequest = outTorque * outAngularVelocity, InputSpeed = inAngularVelocity, InputTorque = inTorque, + OutputTorque = outTorque, + OutputSpeed = outAngularVelocity, }, DeltaFullLoad = response.Engine.PowerRequest - fullLoad }; @@ -336,7 +338,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl PowerRequest = delta, Gear = new GearshiftPosition(0), InputSpeed = inAngularVelocity, - InputTorque = inTorque + InputTorque = inTorque, + OutputTorque = outTorque, + OutputSpeed = outAngularVelocity, }, DeltaDragLoad = delta, DeltaFullLoad = delta, @@ -415,13 +419,16 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl dryRunResponse.Gearbox.Gear = Gear; dryRunResponse.Gearbox.InputSpeed = inAngularVelocity; dryRunResponse.Gearbox.InputTorque = inTorque; - + dryRunResponse.Gearbox.OutputTorque = outTorque; + dryRunResponse.Gearbox.OutputSpeed = outAngularVelocity; return dryRunResponse; } var response = NextComponent.Request(absTime, dt, inTorque, inAngularVelocity, false); response.Gearbox.InputSpeed = inAngularVelocity; response.Gearbox.InputTorque = inTorque; + response.Gearbox.OutputTorque = outTorque; + response.Gearbox.OutputSpeed = outAngularVelocity; var shiftAllowed = !inAngularVelocity.IsEqual(0) && !DataBus.VehicleInfo.VehicleSpeed.IsEqual(0); diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/HybridController.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/HybridController.cs index c0a1276eaa7f81f76e0d2c324bc9241f8ae6fdbb..8e33042a793979af2db583bbc307d08f582708b0 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/HybridController.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/HybridController.cs @@ -148,6 +148,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl Gearbox = { InputTorque = ovl.GearboxResponse?.InputTorque, InputSpeed = ovl.GearboxResponse?.InputSpeed, + OutputTorque = ovl.GearboxResponse?.OutputTorque, + OutputSpeed = ovl.GearboxResponse?.OutputSpeed, PowerRequest = ovl.GearboxResponse?.PowerRequest, Gear = ovl.GearboxResponse?.Gear }