From 5bf4bb66311f924d172b0b6638c74a48a8fe42c8 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Fri, 4 May 2018 14:10:25 +0200 Subject: [PATCH] VTP: move computation of PWheel T_wheel etc fro data parser to cycle --- VECTO/GUI/MainForm.vb | 2 +- .../InputData/Reader/DrivingCycleDataReader.cs | 6 ------ .../Models/SimulationComponent/Impl/VTPCycle.cs | 11 +++++++++++ 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/VECTO/GUI/MainForm.vb b/VECTO/GUI/MainForm.vb index cdba29c6ed..22c645fda7 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 3add8aec12..ffda4dffa6 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 22e133cccd..48cb3ae007 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 * -- GitLab