Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 2b76344f authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

considering clutch in PS: reduce ps-off drag curve by a certain factor

parent a1858ec3
No related branches found
No related tags found
No related merge requests found
Showing with 72 additions and 56 deletions
...@@ -298,7 +298,7 @@ Public Class frmAuxiliaryConfig ...@@ -298,7 +298,7 @@ Public Class frmAuxiliaryConfig
Dim comp As ICompressorMap Dim comp As ICompressorMap
Try Try
comp = CompressorMapReader.ReadFile(FilePathUtils.ResolveFilePath(aauxPath, txtCompressorMap.Text)) comp = CompressorMapReader.ReadFile(FilePathUtils.ResolveFilePath(aauxPath, txtCompressorMap.Text), 1.0)
'comp.Initialise() 'comp.Initialise()
ErrorProvider.SetError(txtCompressorMap, String.Empty) ErrorProvider.SetError(txtCompressorMap, String.Empty)
Catch ex As Exception Catch ex As Exception
......
...@@ -73,7 +73,7 @@ Namespace UnitTests ...@@ -73,7 +73,7 @@ Namespace UnitTests
Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath, 1.0)
Dim auxCfg = Utils.GetAuxTestConfig() Dim auxCfg = Utils.GetAuxTestConfig()
...@@ -93,7 +93,7 @@ Namespace UnitTests ...@@ -93,7 +93,7 @@ Namespace UnitTests
initialise() initialise()
Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath, 1.0)
'psCompressorMap.Initialise() 'psCompressorMap.Initialise()
...@@ -117,7 +117,7 @@ Namespace UnitTests ...@@ -117,7 +117,7 @@ Namespace UnitTests
initialise() initialise()
Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
Dim psCompressorMap =CompressorMapReader.ReadFile(_compressorMapPath) Dim psCompressorMap =CompressorMapReader.ReadFile(_compressorMapPath, 1.0)
'psCompressorMap.Initialise() 'psCompressorMap.Initialise()
...@@ -144,7 +144,7 @@ Namespace UnitTests ...@@ -144,7 +144,7 @@ Namespace UnitTests
_defaultInputConfig.CompressorGearEfficiency = 0.8 _defaultInputConfig.CompressorGearEfficiency = 0.8
Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath, 1.0)
'psCompressorMap.Initialise() 'psCompressorMap.Initialise()
...@@ -166,7 +166,7 @@ Namespace UnitTests ...@@ -166,7 +166,7 @@ Namespace UnitTests
initialise() initialise()
Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath, 1.0)
'psCompressorMap.Initialise() 'psCompressorMap.Initialise()
...@@ -195,7 +195,7 @@ Namespace UnitTests ...@@ -195,7 +195,7 @@ Namespace UnitTests
_defaultInputConfig.SmartRegeneration = False _defaultInputConfig.SmartRegeneration = False
Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath, 1.0)
'psCompressorMap.Initialise() 'psCompressorMap.Initialise()
...@@ -222,7 +222,7 @@ Namespace UnitTests ...@@ -222,7 +222,7 @@ Namespace UnitTests
'_defaultInputConfig.RetarderBrake = False '_defaultInputConfig.RetarderBrake = False
Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.None) Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.None)
Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath, 1.0)
'psCompressorMap.Initialise() 'psCompressorMap.Initialise()
...@@ -250,7 +250,7 @@ Namespace UnitTests ...@@ -250,7 +250,7 @@ Namespace UnitTests
_defaultInputConfig.KneelingHeight = 100.SI(Unit.si.Milli.Meter).Cast (Of Meter) _defaultInputConfig.KneelingHeight = 100.SI(Unit.si.Milli.Meter).Cast (Of Meter)
Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath, 1.0)
'psCompressorMap.Initialise() 'psCompressorMap.Initialise()
...@@ -275,7 +275,7 @@ Namespace UnitTests ...@@ -275,7 +275,7 @@ Namespace UnitTests
_defaultInputConfig.AirSuspensionControl = ConsumerTechnology.Mechanically _defaultInputConfig.AirSuspensionControl = ConsumerTechnology.Mechanically
Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath, 1.0)
'psCompressorMap.Initialise() 'psCompressorMap.Initialise()
...@@ -302,7 +302,7 @@ Namespace UnitTests ...@@ -302,7 +302,7 @@ Namespace UnitTests
_defaultInputConfig.AdBlueDosing = ConsumerTechnology.Pneumatically _defaultInputConfig.AdBlueDosing = ConsumerTechnology.Pneumatically
Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath, 1.0)
'psCompressorMap.Initialise() 'psCompressorMap.Initialise()
...@@ -329,7 +329,7 @@ Namespace UnitTests ...@@ -329,7 +329,7 @@ Namespace UnitTests
_defaultInputConfig.Doors = ConsumerTechnology.Electrically _defaultInputConfig.Doors = ConsumerTechnology.Electrically
Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath, 1.0)
Dim auxConfig As IAuxiliaryConfig = GetAuxConfig(psAuxConfig) Dim auxConfig As IAuxiliaryConfig = GetAuxConfig(psAuxConfig)
......
...@@ -23,7 +23,7 @@ Namespace UnitTests ...@@ -23,7 +23,7 @@ Namespace UnitTests
Private Function GetInitialiseMap() As ICompressorMap Private Function GetInitialiseMap() As ICompressorMap
Dim path As String = GOODMAP Dim path As String = GOODMAP
Dim target As ICompressorMap = CompressorMapReader.ReadFile(path) Dim target As ICompressorMap = CompressorMapReader.ReadFile(path, 1.0)
'target.Initialise() 'target.Initialise()
Return target Return target
End Function End Function
...@@ -39,7 +39,7 @@ Namespace UnitTests ...@@ -39,7 +39,7 @@ Namespace UnitTests
Public Sub CreateNewCompressorMapInstanceTest() Public Sub CreateNewCompressorMapInstanceTest()
Dim pat As String = "test" Dim pat As String = "test"
Assert.That(Sub() Assert.That(Sub()
Dim target As ICompressorMap = CompressorMapReader.ReadFile(pat) Dim target As ICompressorMap = CompressorMapReader.ReadFile(pat, 1.0)
end sub, throws.instanceof(of Vectoexception)) end sub, throws.instanceof(of Vectoexception))
End Sub End Sub
...@@ -56,7 +56,7 @@ Namespace UnitTests ...@@ -56,7 +56,7 @@ Namespace UnitTests
'Dim target As ICompressorMap = CompressorMapReader.ReadFile(path) 'Dim target As ICompressorMap = CompressorMapReader.ReadFile(path)
Assert.That(sub() Assert.That(sub()
dim tmp = CompressorMapReader.ReadFile(path) dim tmp = CompressorMapReader.ReadFile(path, 1.0)
end sub, Throws.InstanceOf (of VectoException)) end sub, Throws.InstanceOf (of VectoException))
End Sub End Sub
...@@ -65,7 +65,7 @@ Namespace UnitTests ...@@ -65,7 +65,7 @@ Namespace UnitTests
Dim path As String = INVALIDNUMBEROFCOLUMNS Dim path As String = INVALIDNUMBEROFCOLUMNS
Assert.That(Sub() Assert.That(Sub()
Dim target = CompressorMapReader.ReadFile(path) Dim target = CompressorMapReader.ReadFile(path, 1.0)
End Sub, Throws.InstanceOf (Of VectoException)) End Sub, Throws.InstanceOf (Of VectoException))
End Sub End Sub
...@@ -74,7 +74,7 @@ Namespace UnitTests ...@@ -74,7 +74,7 @@ Namespace UnitTests
Dim path As String = INVALIDRPMMAP Dim path As String = INVALIDRPMMAP
Assert.That(Sub() Assert.That(Sub()
Dim target As ICompressorMap = CompressorMapReader.ReadFile(path) Dim target As ICompressorMap = CompressorMapReader.ReadFile(path, 1.0)
End Sub, Throws.InstanceOf (Of VectoException)) End Sub, Throws.InstanceOf (Of VectoException))
End Sub End Sub
...@@ -83,7 +83,7 @@ Namespace UnitTests ...@@ -83,7 +83,7 @@ Namespace UnitTests
Dim path As String = INVALIDFLOWRATEMAP Dim path As String = INVALIDFLOWRATEMAP
Assert.That(Sub() Assert.That(Sub()
Dim target As ICompressorMap = CompressorMapReader.ReadFile(path) Dim target As ICompressorMap = CompressorMapReader.ReadFile(path, 1.0)
End Sub, Throws.InstanceOf (Of VectoException)) End Sub, Throws.InstanceOf (Of VectoException))
End Sub End Sub
...@@ -92,7 +92,7 @@ Namespace UnitTests ...@@ -92,7 +92,7 @@ Namespace UnitTests
Dim path As String = INVALIDPOWERCOMPRESSORONMAP Dim path As String = INVALIDPOWERCOMPRESSORONMAP
Assert.That(Sub() Assert.That(Sub()
Dim target As ICompressorMap = CompressorMapReader.ReadFile(path) Dim target As ICompressorMap = CompressorMapReader.ReadFile(path, 1.0)
End Sub, Throws.InstanceOf (Of VectoException)) End Sub, Throws.InstanceOf (Of VectoException))
End Sub End Sub
...@@ -101,7 +101,7 @@ Namespace UnitTests ...@@ -101,7 +101,7 @@ Namespace UnitTests
Dim path As String = INVALIDPOWERCOMPRESSOROFFMAP Dim path As String = INVALIDPOWERCOMPRESSOROFFMAP
Assert.That(Sub() Assert.That(Sub()
Dim target As ICompressorMap = CompressorMapReader.ReadFile(path) Dim target As ICompressorMap = CompressorMapReader.ReadFile(path, 1.0)
End Sub, Throws.InstanceOf (Of VectoException)) End Sub, Throws.InstanceOf (Of VectoException))
End Sub End Sub
...@@ -110,7 +110,7 @@ Namespace UnitTests ...@@ -110,7 +110,7 @@ Namespace UnitTests
Dim path As String = INSSUFICIENTROWSMAP Dim path As String = INSSUFICIENTROWSMAP
Assert.That(Sub() Assert.That(Sub()
Dim target As ICompressorMap = CompressorMapReader.ReadFile(path) Dim target As ICompressorMap = CompressorMapReader.ReadFile(path, 1.0)
End Sub, Throws.InstanceOf (Of VectoException)) End Sub, Throws.InstanceOf (Of VectoException))
End Sub End Sub
...@@ -153,7 +153,7 @@ Namespace UnitTests ...@@ -153,7 +153,7 @@ Namespace UnitTests
<Test()> <Test()>
Public Sub InterpMiddle() Public Sub InterpMiddle()
Dim target As ICompressorMap = CompressorMapReader.ReadFile(GOODMAP) Dim target As ICompressorMap = CompressorMapReader.ReadFile(GOODMAP, 1.0)
'Assert.IsTrue(target.Initialise()) 'Assert.IsTrue(target.Initialise())
Dim actual = target.Interpolate(1750.RPMtoRad()).FlowRate Dim actual = target.Interpolate(1750.RPMtoRad()).FlowRate
......
...@@ -173,6 +173,9 @@ namespace TUGraz.VectoCore.Configuration ...@@ -173,6 +173,9 @@ namespace TUGraz.VectoCore.Configuration
public const double CompressorGearEfficiency = 0.97; public const double CompressorGearEfficiency = 0.97;
public const double PneumaticOverrunUtilisation = 0.97; public const double PneumaticOverrunUtilisation = 0.97;
public const double ViscoClutchDragCurveFactor = 1 - 0.35;
public const double MechanicClutchDragCurveFactor = 1 - 0.75;
} }
public static class Heater { public static class Heater {
......
...@@ -152,7 +152,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -152,7 +152,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
pneumaticUserInputsConfig.CompressorGearRatio = puData.GetEx<double>("CompressorGearRatio"); pneumaticUserInputsConfig.CompressorGearRatio = puData.GetEx<double>("CompressorGearRatio");
var file = puData.GetEx<string>("CompressorMap"); var file = puData.GetEx<string>("CompressorMap");
if (!string.IsNullOrWhiteSpace(file)) { if (!string.IsNullOrWhiteSpace(file)) {
pneumaticUserInputsConfig.CompressorMap = CompressorMapReader.ReadFile(Path.Combine(baseDir, file)); pneumaticUserInputsConfig.CompressorMap = CompressorMapReader.ReadFile(Path.Combine(baseDir, file), 1.0);
} }
pneumaticUserInputsConfig.Doors = ConsumerTechnologyHelper.Parse(puData.GetEx<string>("Doors")); pneumaticUserInputsConfig.Doors = ConsumerTechnologyHelper.Parse(puData.GetEx<string>("Doors"));
pneumaticUserInputsConfig.KneelingHeight = pneumaticUserInputsConfig.KneelingHeight =
......
...@@ -14,17 +14,17 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData ...@@ -14,17 +14,17 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
{ {
public static readonly string[] Header = new[] { Fields.RPM, Fields.FlowRate, Fields.PowerOn, Fields.PowerOff }; public static readonly string[] Header = new[] { Fields.RPM, Fields.FlowRate, Fields.PowerOn, Fields.PowerOff };
public static ICompressorMap ReadFile(string filename) public static ICompressorMap ReadFile(string filename, double dragCurveFactorClutch)
{ {
return new CompressorMap(Create(VectoCSVFile.Read(filename)), Path.GetFullPath(filename)); return new CompressorMap(Create(VectoCSVFile.Read(filename), dragCurveFactorClutch), Path.GetFullPath(filename));
} }
public static ICompressorMap ReadStream(Stream stream, string source = null) public static ICompressorMap ReadStream(Stream stream, double dragCurveFactorClutch, string source = null)
{ {
return new CompressorMap(Create(VectoCSVFile.ReadStream(stream)), source); return new CompressorMap(Create(VectoCSVFile.ReadStream(stream), dragCurveFactorClutch), source);
} }
public static IList<CompressorMapValues> Create(DataTable data) public static IList<CompressorMapValues> Create(DataTable data, double dragCurveFactorClutch)
{ {
if (!HeaderIsValid(data.Columns)) { if (!HeaderIsValid(data.Columns)) {
throw new VectoException( throw new VectoException(
...@@ -43,7 +43,7 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData ...@@ -43,7 +43,7 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
row.ParseDouble(Fields.RPM).RPMtoRad(), row.ParseDouble(Fields.RPM).RPMtoRad(),
row.ParseDouble(Fields.FlowRate).SI(Unit.SI.Liter.Per.Minute).Cast<NormLiterPerSecond>(), row.ParseDouble(Fields.FlowRate).SI(Unit.SI.Liter.Per.Minute).Cast<NormLiterPerSecond>(),
row.ParseDouble(Fields.PowerOn).SI<Watt>(), row.ParseDouble(Fields.PowerOn).SI<Watt>(),
row.ParseDouble(Fields.PowerOff).SI<Watt>() row.ParseDouble(Fields.PowerOff).SI<Watt>() * dragCurveFactorClutch
)); ));
} }
return entries; return entries;
......
...@@ -191,7 +191,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter ...@@ -191,7 +191,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
: 0.SI<Meter>(), : 0.SI<Meter>(),
CompressorGearEfficiency = Constants.BusAuxiliaries.PneumaticUserConfig.CompressorGearEfficiency, CompressorGearEfficiency = Constants.BusAuxiliaries.PneumaticUserConfig.CompressorGearEfficiency,
CompressorGearRatio = busAux.PneumaticSupply.Ratio, CompressorGearRatio = busAux.PneumaticSupply.Ratio,
CompressorMap = GetCompressorMap(busAux.PneumaticSupply.CompressorSize), CompressorMap = GetCompressorMap(busAux.PneumaticSupply.CompressorSize, busAux.PneumaticSupply.Clutch),
SmartAirCompression = busAux.PneumaticSupply.SmartAirCompression, SmartAirCompression = busAux.PneumaticSupply.SmartAirCompression,
SmartRegeneration = busAux.PneumaticSupply.SmartRegeneration, SmartRegeneration = busAux.PneumaticSupply.SmartRegeneration,
AdBlueDosing = busAux.PneumaticConsumers.AdBlueDosing, AdBlueDosing = busAux.PneumaticConsumers.AdBlueDosing,
...@@ -200,40 +200,38 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter ...@@ -200,40 +200,38 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
}; };
} }
protected virtual ICompressorMap GetCompressorMap(string compressorSize) protected virtual ICompressorMap GetCompressorMap(string compressorSize, string clutchType)
{ {
var resource = ""; var resource = "";
switch (compressorSize) { switch (compressorSize) {
case "Small": case "Small":
case "Small + visco clutch":
case "Small + mech. clutch":
resource = "DEFAULT_1-Cylinder_1-Stage_393ccm.ACMP"; resource = "DEFAULT_1-Cylinder_1-Stage_393ccm.ACMP";
break; break;
case "Medium Supply 1-stage": case "Medium Supply 1-stage":
case "Medium Supply 1-stage + visco clutch":
case "Medium Supply 1-stage + mech. clutch":
resource = "DEFAULT_1-Cylinder_1-Stage_393ccm.ACMP"; resource = "DEFAULT_1-Cylinder_1-Stage_393ccm.ACMP";
break; break;
case "Medium Supply 2-stage": case "Medium Supply 2-stage":
case "Medium Supply 2-stage + visco clutch":
case "Medium Supply 2-stage + mech. clutch":
resource = "DEFAULT_2-Cylinder_1-Stage_650ccm.ACMP"; resource = "DEFAULT_2-Cylinder_1-Stage_650ccm.ACMP";
break; break;
case "Large Supply 1-stage": case "Large Supply 1-stage":
case "Large Supply 1-stage + visco clutch":
case "Large Supply 1-stage + mech. clutch":
resource = "DEFAULT_2-Cylinder_2-Stage_398ccm.ACMP"; resource = "DEFAULT_2-Cylinder_2-Stage_398ccm.ACMP";
break; break;
case "Large Supply 2-stage": case "Large Supply 2-stage":
case "Large Supply 2-stage + visco clutch":
case "Large Supply 2-stage + mech. clutch":
resource = "DEFAULT_3-Cylinder_2-Stage_598ccm.ACMP"; resource = "DEFAULT_3-Cylinder_2-Stage_598ccm.ACMP";
break; break;
default: throw new ArgumentException(string.Format("unkown compressor size {0}"), compressorSize); default: throw new ArgumentException(string.Format("unkown compressor size {0}"), compressorSize);
} }
var dragCurveFactorClutch = 1.0;
switch (clutchType) {
case "visco": dragCurveFactorClutch = Constants.BusAuxiliaries.PneumaticUserConfig.ViscoClutchDragCurveFactor;
break;
case "mechically": dragCurveFactorClutch = Constants.BusAuxiliaries.PneumaticUserConfig.MechanicClutchDragCurveFactor;
break;
}
return CompressorMapReader.ReadStream( return CompressorMapReader.ReadStream(
RessourceHelper.ReadStream(DeclarationData.DeclarationDataResourcePrefix + ".VAUXBus." + resource)); RessourceHelper.ReadStream(DeclarationData.DeclarationDataResourcePrefix + ".VAUXBus." + resource), dragCurveFactorClutch);
} }
public virtual ISSMInputs CreateSSMModelParameters(IBusAuxiliariesDeclarationData busAuxInputData, Mission mission, IFuelProperties heatingFuel) public virtual ISSMInputs CreateSSMModelParameters(IBusAuxiliariesDeclarationData busAuxInputData, Mission mission, IFuelProperties heatingFuel)
......
...@@ -10,20 +10,21 @@ using TUGraz.VectoCore.Models.Simulation.Data; ...@@ -10,20 +10,21 @@ using TUGraz.VectoCore.Models.Simulation.Data;
using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data;
using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData;
namespace TUGraz.VectoCore.InputData.Reader.Impl { namespace TUGraz.VectoCore.InputData.Reader.Impl
{
public class DeclarationModeBusVectoRunDataFactory : AbstractDeclarationVectoRunDataFactory public class DeclarationModeBusVectoRunDataFactory : AbstractDeclarationVectoRunDataFactory
{ {
protected DeclarationDataAdapterPrimaryBus _dao = new DeclarationDataAdapterPrimaryBus(); protected DeclarationDataAdapterPrimaryBus _dao = new DeclarationDataAdapterPrimaryBus();
public DeclarationModeBusVectoRunDataFactory(IDeclarationInputDataProvider dataProvider, IDeclarationReport report) : public DeclarationModeBusVectoRunDataFactory(IDeclarationInputDataProvider dataProvider, IDeclarationReport report) :
base(dataProvider, report) base(dataProvider, report) { }
{
}
#region Overrides of AbstractDeclarationVectoRunDataFactory #region Overrides of AbstractDeclarationVectoRunDataFactory
protected override IDeclarationDataAdapter DataAdapter { get { return _dao; } } protected override IDeclarationDataAdapter DataAdapter
{
get { return _dao; }
}
#endregion #endregion
...@@ -32,13 +33,15 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { ...@@ -32,13 +33,15 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl {
if (InputDataProvider.JobInputData.Vehicle.VehicleCategory == VehicleCategory.HeavyBusPrimaryVehicle) { if (InputDataProvider.JobInputData.Vehicle.VehicleCategory == VehicleCategory.HeavyBusPrimaryVehicle) {
return VectoRunDataHeavyBusPrimary(); return VectoRunDataHeavyBusPrimary();
} }
return new List<VectoRunData>(); return new List<VectoRunData>();
} }
protected override Segment GetSegment(IVehicleDeclarationInputData vehicle) protected override Segment GetSegment(IVehicleDeclarationInputData vehicle)
{ {
if (vehicle.VehicleCategory != VehicleCategory.HeavyBusPrimaryVehicle) { if (vehicle.VehicleCategory != VehicleCategory.HeavyBusPrimaryVehicle) {
throw new VectoException("Invalid vehicle category for bus factory! {0}", vehicle.VehicleCategory.GetCategoryName()); throw new VectoException(
"Invalid vehicle category for bus factory! {0}", vehicle.VehicleCategory.GetCategoryName());
} }
var segment = DeclarationData.BusSegments.Lookup( var segment = DeclarationData.BusSegments.Lookup(
...@@ -62,7 +65,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { ...@@ -62,7 +65,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl {
for (var modeIdx = 0; modeIdx < engineModes.Count; modeIdx++) { for (var modeIdx = 0; modeIdx < engineModes.Count; modeIdx++) {
foreach (var mission in _segment.Missions) { foreach (var mission in _segment.Missions) {
foreach (var loading in mission.Loadings) { foreach (var loading in mission.Loadings) {
var simulationRunData = CreateVectoRunData(vehicle, modeIdx, mission, loading); var simulationRunData = CreateVectoRunData(vehicle, modeIdx, mission, loading);
yield return simulationRunData; yield return simulationRunData;
} }
} }
...@@ -70,7 +73,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { ...@@ -70,7 +73,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl {
} }
protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, KeyValuePair<LoadingType, Kilogram> loading) protected override VectoRunData CreateVectoRunData(
IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, KeyValuePair<LoadingType, Kilogram> loading)
{ {
var engine = vehicle.Components.EngineInputData; var engine = vehicle.Components.EngineInputData;
var engineModes = engine.EngineModes; var engineModes = engine.EngineModes;
...@@ -84,7 +88,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { ...@@ -84,7 +88,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl {
CyclesCache.Add(mission.MissionType, cycle); CyclesCache.Add(mission.MissionType, cycle);
} }
} }
var simulationRunData = new VectoRunData { var simulationRunData = new VectoRunData {
Loading = loading.Key, Loading = loading.Key,
VehicleData = DataAdapter.CreateVehicleData(vehicle, mission, loading), VehicleData = DataAdapter.CreateVehicleData(vehicle, mission, loading),
AirdragData = _dao.CreateAirdragData(mission), AirdragData = _dao.CreateAirdragData(mission),
...@@ -92,8 +96,10 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { ...@@ -92,8 +96,10 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl {
GearboxData = _gearboxData, GearboxData = _gearboxData,
AxleGearData = _axlegearData, AxleGearData = _axlegearData,
AngledriveData = _angledriveData, AngledriveData = _angledriveData,
Aux = DataAdapter.CreateAuxiliaryData(vehicle.Components.AuxiliaryInputData, Aux = DataAdapter.CreateAuxiliaryData(
vehicle.Components.BusAuxiliaries, mission.MissionType, _segment.VehicleClass, vehicle.Length ?? mission.BusParameter.VehicleLength), vehicle.Components.AuxiliaryInputData,
vehicle.Components.BusAuxiliaries, mission.MissionType, _segment.VehicleClass,
vehicle.Length ?? mission.BusParameter.VehicleLength),
Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()), Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()),
Retarder = _retarderData, Retarder = _retarderData,
DriverData = _driverdata, DriverData = _driverdata,
...@@ -109,8 +115,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { ...@@ -109,8 +115,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl {
}; };
simulationRunData.EngineData.FuelMode = modeIdx; simulationRunData.EngineData.FuelMode = modeIdx;
simulationRunData.VehicleData.VehicleClass = _segment.VehicleClass; simulationRunData.VehicleData.VehicleClass = _segment.VehicleClass;
simulationRunData.BusAuxiliaries = _dao.CreateBusAuxiliariesData(mission, InputDataProvider.JobInputData.Vehicle, simulationRunData); simulationRunData.BusAuxiliaries = _dao.CreateBusAuxiliariesData(
mission, InputDataProvider.JobInputData.Vehicle, simulationRunData);
return simulationRunData; return simulationRunData;
} }
} }
} }
\ No newline at end of file
...@@ -28,6 +28,14 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration ...@@ -28,6 +28,14 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration
} }
[ [
TestCase(@"TestData\Integration\Buses\vecto_vehicle-primary_heavyBus_nonSmart.xml", 0, TestName = "Run Primary Bus NonSmart HeavyUrban Low"),
TestCase(@"TestData\Integration\Buses\vecto_vehicle-primary_heavyBus_nonSmart.xml", -1, TestName = "Run Primary Bus NonSmart ALL"),
TestCase(@"TestData\Integration\Buses\vecto_vehicle-primary_heavyBus_SmartPS.xml", -1, TestName = "Run Primary Bus SmartPS ALL"),
TestCase(@"TestData\Integration\Buses\vecto_vehicle-primary_heavyBus_SmartES.xml", -1, TestName = "Run Primary Bus SmartES ALL"),
TestCase(@"TestData\Integration\Buses\vecto_vehicle-primary_heavyBus_nonSmart_ESS.xml", -1, TestName = "Run Primary Bus NonSmart ESS ALL"),
TestCase(@"TestData\Integration\Buses\vecto_vehicle-primary_heavyBus_nonSmart.xml", 4, TestName = "Run Primary Bus NonSmart SubUrban Low"), TestCase(@"TestData\Integration\Buses\vecto_vehicle-primary_heavyBus_nonSmart.xml", 4, TestName = "Run Primary Bus NonSmart SubUrban Low"),
TestCase(@"TestData\Integration\Buses\vecto_vehicle-primary_heavyBus_SmartPS.xml", 4, TestName = "Run Primary Bus SmartPS SubUrban Low"), TestCase(@"TestData\Integration\Buses\vecto_vehicle-primary_heavyBus_SmartPS.xml", 4, TestName = "Run Primary Bus SmartPS SubUrban Low"),
TestCase(@"TestData\Integration\Buses\vecto_vehicle-primary_heavyBus_SmartES.xml", 4, TestName = "Run Primary Bus SmartES SubUrban Low"), TestCase(@"TestData\Integration\Buses\vecto_vehicle-primary_heavyBus_SmartES.xml", 4, TestName = "Run Primary Bus SmartES SubUrban Low"),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment