diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs index 96f9a7301120cf45968bcb4c36313241d2e00b1c..32a853749c09d29f625297581793cfc962d1a36c 100644 --- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs +++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs @@ -774,10 +774,14 @@ namespace TUGraz.VectoCommon.InputData NewtonMeter OverloadTorque { get; } PerSecond OverloadTestSpeed { get; } //TestSpeedOverloadTorque - - Second OverloadTime { get; } //OverloadDuration - - TableData FullLoadCurve { get; } //MaxTorqueCurve + /// <summary> + /// OverloadDuration + /// </summary> + Second OverloadTime { get; } + /// <summary> + /// MaxTorqueCurve + /// </summary> + TableData FullLoadCurve { get; } IList<IElectricMotorPowerMap> PowerMap { get; } } diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/ElectricMachinesDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/ElectricMachinesDataAdapter.cs index 80865bf1d6165bc63ea2c9ce712c2ab61f653b18..ec675f469be665ad9af6d39346ff3859308da4d8 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/ElectricMachinesDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/ElectricMachinesDataAdapter.cs @@ -9,6 +9,7 @@ using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data.ElectricMotor; using TUGraz.VectoCore.Models.SimulationComponent.Impl; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components; namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponents { @@ -18,7 +19,6 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen IElectricMachinesDeclarationInputData electricMachines, IDictionary<PowertrainPosition, IList<Tuple<Volt, TableData>>> torqueLimits, Volt averageVoltage, GearList gearlist = null) { - var result = new List<Tuple<PowertrainPosition, ElectricMotorData>>(); if (electricMachines == null) { return null; } @@ -26,13 +26,31 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen { throw new VectoException("multiple electric propulsion motors are not supported at the moment"); } + CheckTorqueLimits(electricMachines, torqueLimits); return electricMachines.Entries - .Select(x => Tuple.Create(x.Position, - CreateElectricMachine(x.Position, x.ElectricMachine, x.Count, x.RatioADC, x.RatioPerGear, x.MechanicalTransmissionEfficiency, - x.MechanicalTransmissionLossMap, torqueLimits?.First(t => t.Key == x.Position).Value, averageVoltage, gearlist))).ToList(); + .Select(m => Tuple.Create(m.Position, + CreateElectricMachine(m.Position, m.ElectricMachine, m.Count, m.RatioADC, m.RatioPerGear, m.MechanicalTransmissionEfficiency, + m.MechanicalTransmissionLossMap, torqueLimits?.First(t => t.Key == m.Position).Value, averageVoltage, gearlist))).ToList(); - return result; + } + + private void CheckTorqueLimits(IElectricMachinesDeclarationInputData electricMachines, IDictionary<PowertrainPosition, IList<Tuple<Volt, TableData>>> torqueLimits) + { + + foreach (var torqueLimit in torqueLimits.OrderBy(x => x.Key)) { + + //E-machines at position + foreach(var eMachine in electricMachines.Entries.Where(e => e.Position == torqueLimit.Key).Select(e => e.ElectricMachine)) + { + foreach (var torqueLimitVoltageLevel in torqueLimit.Value.Select(tl => tl.Item1)) { + if (eMachine.VoltageLevels.All(vl => vl.VoltageLevel != torqueLimitVoltageLevel)) { + throw new VectoException( + $"Voltage level {torqueLimitVoltageLevel} not found in {eMachine.ElectricMachineType} at position {torqueLimit.Key}"); + } + } + } + } } private ElectricMotorData CreateElectricMachine(PowertrainPosition powertrainPosition, diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs index 43805804f704a73881c7b70d11ba5b93480b529f..6628f805b8ec44da11eff96b77959caf6cda923c 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs @@ -80,7 +80,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { protected abstract void Initialize(); - protected abstract VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading); + protected abstract VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, + Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, + VectoRunData.OvcHevMode ovcMode = VectoRunData.OvcHevMode.NotApplicable); protected virtual void InitializeReport() { diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs index 8eb468caabc773fed72695abc16b70ccc8846523..0df11ea4fdbe064382a5c9514c049c0102160050 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs @@ -103,8 +103,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa _segment = GetSegment(vehicle); _driverdata = DataAdapter.CreateDriverData(); _driverdata.AccelerationCurve = AccelerationCurveReader.ReadFromStream(_segment.AccelerationFile); - var tempVehicle = DataAdapter.CreateVehicleData(vehicle, _segment, _segment.Missions.First(), - _segment.Missions.First().Loadings.First(), _allowVocational); + _airdragData = DataAdapter.CreateAirdragData(vehicle.Components.AirdragInputData, _segment.Missions.First(), _segment); if (InputDataProvider.JobInputData.Vehicle.AxleConfiguration.AxlegearIncludedInGearbox()) @@ -116,29 +115,40 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa _axlegearData = DataAdapter.CreateAxleGearData(InputDataProvider.JobInputData.Vehicle.Components.AxleGearInputData); } _angledriveData = DataAdapter.CreateAngledriveData(InputDataProvider.JobInputData.Vehicle.Components.AngledriveInputData); - var tmpRunData = new VectoRunData() - { - GearboxData = new GearboxData() - { + SetGearboxData(vehicle); + + _retarderData = DataAdapter.CreateRetarderData(vehicle.Components.RetarderInputData); + + _ptoTransmissionData = DataAdapter.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData); + + _municipalPtoTransmissionData = PTODataAdapterLorry.DefaultPTOData(); + + + } + + private void SetGearboxData(IVehicleDeclarationInputData vehicle) + { + if (vehicle.Components.GearboxInputData == null) { + return; + } + var tmpRunData = new VectoRunData() { + GearboxData = new GearboxData() { Type = vehicle.Components.GearboxInputData.Type, } }; + var tempVehicle = DataAdapter.CreateVehicleData(vehicle, _segment, _segment.Missions.First(), + _segment.Missions.First().Loadings.First(), _allowVocational); var tmpStrategy = PowertrainBuilder.GetShiftStrategy(new SimplePowertrainContainer(tmpRunData)); var tmpEngine = DataAdapter.CreateEngineData( vehicle, vehicle.Components.EngineInputData.EngineModes[0], _segment.Missions.First()); _gearboxData = DataAdapter.CreateGearboxData( vehicle, new VectoRunData() { EngineData = tmpEngine, AxleGearData = _axlegearData, VehicleData = tempVehicle }, tmpStrategy); - - _retarderData = DataAdapter.CreateRetarderData(vehicle.Components.RetarderInputData); - - _ptoTransmissionData = DataAdapter.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData); - - _municipalPtoTransmissionData = PTODataAdapterLorry.DefaultPTOData(); _gearshiftData = DataAdapter.CreateGearshiftData( - _gearboxData, _axlegearData.AxleGear.Ratio * (_angledriveData?.Angledrive.Ratio ?? 1.0), tmpEngine.IdleSpeed); - + _gearboxData, _axlegearData.AxleGear.Ratio * (_angledriveData?.Angledrive.Ratio ?? 1.0), + tmpEngine.IdleSpeed); } + #region Implementation of IVectoRunDataFactory public IEnumerable<VectoRunData> NextRun() @@ -217,8 +227,10 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa - protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, - KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading) + protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, + Mission mission, + KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, + VectoRunData.OvcHevMode ovcMode = VectoRunData.OvcHevMode.NotApplicable) { var engine = InputDataProvider.JobInputData.Vehicle.Components.EngineInputData; var engineModes = engine.EngineModes; @@ -285,8 +297,10 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa { throw new NotImplementedException(); } - protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, - KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading) + protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, + Mission mission, + KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, + VectoRunData.OvcHevMode ovcMode = VectoRunData.OvcHevMode.NotApplicable) { throw new NotImplementedException(); } @@ -330,8 +344,10 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa throw new NotImplementedException(); } - protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, - KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading) + protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, + Mission mission, + KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, + VectoRunData.OvcHevMode ovcMode = VectoRunData.OvcHevMode.NotApplicable) { throw new NotImplementedException(); } diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory_Hybrid.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory_Hybrid.cs index 13321328da30e1f7f65c498988e742c22fb894b9..3c892d0ccc6e950169d53e1959b48968fd883c19 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory_Hybrid.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory_Hybrid.cs @@ -42,15 +42,22 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa foreach (var loading in mission.Loadings) { - var simulationRunData = CreateVectoRunData(vehicle, modeIdx, mission, loading); - yield return simulationRunData; + if (vehicle.OvcHev) { + yield return CreateVectoRunData(vehicle, modeIdx, mission, loading, VectoRunData.OvcHevMode.ChargeDepleting); + yield return CreateVectoRunData(vehicle, modeIdx, mission, loading, VectoRunData.OvcHevMode.ChargeSustaining); + + } else { + yield return CreateVectoRunData(vehicle, modeIdx, mission, loading); + } } } } } - protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, - KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading) + protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, + Mission mission, + KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, + VectoRunData.OvcHevMode ovcMode = VectoRunData.OvcHevMode.NotApplicable) { throw new NotImplementedException(); } @@ -58,19 +65,17 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa #endregion } - public class HEV_S2 : Hybrid + public class SerialHybrid : Hybrid { - public HEV_S2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, - ILorryDeclarationDataAdapter declarationDataAdapter) : base(dataProvider, report, - declarationDataAdapter) - { - } + public SerialHybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter) : base(dataProvider, report, declarationDataAdapter) { } #region Overrides of Hybrid - protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, - KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading) + protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, + Mission mission, + KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, + VectoRunData.OvcHevMode ovcMode = VectoRunData.OvcHevMode.NotApplicable) { var engine = InputDataProvider.JobInputData.Vehicle.Components.EngineInputData; @@ -79,44 +84,48 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa var runData = CreateCommonRunData(vehicle, modeIdx, mission, loading, engineModes, _segment); runData.VehicleData = DataAdapter.CreateVehicleData(vehicle, _segment, mission, loading, _allowVocational); runData.EngineData = DataAdapter.CreateEngineData(vehicle, engineMode, mission); - //TODO HM use updated value for InitialSOC runData.BatteryData = DataAdapter.CreateBatteryData(vehicle.Components.ElectricStorage); runData.SuperCapData = DataAdapter.CreateSuperCapData(vehicle.Components.ElectricStorage); runData.ElectricMachinesData = DataAdapter.CreateElectricMachines(vehicle.Components.ElectricMachines, vehicle.ElectricMotorTorqueLimits, runData.BatteryData.CalculateAverageVoltage()); runData.GearboxData = _gearboxData; runData.AirdragData = _airdragData; runData.AngledriveData = _angledriveData; - runData.HybridStrategyParameters = - DataAdapter.CreateHybridStrategy(runData.BatteryData, runData.SuperCapData); - runData.Aux = DataAdapter.CreateAuxiliaryData(vehicle.Components.AuxiliaryInputData, - vehicle.Components.BusAuxiliaries, - mission.MissionType, - _segment.VehicleClass, - vehicle.Length, - vehicle.Components.AxleWheels.NumSteeredAxles); - - - + runData.HybridStrategyParameters = DataAdapter.CreateHybridStrategy(runData.BatteryData, runData.SuperCapData); + runData.Aux = DataAdapter.CreateAuxiliaryData(vehicle.Components.AuxiliaryInputData, vehicle.Components.BusAuxiliaries, mission.MissionType, _segment.VehicleClass, vehicle.Length, vehicle.Components.AxleWheels.NumSteeredAxles); return runData; } #endregion + + } + + public class ParallelHybrid : Hybrid + { + public ParallelHybrid(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter) : base(dataProvider, report, declarationDataAdapter) { } + } + + public class HEV_S2 : SerialHybrid + { + public HEV_S2(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, + ILorryDeclarationDataAdapter declarationDataAdapter) : base(dataProvider, report, + declarationDataAdapter) + { } } - public class HEV_S3 : Hybrid + public class HEV_S3 : SerialHybrid { public HEV_S3(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter) : base(dataProvider, report, declarationDataAdapter) { } } - public class HEV_S4 : Hybrid + public class HEV_S4 : SerialHybrid { public HEV_S4(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter) : base(dataProvider, report, declarationDataAdapter) { } } - public class HEV_S_IEPC : Hybrid + public class HEV_S_IEPC : SerialHybrid { public HEV_S_IEPC(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, ILorryDeclarationDataAdapter declarationDataAdapter) : base(dataProvider, report, declarationDataAdapter) { } diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs index dd59c023084edc1c6f78996fbcf2bf79e8a51c29..40e0df5c4f4b833919c960f47e5f7247e75c557d 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs @@ -124,8 +124,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa CombustionEngineData tmpEngine, VehicleData tempVehicle); #endregion - protected override VectoRunData CreateVectoRunData( - IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading) + protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, + Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, + VectoRunData.OvcHevMode ovcMode = VectoRunData.OvcHevMode.NotApplicable) { if (InputDataProvider.JobInputData.Vehicle.ExemptedVehicle) { diff --git a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs index 3ee80e9bab6d5a5ea34b6633277ab05409e2eb24..4e74fbe8eec4e34d4e38c2d19d2aeec4f12e7c2d 100644 --- a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs +++ b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs @@ -54,9 +54,17 @@ using DriverData = TUGraz.VectoCore.Models.SimulationComponent.Data.DriverData; namespace TUGraz.VectoCore.Models.Simulation.Data { + + [CustomValidation(typeof(VectoRunData), "ValidateRunData")] public class VectoRunData : SimulationComponentData { + public enum OvcHevMode + { + NotApplicable, + ChargeSustaining, + ChargeDepleting, + } public VectoRunData() { diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml index 65234aac7ceab95a82555d1b93d20dd9fb385e7e..2cd99ce062e9827df504f6da45d2b104b1340169 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml @@ -35,17 +35,17 @@ <ElectricMachine> <Position>2</Position> <VoltageLevel> - <Voltage>100</Voltage> + <Voltage>400</Voltage> <MaxTorqueCurve> <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> - <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + <v2.3:Entry outShaftSpeed="4000.00" maxTorque="300.00" minTorque="-300.00"/> </MaxTorqueCurve> </VoltageLevel> <VoltageLevel> - <Voltage>500</Voltage> + <Voltage>600</Voltage> <MaxTorqueCurve> <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> - <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + <v2.3:Entry outShaftSpeed="4000.00" maxTorque="300.00" minTorque="-300.00"/> </MaxTorqueCurve> </VoltageLevel> </ElectricMachine> @@ -53,17 +53,17 @@ <ElectricMachine> <Position>GEN</Position> <VoltageLevel> - <Voltage>100</Voltage> + <Voltage>400</Voltage> <MaxTorqueCurve> <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> - <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + <v2.3:Entry outShaftSpeed="4000.00" maxTorque="300.00" minTorque="-300.00"/> </MaxTorqueCurve> </VoltageLevel> <VoltageLevel> - <Voltage>500</Voltage> + <Voltage>600</Voltage> <MaxTorqueCurve> <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> - <v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/> + <v2.3:Entry outShaftSpeed="4000.00" maxTorque="300.00" minTorque="-300.00"/> </MaxTorqueCurve> </VoltageLevel> </ElectricMachine> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2_ovc.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2_ovc.xml new file mode 100644 index 0000000000000000000000000000000000000000..e2e2ac6aacb4c51155e0c76793f4d32f738482ca --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2_ovc.xml @@ -0,0 +1,611 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4"> + <v2.0:Vehicle xsi:type="Vehicle_HEV-Sx_HeavyLorryDeclarationType" id="a"> + <Manufacturer>TU Graz</Manufacturer> + <ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress> + <Model>HEV Heavy Lorry Px</Model> + <VIN>1234</VIN> + <Date>2017-01-01T00:00:00Z</Date> + <LegislativeCategory>N3</LegislativeCategory> + <ChassisConfiguration>Rigid Lorry</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <CorrectedActualMass>6000</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass> + <IdlingSpeed>650</IdlingSpeed> + <RetarderType>None</RetarderType> + <AngledriveType>None</AngledriveType> + <PTO xsi:type="PTOType"> + <PTOShaftsGearWheels>none</PTOShaftsGearWheels> + <PTOOtherElements>none</PTOOtherElements> + </PTO> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <VocationalVehicle>false</VocationalVehicle> + <NgTankSystem>Liquefied</NgTankSystem> + <!-- optional --> + <SleeperCab>false</SleeperCab> + <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> + <ArchitectureID>S2</ArchitectureID> + <OvcHev>true</OvcHev> + <ADAS xsi:type="ADAS_HEV_Type"> + <EngineStopStart>true</EngineStopStart> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + </ADAS> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType"> + <!-- optional --> + <ElectricMachine> + <Position>2</Position> + <VoltageLevel> + <Voltage>400</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="4000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="4000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + <!-- optional --> + <ElectricMachine> + <Position>GEN</Position> + <VoltageLevel> + <Voltage>400</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="4000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <MaxTorqueCurve> + <v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/> + <v2.3:Entry outShaftSpeed="4000.00" maxTorque="300.00" minTorque="-300.00"/> + </MaxTorqueCurve> + </VoltageLevel> + </ElectricMachine> + </ElectricMotorTorqueLimits> + <Components xsi:type="Components_HEV-S2_LorryType"> + <Engine> + <v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Generic Engine Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Engine</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>VectoEngine x.y</AppVersion> + <Displacement>12730</Displacement> + <IdlingSpeed>560</IdlingSpeed> + <RatedSpeed>2200</RatedSpeed> + <RatedPower>380000</RatedPower> + <MaxEngineTorque>2300</MaxEngineTorque> + <WHTCUrban>1.0097</WHTCUrban> + <WHTCRural>1.0035</WHTCRural> + <WHTCMotorway>1.0200</WHTCMotorway> + <BFColdHot>1.0000</BFColdHot> + <CFRegPer>1.0000</CFRegPer> + <CFNCV>1.0000</CFNCV> + <FuelType>NG</FuelType> + <FuelConsumptionMap> + <Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/> + <Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/> + <Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/> + <Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/> + </FuelConsumptionMap> + <FullLoadAndDragCurve> + <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/> + <Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/> + <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/> + </FullLoadAndDragCurve> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ENG-gooZah3D"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Engine> + <ElectricMachineGEN> + <PowertrainPosition>GEN</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>None</IHPCType> + <VoltageLevel> + <Voltage>400</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + </ElectricMachineGEN> + <ElectricEnergyStorage> + <Battery> + <StringID>0</StringID> + <REESS> + <v2.4:Data xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + <SOCmin>20</SOCmin> + <SOCmax>80</SOCmax> + </Battery> + <Battery> + <StringID>1</StringID> + <REESS> + <v2.4:Data xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <CertificationMethod>Measured</CertificationMethod> + <BatteryType>HPBS</BatteryType> + <RatedCapacity>72.00</RatedCapacity> + <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> + <JunctionboxIncluded>true</JunctionboxIncluded> + <TestingTemperature>20</TestingTemperature> + <OCV> + <Entry SoC="0" OCV="620.00"/> + <Entry SoC="100" OCV="640.00"/> + </OCV> + <InternalResistance> + <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/> + <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> + </InternalResistance> + <CurrentLimits> + <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/> + <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> + </CurrentLimits> + </v2.4:Data> + <Signature> + <di:Reference URI="#BAT-asdf"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue> + </di:Reference> + </Signature> + </REESS> + </Battery> + </ElectricEnergyStorage> + <ElectricMachine> + <PowertrainPosition>2</PowertrainPosition> + <Count>1</Count> + <ElectricMachineSystem> + <v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Measured</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DcDcConverterIncluded>true</DcDcConverterIncluded> + <IHPCType>None</IHPCType> + <VoltageLevel> + <Voltage>400</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <VoltageLevel> + <Voltage>600</Voltage> + <ContinuousTorque>200.00</ContinuousTorque> + <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> + <OverloadTorque>400.00</OverloadTorque> + <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> + <OverloadDuration>30.00</OverloadDuration> + <MaxTorqueCurve> + <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> + <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> + </MaxTorqueCurve> + <PowerMap> + <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/> + <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <Conditioning> + <Entry coolantTempInlet="30" coolingPower="5000"/> + </Conditioning> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#EM-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </ElectricMachineSystem> + <P2.5GearRatios> + <!-- only for P2.5 HEV --> + <Ratio gear="1">1.000</Ratio> + <Ratio gear="2">2.000</Ratio> + </P2.5GearRatios> + </ElectricMachine> + <Gearbox> + <v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <TransmissionType>AMT</TransmissionType> + <MainCertificationMethod>Standard values</MainCertificationMethod> + <Gears xsi:type="GearsDeclarationType"> + <Gear number="1"> + <Ratio>14.930</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + <Gear number="2"> + <Ratio>11.640</Ratio> + <MaxTorque>1900</MaxTorque> + <MaxSpeed>2000</MaxSpeed> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/> + <Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/> + <Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/> + <Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/> + <Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/> + <Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/> + </TorqueLossMap> + </Gear> + </Gears> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#gbx-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Gearbox> + <TorqueConverter> + <!-- optional --> + <v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"> + <Manufacturer>Some Manufacturer</Manufacturer> + <Model>Some Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-02-15T11:00:00Z</Date> + <AppVersion>TC CalcApp 123</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <Characteristics> + <Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/> + <Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/> + <Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/> + </Characteristics> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#TQ-1234"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </TorqueConverter> + <Angledrive> + <!-- optional --> + <v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck Gearbox</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <Ratio>2.345</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#agl-vi2Oak2N"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Angledrive> + <Retarder> + <!-- optional --> + <v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Retarder Manufacturer</Manufacturer> + <Model>Generic Retarder</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <CertificationMethod>Standard values</CertificationMethod> + <RetarderLossMap> + <Entry retarderSpeed="0.00" torqueLoss="10.00"/> + <Entry retarderSpeed="2300.00" torqueLoss="20.58"/> + </RetarderLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#RET-Shai9imi"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Retarder> + <Axlegear> + <v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T11:00:00Z</Date> + <AppVersion>3.0.1</AppVersion> + <LineType>Single portal axle</LineType> + <Ratio>2.590</Ratio> + <CertificationMethod>Standard values</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/> + <Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/> + <Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/> + <Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#AXL-EC3ohnoh"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </Axlegear> + <AxleWheels> + <v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Axles> + <Axle axleNumber="1" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleNonDriven</AxleType> + <TwinTyres>false</TwinTyres> + <Steered>true</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0055</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + <Axle axleNumber="2" xsi:type="AxleDataDeclarationType"> + <AxleType>VehicleDriven</AxleType> + <TwinTyres>true</TwinTyres> + <Steered>false</Steered> + <Tyre> + <Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"> + <Manufacturer>Generic Wheels Manufacturer</Manufacturer> + <Model>Generic Wheel</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-01-11T14:00:00Z</Date> + <AppVersion>Tyre Generation App 1.0</AppVersion> + <Dimension>315/70 R22.5</Dimension> + <RRCDeclared>0.0063</RRCDeclared> + <FzISO>31300</FzISO> + </Data> + <Signature> + <di:Reference URI="#WHL-5432198760-315-70-R22.5"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue> + </di:Reference> + </Signature> + </Tyre> + </Axle> + </Axles> + </v2.0:Data> + </AxleWheels> + <Auxiliaries> + <Data xsi:type="AUX_HEV-S_LorryDataType"> + <Fan> + <Technology>Hydraulic driven - Constant displacement pump</Technology> + </Fan> + <SteeringPump> + <Technology axleNumber="1">Full electric steering gear</Technology> + </SteeringPump> + <ElectricSystem> + <Technology>Standard technology - LED headlights, all</Technology> + </ElectricSystem> + <PneumaticSystem> + <Technology>Medium Supply 2-stage</Technology> + </PneumaticSystem> + <HVAC> + <Technology>Default</Technology> + </HVAC> + </Data> + </Auxiliaries> + <AirDrag> + <!-- optional --> + <Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"> + <Manufacturer>Generic Manufacturer</Manufacturer> + <Model>Generic Model</Model> + <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber> + <Date>2017-03-24T15:00:00Z</Date> + <AppVersion>Vecto AirDrag x.y</AppVersion> + <CdxA_0>6.31</CdxA_0> + <TransferredCdxA>6.32</TransferredCdxA> + <DeclaredCdxA>6.34</DeclaredCdxA> + </Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> + <di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputv24.cs b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputv24.cs index a36f3d894f32e5a2bf68a7a1b0ac4711126521ba..ad6c35042ecbe6769fbc8a925df3655b587a4719 100644 --- a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputv24.cs +++ b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputv24.cs @@ -42,6 +42,7 @@ namespace TUGraz.VectoCore.Tests.XML [TestCase(@"HeavyLorry\Conventional_heavyLorry_AMT.xml"), TestCase(@"HeavyLorry\HEV-S_heavyLorry_AMT_S2.xml"), + TestCase(@"HeavyLorry\HEV-S_heavyLorry_AMT_S2_ovc.xml"), TestCase(@"HeavyLorry\HEV-S_heavyLorry_IEPC-S.xml"), TestCase(@"HeavyLorry\HEV-S_heavyLorry_S3.xml"), TestCase(@"HeavyLorry\HEV-S_heavyLorry_S4.xml"), @@ -53,6 +54,7 @@ namespace TUGraz.VectoCore.Tests.XML TestCase(@"HeavyLorry\PEV_heavyLorry_E4.xml"), TestCase(@"MediumLorry\Conventional_mediumLorry_AMT.xml"), TestCase(@"MediumLorry\HEV-S_mediumLorry_AMT_S2.xml"), + TestCase(@"MediumLorry\HEV-S_mediumLorry_AMT_S2_ovc.xml"), TestCase(@"MediumLorry\HEV-S_mediumLorry_IEPC-S.xml"), TestCase(@"MediumLorry\HEV-S_mediumLorry_S3.xml"), TestCase(@"MediumLorry\HEV-S_mediumLorry_S4.xml"), @@ -87,6 +89,7 @@ namespace TUGraz.VectoCore.Tests.XML ReadDeclarationJob(jobFile); } + [TestCase(@"CompletedBus\Conventional_completedBus_1.xml"), TestCase(@"CompletedBus\HEV_completedBus_1.xml"), TestCase(@"CompletedBus\IEPC_completedBus_1.xml"),