diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Clutch.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Clutch.cs index 065e7340e27a9dd98d5b54544005a637d3e2c7f4..c64766fb7cb44552154ce9eea1738ec8f5f59f7b 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Clutch.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Clutch.cs @@ -228,14 +228,15 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var engTorque = 0.SI<NewtonMeter>(); /* gear used for clutch slipping: saturation to avoid case where Gear==0 (where GetGearData crash) and Gear>2 (allowslipping does not allow slipping at speed higher than 2) */ - var slipGear = Math.Min(Math.Max(DataBus.GearboxInfo?.Gear?.Gear ?? 1, 1), 2); - var ratioGB = DataBus.GearboxInfo?.GetGearData(slipGear)?.Ratio ?? 1.0; - var ratioAxl = DataBus.AxlegearInfo?.Ratio ?? 1.0; - var axlegearlossP = DataBus.AxlegearInfo?.AxlegearLoss() ?? 0.0.SI<Watt>(); - var gearboxlossP = DataBus.GearboxInfo?.GearboxLoss() ?? 0.0.SI<Watt>(); - - if (DataBus.DrivingCycleInfo.RoadGradient != null) + + if ((DataBus.DrivingCycleInfo.RoadGradient != null) && (DataBus.WheelsInfo != null)) { + var slipGear = Math.Min(Math.Max(DataBus.GearboxInfo?.Gear?.Gear ?? 1, 1), 2); + var ratioGB = DataBus.GearboxInfo?.GetGearData(slipGear)?.Ratio ?? 1.0; + var ratioAxl = DataBus.AxlegearInfo?.Ratio ?? 1.0; + var axlegearlossP = DataBus.AxlegearInfo?.AxlegearLoss() ?? 0.0.SI<Watt>(); + var gearboxlossP = DataBus.GearboxInfo?.GearboxLoss() ?? 0.0.SI<Watt>(); + var fWheel = DataBus.VehicleInfo.RollingResistance(DataBus.DrivingCycleInfo.RoadGradient) + DataBus.VehicleInfo.SlopeResistance(DataBus.DrivingCycleInfo.RoadGradient) + DataBus.VehicleInfo.TotalMass*acc;