Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit ebdbc597 authored by Michael KRISPER's avatar Michael KRISPER
Browse files

combined Curbweight and CurbweightExtra for internal calculation

parent 623410fc
Branches
Tags
No related merge requests found
Showing
with 34 additions and 35 deletions
......@@ -63,7 +63,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
CurbWeight = data.CurbWeightChassis,
//CurbWeigthExtra = data.CurbWeightExtra.SI<Kilogram>(),
//Loading = data.Loading.SI<Kilogram>(),
GrossVehicleMassRating = data.GrossVehicleMassRating,
GrossVehicleWeight = data.GrossVehicleMassRating,
//DragCoefficient = data.DragCoefficient,
//CrossSectionArea = data.CrossSectionArea.SI<SquareMeter>(),
//DragCoefficientRigidTruck = data.DragCoefficientRigidTruck,
......
......@@ -94,9 +94,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
}
var retVal = SetCommonVehicleData(data);
retVal.GrossVehicleMassRating = data.GrossVehicleMassRating;
retVal.TrailerGrossVehicleMassRating = mission.TrailerGrossVehicleWeight;
retVal.CurbWeigthExtra = mission.BodyCurbWeight + mission.TrailerCurbWeight;
retVal.GrossVehicleWeight = data.GrossVehicleMassRating;
retVal.TrailerGrossVehicleWeight = mission.TrailerGrossVehicleWeight;
retVal.CurbWeight += mission.BodyCurbWeight + mission.TrailerCurbWeight;
retVal.Loading = loading;
retVal.DynamicTyreRadius =
DeclarationData.DynamicTyreRadius(data.Axles[DeclarationData.PoweredAxle()].Wheels, data.Rim);
......
......@@ -56,7 +56,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
var retVal = SetCommonVehicleData(data);
retVal.CurbWeigthExtra = data.CurbWeightExtra;
retVal.CurbWeight += data.CurbWeightExtra;
retVal.Loading = data.Loading;
retVal.DynamicTyreRadius = data.DynamicTyreRadius;
retVal.CrossWindCorrectionMode = data.CrossWindCorrectionMode;
......
......@@ -84,7 +84,7 @@ namespace TUGraz.VectoCore.Models.Declaration
});
} catch (InvalidOperationException e) {
var errorMessage = string.Format(
"ERROR: Could not find the declaration segment for vehicle. Category: {0}, AxleConfiguration: {1}, GrossVehicleMassRating: {2}",
"ERROR: Could not find the declaration segment for vehicle. Category: {0}, AxleConfiguration: {1}, GrossVehicleWeight: {2}",
vehicleCategory, axleConfiguration.GetName(), grossVehicleMassRating);
Log.Fatal(errorMessage);
throw new VectoException(errorMessage, e);
......
......@@ -36,6 +36,7 @@ using System.Linq;
using TUGraz.VectoCommon.Exceptions;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.Configuration;
using TUGraz.VectoCore.Models.Declaration;
using TUGraz.VectoCore.Utils;
......@@ -49,13 +50,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
{
public VehicleCategory VehicleCategory { get; internal set; }
public VehicleClass VehicleClass { get; internal set; }
public AxleConfiguration AxleConfiguration { get; internal set; }
[Required, ValidateObject]
public ICrossWindCorrection CrossWindCorrectionCurve { get; internal set; }
private List<Axle> _axleData;
[ValidateObject]
[Required, ValidateObject]
public List<Axle> AxleData
{
get { return _axleData; }
......@@ -66,22 +68,28 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
}
}
public AxleConfiguration AxleConfiguration { get; internal set; }
/// <summary>
/// The Curb Weight of the vehicle
/// (+ Curb Weight of Standard-Body if it has one)
/// (+ Curb Weight of Trailer if it has one)
/// </summary>
[Required, SIRange(500, 40000)]
public Kilogram CurbWeight { get; internal set; }
[Required, SIRange(0, 40000)]
public Kilogram CurbWeigthExtra { get; internal set; }
[Required, SIRange(0, 40000)]
public Kilogram Loading { get; internal set; }
/// <summary>
/// The Gross Vehicle Weight of the Vehicle.
/// </summary>
[Required, SIRange(3500, 40000)]
public Kilogram GrossVehicleMassRating { get; internal set; }
public Kilogram GrossVehicleWeight { get; internal set; }
/// <summary>
/// The Gross Vehicle Weight of the Trailer (if the vehicle has one).
/// </summary>
[Required, SIRange(0, 40000)]
public Kilogram TrailerGrossVehicleMassRating { get; internal set; }
public Kilogram TrailerGrossVehicleWeight { get; internal set; }
[Required, SIRange(0.1, 0.7)]
public Meter DynamicTyreRadius { get; internal set; }
......@@ -99,7 +107,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
{
var retVal = 0.SI<Kilogram>();
retVal += CurbWeight ?? 0.SI<Kilogram>();
retVal += CurbWeigthExtra ?? 0.SI<Kilogram>();
retVal += Loading ?? 0.SI<Kilogram>();
return retVal;
}
......@@ -108,7 +115,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
{
var retVal = 0.SI<Kilogram>();
retVal += CurbWeight ?? 0.SI<Kilogram>();
retVal += CurbWeigthExtra ?? 0.SI<Kilogram>();
return retVal;
}
......@@ -150,10 +156,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
weightShareSum, 1 - weightShareSum));
}
var gvwTotal = vehicleData.GrossVehicleMassRating + vehicleData.TrailerGrossVehicleMassRating;
// total gvw is limited by max gvw (40t)
var gvwTotal = VectoMath.Min(vehicleData.GrossVehicleWeight + vehicleData.TrailerGrossVehicleWeight,
Constants.SimulationSettings.MaximumGrossVehicleWeight);
if (vehicleData.TotalVehicleWeight() > gvwTotal) {
return new ValidationResult(
string.Format("Total Vehicle Weight is greater than GrossVehicleMassRating! sum: {0}, GVM: {1}",
string.Format("Total Vehicle Weight is greater than GrossVehicleWeight! Weight: {0}, GVW: {1}",
vehicleData.TotalVehicleWeight(), gvwTotal));
}
......
......@@ -64,9 +64,8 @@ namespace TUGraz.VectoCore.Tests.FileIO
Assert.AreEqual(ExecutionMode.Declaration, runData.ExecutionMode);
Assert.AreEqual(Path.GetFileNameWithoutExtension(DeclarationJob), runData.JobName);
Assert.AreEqual(5850, runData.VehicleData.CurbWeight.Value());
Assert.AreEqual(1900, runData.VehicleData.CurbWeigthExtra.Value()); // taken from segmentation table
Assert.AreEqual(11900, runData.VehicleData.GrossVehicleMassRating.Value());
Assert.AreEqual(5850 + 1900, runData.VehicleData.CurbWeight.Value());
Assert.AreEqual(11900, runData.VehicleData.GrossVehicleWeight.Value());
Assert.AreEqual(AxleConfiguration.AxleConfig_4x2, runData.VehicleData.AxleConfiguration);
Assert.AreEqual(0.4069297458, runData.VehicleData.DynamicTyreRadius.Value(), Tolerance);
......@@ -116,9 +115,6 @@ namespace TUGraz.VectoCore.Tests.FileIO
runData.GearboxData.Gears[1].ShiftPolygon.Upshift[i].AngularSpeed.Value(), Tolerance);
Assert.AreEqual(upshiftTorque[i], runData.GearboxData.Gears[1].ShiftPolygon.Upshift[i].Torque.Value(), Tolerance);
}
//Assert.AreEqual();
//Assert.AreEqual(, runData.DriverData.LookAheadCoasting.);
}
}
......
......@@ -184,7 +184,6 @@ namespace TUGraz.VectoCore.Tests.Integration
new CrosswindCorrectionCdxALookup(CrossWindCorrectionCurveReader.GetNoCorrectionCurve(3.2634.SI<SquareMeter>()),
CrossWindCorrectionMode.NoCorrection),
CurbWeight = 15700.SI<Kilogram>(),
CurbWeigthExtra = 0.SI<Kilogram>(),
Loading = loading,
DynamicTyreRadius = 0.52.SI<Meter>(),
AxleData = axles,
......
......@@ -187,7 +187,6 @@ namespace TUGraz.VectoCore.Tests.Integration
new CrosswindCorrectionCdxALookup(CrossWindCorrectionCurveReader.GetNoCorrectionCurve(3.2634.SI<SquareMeter>()),
CrossWindCorrectionMode.NoCorrection),
CurbWeight = 15700.SI<Kilogram>(),
CurbWeigthExtra = 0.SI<Kilogram>(),
Loading = loading,
DynamicTyreRadius = 0.52.SI<Meter>(),
AxleData = axles,
......
......@@ -387,7 +387,6 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
new CrosswindCorrectionCdxALookup(CrossWindCorrectionCurveReader.GetNoCorrectionCurve(3.2634.SI<SquareMeter>()),
CrossWindCorrectionMode.NoCorrection),
CurbWeight = 15700.SI<Kilogram>(),
CurbWeigthExtra = 0.SI<Kilogram>(),
Loading = loading,
DynamicTyreRadius = 0.52.SI<Meter>(),
AxleData = axles,
......
......@@ -286,7 +286,6 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
new CrosswindCorrectionCdxALookup(CrossWindCorrectionCurveReader.GetNoCorrectionCurve(3.2634.SI<SquareMeter>()),
CrossWindCorrectionMode.NoCorrection),
CurbWeight = 15700.SI<Kilogram>(),
CurbWeigthExtra = 0.SI<Kilogram>(),
Loading = loading,
DynamicTyreRadius = 0.52.SI<Meter>(),
AxleData = axles,
......
......@@ -217,8 +217,7 @@ namespace TUGraz.VectoCore.Tests.Integration
CrossWindCorrectionCurve =
new CrosswindCorrectionCdxALookup(CrossWindCorrectionCurveReader.GetNoCorrectionCurve(6.2985.SI<SquareMeter>()),
CrossWindCorrectionMode.NoCorrection),
CurbWeight = 7100.SI<Kilogram>(),
CurbWeigthExtra = massExtra,
CurbWeight = 7100.SI<Kilogram>() + massExtra,
Loading = loading,
DynamicTyreRadius = 0.4882675.SI<Meter>(),
AxleData = axles,
......
......@@ -392,7 +392,6 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
new CrosswindCorrectionCdxALookup(CrossWindCorrectionCurveReader.GetNoCorrectionCurve(3.2634.SI<SquareMeter>()),
CrossWindCorrectionMode.NoCorrection),
CurbWeight = 15700.SI<Kilogram>(),
CurbWeigthExtra = 0.SI<Kilogram>(),
Loading = loading,
DynamicTyreRadius = 0.52.SI<Meter>(),
AxleData = axles,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment