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 19a0abe0 authored by Harald Martini's avatar Harald Martini
Browse files

Merge branch 'feature/VECTO-1731-declaration-mode-xev-primary-bus' of...

Merge branch 'feature/VECTO-1731-declaration-mode-xev-primary-bus' of https://citnet.tech.ec.europa.eu/CITnet/stash/scm/vecto/mq_vecto-dev into feature/VECTO-1731-declaration-mode-xev-primary-bus
parents fbfd3e0d 4b2e34c8
Branches
Tags
No related merge requests found
Showing
with 8297 additions and 8267 deletions
...@@ -429,6 +429,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider ...@@ -429,6 +429,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
public override string Clutch => null; public override string Clutch => null;
public override ConsumerTechnology AdBlueDosing => ConsumerTechnology.Unknown;
#endregion #endregion
} }
...@@ -461,6 +463,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider ...@@ -461,6 +463,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
public override string Clutch => null; public override string Clutch => null;
public override ConsumerTechnology AdBlueDosing => ConsumerTechnology.Unknown;
#endregion #endregion
} }
......
...@@ -153,12 +153,15 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider ...@@ -153,12 +153,15 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
public IResult GetResult(VehicleClass vehicleClass, MissionType mission, string fuelMode, Kilogram payload, public IResult GetResult(VehicleClass vehicleClass, MissionType mission, string fuelMode, Kilogram payload,
OvcHevMode ovcHevMode) OvcHevMode ovcHevMode)
{ {
return ResultsInputData.Results.FirstOrDefault( var matches = ResultsInputData.Results.Where(
x => x.VehicleGroup == vehicleClass && x => x.VehicleGroup == vehicleClass &&
(x.SimulationParameter.Payload - payload).IsEqual(0, 1) && x.Mission == mission (x.SimulationParameter.Payload - payload).IsEqual(0, 1) && x.Mission == mission
&& x.OvcMode == ovcHevMode ).ToArray();
// && x.SimulationParameter.FuelMode.Equals(fuelMode, StringComparison.InvariantCultureIgnoreCase) if (matches.Length == 1) {
); return matches.First();
}
return matches.First(x => x.OvcMode == ovcHevMode);
} }
public XmlNode ResultsNode => GetNode(XMLNames.Report_Results); public XmlNode ResultsNode => GetNode(XMLNames.Report_Results);
......
...@@ -746,9 +746,12 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa ...@@ -746,9 +746,12 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa
protected override void CreateGearboxAndGearshiftData(VectoRunData runData) protected override void CreateGearboxAndGearshiftData(VectoRunData runData)
{ {
var iepcInput = Vehicle.Components.IEPC;
var axleGearRequired = !iepcInput.DifferentialIncluded && !iepcInput.DesignTypeWheelMotor;
var axleGearRatio = axleGearRequired ? runData.AxleGearData.AxleGear.Ratio : 1.0;
runData.GearshiftParameters = runData.GearshiftParameters =
DataAdapter.CreateGearshiftData( DataAdapter.CreateGearshiftData(
runData.AxleGearData?.AxleGear.Ratio ?? 1.0, axleGearRatio,
null, null,
GearboxType.APTN, GearboxType.APTN,
Vehicle.Components.IEPC.Gears.Count Vehicle.Components.IEPC.Gears.Count
......
...@@ -781,9 +781,12 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus ...@@ -781,9 +781,12 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus
protected override void CreateGearboxAndGearshiftData(VectoRunData runData) protected override void CreateGearboxAndGearshiftData(VectoRunData runData)
{ {
var iepcInput = PrimaryVehicle.Components.IEPC;
var axleGearRequired = !iepcInput.DifferentialIncluded && !iepcInput.DesignTypeWheelMotor;
var axleGearRatio = axleGearRequired ? runData.AxleGearData.AxleGear.Ratio : 1.0;
runData.GearshiftParameters = runData.GearshiftParameters =
DataAdapter.CreateGearshiftData( DataAdapter.CreateGearshiftData(
runData.AxleGearData?.AxleGear.Ratio ?? 1.0, axleGearRatio,
null, null,
GearboxType.APTN, GearboxType.APTN,
PrimaryVehicle.Components.IEPC.Gears.Count PrimaryVehicle.Components.IEPC.Gears.Count
......
...@@ -152,7 +152,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -152,7 +152,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
Container.RunStatus = Status.Aborted; Container.RunStatus = Status.Aborted;
var ex = new VectoSimulationException("{6} ({7} {8}) - absTime: {0}, distance: {1}, dt: {2}, v: {3}, Gear: {4} | {5}, f_equiv:{9}", var ex = new VectoSimulationException("{6} ({7} {8}) - absTime: {0}, distance: {1}, dt: {2}, v: {3}, Gear: {4} | {5}, f_equiv:{9}",
ve, AbsTime, Container.MileageCounter.Distance, dt, Container.VehicleInfo.VehicleSpeed, ve, AbsTime, Container.MileageCounter.Distance, dt, Container.VehicleInfo.VehicleSpeed,
TryCatch(() => Container.GearboxInfo.Gear), ve.Message, RunIdentifier, CycleName, RunSuffix, TryCatch(() => Container.RunData.HybridStrategyParameters.EquivalenceFactor)); TryCatch(() => Container.GearboxInfo.Gear), ve.Message, RunIdentifier, CycleName, RunSuffix, TryCatch(() => Container.RunData.HybridStrategyParameters?.EquivalenceFactor));
try { try {
Container.FinishSimulationRun(ex); Container.FinishSimulationRun(ex);
} catch (Exception ve2) { } catch (Exception ve2) {
......
...@@ -192,13 +192,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data ...@@ -192,13 +192,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
[ValidateObject] [ValidateObject]
public ElectricMotorFullLoadCurve FullLoadCurve { get; protected internal set; } public ElectricMotorFullLoadCurve FullLoadCurve { get; protected internal set; }
#if DEBUG
[ValidateObject] [ValidateObject]
public EfficiencyMap EfficiencyMap { get; set; } public EfficiencyMap EfficiencyMap { get; set; }
#else
[ValidateObject]
protected internal EfficiencyMap EfficiencyMap { protected get; set; }
#endif
public virtual PerSecond MaxSpeed => _maxSpeed ?? (_maxSpeed = VectoMath.Min(EfficiencyMap.MaxSpeed, FullLoadCurve.MaxSpeed)); public virtual PerSecond MaxSpeed => _maxSpeed ?? (_maxSpeed = VectoMath.Min(EfficiencyMap.MaxSpeed, FullLoadCurve.MaxSpeed));
public virtual EfficiencyMap.EfficiencyResult LookupElectricPower(PerSecond avgSpeed, NewtonMeter torque, uint gear, bool allowExtrapolation) public virtual EfficiencyMap.EfficiencyResult LookupElectricPower(PerSecond avgSpeed, NewtonMeter torque, uint gear, bool allowExtrapolation)
...@@ -225,7 +222,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data ...@@ -225,7 +222,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
public class IEPCVoltageLevelData : ElectricMotorVoltageLevelData public class IEPCVoltageLevelData : ElectricMotorVoltageLevelData
{ {
[ValidateObject] [ValidateObject]
protected internal Dictionary<uint, EfficiencyMap> EfficiencyMaps { protected get; set; } public Dictionary<uint, EfficiencyMap> EfficiencyMaps { get; set; }
public override PerSecond MaxSpeed => _maxSpeed ?? (_maxSpeed = VectoMath.Min(FullLoadCurve.MaxSpeed, EfficiencyMaps.Values.Min(x => x.MaxSpeed))); public override PerSecond MaxSpeed => _maxSpeed ?? (_maxSpeed = VectoMath.Min(FullLoadCurve.MaxSpeed, EfficiencyMaps.Values.Min(x => x.MaxSpeed)));
......
...@@ -328,8 +328,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF ...@@ -328,8 +328,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
return new XElement(_vif + XMLNames.BusAux_PneumaticSystem, return new XElement(_vif + XMLNames.BusAux_PneumaticSystem,
new XElement(_vif + XMLNames.CompressorDrive, pSupply.CompressorDrive.GetLabel()), new XElement(_vif + XMLNames.CompressorDrive, pSupply.CompressorDrive.GetLabel()),
new XElement(_vif + XMLNames.Bus_SmartRegenerationSystem, pSupply.SmartRegeneration), new XElement(_vif + XMLNames.Bus_SmartRegenerationSystem, pSupply.SmartRegeneration),
new XElement(_vif + XMLNames.Bus_AirsuspensionControl, GetXMLAirsuspensionControl(pConsumer.AirsuspensionControl)), new XElement(_vif + XMLNames.Bus_AirsuspensionControl, GetXMLAirsuspensionControl(pConsumer.AirsuspensionControl))
new XElement(_vif + XMLNames.BusAux_PneumaticSystem_SCRReagentDosing, pConsumer.AdBlueDosing == ConsumerTechnology.Pneumatically)
); );
} }
......
...@@ -745,7 +745,7 @@ ...@@ -745,7 +745,7 @@
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:group ref="vif:BusAuxPneumaticSystemGen_IEPC_SequenceGroup"/> <xs:group ref="vif:BusAuxPneumaticSystemGen_IEPC_SequenceGroup"/>
<xs:group ref="vif:BusAuxPneumaticSystemConsumerSequenceGroup"/> <xs:group ref="vif:BusAuxPneumaticSystemConsumerPEVSequenceGroup"/>
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
...@@ -797,7 +797,7 @@ ...@@ -797,7 +797,7 @@
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:group ref="vif:BusAuxPneumaticSystemGen_PEV_SequenceGroup"/> <xs:group ref="vif:BusAuxPneumaticSystemGen_PEV_SequenceGroup"/>
<xs:group ref="vif:BusAuxPneumaticSystemConsumerSequenceGroup"/> <xs:group ref="vif:BusAuxPneumaticSystemConsumerPEVSequenceGroup"/>
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
...@@ -1234,6 +1234,26 @@ ...@@ -1234,6 +1234,26 @@
</xs:element> </xs:element>
</xs:sequence> </xs:sequence>
</xs:group> </xs:group>
<xs:group name="BusAuxPneumaticSystemConsumerPEVSequenceGroup">
<xs:sequence>
<xs:element name="SmartRegenerationSystem" type="xs:boolean">
<xs:annotation>
<xs:documentation>P312 - bool</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="AirsuspensionControl">
<xs:annotation>
<xs:documentation>P315 - enum</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="mechanically"/>
<xs:enumeration value="electronically"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:group>
<xs:group name="BusAuxPneumaticSystemGen_HEV-Px_SequenceGroup"> <xs:group name="BusAuxPneumaticSystemGen_HEV-Px_SequenceGroup">
<xs:sequence> <xs:sequence>
<xs:element name="SizeOfAirSupply" type="v2.4:PneumaticSystemTechnologyType"> <xs:element name="SizeOfAirSupply" type="v2.4:PneumaticSystemTechnologyType">
......
...@@ -455,7 +455,8 @@ public class LorrySimulation ...@@ -455,7 +455,8 @@ public class LorrySimulation
SearchForPattern(sumData, new List<string>(fcFields.Select(fc => string.Format(fc, "")).Concat(CO2fields))); SearchForPattern(sumData, new List<string>(fcFields.Select(fc => string.Format(fc, "")).Concat(CO2fields)));
} }
SearchForPattern(sumData, new List<string>(EC_el.Concat(REESS_fields))); SearchForPattern(sumData, EC_el);
SearchForPattern(sumData, REESS_fields);
SearchForPattern(sumData, GbxTimeShareFields()); SearchForPattern(sumData, GbxTimeShareFields());
} }
...@@ -470,7 +471,9 @@ public class LorrySimulation ...@@ -470,7 +471,9 @@ public class LorrySimulation
SearchForPattern(sumData, new List<string>(fcFields.Select(fc => string.Format(fc, "")).Concat(CO2fields))); SearchForPattern(sumData, new List<string>(fcFields.Select(fc => string.Format(fc, "")).Concat(CO2fields)));
} }
SearchForPattern(sumData, new List<string>(EC_el.Concat(p_hev_fields).Concat(REESS_fields))); SearchForPattern(sumData, EC_el);
SearchForPattern(sumData, p_hev_fields);
SearchForPattern(sumData, REESS_fields);
SearchForPattern(sumData,GbxTimeShareFields()); SearchForPattern(sumData,GbxTimeShareFields());
} }
} }
......
...@@ -272,7 +272,6 @@ ...@@ -272,7 +272,6 @@
<CompressorDrive>electrically</CompressorDrive> <CompressorDrive>electrically</CompressorDrive>
<SmartRegenerationSystem>false</SmartRegenerationSystem> <SmartRegenerationSystem>false</SmartRegenerationSystem>
<AirsuspensionControl>electronically</AirsuspensionControl> <AirsuspensionControl>electronically</AirsuspensionControl>
<PneumaticSCRReagentDosing>false</PneumaticSCRReagentDosing>
</PneumaticSystem> </PneumaticSystem>
<HVAC> <HVAC>
<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
......
...@@ -272,7 +272,6 @@ ...@@ -272,7 +272,6 @@
<CompressorDrive>electrically</CompressorDrive> <CompressorDrive>electrically</CompressorDrive>
<SmartRegenerationSystem>false</SmartRegenerationSystem> <SmartRegenerationSystem>false</SmartRegenerationSystem>
<AirsuspensionControl>electronically</AirsuspensionControl> <AirsuspensionControl>electronically</AirsuspensionControl>
<PneumaticSCRReagentDosing>false</PneumaticSCRReagentDosing>
</PneumaticSystem> </PneumaticSystem>
<HVAC> <HVAC>
<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
......
...@@ -306,7 +306,6 @@ ...@@ -306,7 +306,6 @@
<CompressorDrive>electrically</CompressorDrive> <CompressorDrive>electrically</CompressorDrive>
<SmartRegenerationSystem>false</SmartRegenerationSystem> <SmartRegenerationSystem>false</SmartRegenerationSystem>
<AirsuspensionControl>electronically</AirsuspensionControl> <AirsuspensionControl>electronically</AirsuspensionControl>
<PneumaticSCRReagentDosing>false</PneumaticSCRReagentDosing>
</PneumaticSystem> </PneumaticSystem>
<HVAC> <HVAC>
<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
......
...@@ -306,7 +306,6 @@ ...@@ -306,7 +306,6 @@
<CompressorDrive>electrically</CompressorDrive> <CompressorDrive>electrically</CompressorDrive>
<SmartRegenerationSystem>false</SmartRegenerationSystem> <SmartRegenerationSystem>false</SmartRegenerationSystem>
<AirsuspensionControl>electronically</AirsuspensionControl> <AirsuspensionControl>electronically</AirsuspensionControl>
<PneumaticSCRReagentDosing>false</PneumaticSCRReagentDosing>
</PneumaticSystem> </PneumaticSystem>
<HVAC> <HVAC>
<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat> <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
......
...@@ -2185,9 +2185,11 @@ ...@@ -2185,9 +2185,11 @@
<CertificationMethod>Option 2</CertificationMethod> <CertificationMethod>Option 2</CertificationMethod>
<TorqueLossMap> <TorqueLossMap>
<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="0.00"/> <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="0.00"/>
<Entry inputSpeed="0.00" inputTorque="500.00" torqueLoss="5.00"/> <Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="50.00"/>
<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="0.00"/> <Entry inputSpeed="0.00" inputTorque="5000.00" torqueLoss="50.00"/>
<Entry inputSpeed="1000.00" inputTorque="500.00" torqueLoss="5.00"/> <Entry inputSpeed="30000.00" inputTorque="0.00" torqueLoss="0.00"/>
<Entry inputSpeed="30000.00" inputTorque="5000.00" torqueLoss="50.00"/>
<Entry inputSpeed="30000.00" inputTorque="5000.00" torqueLoss="50.00"/>
</TorqueLossMap> </TorqueLossMap>
</Data> </Data>
<v2.3:Signature> <v2.3:Signature>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment