diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMotorDeclarationInputDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMotorDeclarationInputDataProvider.cs index 117a95ea192a81bb889d78b304529b701f92c4f0..a8d5bd96a4643142a9dd42f38f7d0e3d2988fa74 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMotorDeclarationInputDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMotorDeclarationInputDataProvider.cs @@ -510,8 +510,16 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public class XMLElectricMotorIEPCIInputDataProviderV01 : XMLElectricMotorIEPCIInputDataProviderV23 { public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1; - public const string XSD_TYPE = "IEPCMeasuredDataDeclarationType"; + public const string XSD_TYPE = "IEPCDataDeclarationType"; public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE); public XMLElectricMotorIEPCIInputDataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { } + + #region Overrides of XMLElectricMotorIEPCIInputDataProviderV23 + + protected override void ValidateGearCount() + { + } + + #endregion } } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFIEPCType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFIEPCType.cs index 82747fa1aad6737994fcb197a2e1d4e091472b29..0240b89e73b2c90538da5c60b92c2e84716353fb 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFIEPCType.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFIEPCType.cs @@ -33,7 +33,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. foreach (var electricMotorVoltageLevel in iepcData.VoltageLevels) { var voltageLevel = new XElement(_mrf + XMLNames.ElectricMachine_VoltageLevel, - new XAttribute("voltage", electricMotorVoltageLevel.VoltageLevel.ToXMLFormat(0)), + electricMotorVoltageLevel.VoltageLevel == null + ? null + : new XAttribute("voltage", electricMotorVoltageLevel.VoltageLevel.ToXMLFormat(0)), new XElement(_mrf + "MaxContinuousPower", (electricMotorVoltageLevel.ContinuousTorque * electricMotorVoltageLevel.ContinuousTorqueSpeed) .ToXMLFormat(0))); diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFIepcType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFIepcType.cs index 9000b5e8459dda8e056c5eb0297d2c52e5813c75..3545218ed395c1ec99669e045097edd737b1b894 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFIepcType.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFIepcType.cs @@ -35,7 +35,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF return new XElement(_vif + XMLNames.Component_IEPC, new XElement(_vif + XMLNames.ComponentDataWrapper, - new XAttribute(_xsi + XMLNames.XSIType, "IEPCMeasuredDataDeclarationType"), + new XAttribute(_xsi + XMLNames.XSIType, "IEPCDataDeclarationType"), new XElement(_vif + XMLNames.Component_Manufacturer, iepc.Manufacturer), new XElement(_vif + XMLNames.Component_Model, iepc.Model), new XElement(_vif + XMLNames.Component_CertificationNumber, iepc.CertificationNumber), @@ -94,14 +94,16 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF foreach (var voltageEntry in voltageData) { var voltage = new XElement(_vif + XMLNames.ElectricMachine_VoltageLevel, - new XElement(_vif + XMLNames.VoltageLevel_Voltage, voltageEntry.VoltageLevel.ToXMLFormat(0)), + voltageEntry.VoltageLevel == null + ? null + : new XElement(_vif + XMLNames.VoltageLevel_Voltage, voltageEntry.VoltageLevel.ToXMLFormat(0)), new XElement(_vif + XMLNames.ElectricMachine_ContinuousTorque, voltageEntry.ContinuousTorque.ToXMLFormat(2)), new XElement(_vif + XMLNames.ElectricMachine_TestSpeedContinuousTorque, voltageEntry.ContinuousTorqueSpeed.ToXMLFormat(2)), new XElement(_vif + XMLNames.ElectricMachine_OverloadTorque, voltageEntry.OverloadTorque.ToXMLFormat(2)), new XElement(_vif + XMLNames.ElectricMachine_TestSpeedOverloadTorque, voltageEntry.OverloadTestSpeed.ToXMLFormat(2)), new XElement(_vif + XMLNames.ElectricMachine_OverloadDuration, voltageEntry.OverloadTime.ToXMLFormat(2)), - GetMaxTorqueCurve(voltageEntry.FullLoadCurve), - GetPowerMap(voltageEntry.PowerMap) + GetMaxTorqueCurve(voltageEntry.FullLoadCurve) + //GetPowerMap(voltageEntry.PowerMap) ); voltageLevels.Add(voltage); diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.3.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.3.xsd index 47167d0774d45b9d70babb5d93fe8c6eee169b3b..a19c7634b62f20bf1f46de5f538d421f901abe8f 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.3.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.3.xsd @@ -10,6 +10,8 @@ Changelog: 03.02.2022: First official version uploaded to CITnet 04.04.2022: Changes in 'TyreDimensionType': remove space between tyre design code and rim diameter (205/70 R15, 205/80 R15) 01.06.2022: Change type of WHTC Correction factors, CFRegPer, BFColdHot: constraint > 0.0 + 23.08.2022: Bugfix IEPC standard values: require gear attribute for power map, allow multiple power maps; + require gear attribute for drac curve, allow multiple drag curves --> <xs:complexType name="AbstractADCDataDeclarationType" abstract="true"> <xs:complexContent> @@ -1267,11 +1269,18 @@ Changelog: </xs:element> <xs:element name="Gears" type="v2.3:AbstractIEPCGearsDeclarationType"/> <xs:element name="VoltageLevel" type="v2.3:IEPCSystemVoltageLevelStandardValuesType"/> - <xs:element name="DragCurve"> + <xs:element name="DragCurve" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="Entry" type="v2.3:IEPCSystemDragTorqueEntryType" minOccurs="2" maxOccurs="unbounded"/> </xs:sequence> + <xs:attribute name="gear" use="required"> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="1"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> </xs:complexType> </xs:element> </xs:sequence> @@ -1425,11 +1434,18 @@ Changelog: </xs:sequence> </xs:complexType> </xs:element> - <xs:element name="PowerMap"> + <xs:element name="PowerMap" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="Entry" type="v2.3:IEPCSystemPowerMapEntryType" minOccurs="4" maxOccurs="unbounded"/> </xs:sequence> + <xs:attribute name="gear" use="required"> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="1"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> </xs:complexType> </xs:element> </xs:sequence> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd index 45a8d9ef3c0822452696d24e5d6ec15067e2fd18..7a631f1390c359da7dbe2d7676e78fe24df67455 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd @@ -1467,7 +1467,7 @@ <xs:documentation>P466 - enum</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="VoltageLevel" type="vif:ElectricMachineSystemVoltageLevelMeasuredType" maxOccurs="unbounded"/> + <xs:element name="VoltageLevel" type="vif:ElectricMachineSystemVoltageLevelType" maxOccurs="unbounded"/> <xs:element name="DragCurve"> <xs:complexType> <xs:sequence> @@ -1486,7 +1486,7 @@ </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="ElectricMachineSystemVoltageLevelMeasuredType"> + <xs:complexType name="ElectricMachineSystemVoltageLevelType"> <xs:complexContent> <xs:extension base="v2.3:AbstractElectricMachineSystemVoltageLevelType"> <xs:sequence> @@ -1525,53 +1525,6 @@ </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="ElectricMachineSystemVoltageLevelStandardValuesType"> - <xs:complexContent> - <xs:extension base="v2.3:AbstractElectricMachineSystemVoltageLevelType"> - <xs:sequence> - <xs:element name="ContinuousTorque" type="v2.3:MaxTorqueType"> - <xs:annotation> - <xs:documentation>P459 - [Nm]</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="TestSpeedContinuousTorque" type="v2.3:TestSpeedType"> - <xs:annotation> - <xs:documentation>P460 - [1/min]</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="OverloadTorque" type="v2.3:MaxTorqueType"> - <xs:annotation> - <xs:documentation>P461 - [Nm]</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="TestSpeedOverloadTorque" type="v2.3:TestSpeedType"> - <xs:annotation> - <xs:documentation>P462 - [1/min]</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="OverloadDuration" type="v2.3:OverloadDurationType"> - <xs:annotation> - <xs:documentation>P463 - [s]</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="MaxTorqueCurve"> - <xs:complexType> - <xs:sequence> - <xs:element name="Entry" type="vif:ElectricMachineSystemMaxTorqueEntryType" minOccurs="2" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - </xs:element> - <xs:element name="PowerMap"> - <xs:complexType> - <xs:sequence> - <xs:element name="Entry" type="vif:ElectricMachineSystemPowerMapEntryType" minOccurs="4" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> <xs:complexType name="ElectricMachineSystemType"> <xs:sequence> <xs:element name="Data" type="vif:AbstractElectricMachineSystemDataType"/> @@ -1914,21 +1867,15 @@ </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="IEPCMeasuredDataDeclarationType"> + <xs:complexType name="IEPCDataDeclarationType"> <xs:complexContent> <xs:extension base="vif:AbstractVIFIEPCDataType"> <xs:sequence> <xs:group ref="vif:IEPCCommonParametersSequenceGroup"/> - <xs:element name="CertificationMethod"> + <xs:element name="CertificationMethod" type="v2.3:IEPCCertificationMethodType"> <xs:annotation> <xs:documentation>P484 - enum</xs:documentation> </xs:annotation> - <xs:simpleType> - <xs:restriction base="v2.3:IEPCCertificationMethodType"> - <xs:enumeration value="Measured for complete component"/> - <xs:enumeration value="Measured for EM and standard values for other components"/> - </xs:restriction> - </xs:simpleType> </xs:element> <xs:group ref="vif:IEPCPowerRatingsSequenceGroup"/> <xs:element name="DifferentialIncluded" type="xs:boolean"> @@ -1959,7 +1906,7 @@ </xs:annotation> </xs:element> <xs:element name="Gears" type="vif:AbstractIEPCGearsDeclarationType"/> - <xs:element name="VoltageLevel" type="vif:IEPCSystemVoltageLevelMeasuredType" minOccurs="2" maxOccurs="unbounded"/> + <xs:element name="VoltageLevel" type="vif:IEPCSystemVoltageLevelType" maxOccurs="unbounded"/> <xs:element name="DragCurve" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> @@ -2009,11 +1956,11 @@ </xs:annotation> </xs:attribute> </xs:complexType> - <xs:complexType name="IEPCSystemVoltageLevelMeasuredType"> + <xs:complexType name="IEPCSystemVoltageLevelType"> <xs:complexContent> <xs:extension base="vif:AbstractElectricMachineSystemVoltageLevelType"> <xs:sequence> - <xs:element name="Voltage" type="v2.3:VoltageLevelVoltageType"> + <xs:element name="Voltage" type="v2.3:VoltageLevelVoltageType" minOccurs="0"> <xs:annotation> <xs:documentation>P500 - [V]</xs:documentation> </xs:annotation> @@ -2044,20 +1991,6 @@ </xs:annotation> </xs:element> <xs:element name="MaxTorqueCurve" type="v2.3:ElectricMachineSystemMaxTorqueCurveType"/> - <xs:element name="PowerMap" maxOccurs="unbounded"> - <xs:complexType> - <xs:sequence> - <xs:element name="Entry" type="v2.3:IEPCSystemPowerMapEntryType" minOccurs="4" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attribute name="gear" use="required"> - <xs:simpleType> - <xs:restriction base="xs:int"> - <xs:minInclusive value="1"/> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - </xs:complexType> - </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_StdValues.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_StdValues.xml index 5e0e17ae2e629f96281e09d094eb37171cee7db8..cc3da5ccb458d7255027824efb1143bcb504b2db 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_StdValues.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_StdValues.xml @@ -32,14 +32,20 @@ <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"/> + <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> + </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"/> <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/> </PowerMap> </VoltageLevel> - <DragCurve> + <DragCurve gear="1"> <Entry outShaftSpeed="0.00" dragTorque="10.00"/> <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> </DragCurve> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/IEPC_primaryBus_StdValues.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/IEPC_primaryBus_StdValues.xml new file mode 100644 index 0000000000000000000000000000000000000000..eb5382344bb8e5ecd1b5d658a75ef2062fafcd96 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/IEPC_primaryBus_StdValues.xml @@ -0,0 +1,305 @@ +<?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_IEPC_PrimaryBusDeclarationType" id="a"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> + <Model>Generic Model</Model> + <VIN>VEH-1234567890</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>M3</LegislativeCategory> + <ChassisConfiguration>Bus</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <Articulated>false</Articulated> + <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass> + <RetarderType>Axlegear Input Retarder</RetarderType> + <RetarderRatio>1.000</RetarderRatio> + <AngledriveType>None</AngledriveType> + <ZeroEmissionVehicle>true</ZeroEmissionVehicle> + <ArchitectureID>E-IEPC</ArchitectureID> + <ADAS xsi:type="ADAS_IEPC_Type"> + <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl> + </ADAS> + <Components xsi:type="Components_IEPC_PrimaryBusType"> + <IEPC> + <v2.3:Data xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="IEPCStandardValuesDataDeclarationType" id="IEPC-asdf"> + <Manufacturer>a</Manufacturer> + <Model>a</Model> + <CertificationNumber>token</CertificationNumber> + <Date>2017-01-01T00:00:00Z</Date> + <AppVersion>aaaaa</AppVersion> + <ElectricMachineType>ASM</ElectricMachineType> + <CertificationMethod>Standard values for all components</CertificationMethod> + <R85RatedPower>50000</R85RatedPower> + <RotationalInertia>0.10</RotationalInertia> + <DifferentialIncluded>false</DifferentialIncluded> + <DesignTypeWheelMotor>false</DesignTypeWheelMotor> + <Gears xsi:type="v2.3:IEPCGearsDeclarationType"> + <Gear number="1"> + <Ratio>3.000</Ratio> + </Gear> + <Gear number="2"> + <Ratio>1.000</Ratio> + <MaxOutShaftTorque>2000</MaxOutShaftTorque> + </Gear> + </Gears> + <VoltageLevel> + <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 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="1500.00"/> + <Entry outShaftSpeed="0.00" torque="-500.00" electricPower="-1500.00"/> + <Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="25000.00"/> + <Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-25000.00"/> + </PowerMap> + </VoltageLevel> + <DragCurve gear="1"> + <Entry outShaftSpeed="0.00" dragTorque="10.00"/> + <Entry outShaftSpeed="4000.00" dragTorque="30.00"/> + </DragCurve> + <DragCurve gear="2"> + <Entry outShaftSpeed="0.00" dragTorque="15.00"/> + <Entry outShaftSpeed="4500.00" dragTorque="35.00"/> + </DragCurve> + </v2.3:Data> + <v2.3:Signature> + <di:Reference URI="#IEPC-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>/+OkpqMJNrSUR2r8zwuvw+IJOEP3c9lDM+Buo32YxO0=</di:DigestValue> + </di:Reference> + </v2.3:Signature> + </IEPC> + <ElectricEnergyStorage> + <Battery> + <StringID>0</StringID> + <REESS> + <v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <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 id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType"> + <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> + <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> + <!-- optional --> + <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_IEPC_PrimaryBusType"> + <SteeringPump> + <Technology axleNumber="1">Electric driven pump</Technology> + </SteeringPump> + <PneumaticSystem> + <CompressorDrive>electrically</CompressorDrive> + <SmartRegenerationSystem>false</SmartRegenerationSystem> + <AirsuspensionControl>electronically</AirsuspensionControl> + </PneumaticSystem> + <HVAC> + <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoMockup/VectoMockupTest/MockUpVectoTest.cs b/VectoMockup/VectoMockupTest/MockUpVectoTest.cs index 6574773bfbcfdca64d6e7f0d3dbdadb0da3c6929..999ba8cc7217189f712210e15bb54dc22de9cf95 100644 --- a/VectoMockup/VectoMockupTest/MockUpVectoTest.cs +++ b/VectoMockup/VectoMockupTest/MockUpVectoTest.cs @@ -104,6 +104,7 @@ namespace VectoMockupTest protected const string PEV_E3_PrimaryBus = BasePath + @"PrimaryBus\PEV_primaryBus_E3.xml"; protected const string PEV_E4_PrimaryBus = BasePath + @"PrimaryBus\PEV_primaryBus_E4.xml"; protected const string PEV_IEPC_PrimaryBus = BasePath + @"PrimaryBus\IEPC_primaryBus.xml"; + protected const string PEV_IEPC_std_PrimaryBus = BasePathMockup + @"PrimaryBus\IEPC_primaryBus_StdValues.xml"; protected const string PEV_E2_PrimaryBus_StdEM = BasePathMockup + @"PrimaryBus\PEV_primaryBus_AMT_E2_EMStd.xml"; protected const string PEV_E2_PrimaryBus_StdBat = BasePathMockup + @"PrimaryBus\PEV_primaryBus_AMT_E2_BatteryStd.xml"; @@ -311,6 +312,7 @@ namespace VectoMockupTest [TestCase(PEV_E3_PrimaryBus, TestName = "PEV_E3_PrimaryBus")] [TestCase(PEV_E4_PrimaryBus, TestName = "PEV_E4_PrimaryBus")] [TestCase(PEV_IEPC_PrimaryBus, TestName="PEV_IEPC_PrimaryBus")] + [TestCase(PEV_IEPC_std_PrimaryBus, TestName = "PEV_IEPC-std_PrimaryBus")] [TestCase(PEV_E2_PrimaryBus_StdEM, TestName = "PEV_E2_PrimaryBus_EM-Std")] [TestCase(PEV_E2_PrimaryBus_StdBat, TestName = "PEV_E2_PrimaryBus_Battery-Std")] [TestCase(Conventional_PrimaryBus_DF, TestName = "ConventionalPrimaryBus_DualFuel")] @@ -439,6 +441,7 @@ namespace VectoMockupTest [TestCase(PEV_E3_PrimaryBus, PEV_InterimBusInput, "Ex", "PEV", TestName = "Interim PEV_E3_Bus")] [TestCase(PEV_E4_PrimaryBus, PEV_InterimBusInput, "Ex", "PEV", TestName = "Interim PEV_E4_Bus")] [TestCase(PEV_IEPC_PrimaryBus, PEV_IEPC_InterimBusInput, "IEPC", TestName = "Interim PEV_IEPC_Bus")] + [TestCase(PEV_IEPC_std_PrimaryBus, PEV_IEPC_InterimBusInput, "IEPC", TestName = "Interim PEV_IEPC-std_Bus")] [TestCase(PEV_E2_PrimaryBus_StdEM, PEV_InterimBusInput, "Ex", "PEV", TestName = "Interim PEV_E2_Bus_EM-Std")] public void InterimTest(string primaryBusInput, string interimBusInput, params string[] expectedType) { @@ -504,6 +507,7 @@ namespace VectoMockupTest [TestCase(PEV_E3_PrimaryBus, PEV_InterimBusInput, "Ex", "PEV", TestName = "PrimaryAndInterim PEV_E3_PrimaryBus")] [TestCase(PEV_E4_PrimaryBus, PEV_InterimBusInput, "Ex", "PEV", TestName = "PrimaryAndInterim PEV_E4_PrimaryBus")] [TestCase(PEV_IEPC_PrimaryBus, PEV_IEPC_InterimBusInput, "IEPC", TestName = "PrimaryAndInterim PEV_IEPC_PrimaryBus")] + [TestCase(PEV_IEPC_std_PrimaryBus, PEV_IEPC_InterimBusInput, "IEPC", TestName = "PrimaryAndInterim PEV_IEPC-std_PrimaryBus")] [TestCase(PEV_E2_PrimaryBus_StdEM, PEV_InterimBusInput, "Ex", "PEV", TestName = "PrimaryAndInterim PEV_E2_PrimaryBus_EM-Std")] public void PrimaryWithInterimTest(string primaryBusInput, string interimInput, params string[] expectedType) { @@ -550,6 +554,7 @@ namespace VectoMockupTest [TestCase(PEV_E3_PrimaryBus, PEV_CompletedBusInput, "E3", "PEV", TestName = "Complete PEV_E3_PrimaryBus")] [TestCase(PEV_E4_PrimaryBus, PEV_CompletedBusInput, "E4", "PEV", TestName = "Complete PEV_E4_PrimaryBus")] [TestCase(PEV_IEPC_PrimaryBus, PEV_IEPC_CompletedBusInput, "IEPC", TestName = "Complete PEV_IEPC_PrimaryBus")] + [TestCase(PEV_IEPC_std_PrimaryBus, PEV_IEPC_CompletedBusInput, "IEPC", TestName = "Complete PEV_IEPC-std_PrimaryBus")] [TestCase(PEV_E2_PrimaryBus_StdEM, PEV_CompletedBusInput, "E2", "PEV", TestName = "Complete PEV_E2_PrimaryBus_EM-Std")] public void CompleteTest(string primaryBusInput, string completeBusInput, params string[] expectedType) { @@ -603,6 +608,7 @@ namespace VectoMockupTest [TestCase(PEV_E3_PrimaryBus, PEV_CompletedBusInput, "Ex", "PEV", TestName = "Completed PEV_E3_PrimaryBus")] [TestCase(PEV_E4_PrimaryBus, PEV_CompletedBusInput, "Ex", "PEV", TestName = "Completed PEV_E4_PrimaryBus")] [TestCase(PEV_IEPC_PrimaryBus, PEV_IEPC_CompletedBusInput, "IEPC", TestName = "Completed PEV_IEPC_PrimaryBus")] + [TestCase(PEV_IEPC_std_PrimaryBus, PEV_IEPC_CompletedBusInput, "IEPC", TestName = "Completed PEV_IEPC-std_PrimaryBus")] [TestCase(PEV_E2_PrimaryBus_StdEM, PEV_CompletedBusInput, "Ex", "PEV", TestName = "Completed PEV_E2_PrimaryBus_EM-Std")] public void CompletedTest(string primaryBusInput, string completeBusInput, params string[] expectedType) {