diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs index e15e1c13dc1758a94a8d6ce4711996bbd8708ce7..49d29662c04f3970fbc6975d9bd1ffa04e82fcaf 100644 --- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs +++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs @@ -97,7 +97,7 @@ namespace TUGraz.VectoCore.Models.Declaration try { var rimsEntry = Rims.Lookup(rims); - var correction = wheelsEntry.SizeClass != "a" ? rimsEntry.F_b : rimsEntry.F_a; + var correction = rimsEntry.F_a; return wheelsEntry.DynamicTyreRadius * correction / (2 * Math.PI); } catch (KeyNotFoundException) { diff --git a/VectoCore/VectoCore/Models/Declaration/Wheels.cs b/VectoCore/VectoCore/Models/Declaration/Wheels.cs index dbc2aa5606bc5183a437c58423cb7cb62955cf00..1d7f842265200c74fcddcdd46c9e15e7bfa50107 100644 --- a/VectoCore/VectoCore/Models/Declaration/Wheels.cs +++ b/VectoCore/VectoCore/Models/Declaration/Wheels.cs @@ -52,12 +52,12 @@ namespace TUGraz.VectoCore.Models.Declaration protected sealed override void ParseData(DataTable table) { - Data = (from DataRow row in table.Rows - select new WheelsEntry { + Data = table.Rows.Cast<DataRow>() + .Select(row => new WheelsEntry { WheelType = row.Field<string>(0).RemoveWhitespace(), - Inertia = row.ParseDouble(1).SI<KilogramSquareMeter>(), - DynamicTyreRadius = row.ParseDouble(2).SI().Milli.Meter.Cast<Meter>(), - SizeClass = row.Field<string>(3) + Inertia = row.ParseDouble("inertia").SI<KilogramSquareMeter>(), + DynamicTyreRadius = row.ParseDouble("d").SI().Milli.Meter.Cast<Meter>(), + CircumferenceFactor = row.ParseDouble("f") }).ToDictionary(e => e.WheelType); } @@ -66,7 +66,7 @@ namespace TUGraz.VectoCore.Models.Declaration public string WheelType; public KilogramSquareMeter Inertia; public Meter DynamicTyreRadius; - public string SizeClass; + public double CircumferenceFactor; } } } \ No newline at end of file diff --git a/VectoCore/VectoCore/Resources/Declaration/Wheels.csv b/VectoCore/VectoCore/Resources/Declaration/Wheels.csv index 782e9ba6938fbc3f94f01f1b48bdd568536ed417..723845166b9f566c406e9a25bdcd5cf0c00c1f22 100644 --- a/VectoCore/VectoCore/Resources/Declaration/Wheels.csv +++ b/VectoCore/VectoCore/Resources/Declaration/Wheels.csv @@ -1,41 +1,58 @@ -Wheel,Inertia,d,Size-Class (0/1) -9 R22.5,8.9,970,b -9.00 R20,10.5,1018,b -9.5 R17.5,4.9,842,b -10 R17.5,5,858,b -10 R22.5,11,1020,b -10.00 R20,13.1,1025,b -11 R22.5,14.4,1050,b -11.00 R20,14.6,1082,b -12 R22.5,16.8,1084,b -12.00 R20,19.5,1122,b -12.00 R24,27.7,1226,b -12.5 R20,12.7,1120,b -13 R22.5,20,1124,b -14.00 R20,30.8,1238,b -14.5 R20,14.8,1092,b -16.00 R20,47.5,1343,b -215/75 R17.5,3.9,767,b -225/70 R17.5,4,759.5,b -225/75 R17.5,4,782,b -235/75 R17.5,4.5,797,b -245/70 R17.5,5.2,787.5,b -245/70 R19.5,6,838.3,b -255/70 R22.5,9.5,928.5,b -265/70 R19.5,6.5,866.3,b -275/70 R22.5,11.9,956.5,b -275/80 R22.5,12.8,1011.5,b -285/70 R19.5,7.9,894.3,b -295/55 R22.5,10.2,896,a -295/60 R22.5,10.8,925.5,a -295/80 R22.5,15.5,1043.5,b -305/70 R19.5,9.2,922.3,b -305/70 R22.5,13.9,998.5,b -315/45 R22.5,9.9,855,a -315/60 R22.5,12.8,949.5,a -315/70 R22.5,14.9,1012.5,b -315/80 R22.5,17.6,1075.5,b -365/80 R20,17.2,1092,b -365/85 R20,22.5,1128.5,b -385/55 R22.5,15.9,995,a -385/65 R22.5,19.2,1072,a +Wheel,cross-sectional width [mm],tire aspect ratio [%],rim diameter [inch],d [mm],Inertia,F [-] +9.5 R17.5,241.3,0.95,17.5,842,4.9,3.05 +9.00 R20,228.6,0.95,20,1018,10.5,3.05 +9 R22.5,228.6,0.95,22.5,970,8.9,3.05 +10 R17.5,254,0.95,17.5,858,5,3.05 +10 R22.5,254,0.95,22.5,1020,11,3.05 +10.00 R20,254,0.95,20,1025,13.1,3.05 +11 R22.5,279.4,0.95,22.5,1050,14.4,3.05 +11.00 R20,279.4,0.95,20,1082,14.6,3.05 +11.00 R22,279.4,0.95,22,1089.66,16,3.05 +12 R22.5,304.8,0.95,22.5,1084,16.85,3.05 +12.00 R20,304.8,0.95,20,1122,19.5,3.05 +12.00 R24,304.8,0.95,24,1226,27.7,3.05 +12.5 R20,317.5,0.95,20,1120,12.7,3.05 +13 R22.5,330.2,0.95,22.5,1124,20,3.05 +14.00 R20,355.6,0.95,20,1238,30.8,3.05 +14.5 R20,368.3,0.95,20,1092,14.8,3.05 +16.00 R20,406.4,0.95,20,1343,47.5,3.05 +205/75 R17.5,205,0.75,17.5,752,3.5,3.05 +215/75 R17.5,215,0.75,17.5,767,3.9,3.05 +225/70 R17.5,225,0.7,17.5,759.5,4,3.05 +225/75 R17.5,225,0.75,17.5,782,4,3.05 +235/75 R17.5,235,0.75,17.5,797,4.5,3.05 +245/70 R17.5,245,0.7,17.5,787.5,5.2,3.05 +245/70 R19.5,245,0.7,19.5,838.3,6,3.05 +255/70 R22.5,255,0.7,22.5,928.5,9.5,3.05 +265/70 R17.5,265,0.7,17.5,817,5.6,3.05 +265/70 R19.5,265,0.7,19.5,866.3,6.5,3.05 +275/70 R22.5,275,0.7,22.5,956.5,11.9,3.05 +275/80 R22.5,275,0.8,22.5,1011.5,12.8,3.05 +285/60 R22.5,285,0.6,22.5,913.5,10.6,3.03 +285/70 R19.5,285,0.7,19.5,894.3,7.9,3.05 +295/55 R22.5,295,0.55,22.5,896,10.2,3.03 +295/60 R22.5,295,0.6,22.5,925.5,10.8,3.03 +295/80 R22.5,295,0.8,22.5,1043.5,15.5,3.05 +305/60 R22.5,305,0.6,22.5,922.3,11.4,3.03 +305/70 R19.5,305,0.7,19.5,998.5,9.2,3.05 +305/70 R22.5,305,0.7,22.5,998.5,13.9,3.05 +305/75 R24.5,305,0.75,24.5,1079.8,21.2,3.05 +315/45 R22.5,315,0.45,22.5,855,9.9,3.03 +315/60 R22.5,315,0.6,22.5,949.5,12.8,3.03 +315/70 R22.5,315,0.7,22.5,1012.5,14.9,3.05 +315/80 R22.5,315,0.8,22.5,1075.5,17.6,3.05 +325/95 R24,325,0.95,24,1227.1,27.6,3.05 +335/80 R20,335,0.8,20,1044,13.5,3.05 +355/50 R22.5,355,0.5,22.5,926.5,12.2,3.03 +365/70 R22.5,365,0.7,22.5,1082.5,18.6,3.05 +365/80 R20,365,0.8,20,1092,17.2,3.05 +365/85 R20,365,0.85,20,1128.5,22.5,3.05 +375/45 R22.5,375,0.45,22.5,909,11.2,3.03 +375/50 R22.5,375,0.5,22.5,946.5,13,3.03 +375/90 R22.5,375,0.9,22.5,1246.5,33.8,3.05 +385/55 R22.5,385,0.55,22.5,995,15.9,3.03 +385/65 R22.5,385,0.65,22.5,1072,19.2,3.03 +395/85 R20,395,0.85,20,1179.5,27.9,3.05 +425/65 R22.5,425,0.65,22.5,1124,22.5,3.03 +495/45 R22.5,495,0.45,22.5,1017,20.7,3.03 +525/65 R20.5,525,0.65,20.5,1203.2,35,3.03 diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs index d270790a3ba4458c7d273fd620fcb2ae98831e87..c0fc8ecd3c58d7157fe22b47213047fbfef32769 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs @@ -54,14 +54,15 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration public const double Tolerance = 0.0001; public readonly MissionType[] Missions = EnumHelper.GetValues<MissionType>().ToArray(); - [TestCase("285/70 R19.5", 7.9, 0.8943, "b")] - public void WheelDataTest(string wheels, double intertia, double dynamicRadius, string sizeClass) + [TestCase("285/70 R19.5", 7.9, 0.8943, 3.03)] + public void WheelDataTest(string wheels, double inertia, double dynamicRadius, string sizeClass, + double circumferenceFactor) { var tmp = DeclarationData.Wheels.Lookup(wheels); - Assert.AreEqual(intertia, tmp.Inertia.Value(), Tolerance); + Assert.AreEqual(inertia, tmp.Inertia.Value(), Tolerance); Assert.AreEqual(dynamicRadius, tmp.DynamicTyreRadius.Value(), Tolerance); - Assert.AreEqual(sizeClass, tmp.SizeClass); + Assert.AreEqual(circumferenceFactor, tmp.CircumferenceFactor, Tolerance); } [TestCase("15° DC Rims", 3.03, 3.05)]