diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs index 783e7af47f442eb99c4e272d1b575891b742f3a4..a4820e35cdfdad2b986d07ef7169463519855c6e 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs @@ -97,7 +97,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter retVal.CurbWeight += mission.BodyCurbWeight + mission.TrailerCurbWeight; retVal.Loading = loading; retVal.DynamicTyreRadius = - DeclarationData.DynamicTyreRadius(data.Axles[DeclarationData.PoweredAxle()].Wheels); // TODO! + DeclarationData.Wheels.Lookup(data.Axles[DeclarationData.PoweredAxle()].Wheels).DynamicTyreRadius; // TODO! var aerodynamicDragArea = data.AirDragArea + mission.DeltaCdA; diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs index 1fd9e7bbf913cd459c276207f22deedb0533a260..a43efdd0429e4035f8d5c49bc5640cee1f1e766f 100644 --- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs +++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs @@ -89,12 +89,6 @@ namespace TUGraz.VectoCore.Models.Declaration get { return Instance()._electricSystem ?? (Instance()._electricSystem = new ElectricSystem()); } } - public static Meter DynamicTyreRadius(string wheels) - { - var wheelsEntry = Wheels.Lookup(wheels.RemoveWhitespace()); - return wheelsEntry.DynamicTyreRadius * wheelsEntry.CircumferenceFactor / (2 * Math.PI); - } - /// <summary> /// Formula for calculating the payload for a given gross vehicle weight. /// (so called "pc-formula", Whitebook Apr 2016, Part 1, p.187) diff --git a/VectoCore/VectoCore/Models/Declaration/Wheels.cs b/VectoCore/VectoCore/Models/Declaration/Wheels.cs index d6d82850b5035c42deda1b6164bd309e271f655b..8ca627c872d560fe45c8ee5f69e86205cd121622 100644 --- a/VectoCore/VectoCore/Models/Declaration/Wheels.cs +++ b/VectoCore/VectoCore/Models/Declaration/Wheels.cs @@ -29,6 +29,7 @@ * Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology */ +using System; using System.Collections.Generic; using System.Data; using System.Linq; @@ -62,7 +63,7 @@ namespace TUGraz.VectoCore.Models.Declaration .Select(row => new Entry { WheelType = row.Field<string>(0).RemoveWhitespace(), Inertia = row.ParseDouble("inertia").SI<KilogramSquareMeter>(), - DynamicTyreRadius = row.ParseDouble("d").SI().Milli.Meter.Cast<Meter>(), + WheelsDiameter = row.ParseDouble("d").SI().Milli.Meter.Cast<Meter>(), CircumferenceFactor = row.ParseDouble("f") }).ToDictionary(e => e.WheelType); _dimensions = table.Rows.Cast<DataRow>().Select(row => row.Field<string>(0)).ToArray(); @@ -72,8 +73,13 @@ namespace TUGraz.VectoCore.Models.Declaration { public string WheelType; public KilogramSquareMeter Inertia; - public Meter DynamicTyreRadius; + public Meter WheelsDiameter; public double CircumferenceFactor; + + public Meter DynamicTyreRadius + { + get { return WheelsDiameter * CircumferenceFactor / (2 * Math.PI); } + } } public string[] GetWheelsDimensions() diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs index 8b6df9fe57fab89b689591f77d6d5f32ee464939..0bdaec17b237870d51bebf13c015e85d6fa15f21 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs @@ -60,16 +60,17 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration MissionType.Construction, }; - [TestCase("285/60 R22.5", 10.6, 0.914, 3.03), - TestCase("285/70 R19.5", 7.9, 0.895, 3.05), - TestCase("395/85 R20", 27.9, 1.18, 3.05)] - public void WheelDataTest(string wheels, double inertia, double dynamicRadius, double circumferenceFactor) + [TestCase("285/60 R22.5", 10.6, 0.914, 3.03, 0.440766), + TestCase("285/70 R19.5", 7.9, 0.895, 3.05, 0.434453), + TestCase("395/85 R20", 27.9, 1.18, 3.05, 0.572798)] + public void WheelDataTest(string wheels, double inertia, double wheelsDiameter, double circumferenceFactor, double expectedDynamicRadius) { var tmp = DeclarationData.Wheels.Lookup(wheels); AssertHelper.AreRelativeEqual(inertia, tmp.Inertia); - AssertHelper.AreRelativeEqual(dynamicRadius, tmp.DynamicTyreRadius); + AssertHelper.AreRelativeEqual(wheelsDiameter, tmp.WheelsDiameter); AssertHelper.AreRelativeEqual(circumferenceFactor, tmp.CircumferenceFactor); + Assert.AreEqual(expectedDynamicRadius, tmp.DynamicTyreRadius.Value(), 1e-6); } [