diff --git a/VectoCore/VectoCore/Resources/Declaration/Body_Trailers_Weights.csv b/VectoCore/VectoCore/Resources/Declaration/Body_Trailers_Weights.csv index 70b949dc429c4c7d07501d0078ea151bb5de9b0a..1fcd5eafa3359216dd9adfbdfce17d54b8c75fe7 100644 --- a/VectoCore/VectoCore/Resources/Declaration/Body_Trailers_Weights.csv +++ b/VectoCore/VectoCore/Resources/Declaration/Body_Trailers_Weights.csv @@ -7,6 +7,6 @@ B4,2100,-,-,--- B5,2200,-,-,"""B6"" changed to ""B5"" as ""old B5"" not applicable anymore" T1,3400,10500,1.1, T2,5400,18000,0.6, -ST1,7500,-,-,relevant for fully loaded is GVM of tractor semitrailer combination = 40000kg +ST1,7500,24000,-,relevant for fully loaded is GVM of tractor semitrailer combination = 40000kg ST1-v2,7500,-,-, Dolly,2500,-,-,only relevant for EMS diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs index 6040f85db93cb1184894fec6cd3fa7be7155bff2..c2587bcfd1831426641662c6eeabd93826f1977b 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs @@ -547,17 +547,20 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration AssertMission(segment.Missions[0], vehicleData: vehicleData, missionType: MissionType.LongHaul, cosswindCorrection: "RigidTrailer", axleWeightDistribution: new[] { 0.225, 0.325 }, trailerAxleWeightDistribution: new[] { 0.45 }, bodyCurbWeight: 1900, trailerCurbWeight: 3400, - trailerType: TrailerType.T1, minLoad: 0, refLoad: 9813.2353, trailerGrossVehicleWeight: 10500, deltaCdA: 1.1); + trailerType: TrailerType.T1, minLoad: 0, refLoad: 9813.2353, trailerGrossVehicleWeight: 10500, deltaCdA: 1.1, + maxLoad: 11250); AssertMission(segment.Missions[1], vehicleData: vehicleData, missionType: MissionType.RegionalDelivery, cosswindCorrection: "RigidSolo", axleWeightDistribution: new[] { 0.45, 0.55 }, trailerAxleWeightDistribution: new double[] { }, bodyCurbWeight: 1900, trailerCurbWeight: 0, - trailerType: TrailerType.None, minLoad: 0, refLoad: 2984.1176, trailerGrossVehicleWeight: 0, deltaCdA: 0); + trailerType: TrailerType.None, minLoad: 0, refLoad: 2984.1176, trailerGrossVehicleWeight: 0, deltaCdA: 0, + maxLoad: 4150); AssertMission(segment.Missions[2], vehicleData: vehicleData, missionType: MissionType.UrbanDelivery, cosswindCorrection: "RigidSolo", axleWeightDistribution: new[] { 0.45, 0.55 }, trailerAxleWeightDistribution: new double[] { }, bodyCurbWeight: 1900, trailerCurbWeight: 0, - trailerType: TrailerType.None, minLoad: 0, refLoad: 2984.1176, trailerGrossVehicleWeight: 0, deltaCdA: 0); + trailerType: TrailerType.None, minLoad: 0, refLoad: 2984.1176, trailerGrossVehicleWeight: 0, deltaCdA: 0, + maxLoad: 4150); } /// <summary> @@ -583,12 +586,14 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration AssertMission(segment.Missions[0], vehicleData: vehicleData, missionType: MissionType.RegionalDelivery, cosswindCorrection: "RigidSolo", axleWeightDistribution: new[] { 0.4, 0.6 }, trailerAxleWeightDistribution: new double[] { }, bodyCurbWeight: 2000, trailerCurbWeight: 0, - trailerType: TrailerType.None, minLoad: 0, refLoad: 3811.7647, trailerGrossVehicleWeight: 0, deltaCdA: 0); + trailerType: TrailerType.None, minLoad: 0, refLoad: 3811.7647, trailerGrossVehicleWeight: 0, deltaCdA: 0, + maxLoad: 6150); AssertMission(segment.Missions[1], vehicleData: vehicleData, missionType: MissionType.UrbanDelivery, cosswindCorrection: "RigidSolo", axleWeightDistribution: new[] { 0.4, 0.6 }, trailerAxleWeightDistribution: new double[] { }, bodyCurbWeight: 2000, trailerCurbWeight: 0, - trailerType: TrailerType.None, minLoad: 0, refLoad: 3811.7647, trailerGrossVehicleWeight: 0, deltaCdA: 0); + trailerType: TrailerType.None, minLoad: 0, refLoad: 3811.7647, trailerGrossVehicleWeight: 0, deltaCdA: 0, + maxLoad: 6150); } /// <summary> @@ -617,19 +622,21 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration AssertMission(segment.Missions[0], vehicleData: vehicleData, missionType: MissionType.LongHaul, cosswindCorrection: "RigidTrailer", axleWeightDistribution: new[] { 0.2, 0.3 }, trailerAxleWeightDistribution: new[] { 0.25, 0.25 }, bodyCurbWeight: 2100, trailerCurbWeight: 5400, - trailerType: TrailerType.T2, minLoad: 0, refLoad: 14000, trailerGrossVehicleWeight: 18000, deltaCdA: 0.6); + trailerType: TrailerType.T2, minLoad: 0, refLoad: 14000, trailerGrossVehicleWeight: 18000, deltaCdA: 0.6, + maxLoad: 21000); AssertMission(segment.Missions[1], vehicleData: vehicleData, missionType: MissionType.RegionalDelivery, cosswindCorrection: "RigidSolo", axleWeightDistribution: new[] { 0.45, 0.55 }, trailerAxleWeightDistribution: new double[] { }, bodyCurbWeight: 2100, trailerCurbWeight: 0, - trailerType: TrailerType.None, minLoad: 0, refLoad: 4400, trailerGrossVehicleWeight: 0, deltaCdA: 0); + trailerType: TrailerType.None, minLoad: 0, refLoad: 4400, trailerGrossVehicleWeight: 0, deltaCdA: 0, maxLoad: 8400); AssertMission(segment.Missions[2], vehicleData: vehicleData, missionType: MissionType.MunicipalUtility, cosswindCorrection: "RigidSolo", axleWeightDistribution: new[] { 0.45, 0.55 }, trailerAxleWeightDistribution: new double[] { }, bodyCurbWeight: 2100, trailerCurbWeight: 0, - trailerType: TrailerType.None, minLoad: 0, refLoad: 4400, trailerGrossVehicleWeight: 0, deltaCdA: 0); + trailerType: TrailerType.None, minLoad: 0, refLoad: 4400, trailerGrossVehicleWeight: 0, deltaCdA: 0, maxLoad: 8400); } + /// <summary> /// Segment 5: fixed reference weight, trailer always used /// </summary> @@ -656,18 +663,21 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration AssertMission(segment.Missions[0], vehicleData: vehicleData, missionType: MissionType.LongHaul, cosswindCorrection: "TractorSemitrailer", axleWeightDistribution: new[] { 0.2, 0.25 }, trailerAxleWeightDistribution: (0.55 / 3).Repeat(3).ToArray(), bodyCurbWeight: 0, trailerCurbWeight: 7500, - trailerType: TrailerType.None, minLoad: 0, refLoad: 19300, trailerGrossVehicleWeight: 0, deltaCdA: 0); + trailerType: TrailerType.None, minLoad: 0, refLoad: 19300, trailerGrossVehicleWeight: 24000, deltaCdA: 0, + maxLoad: 25000); AssertMission(segment.Missions[1], vehicleData: vehicleData, missionType: MissionType.RegionalDelivery, cosswindCorrection: "TractorSemitrailer", axleWeightDistribution: new[] { 0.25, 0.25 }, trailerAxleWeightDistribution: (0.5 / 3).Repeat(3).ToArray(), bodyCurbWeight: 0, trailerCurbWeight: 7500, - trailerType: TrailerType.None, minLoad: 0, refLoad: 12900, trailerGrossVehicleWeight: 0, deltaCdA: 0); + trailerType: TrailerType.None, minLoad: 0, refLoad: 12900, trailerGrossVehicleWeight: 24000, deltaCdA: 0, + maxLoad: 25000); } [Test] public static void AssertMission(Mission m, dynamic vehicleData, MissionType missionType, string cosswindCorrection, double[] axleWeightDistribution, double[] trailerAxleWeightDistribution, double bodyCurbWeight, - double trailerCurbWeight, TrailerType trailerType, double minLoad, double refLoad, double trailerGrossVehicleWeight, + double trailerCurbWeight, TrailerType trailerType, double minLoad, double refLoad, double maxLoad, + double trailerGrossVehicleWeight, double deltaCdA) { Assert.AreEqual(missionType, m.MissionType); @@ -686,6 +696,7 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration Assert.IsTrue(!string.IsNullOrEmpty(new StreamReader(m.CycleFile).ReadLine())); Assert.AreEqual(minLoad.SI<Kilogram>(), m.MinLoad); AssertHelper.AreRelativeEqual(refLoad, m.RefLoad); + Assert.AreEqual(maxLoad.SI<Kilogram>(), m.MaxLoad); Assert.AreEqual(trailerGrossVehicleWeight.SI<Kilogram>(), m.TrailerGrossVehicleWeight); Assert.AreEqual(VectoMath.Min(vehicleData.GrossVehicleMassRating + m.TrailerGrossVehicleWeight, 40000.SI<Kilogram>()) - m.BodyCurbWeight - m.TrailerCurbWeight - vehicleData.CurbWeight,