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

Skip to content
Snippets Groups Projects
Commit f36afbda authored by Franz KOBER josef's avatar Franz KOBER josef
Browse files

started with reader implementation of HEV-S heavy lorry

parent c61cc335
No related branches found
No related tags found
No related merge requests found
Showing
with 776 additions and 14 deletions
......@@ -773,9 +773,23 @@ namespace TUGraz.VectoCommon.InputData
public double MechanicalTransmissionEfficiency { get; set; }
public TableData MechanicalTransmissionLossMap { get; set; }
}
public IADCDeclarationInputData ADC {get; set; }
}
public interface IADCDeclarationInputData : IComponentInputData
{
/// <summary>
/// P176
/// </summary>
double Ratio { get; }
/// <summary>
/// P173, P174, P175
/// </summary>
TableData LossMap { get; }
}
public interface IElectricStorageSystemDeclarationInputData
{
......
......@@ -13,6 +13,8 @@ namespace TUGraz.VectoCommon.InputData {
HybridP3,
HybridP4,
GEN,
BatteryElectricE4,
BatteryElectricE3,
BatteryElectricE2,
......@@ -23,6 +25,11 @@ namespace TUGraz.VectoCommon.InputData {
public const string HybridPrefix = "Hybrid";
public const string BatteryElectriPrefix = "BatteryElectric";
public static PowertrainPosition Parse(string pos, string schemaName)
{
return pos == nameof(PowertrainPosition.GEN) ? PowertrainPosition.GEN : Parse(GetPowertrainPositionType(pos, schemaName));
}
public static PowertrainPosition Parse(string pos)
{
if (pos.StartsWith("P",StringComparison.InvariantCultureIgnoreCase)) {
......@@ -54,6 +61,8 @@ namespace TUGraz.VectoCommon.InputData {
return pos.ToString().Replace(HybridPrefix, "");
case PowertrainPosition.HybridP2_5:
return pos.ToString().Replace(HybridPrefix, "").Replace("_", ".");
case PowertrainPosition.GEN:
return nameof(PowertrainPosition.GEN);
}
return pos.ToString().Replace(BatteryElectriPrefix, "").Replace("B", "E");
}
......@@ -78,5 +87,36 @@ namespace TUGraz.VectoCommon.InputData {
return false;
}
}
private static string GetPowertrainPositionType(string pos, string schemaName)
{
switch (schemaName) {
case "Vehicle_HEV-Px_HeavyLorryDeclarationType":
case "Vehicle_HEV-Px_MediumLorryDeclarationType":
case "Vehicle_HEV-Px_PrimaryBusDeclarationType":
case "Components_HEV-Px_LorryType":
case "Components_HEV-Px_PrimaryBusType":
return $"P{pos}";
case "Vehicle_HEV-Sx_HeavyLorryDeclarationType":
case "Vehicle_HEV-Sx_MediumLorryDeclarationType":
case "Vehicle_HEV-Sx_PrimaryBusDeclarationType":
case "Vehicle_HEV-IEPC-S_HeavyLorryDeclarationType":
case "Vehicle_HEV-IEPC-S_MediumLorryDeclarationType":
case "Vehicle_HEV-IEPC-S_PrimaryBusDeclarationType":
case "Vehicle_PEV_HeavyLorryDeclarationType":
case "Vehicle_PEV_MediumLorryDeclarationType":
case "Vehicle_PEV_PrimaryBusDeclarationType":
case "Components_HEV-S2_LorryType":
case "Components_HEV-S3_LorryType":
case "Components_HEV-S4_LorryType":
case "Components_HEV-S2_PrimaryBusType":
case "Components_PEV-E2_LorryType":
case "Components_PEV-E3_LorryType":
case "Components_PEV-E4_LorryType":
return $"E{pos}";
default:
return null;
}
}
}
}
\ No newline at end of file
......@@ -299,8 +299,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
{
public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V210_JOBS;
public new const string XSD_TYPE = "Components_HEV-Px_LorryType";
public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
public const string XSD_HEV_SX_TYPE = "Components_HEV-S2_LorryType";
public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
public static readonly string QUALIFIED_HEV_SX_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_HEV_SX_TYPE);
public XMLDeclarationHEVPxLorryComponentsDataProviderV210(IXMLDeclarationVehicleData vehicle,
XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { }
......
......@@ -1163,7 +1163,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
foreach (XmlNode electricMachineNode in electricMachineNodes) {
var powertrainPosition =
PowertrainPositionHelper.Parse("P" + GetString(XMLNames.ElectricMachine_Position, electricMachineNode));
PowertrainPositionHelper.Parse(
GetString(XMLNames.ElectricMachine_Position, electricMachineNode),
BaseNode.SchemaInfo.SchemaType.Name);
if(!motorTorqueLimits.ContainsKey(powertrainPosition))
motorTorqueLimits.Add(powertrainPosition, new List<Tuple<int, TableData>>());
......@@ -1247,5 +1249,24 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
// ---------------------------------------------------------------------------------------
public class XMLDeclarationHEVSxHeavyLorryDataProviderV210 : XMLDeclarationHEVPxHeavyLorryDataProviderV210
{
public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V210_JOBS;
public new const string XSD_TYPE = "Vehicle_HEV-Sx_HeavyLorryDeclarationType";
public new static readonly string QUALIFIED_XSD_TYPE =
XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
public XMLDeclarationHEVSxHeavyLorryDataProviderV210(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile)
: base(jobData, xmlNode, sourceFile) { }
#region Overrides of XMLDeclarationHEVPxHeavyLorryDataProviderV210
public override TableData MaxPropulsionTorque => null;
#endregion
}
}
\ No newline at end of file
......@@ -14,7 +14,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
{
public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V210_JOBS;
public const string XSD_TYPE = "ElectricMachineType";
public const string XSD_GEN_TYPE = "ElectricMachineGENType";
public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
public static readonly string QUALIFIED_GEN_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_GEN_TYPE);
private IXMLDeclarationVehicleData _vehicle;
private IList<ElectricMachineEntry<IElectricMotorDeclarationInputData>> _entries;
......@@ -37,12 +39,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
private List<ElectricMachineEntry<IElectricMotorDeclarationInputData>> GetEntries()
{
var machineEntry = new ElectricMachineEntry<IElectricMotorDeclarationInputData> {
Position = PowertrainPositionHelper.Parse("P" + GetString(XMLNames.ElectricMachine_PowertrainPosition)),
Position = PowertrainPositionHelper.Parse(
GetString(XMLNames.ElectricMachine_PowertrainPosition),
BaseNode.ParentNode.SchemaInfo.SchemaType.Name),
Count = XmlConvert.ToInt32(GetString(XMLNames.ElectricMachine_Count)),
ElectricMachine = ElectricMachineSystemReader.CreateElectricMachineSystem(GetNode(XMLNames.ElectricMachineSystem)),
};
SetGearRatios(machineEntry);
if(ElementExists(XMLNames.ElectricMachine_P2_5GearRatios))
SetGearRatios(machineEntry);
return new List<ElectricMachineEntry<IElectricMotorDeclarationInputData>>{machineEntry};
}
......
......@@ -6,5 +6,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces
public interface IXMLElectricMachinesDeclarationInputData : IElectricMachinesDeclarationInputData, IXMLResource
{
IXMLElectricMachineSystemReader ElectricMachineSystemReader { set; }
// IXMLADCReader ADCReader { set; }
}
}
......@@ -28,6 +28,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules
Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationHEVPxHeavyLorryDataProviderV210>()
.Named(XMLDeclarationHEVPxHeavyLorryDataProviderV210.QUALIFIED_XSD_TYPE);
Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationHEVSxHeavyLorryDataProviderV210>()
.Named(XMLDeclarationHEVSxHeavyLorryDataProviderV210.QUALIFIED_XSD_TYPE);
Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationHEVPxMediumLorryDataProviderV210>()
.Named(XMLDeclarationHEVPxMediumLorryDataProviderV210.QUALIFIED_XSD_TYPE);
......@@ -42,6 +46,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules
Bind<IXMLVehicleComponentsDeclaration>().To<XMLDeclarationHEVPxLorryComponentsDataProviderV210>()
.Named(XMLDeclarationHEVPxLorryComponentsDataProviderV210.QUALIFIED_XSD_TYPE);
Bind<IXMLVehicleComponentsDeclaration>().To<XMLDeclarationHEVPxLorryComponentsDataProviderV210>()
.Named(XMLDeclarationHEVPxLorryComponentsDataProviderV210.QUALIFIED_HEV_SX_XSD_TYPE);
Bind<IXMLVehicleComponentsDeclaration>().To<XMLDeclarationHEVPxPrimaryBusComponentsDataProviderV210>()
.Named(XMLDeclarationHEVPxPrimaryBusComponentsDataProviderV210.QUALIFIED_XSD_TYPE);
......@@ -49,10 +57,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules
Bind<IXMLComponentReader>().To<XMLComponentReaderV210_HEV_PxHeavyLorry>().Named(XMLComponentReaderV210_HEV_PxHeavyLorry.QUALIFIED_XSD_TYPE);
Bind<IXMLComponentReader>().To<XMLPrimaryBusDeclarationComponentReaderV201>().Named(XMLPrimaryBusDeclarationComponentReaderV201.QUALIFIED_XSD_TYPE);
Bind<IXMLComponentReader>().To<XMLHeavyLorryHEVS2DeclartionComponentReaderV201>().Named(XMLHeavyLorryHEVS2DeclartionComponentReaderV201.QUALIFIED_XSD_TYPE);
Bind<IXMLElectricMachineSystemReader>().To<XMLElectricMachineSystemReaderV210>().Named(XMLElectricMachineSystemReaderV210.QUALIFIED_XSD_TYPE);
Bind<IXMLElectricMachineSystemReader>().To<XMLElectricMachineSystemReaderV210>().Named(XMLElectricMachineSystemReaderV210.QUALIFIED_GEN_XSD_TYPE);
Bind<IXMLREESSReader>().To<XMLREESSReaderV210>().Named(XMLREESSReaderV210.QUALIFIED_XSD_TYPE);
......@@ -95,7 +105,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules
Bind<IXMLElectricMachinesDeclarationInputData>().To<XMLElectricMachinesDeclarationInputDataProvider>()
.Named(XMLElectricMachinesDeclarationInputDataProvider.QUALIFIED_XSD_TYPE);
Bind<IXMLElectricMachinesDeclarationInputData>().To<XMLElectricMachinesDeclarationInputDataProvider>()
.Named(XMLElectricMachinesDeclarationInputDataProvider.QUALIFIED_GEN_XSD_TYPE);
Bind<IXMLElectricMotorDeclarationInputData>().To<XMLElectricMotorDeclarationInputDataProvider>()
.Named(XMLElectricMotorDeclarationInputDataProvider.QUALIFIED_XSD_TYPE);
......
......@@ -79,6 +79,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader
IElectricMotorDeclarationInputData CreateElectricMachineSystem(XmlNode electricMachineSystem);
}
public interface IXMLADCReader
{
IADCDeclarationInputData CreateADCInputData();
}
public interface IXMLREESSReader
{
IREESSPackInputData CreateREESSInputData(XmlNode storageNode, REESSType reessType);
......
......@@ -519,8 +519,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
{
public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V210_JOBS;
public const string XSD_TYPE = "ElectricMachineType";
public const string XSD_GEN_TYPE = "ElectricMachineGENType";
public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
public static readonly string QUALIFIED_GEN_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_GEN_TYPE);
[Inject]
public IDeclarationInjectFactory Factory { protected get; set; }
......@@ -654,4 +656,19 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
return Factory.CreateBusAuxiliaires(version, Vehicle, componentNode, sourceFile);
}
}
// ---------------------------------------------------------------------------------------
public class XMLHeavyLorryHEVS2DeclartionComponentReaderV201 : XMLComponentReaderV10
{
public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V210_JOBS;
public new const string XSD_TYPE = "Components_HEV-S2_LorryType";
public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
public XMLHeavyLorryHEVS2DeclartionComponentReaderV201(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode)
: base(vehicle, componentsNode) { }
}
}
......@@ -5890,7 +5890,10 @@
<Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\Distributed\HeavyLorry\Conventional_heavyLorry_AMT.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\Distributed\HeavyLorry\HEV_heavyLorry_AMT_Px_Capacitor.xml">
<Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\HEV-S_heavyLorry_AMT_S2_ADC.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\HEV_heavyLorry_AMT_Px_Capacitor.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\Distributed\MediumLorry\Conventional_mediumLorry_AMT.xml">
......
......@@ -34,7 +34,7 @@ namespace TUGraz.VectoCore.Tests.XML
}
private const string BASE_DIR = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\Distributed\";
private const string SCHEMA_FOLDER_DIR = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\";
private const string ADDITONAL_TESTS_DIR = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\";
[TestCase(@"HeavyLorry\Conventional_heavyLorry_AMT.xml"),
......@@ -229,7 +229,7 @@ namespace TUGraz.VectoCore.Tests.XML
}
[TestCase(@"HeavyLorry\HEV_heavyLorry_AMT_Px.xml", BASE_DIR)]
[TestCase(@"HEV_heavyLorry_AMT_Px_Capacitor.xml", SCHEMA_FOLDER_DIR)]
[TestCase(@"HEV_heavyLorry_AMT_Px_Capacitor.xml", ADDITONAL_TESTS_DIR)]
public void TestHEVHeaveyLorry(string jobfile, string dir)
{
var filename = Path.Combine(dir, jobfile);
......@@ -578,7 +578,25 @@ namespace TUGraz.VectoCore.Tests.XML
Assert.IsNotNull(vehicle.ElectricMotorTorqueLimits);//Vehicle EM Drive Limits
Assert.IsNotNull(vehicle.MaxPropulsionTorque);//Vehicle Max Prop. Limit
}
[TestCase(@"HeavyLorry\HEV-S_heavyLorry_AMT_S2.xml", BASE_DIR)]
[TestCase(@"HEV-S_heavyLorry_AMT_S2_ADC.xml", ADDITONAL_TESTS_DIR)]
public void TestHEVHeavyLorryAMTS2(string jobfile, string fileDir)
{
var filename = Path.Combine(fileDir, jobfile);
var dataProvider = xmlInputReader.CreateDeclaration(XmlReader.Create(filename));
Assert.NotNull(dataProvider);
Assert.NotNull(dataProvider.JobInputData);
var vehicle = dataProvider.JobInputData.Vehicle;
Assert.NotNull(vehicle);
Assert.IsNotNull(vehicle.Components);
Assert.IsNotNull(vehicle.Components.EngineInputData);
Assert.IsNotNull(vehicle.Components.ElectricMachines);
Assert.AreEqual(2, vehicle.Components.ElectricMachines.Entries.Count);
}
#region Test existence of torque converter
......
......@@ -90,7 +90,6 @@
<File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\Distributed\HeavyLorry\HEV-S_heavyLorry_S3.xml" HomeFolder="Yes"/>
<File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\Distributed\HeavyLorry\HEV-S_heavyLorry_S4.xml" HomeFolder="Yes"/>
<File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\Distributed\HeavyLorry\HEV_heavyLorry_AMT_Px.xml" HomeFolder="Yes"/>
<File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\Distributed\HeavyLorry\HEV_heavyLorry_AMT_Px_Capacitor.xml" HomeFolder="Yes"/>
<File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\Distributed\HeavyLorry\IEPC_heavyLorry.xml" HomeFolder="Yes"/>
<File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\Distributed\HeavyLorry\PEV_heavyLorry_AMT_E2.xml" HomeFolder="Yes"/>
<File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\Distributed\HeavyLorry\PEV_heavyLorry_APT-N_E2.xml" HomeFolder="Yes"/>
......@@ -135,6 +134,7 @@
<File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\Distributed\ExemptedVehicles\exempted_mediumLorry.xml" HomeFolder="Yes"/>
<File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\Distributed\ExemptedVehicles\exempted_primaryBus.xml" HomeFolder="Yes"/>
</Folder>
<File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\HEV_heavyLorry_AMT_Px_Capacitor.xml" HomeFolder="Yes"/>
</Folder>
<Folder FolderName="Schema Multistage 0.1">
<File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages.xml" HomeFolder="Yes"/>
......
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