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
No related branches found
No related tags found
No related merge requests found
Showing
with 8297 additions and 8267 deletions
......@@ -429,6 +429,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
public override string Clutch => null;
public override ConsumerTechnology AdBlueDosing => ConsumerTechnology.Unknown;
#endregion
}
......@@ -461,6 +463,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
public override string Clutch => null;
public override ConsumerTechnology AdBlueDosing => ConsumerTechnology.Unknown;
#endregion
}
......
......@@ -153,12 +153,15 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
public IResult GetResult(VehicleClass vehicleClass, MissionType mission, string fuelMode, Kilogram payload,
OvcHevMode ovcHevMode)
{
return ResultsInputData.Results.FirstOrDefault(
var matches = ResultsInputData.Results.Where(
x => x.VehicleGroup == vehicleClass &&
(x.SimulationParameter.Payload - payload).IsEqual(0, 1) && x.Mission == mission
&& x.OvcMode == ovcHevMode
// && x.SimulationParameter.FuelMode.Equals(fuelMode, StringComparison.InvariantCultureIgnoreCase)
);
).ToArray();
if (matches.Length == 1) {
return matches.First();
}
return matches.First(x => x.OvcMode == ovcHevMode);
}
public XmlNode ResultsNode => GetNode(XMLNames.Report_Results);
......
......@@ -746,9 +746,12 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa
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 =
DataAdapter.CreateGearshiftData(
runData.AxleGearData?.AxleGear.Ratio ?? 1.0,
axleGearRatio,
null,
GearboxType.APTN,
Vehicle.Components.IEPC.Gears.Count
......
......@@ -781,9 +781,12 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus
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 =
DataAdapter.CreateGearshiftData(
runData.AxleGearData?.AxleGear.Ratio ?? 1.0,
axleGearRatio,
null,
GearboxType.APTN,
PrimaryVehicle.Components.IEPC.Gears.Count
......
......@@ -152,7 +152,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
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}",
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 {
Container.FinishSimulationRun(ex);
} catch (Exception ve2) {
......
......@@ -192,13 +192,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
[ValidateObject]
public ElectricMotorFullLoadCurve FullLoadCurve { get; protected internal set; }
#if DEBUG
[ValidateObject]
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 EfficiencyMap.EfficiencyResult LookupElectricPower(PerSecond avgSpeed, NewtonMeter torque, uint gear, bool allowExtrapolation)
......@@ -225,7 +222,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
public class IEPCVoltageLevelData : ElectricMotorVoltageLevelData
{
[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)));
......
......@@ -328,8 +328,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
return new XElement(_vif + XMLNames.BusAux_PneumaticSystem,
new XElement(_vif + XMLNames.CompressorDrive, pSupply.CompressorDrive.GetLabel()),
new XElement(_vif + XMLNames.Bus_SmartRegenerationSystem, pSupply.SmartRegeneration),
new XElement(_vif + XMLNames.Bus_AirsuspensionControl, GetXMLAirsuspensionControl(pConsumer.AirsuspensionControl)),
new XElement(_vif + XMLNames.BusAux_PneumaticSystem_SCRReagentDosing, pConsumer.AdBlueDosing == ConsumerTechnology.Pneumatically)
new XElement(_vif + XMLNames.Bus_AirsuspensionControl, GetXMLAirsuspensionControl(pConsumer.AirsuspensionControl))
);
}
......
......@@ -745,7 +745,7 @@
<xs:complexType>
<xs:sequence>
<xs:group ref="vif:BusAuxPneumaticSystemGen_IEPC_SequenceGroup"/>
<xs:group ref="vif:BusAuxPneumaticSystemConsumerSequenceGroup"/>
<xs:group ref="vif:BusAuxPneumaticSystemConsumerPEVSequenceGroup"/>
</xs:sequence>
</xs:complexType>
</xs:element>
......@@ -797,7 +797,7 @@
<xs:complexType>
<xs:sequence>
<xs:group ref="vif:BusAuxPneumaticSystemGen_PEV_SequenceGroup"/>
<xs:group ref="vif:BusAuxPneumaticSystemConsumerSequenceGroup"/>
<xs:group ref="vif:BusAuxPneumaticSystemConsumerPEVSequenceGroup"/>
</xs:sequence>
</xs:complexType>
</xs:element>
......@@ -1234,6 +1234,26 @@
</xs:element>
</xs:sequence>
</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:sequence>
<xs:element name="SizeOfAirSupply" type="v2.4:PneumaticSystemTechnologyType">
......
......@@ -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>(EC_el.Concat(REESS_fields)));
SearchForPattern(sumData, EC_el);
SearchForPattern(sumData, REESS_fields);
SearchForPattern(sumData, GbxTimeShareFields());
}
......@@ -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>(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());
}
}
......
......@@ -272,7 +272,6 @@
<CompressorDrive>electrically</CompressorDrive>
<SmartRegenerationSystem>false</SmartRegenerationSystem>
<AirsuspensionControl>electronically</AirsuspensionControl>
<PneumaticSCRReagentDosing>false</PneumaticSCRReagentDosing>
</PneumaticSystem>
<HVAC>
<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
......
......@@ -272,7 +272,6 @@
<CompressorDrive>electrically</CompressorDrive>
<SmartRegenerationSystem>false</SmartRegenerationSystem>
<AirsuspensionControl>electronically</AirsuspensionControl>
<PneumaticSCRReagentDosing>false</PneumaticSCRReagentDosing>
</PneumaticSystem>
<HVAC>
<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
......
......@@ -306,7 +306,6 @@
<CompressorDrive>electrically</CompressorDrive>
<SmartRegenerationSystem>false</SmartRegenerationSystem>
<AirsuspensionControl>electronically</AirsuspensionControl>
<PneumaticSCRReagentDosing>false</PneumaticSCRReagentDosing>
</PneumaticSystem>
<HVAC>
<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
......
......@@ -306,7 +306,6 @@
<CompressorDrive>electrically</CompressorDrive>
<SmartRegenerationSystem>false</SmartRegenerationSystem>
<AirsuspensionControl>electronically</AirsuspensionControl>
<PneumaticSCRReagentDosing>false</PneumaticSCRReagentDosing>
</PneumaticSystem>
<HVAC>
<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
......
......@@ -2185,9 +2185,11 @@
<CertificationMethod>Option 2</CertificationMethod>
<TorqueLossMap>
<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="0.00"/>
<Entry inputSpeed="0.00" inputTorque="500.00" torqueLoss="5.00"/>
<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="0.00"/>
<Entry inputSpeed="1000.00" inputTorque="500.00" torqueLoss="5.00"/>
<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="50.00"/>
<Entry inputSpeed="0.00" inputTorque="5000.00" torqueLoss="50.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>
</Data>
<v2.3:Signature>
......
Source diff could not be displayed: it is too large. Options to address this: view the blob.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment