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

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

adapted electric motor xml reader according to the changes of the modified PowerMap structure

parent 8d02577a
Branches
Tags
No related merge requests found
......@@ -762,6 +762,15 @@ namespace TUGraz.VectoCommon.InputData
TableData FullLoadCurve { get; } //MaxTorqueCurve
TableData EfficiencyMap { get; } //PowerMap
IList<IElectricMotorPowerMap> PowerMap { get; }
}
public interface IElectricMotorPowerMap
{
int Gear { get; }
TableData PowerMap { get; }
}
public interface IElectricMachinesDeclarationInputData
......
......@@ -7,26 +7,23 @@ using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.InputData.FileIO.XML.Common;
using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces;
using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
{
public class XMLElectricMotorDeclarationInputDataProviderV2101 : AbstractCommonComponentType, IXMLElectricMotorDeclarationInputData, IElectricMotorVoltageLevel
public abstract class XMLCommonElectricMotorDeclarationInputData : AbstractCommonComponentType, IComponentInputData,
IPowerRatingInputData, IElectricMotorVoltageLevel
{
public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V2101_JOBS;
public const string XSD_TYPE = "ElectricMachineSystemMeasuredDataDeclarationType";
public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
private IList<IElectricMotorVoltageLevel> _voltageLevels;
public XMLElectricMotorDeclarationInputDataProviderV2101(
XmlNode componentNode, string sourceFile) : base(componentNode, sourceFile)
protected XMLCommonElectricMotorDeclarationInputData(XmlNode node, string source) : base(node, source)
{
SourceType = DataSourceType.XMLEmbedded;
}
#region Implementation of IPowerRatingInputData
public virtual ElectricMachineType ElectricMachineType =>
GetString(XMLNames.ElectricMachine_ElectricMachineType).ParseEnum<ElectricMachineType>();
......@@ -53,55 +50,57 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
#endregion
#region Implementation of IElectricMotorDeclarationInputData
#region Overrides of AbstractXMLResource
public virtual Volt TestVoltageOverload =>
GetDouble(XMLNames.ElectricMachine_TestVoltageOverload).SI<Volt>();
protected override XNamespace SchemaNamespace { get; }
protected override DataSourceType SourceType { get; }
public virtual bool DcDcConverterIncluded => GetBool(XMLNames.ElectricMachine_DcDcConverterIncluded);
#endregion
public virtual string IHPCType => GetString(XMLNames.ElectricMachine_IHPCType);
#region Implementation of IElectricMotorVoltageLevel
public virtual IList<IElectricMotorVoltageLevel> VoltageLevels =>
_voltageLevels ?? (_voltageLevels = GetVoltageLevels());
public virtual Volt VoltageLevel => GetDouble(XMLNames.VoltageLevel_Voltage).SI<Volt>();
public virtual TableData DragCurve =>
ReadTableData(XMLNames.DragCurve, XMLNames.DragCurve_Entry, new Dictionary<string, string>
{
{XMLNames.DragCurve_OutShaftSpeed, XMLNames.DragCurve_OutShaftSpeed},
{XMLNames.DragCurve_DragTorque, XMLNames.DragCurve_DragTorque}
});
public virtual TableData FullLoadCurve => ReadFullLoadCurve();
public virtual TableData Conditioning => ElementExists(XMLNames.Conditioning)
? ReadTableData(XMLNames.Conditioning, XMLNames.Conditioning_Entry, new Dictionary<string, string> {
{XMLNames.Conditioning_CoolantTempInlet, XMLNames.Conditioning_CoolantTempInlet},
{XMLNames.Conditioning_CoolingPower, XMLNames.Conditioning_CoolingPower}
})
: null;
public virtual double OverloadRecoveryFactor { get; }
#endregion
public virtual TableData EfficiencyMap => ReadTableData(XMLNames.PowerMap, XMLNames.PowerMap_Entry, new Dictionary<string, string> {
{ XMLNames.PowerMap_OutShaftSpeed, XMLNames.PowerMap_OutShaftSpeed },
{ XMLNames.PowerMap_Torque, XMLNames.PowerMap_Torque },
{ XMLNames.PowerMap_ElectricPower, XMLNames.PowerMap_ElectricPower }
});
#region Implementation of IElectricMotorVoltageLevel
public virtual IList<IElectricMotorPowerMap> PowerMap => GetPowerMaps();
public Volt VoltageLevel => GetDouble(XMLNames.VoltageLevel_Voltage).SI<Volt>();
#endregion
public TableData FullLoadCurve => ReadTableData(XMLNames.MaxTorqueCurve, XMLNames.MaxTorqueCurve_Entry, new Dictionary<string, string> {
protected virtual TableData ReadFullLoadCurve()
{
return ReadTableData(XMLNames.MaxTorqueCurve, XMLNames.MaxTorqueCurve_Entry, new Dictionary<string, string> {
{ XMLNames.MaxTorqueCurve_OutShaftSpeed, XMLNames.MaxTorqueCurve_OutShaftSpeed },
{ XMLNames.MaxTorqueCurve_MaxTorque, XMLNames.MaxTorqueCurve_MaxTorque },
{ XMLNames.MaxTorqueCurve_MinTorque, XMLNames.MaxTorqueCurve_MinTorque }
});
}
public TableData EfficiencyMap => ReadTableData(XMLNames.PowerMap, XMLNames.PowerMap_Entry, new Dictionary<string, string> {
{ XMLNames.PowerMap_OutShaftSpeed, XMLNames.PowerMap_OutShaftSpeed },
{ XMLNames.PowerMap_Torque, XMLNames.PowerMap_Torque },
{ XMLNames.PowerMap_ElectricPower, XMLNames.PowerMap_ElectricPower }
protected virtual TableData ReadDragCurve()
{
return ReadTableData(XMLNames.DragCurve, XMLNames.DragCurve_Entry, new Dictionary<string, string>
{
{XMLNames.DragCurve_OutShaftSpeed, XMLNames.DragCurve_OutShaftSpeed},
{XMLNames.DragCurve_DragTorque, XMLNames.DragCurve_DragTorque}
});
}
#endregion
protected virtual TableData ReadConditioning()
{
return ReadTableData(XMLNames.Conditioning, XMLNames.Conditioning_Entry, new Dictionary<string, string> {
{ XMLNames.Conditioning_CoolantTempInlet, XMLNames.Conditioning_CoolantTempInlet },
{ XMLNames.Conditioning_CoolingPower, XMLNames.Conditioning_CoolingPower }
});
}
private IList<IElectricMotorVoltageLevel> GetVoltageLevels()
protected virtual IList<IElectricMotorVoltageLevel> GetVoltageLevels()
{
var voltageLevelNodes = GetNodes(XMLNames.ElectricMachine_VoltageLevel);
if (voltageLevelNodes.IsNullOrEmpty())
......@@ -110,13 +109,95 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
var voltageLevels = new List<IElectricMotorVoltageLevel>();
foreach (XmlNode voltageLevelNode in voltageLevelNodes) {
voltageLevels.Add(new XMLElectricMotorDeclarationInputDataProviderV2101(voltageLevelNode, null));
voltageLevels.Add(new XMLElectricMotorIEPCIInputDataProviderV2101(null, voltageLevelNode, null));
}
return voltageLevels;
}
private IList<IElectricMotorPowerMap> GetPowerMaps()
{
var powerMapNodes = GetNodes(XMLNames.PowerMap);
if (powerMapNodes.IsNullOrEmpty())
return null;
var powerMaps = new List<IElectricMotorPowerMap>();
foreach (XmlNode powerMapNode in powerMapNodes)
{
powerMaps.Add(new ElectricMotorPowerMap(powerMapNode));
}
return powerMaps;
}
public class ElectricMotorPowerMap : AbstractXMLType, IElectricMotorPowerMap
{
private Dictionary<string, string> powerMapMapping = new Dictionary<string, string> {
{ XMLNames.PowerMap_OutShaftSpeed, XMLNames.PowerMap_OutShaftSpeed },
{ XMLNames.PowerMap_Torque, XMLNames.PowerMap_Torque },
{ XMLNames.PowerMap_ElectricPower, XMLNames.PowerMap_ElectricPower }
};
public ElectricMotorPowerMap(XmlNode xmlNode) : base(xmlNode) { }
#region Implementation of IElectricMotorPowerMap
public virtual int Gear => Convert.ToInt32(GetAttribute(BaseNode, "gear"));
public virtual TableData PowerMap => ReadPowerMap();
private TableData ReadPowerMap()
{
var powerMapEntryNodes = GetNodes(XMLNames.PowerMap_Entry);
return XMLHelper.ReadTableData(powerMapMapping, powerMapEntryNodes);
}
#endregion
}
}
// ---------------------------------------------------------------------------------------
public class XMLElectricMotorDeclarationInputDataProviderV2101 : XMLCommonElectricMotorDeclarationInputData,
IXMLElectricMotorDeclarationInputData
{
public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V2101_JOBS;
public const string XSD_TYPE = "ElectricMachineSystemMeasuredDataDeclarationType";
public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
private IList<IElectricMotorVoltageLevel> _voltageLevels;
public XMLElectricMotorDeclarationInputDataProviderV2101(
XmlNode componentNode, string sourceFile) : base(componentNode, sourceFile)
{
SourceType = DataSourceType.XMLEmbedded;
}
#region Implementation of IElectricMotorDeclarationInputData
public virtual Volt TestVoltageOverload =>
GetDouble(XMLNames.ElectricMachine_TestVoltageOverload).SI<Volt>();
public virtual bool DcDcConverterIncluded => GetBool(XMLNames.ElectricMachine_DcDcConverterIncluded);
public virtual string IHPCType => GetString(XMLNames.ElectricMachine_IHPCType);
public virtual IList<IElectricMotorVoltageLevel> VoltageLevels =>
_voltageLevels ?? (_voltageLevels = GetVoltageLevels());
public virtual TableData DragCurve => ReadDragCurve();
public virtual TableData Conditioning => ElementExists(XMLNames.Conditioning)
? ReadConditioning() : null;
public virtual double OverloadRecoveryFactor { get; }
#endregion
#region Overrides of AbstractXMLResource
protected override XNamespace SchemaNamespace => NAMESPACE_URI;
......@@ -125,6 +206,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
#endregion
}
// ---------------------------------------------------------------------------------------
public class XMLElectricMotorIHPCDeclarationInputDataProviderV2101 : XMLElectricMotorDeclarationInputDataProviderV2101
......@@ -134,16 +216,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
public XMLElectricMotorIHPCDeclarationInputDataProviderV2101(XmlNode componentNode, string sourceFile)
: base(componentNode, sourceFile)
{
}
: base(componentNode, sourceFile) { }
}
// ---------------------------------------------------------------------------------------
public class XMLElectricMotorIEPCIInputDataProviderV2101 : AbstractCommonComponentType, IXMLIEPCInputData,
IElectricMotorVoltageLevel, IGearEntry
public class XMLElectricMotorIEPCIInputDataProviderV2101 : XMLCommonElectricMotorDeclarationInputData, IXMLIEPCInputData
{
public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V2101_JOBS;
public const string XSD_TYPE = "IEPCMeasuredDataDeclarationType";
......@@ -153,6 +231,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
private IList<IElectricMotorVoltageLevel> _voltageLevels;
private IList<IGearEntry> _gears;
public XMLElectricMotorIEPCIInputDataProviderV2101(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile)
: base(componentNode, sourceFile)
{
......@@ -181,34 +260,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
#endregion
#region Implementation of IPowerRatingInputData
public virtual ElectricMachineType ElectricMachineType =>
GetString(XMLNames.ElectricMachine_ElectricMachineType).ParseEnum<ElectricMachineType>();
public virtual Watt R85RatedPower =>
GetDouble(XMLNames.ElectricMachine_R85RatedPower).SI<Watt>();
public virtual KilogramSquareMeter Inertia =>
GetDouble(XMLNames.ElectricMachine_RotationalInertia).SI<KilogramSquareMeter>();
public virtual NewtonMeter ContinuousTorque =>
GetDouble(XMLNames.ElectricMachine_ContinuousTorque).SI<NewtonMeter>();
public virtual PerSecond ContinuousTorqueSpeed =>
GetDouble(XMLNames.ElectricMachine_TestSpeedContinuousTorque).SI<PerSecond>();
public virtual NewtonMeter OverloadTorque =>
GetDouble(XMLNames.ElectricMachine_OverloadTorque).SI<NewtonMeter>();
public virtual PerSecond OverloadTestSpeed =>
GetDouble(XMLNames.ElectricMachine_TestSpeedOverloadTorque).SI<PerSecond>();
public virtual Second OverloadTime =>
GetDouble(XMLNames.ElectricMachine_OverloadDuration).SI<Second>();
#endregion
#region Implementation of IIEPCDeclarationInputData
public virtual Volt TestVoltageOverload =>
......@@ -224,89 +275,50 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
public virtual IList<IGearEntry> Gears =>
_gears ?? (_gears = GetGearEntries());
public virtual IList<IElectricMotorVoltageLevel> VoltageLevels =>
_voltageLevels ?? (_voltageLevels = GetVoltageLevels());
public virtual TableData DragCurve =>
ReadTableData(XMLNames.DragCurve, XMLNames.DragCurve_Entry, new Dictionary<string, string>
{
{XMLNames.DragCurve_OutShaftSpeed, XMLNames.DragCurve_OutShaftSpeed},
{XMLNames.DragCurve_DragTorque, XMLNames.DragCurve_DragTorque}
});
public virtual TableData DragCurve => ReadDragCurve();
public virtual TableData Conditioning => ElementExists(XMLNames.Conditioning)
? ReadTableData(XMLNames.Conditioning, XMLNames.Conditioning_Entry, new Dictionary<string, string> {
{XMLNames.Conditioning_CoolantTempInlet, XMLNames.Conditioning_CoolantTempInlet},
{XMLNames.Conditioning_CoolingPower, XMLNames.Conditioning_CoolingPower}
})
: null;
? ReadConditioning() : null;
#endregion
#region Implementation of IElectricMotorVoltageLevel
public virtual Volt VoltageLevel => GetDouble(XMLNames.VoltageLevel_Voltage).SI<Volt>();
public virtual TableData FullLoadCurve => ReadTableData(XMLNames.MaxTorqueCurve, XMLNames.MaxTorqueCurve_Entry, new Dictionary<string, string> {
{XMLNames.MaxTorqueCurve_OutShaftSpeed, XMLNames.MaxTorqueCurve_OutShaftSpeed},
{XMLNames.MaxTorqueCurve_MaxTorque, XMLNames.MaxTorqueCurve_MaxTorque},
{XMLNames.MaxTorqueCurve_MinTorque, XMLNames.MaxTorqueCurve_MinTorque}
});
public virtual TableData EfficiencyMap => ReadTableData(XMLNames.PowerMap, XMLNames.PowerMap_Entry, new Dictionary<string, string> {
{ XMLNames.PowerMap_OutShaftSpeed, XMLNames.PowerMap_OutShaftSpeed },
{ XMLNames.PowerMap_Torque, XMLNames.PowerMap_Torque },
{ XMLNames.PowerMap_ElectricPower, XMLNames.PowerMap_ElectricPower }
});
#endregion
private IList<IElectricMotorVoltageLevel> GetVoltageLevels()
private IList<IGearEntry> GetGearEntries()
{
var voltageLevelNodes = GetNodes(XMLNames.ElectricMachine_VoltageLevel);
if (voltageLevelNodes.IsNullOrEmpty())
var gearNodes = GetNodes(XMLNames.Gear_EntryName);
if (gearNodes.IsNullOrEmpty())
return null;
var voltageLevels = new List<IElectricMotorVoltageLevel>();
foreach (XmlNode voltageLevelNode in voltageLevelNodes)
var gears = new List<IGearEntry>();
foreach (XmlNode gearNode in gearNodes)
{
voltageLevels.Add(new XMLElectricMotorIEPCIInputDataProviderV2101(null, voltageLevelNode, null));
gears.Add(new GearEntry(gearNode));
}
return voltageLevels;
return gears;
}
public class GearEntry : AbstractXMLType, IGearEntry
{
public GearEntry(XmlNode node) : base(node) { }
#region Implementation of IGearEntry
public int GearNumber => Convert.ToInt32(GetAttribute(BaseNode, XMLNames.Gear_GearNumber_Attr));
public virtual int GearNumber => Convert.ToInt32(GetAttribute(BaseNode, XMLNames.Gear_GearNumber_Attr));
public double Ratio => GetDouble(XMLNames.Gear_Ratio);
public virtual double Ratio => GetDouble(XMLNames.Gear_Ratio);
public NewtonMeter MaxOutputShaftTorque => ElementExists(XMLNames.Gear_MaxOutputShaftTorque)
public virtual NewtonMeter MaxOutputShaftTorque => ElementExists(XMLNames.Gear_MaxOutputShaftTorque)
? GetDouble(XMLNames.Gear_MaxOutputShaftTorque).SI<NewtonMeter>()
: null;
public PerSecond MaxOutputShaftSpeed => ElementExists(XMLNames.Gear_MaxOutputShaftSpeed)
public virtual PerSecond MaxOutputShaftSpeed => ElementExists(XMLNames.Gear_MaxOutputShaftSpeed)
? GetDouble(XMLNames.Gear_MaxOutputShaftSpeed).SI<PerSecond>()
: null;
#endregion
private IList<IGearEntry> GetGearEntries()
{
var gearNodes = GetNodes(XMLNames.Gear_EntryName);
if (gearNodes.IsNullOrEmpty())
return null;
var gears = new List<IGearEntry>();
foreach (XmlNode gearNode in gearNodes)
{
gears.Add(new XMLElectricMotorIEPCIInputDataProviderV2101(null, gearNode, null));
}
return gears;
}
#region Overrides of AbstractXMLResource
......
......@@ -300,6 +300,7 @@ namespace TUGraz.VectoCore.InputData.Impl
public Volt VoltageLevel { get; internal set; }
public TableData FullLoadCurve { get; internal set; }
public TableData EfficiencyMap { get; internal set; }
public IList<IElectricMotorPowerMap> PowerMap { get; internal set; }
#endregion
}
......
......@@ -137,7 +137,7 @@
<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
</MaxTorqueCurve>
<PowerMap>
<PowerMap gear="1">
<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"/>
......@@ -150,7 +150,7 @@
<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
</MaxTorqueCurve>
<PowerMap>
<PowerMap gear="1">
<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"/>
......@@ -300,7 +300,7 @@
<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
</MaxTorqueCurve>
<PowerMap>
<PowerMap gear="1">
<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"/>
......@@ -313,7 +313,7 @@
<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
</MaxTorqueCurve>
<PowerMap>
<PowerMap gear="1">
<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"/>
......
......@@ -122,7 +122,7 @@
<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
</MaxTorqueCurve>
<PowerMap>
<PowerMap gear="1">
<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"/>
......@@ -135,7 +135,7 @@
<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
</MaxTorqueCurve>
<PowerMap>
<PowerMap gear="1">
<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"/>
......
<?xml version="1.0" encoding="UTF-8"?><tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.2" 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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.10.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xmlns:v2.10.2="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.2"> <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_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>Losses included in Gearbox</RetarderType> <RetarderRatio>2.000</RetarderRatio> <AngledriveType>Separate Angledrive</AngledriveType> <PTO xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:PTOType"> <v2.0:PTOShaftsGearWheels>none</v2.0:PTOShaftsGearWheels> <v2.0:PTOOtherElements>none</v2.0:PTOOtherElements> </PTO> <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VocationalVehicle>true</VocationalVehicle> <SleeperCab>true</SleeperCab> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>P2.5</ArchitectureID> <OvcHev>true</OvcHev> <MaxChargingPower>11</MaxChargingPower> <ADAS xsi:type="ADAS_HEV_Type"> <v2.10.2:EngineStopStart>true</v2.10.2:EngineStopStart> <v2.10.2:PredictiveCruiseControl>1,2,3</v2.10.2:PredictiveCruiseControl> </ADAS> <Components xsi:type="Components_HEV-Px_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> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </v2.0:Signature> </Engine> <ElectricMachine> <PowertrainPosition>2</PowertrainPosition> <Count>1</Count> <ElectricMachineSystem> <v2.10.1:Data xsi:type="v2.10.1:ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1"> <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>1</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <TestVoltageOverload>483</TestVoltageOverload> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> <VoltageLevel> <Voltage>400</Voltage> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap gear="1"> <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> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap gear="1"> <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> </v2.10.1:Data> <v2.10.1:Signature> <di:Reference> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </v2.10.1:Signature> </ElectricMachineSystem> <P2.5GearRatios><!-- only for P2.5 HEV --> <Ratio gear="1">1.000</Ratio> <Ratio gear="2">2.000</Ratio> </P2.5GearRatios> </ElectricMachine> <ElectricEnergyStorage> <Battery> <StringID>0</StringID> <REESS> <v2.10.2:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>tokena</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.10.2:Data> <Signature> <di:Reference> <di:DigestMethod Algorithm="asf"/> <di:DigestValue/> </di:Reference> </Signature> </REESS> <SOCmin>20</SOCmin> <SOCmax>80</SOCmax> </Battery> <Battery> <StringID>1</StringID> <REESS> <v2.10.2:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1"> <Manufacturer>b</Manufacturer> <Model>b</Model> <CertificationNumber>tokenb</CertificationNumber> <Date>2017-02-02T00:00:00Z</Date> <AppVersion>bbbbb</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>73.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="621.00"/> <Entry SoC="100" OCV="641.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="11.00" R_10="12.00" R_20="13.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="51.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.10.2:Data> <Signature> <di:Reference> <di:DigestMethod Algorithm="bsf"/> <di:DigestValue/> </di:Reference> </Signature> </REESS> </Battery> </ElectricEnergyStorage> <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>ieNmjofFObDBGnB7+GX9of3HYe3ydK/ra+YvmULVJIk=</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> <di:DigestMethod Algorithm=""></di:DigestMethod> <di:DigestValue></di:DigestValue> </di:Reference> </v2.0:Signature> </TorqueConverter> <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>o4nYTajmWKaduxys5ShmnfJbYd23rpxZ01JbuG6dmzU=</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>4TkUGQTX8tevHOU9Cj9uyCFuI/aqcEYlo/gyVjVQmv0=</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>KljvtvGUUQ/L7MiLVAqU+bckL5PNDNNwdeLH9kUVrfM=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> </Axles> </v2.0:Data> </AxleWheels> <Auxiliaries> <Data xsi:type="AUX_HEV-P_LorryDataType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> <SteeringPump> <Technology axleNumber="1">Variable displacement elec. controlled</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> </Components> </v2.0:Vehicle></tns:VectoInputDeclaration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?><tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.2" 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.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.10.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xmlns:v2.10.2="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.2"> <v2.0:Vehicle xsi:type="Vehicle_HEV-Px_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>Losses included in Gearbox</RetarderType> <RetarderRatio>2.000</RetarderRatio> <AngledriveType>Separate Angledrive</AngledriveType> <PTO xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:PTOType"> <v2.0:PTOShaftsGearWheels>none</v2.0:PTOShaftsGearWheels> <v2.0:PTOOtherElements>none</v2.0:PTOOtherElements> </PTO> <ZeroEmissionVehicle>true</ZeroEmissionVehicle> <VocationalVehicle>true</VocationalVehicle> <SleeperCab>true</SleeperCab> <VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber> <ArchitectureID>P2.5</ArchitectureID> <OvcHev>true</OvcHev> <MaxChargingPower>11</MaxChargingPower> <ADAS xsi:type="ADAS_HEV_Type"> <v2.10.2:EngineStopStart>true</v2.10.2:EngineStopStart> <v2.10.2:PredictiveCruiseControl>1,2,3</v2.10.2:PredictiveCruiseControl> </ADAS> <Components xsi:type="Components_HEV-Px_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> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </v2.0:Signature> </Engine> <ElectricMachine> <PowertrainPosition>2</PowertrainPosition> <Count>1</Count> <ElectricMachineSystem> <v2.10.1:Data xsi:type="v2.10.1:ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1"> <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>1</R85RatedPower> <RotationalInertia>0.10</RotationalInertia> <ContinuousTorque>200.00</ContinuousTorque> <TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque> <OverloadTorque>400.00</OverloadTorque> <TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque> <OverloadDuration>30.00</OverloadDuration> <TestVoltageOverload>483</TestVoltageOverload> <DcDcConverterIncluded>true</DcDcConverterIncluded> <IHPCType>None</IHPCType> <VoltageLevel> <Voltage>400</Voltage> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap gear="1"> <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> <PowerMap gear="2"> <Entry outShaftSpeed="0.00" torque="500.00" electricPower="1100.00"/> <Entry outShaftSpeed="0.00" torque="-500.00" electricPower="-1100.00"/> <Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="30000.00"/> <Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-30000.00"/> </PowerMap> <PowerMap gear="3"> <Entry outShaftSpeed="0.00" torque="600.00" electricPower="1200.00"/> <Entry outShaftSpeed="0.00" torque="-600.00" electricPower="-1200.00"/> <Entry outShaftSpeed="6000.00" torque="6000.00" electricPower="40000.00"/> <Entry outShaftSpeed="6000.00" torque="-6000.00" electricPower="-40000.00"/> </PowerMap> </VoltageLevel> <VoltageLevel> <Voltage>600</Voltage> <MaxTorqueCurve> <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/> <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/> </MaxTorqueCurve> <PowerMap gear="1"> <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> <PowerMap gear="2"> <Entry outShaftSpeed="0.00" torque="500.00" electricPower="1100.00"/> <Entry outShaftSpeed="0.00" torque="-500.00" electricPower="-1100.00"/> <Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="30000.00"/> <Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-30000.00"/> </PowerMap> </VoltageLevel> <DragCurve> <Entry outShaftSpeed="0.00" dragTorque="10.00"/> <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> </DragCurve> </v2.10.1:Data> <v2.10.1:Signature> <di:Reference> <di:DigestMethod Algorithm=""/> <di:DigestValue/> </di:Reference> </v2.10.1:Signature> </ElectricMachineSystem> <P2.5GearRatios><!-- only for P2.5 HEV --> <Ratio gear="1">1.000</Ratio> <Ratio gear="2">2.000</Ratio> </P2.5GearRatios> </ElectricMachine> <ElectricEnergyStorage> <Battery> <StringID>0</StringID> <REESS> <v2.10.2:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1"> <Manufacturer>a</Manufacturer> <Model>a</Model> <CertificationNumber>tokena</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.10.2:Data> <Signature> <di:Reference> <di:DigestMethod Algorithm="asf"/> <di:DigestValue/> </di:Reference> </Signature> </REESS> <SOCmin>20</SOCmin> <SOCmax>80</SOCmax> </Battery> <Battery> <StringID>1</StringID> <REESS> <v2.10.2:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1"> <Manufacturer>b</Manufacturer> <Model>b</Model> <CertificationNumber>tokenb</CertificationNumber> <Date>2017-02-02T00:00:00Z</Date> <AppVersion>bbbbb</AppVersion> <CertificationMethod>Measured</CertificationMethod> <BatteryType>HPBS</BatteryType> <RatedCapacity>73.00</RatedCapacity> <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded> <JunctionboxIncluded>true</JunctionboxIncluded> <TestingTemperature>20</TestingTemperature> <OCV> <Entry SoC="0" OCV="621.00"/> <Entry SoC="100" OCV="641.00"/> </OCV> <InternalResistance> <Entry SoC="0" R_2="11.00" R_10="12.00" R_20="13.00"/> <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/> </InternalResistance> <CurrentLimits> <Entry SoC="0" maxChargingCurrent="51.00" maxDischargingCurrent="0.00"/> <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/> </CurrentLimits> </v2.10.2:Data> <Signature> <di:Reference> <di:DigestMethod Algorithm="bsf"/> <di:DigestValue/> </di:Reference> </Signature> </REESS> </Battery> </ElectricEnergyStorage> <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>ieNmjofFObDBGnB7+GX9of3HYe3ydK/ra+YvmULVJIk=</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> <di:DigestMethod Algorithm=""></di:DigestMethod> <di:DigestValue></di:DigestValue> </di:Reference> </v2.0:Signature> </TorqueConverter> <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>o4nYTajmWKaduxys5ShmnfJbYd23rpxZ01JbuG6dmzU=</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>4TkUGQTX8tevHOU9Cj9uyCFuI/aqcEYlo/gyVjVQmv0=</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>KljvtvGUUQ/L7MiLVAqU+bckL5PNDNNwdeLH9kUVrfM=</di:DigestValue> </di:Reference> </Signature> </Tyre> </Axle> </Axles> </v2.0:Data> </AxleWheels> <Auxiliaries> <Data xsi:type="AUX_HEV-P_LorryDataType"> <Fan> <Technology>Hydraulic driven - Constant displacement pump</Technology> </Fan> <SteeringPump> <Technology axleNumber="1">Variable displacement elec. controlled</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> </Components> </v2.0:Vehicle></tns:VectoInputDeclaration>
\ No newline at end of file
......
......@@ -381,24 +381,49 @@ namespace TUGraz.VectoCore.Tests.XML
var voltageLevel = voltageLevels[0];
Assert.AreEqual(400.SI<Volt>(), voltageLevel.VoltageLevel);
TestMaxTorqueCurveEntry("0.00","450.00","-450.00", voltageLevel.FullLoadCurve.Rows[0]);
TestMaxTorqueCurveEntry("4000.00", "100.00", "-100.00", voltageLevel.FullLoadCurve.Rows[1]);
TestPowerMapEntry("0.00", "400.00", "1000.00", voltageLevel.EfficiencyMap.Rows[0]);
TestPowerMapEntry("0.00", "-400.00", "-1000.00", voltageLevel.EfficiencyMap.Rows[1]);
TestPowerMapEntry("4000.00", "4000.00", "20000.00", voltageLevel.EfficiencyMap.Rows[2]);
TestPowerMapEntry("4000.00", "-4000.00", "-20000.00", voltageLevel.EfficiencyMap.Rows[3]);
TestMaxTorqueCurve(voltageLevel.FullLoadCurve);
TestPowerMap(voltageLevel.PowerMap);
voltageLevel = voltageLevels[1];
Assert.AreEqual(600.SI<Volt>(), voltageLevel.VoltageLevel);
TestMaxTorqueCurveEntry("0.00", "450.00", "-450.00", voltageLevel.FullLoadCurve.Rows[0]);
TestMaxTorqueCurveEntry("4000.00", "100.00", "-100.00", voltageLevel.FullLoadCurve.Rows[1]);
TestMaxTorqueCurve(voltageLevel.FullLoadCurve);
TestPowerMap(voltageLevel.PowerMap);
}
private void TestPowerMap(IList<IElectricMotorPowerMap> powerMap)
{
for (int i = 1; i <= powerMap.Count; i++) {
Assert.AreEqual(i, powerMap[i-1].Gear);
}
if (powerMap.Count >= 1) {
TestPowerMapEntry("0.00", "400.00", "1000.00", powerMap[0].PowerMap.Rows[0]);
TestPowerMapEntry("0.00", "-400.00", "-1000.00", powerMap[0].PowerMap.Rows[1]);
TestPowerMapEntry("4000.00", "4000.00", "20000.00", powerMap[0].PowerMap.Rows[2]);
TestPowerMapEntry("4000.00", "-4000.00", "-20000.00", powerMap[0].PowerMap.Rows[3]);
}
if (powerMap.Count >= 2) {
TestPowerMapEntry("0.00", "500.00", "1100.00", powerMap[1].PowerMap.Rows[0]);
TestPowerMapEntry("0.00", "-500.00", "-1100.00", powerMap[1].PowerMap.Rows[1]);
TestPowerMapEntry("5000.00", "5000.00", "30000.00", powerMap[1].PowerMap.Rows[2]);
TestPowerMapEntry("5000.00", "-5000.00", "-30000.00", powerMap[1].PowerMap.Rows[3]);
}
TestPowerMapEntry("0.00", "400.00", "1000.00", voltageLevel.EfficiencyMap.Rows[0]);
TestPowerMapEntry("0.00", "-400.00", "-1000.00", voltageLevel.EfficiencyMap.Rows[1]);
TestPowerMapEntry("4000.00", "4000.00", "20000.00", voltageLevel.EfficiencyMap.Rows[2]);
TestPowerMapEntry("4000.00", "-4000.00", "-20000.00", voltageLevel.EfficiencyMap.Rows[3]);
if (powerMap.Count == 3) {
TestPowerMapEntry("0.00", "600.00", "1200.00", powerMap[2].PowerMap.Rows[0]);
TestPowerMapEntry("0.00", "-600.00", "-1200.00", powerMap[2].PowerMap.Rows[1]);
TestPowerMapEntry("6000.00", "6000.00", "40000.00", powerMap[2].PowerMap.Rows[2]);
TestPowerMapEntry("6000.00", "-6000.00", "-40000.00", powerMap[2].PowerMap.Rows[3]);
}
}
private void TestMaxTorqueCurve(TableData torqueCurve)
{
TestMaxTorqueCurveEntry("0.00", "450.00", "-450.00", torqueCurve.Rows[0]);
TestMaxTorqueCurveEntry("4000.00", "100.00", "-100.00", torqueCurve.Rows[1]);
}
private void TestMaxTorqueCurveEntry(string outShaftSpeed, string maxTorque, string minTorque, DataRow row)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment