diff --git a/VectoCore/VectoCore/Models/Simulation/Data/ModalResult.cs b/VectoCore/VectoCore/Models/Simulation/Data/ModalResult.cs index 61d079f9ecf799f502912d33a8a823c85903d31f..71cee71fecd98c1bdf98214add1f103f1ea9894d 100644 --- a/VectoCore/VectoCore/Models/Simulation/Data/ModalResult.cs +++ b/VectoCore/VectoCore/Models/Simulation/Data/ModalResult.cs @@ -235,6 +235,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Data /// </summary> [ModalResultField(typeof(uint), caption: "Gear [-]")] Gear, + [ModalResultField(typeof(SI), caption: "n_gbx_out_avg [1/min]", outputFactor: 60 / (2 * Math.PI))] n_gbx_out_avg, + + [ModalResultField(typeof(SI), caption: "T_gbx_out [Nm]")] T_gbx_out, + /// <summary> /// [kW] Gearbox losses. /// </summary> diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs index e0f62bc4d3e93c5c1d1e0b0176ebbb1fea164014..e0ca9b4d4bcd8eb88b04da03860f6166ee8bfa30 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs @@ -305,6 +305,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl container[ModalResultField.P_gbx_loss] = CurrentState.TransmissionTorqueLoss * avgInAngularSpeed; container[ModalResultField.P_gbx_inertia] = CurrentState.InertiaTorqueLossOut * avgInAngularSpeed; container[ModalResultField.P_gbx_in] = CurrentState.InTorque * avgInAngularSpeed; + + container[ModalResultField.n_gbx_out_avg] = (PreviousState.OutAngularVelocity + + CurrentState.OutAngularVelocity) / 2.0; + container[ModalResultField.T_gbx_out] = CurrentState.OutTorque; } protected override void DoCommitSimulationStep() diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs index 6ea1392754fa7b47a3984885efb7c3c7cb4cd7ad..d89c0c91f55c86fc786ad8c50351c0df85f72c58 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs @@ -313,6 +313,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl container[ModalResultField.P_gbx_loss] = CurrentState.TransmissionTorqueLoss * avgInAngularSpeed; container[ModalResultField.P_gbx_inertia] = CurrentState.InertiaTorqueLossOut * avgInAngularSpeed; container[ModalResultField.P_gbx_in] = CurrentState.InTorque * avgInAngularSpeed; + container[ModalResultField.n_gbx_out_avg] = (PreviousState.OutAngularVelocity + + CurrentState.OutAngularVelocity) / 2.0; + container[ModalResultField.T_gbx_out] = CurrentState.OutTorque; if (ModelData.Type.AutomaticTransmission()) { container[ModalResultField.TC_Locked] = !CurrentState.TorqueConverterActive; diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs index ff961c1bf5aa3513eea8d5283a47ad11d184b79b..17a3ed3d2b8748b3321da9702b9bc9cf345b4805 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs @@ -223,7 +223,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var shiftTimeExceeded = absTime.IsSmaller(_engageTime) && _engageTime.IsSmaller(absTime + dt, Constants.SimulationSettings.LowerBoundTimeInterval); // allow 5% tolerance of shift time - if (shiftTimeExceeded && (_engageTime - absTime) > Constants.SimulationSettings.LowerBoundTimeInterval/2) { + if (shiftTimeExceeded && (_engageTime - absTime) > Constants.SimulationSettings.LowerBoundTimeInterval / 2) { return new ResponseFailTimeInterval { Source = this, DeltaT = _engageTime - absTime, @@ -374,6 +374,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl container[ModalResultField.P_gbx_loss] = CurrentState.TransmissionTorqueLoss * avgInAngularSpeed; container[ModalResultField.P_gbx_inertia] = CurrentState.InertiaTorqueLossOut * avgInAngularSpeed; container[ModalResultField.P_gbx_in] = CurrentState.InTorque * avgInAngularSpeed; + container[ModalResultField.n_gbx_out_avg] = (PreviousState.OutAngularVelocity + + CurrentState.OutAngularVelocity) / 2.0; + container[ModalResultField.T_gbx_out] = CurrentState.OutTorque; } protected override void DoCommitSimulationStep()