diff --git a/VECTO/GUI/MainForm.vb b/VECTO/GUI/MainForm.vb index cdba29c6ed7056d10337b7cef307c8c482d0fb6f..22c645fda730b6966a9760508703c81b284dc6df 100644 --- a/VECTO/GUI/MainForm.vb +++ b/VECTO/GUI/MainForm.vb @@ -262,7 +262,7 @@ Imports TUGraz.VectoCore.Utils DeclOnOff() End Sub - ' ReSharper disable once UnusedMember.Global -- used via Logging Framework! + ' ReSharper disable once UnusedMember.Global -- used via Logging Framework! Public Shared Sub LogMethod(level As String, message As String) If VectoWorkerV3.IsBusy AndAlso Not VectoWorkerV3.CancellationPending Then If level = "Warn" Then diff --git a/VectoCore/VectoCore/InputData/Reader/DrivingCycleDataReader.cs b/VectoCore/VectoCore/InputData/Reader/DrivingCycleDataReader.cs index 3add8aec127aa28c3dc5424e78928901c1a7ed9c..ffda4dffa6c1799773e3caa0ce237d27942a621e 100644 --- a/VectoCore/VectoCore/InputData/Reader/DrivingCycleDataReader.cs +++ b/VectoCore/VectoCore/InputData/Reader/DrivingCycleDataReader.cs @@ -723,22 +723,16 @@ namespace TUGraz.VectoCore.InputData.Reader ValidateHeader(table.Columns); var entries = table.Rows.Cast<DataRow>().Select(row => { - var wheelSpeed = - ((row.ParseDouble(Fields.WheelSpeedLeft) + row.ParseDouble(Fields.WheelSpeedRight)) / 2).RPMtoRad(); var tqLeft = row.ParseDouble(Fields.WheelTorqueLeft).SI<NewtonMeter>(); var tqRight = row.ParseDouble(Fields.WheelTorqueRight).SI<NewtonMeter>(); var speedLeft = row.ParseDouble(Fields.WheelSpeedLeft).RPMtoRad(); var speedRight = row.ParseDouble(Fields.WheelSpeedRight).RPMtoRad(); - var wheelPower = tqLeft * speedLeft + tqRight * speedRight; return new DrivingCycleData.DrivingCycleEntry { Time = row.ParseDouble(Fields.Time).SI<Second>(), VehicleTargetSpeed = row.ParseDouble(Fields.VehicleSpeed).KMPHtoMeterPerSecond(), AdditionalAuxPowerDemand = row.ParseDoubleOrGetDefault(Fields.AdditionalAuxPowerDemand).SI(Unit.SI.Kilo.Watt).Cast<Watt>(), EngineSpeed = row.ParseDouble(Fields.EngineSpeedSuffix).RPMtoRad(), - WheelAngularVelocity = wheelSpeed, - Torque = wheelSpeed.IsEqual(0, 1e-3) ? 0.SI<NewtonMeter>() : wheelPower / wheelSpeed, - PWheel = wheelPower, FanSpeed = row.ParseDouble(Fields.FanSpeed).RPMtoRad(), Gear = (uint)row.ParseDoubleOrGetDefault(Fields.Gear), Fuelconsumption = row.ParseDoubleOrGetDefault(Fields.FuelConsumption).SI(Unit.SI.Gramm.Per.Hour).Cast<KilogramPerSecond>(), diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/VTPCycle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/VTPCycle.cs index 22e133cccd8ef00da4fdba88a164c0e7850ef404..48cb3ae0077c87fcc812bec609fd288681ad051d 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/VTPCycle.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/VTPCycle.cs @@ -53,10 +53,21 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl public override IResponse Initialize() { + PrepareCycleData(); SelectStartGear(); return base.Initialize(); } + private void PrepareCycleData() + { + foreach (var entry in Data.Entries) { + var wheelSpeed = (entry.WheelSpeedLeft + entry.WheelSpeedRight) / 2; + var wheelPower = entry.TorqueWheelLeft * entry.WheelSpeedLeft + entry.TorqueWheelRight * entry.WheelSpeedRight; + entry.PWheel = wheelPower; + entry.WheelAngularVelocity = wheelSpeed; + entry.Torque = wheelSpeed.IsEqual(0, 1e-3) ? 0.SI<NewtonMeter>() : wheelPower / wheelSpeed; + } + } private void SelectStartGear() { var transmissionRatio = RunData.AxleGearData.AxleGear.Ratio *