Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 3801c438 authored by Markus QUARITSCH's avatar Markus QUARITSCH
Browse files

extend testdata to read tc from pif,

refactoring creating electric consumers to consider electric fan and electrid stp from primary vehicle
parent 0828ec31
No related branches found
No related tags found
No related merge requests found
......@@ -90,7 +90,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
return new AuxiliaryConfig {
InputData = completedVehicle.Components.BusAuxiliaries,
ElectricalUserInputsConfig = CreateElectricsUserInputsConfig(
primaryBusAuxiliaries, completedVehicle, mission, actuations, runData.VehicleData.VehicleClass),
primaryVehicle, completedVehicle, mission, actuations, runData.VehicleData.VehicleClass),
PneumaticUserInputsConfig = CreatePneumaticUserInputsConfig(
primaryBusAuxiliaries, completedVehicle),
PneumaticAuxillariesConfig = CreatePneumaticAuxConfig(runData.Retarder.Type),
......@@ -100,14 +100,19 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
};
}
protected ElectricsUserInputsConfig CreateElectricsUserInputsConfig(IBusAuxiliariesDeclarationData primaryBusAuxiliaries,
protected ElectricsUserInputsConfig CreateElectricsUserInputsConfig(IVehicleDeclarationInputData primaryVehicle,
IVehicleDeclarationInputData completedVehicle, Mission mission, IActuations actuations, VehicleClass vehicleClass)
{
var currentDemand = GetElectricConsumers(mission, completedVehicle, actuations, vehicleClass);
var retVal = GetDefaultElectricalUserConfig();
// add electrical steering pump or electric fan defined in primary vehicle
foreach (var entry in GetElectricAuxConsumersPrimary(mission, completedVehicle, vehicleClass, primaryVehicle.Components.BusAuxiliaries)) {
currentDemand[entry.Key] = entry.Value;
}
var retVal = GetDefaultElectricalUserConfig();
var primaryBusAuxiliaries = primaryVehicle.Components.BusAuxiliaries;
retVal.SmartElectrical = primaryBusAuxiliaries.ElectricSupply.SmartElectrics;
retVal.ElectricalConsumers = currentDemand;
retVal.AlternatorMap = new SimpleAlternator(
......@@ -124,6 +129,34 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
return retVal;
}
protected override Dictionary<string, ElectricConsumerEntry> GetElectricAuxConsumers(Mission mission, IVehicleDeclarationInputData vehicleData, VehicleClass vehicleClass, IBusAuxiliariesDeclarationData busAux)
{
return new Dictionary<string, ElectricConsumerEntry>();
}
protected virtual Dictionary<string, ElectricConsumerEntry> GetElectricAuxConsumersPrimary(Mission mission, IVehicleDeclarationInputData vehicleData, VehicleClass vehicleClass, IBusAuxiliariesDeclarationData busAuxPrimary)
{
var retVal = new Dictionary<string, ElectricConsumerEntry>();
var spPower = DeclarationData.SteeringPumpBus.LookupElectricalPowerDemand(
mission.MissionType, busAuxPrimary.SteeringPumpTechnology,
vehicleData.Length ?? mission.BusParameter.VehicleLength);
retVal[Constants.Auxiliaries.IDs.SteeringPump] = new ElectricConsumerEntry {
ActiveDuringEngineStopStandstill = false,
BaseVehicle = false,
Current = spPower / Constants.BusAuxiliaries.ElectricSystem.PowernetVoltage
};
var fanPower = DeclarationData.Fan.LookupElectricalPowerDemand(
vehicleClass, mission.MissionType, busAuxPrimary.FanTechnology);
retVal[Constants.Auxiliaries.IDs.Fan] = new ElectricConsumerEntry {
ActiveDuringEngineStopStandstill = false,
ActiveDuringEngineStopDriving = false,
BaseVehicle = false,
Current = fanPower / Constants.BusAuxiliaries.ElectricSystem.PowernetVoltage
};
return retVal;
}
protected PneumaticUserInputsConfig CreatePneumaticUserInputsConfig(IBusAuxiliariesDeclarationData primaryBusAuxiliaries,
IVehicleDeclarationInputData completedVehicle)
{
......
......@@ -135,6 +135,18 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
}
protected virtual Dictionary<string, ElectricConsumerEntry> GetElectricConsumers(Mission mission, IVehicleDeclarationInputData vehicleData, IActuations actuations, VehicleClass vehicleClass)
{
var retVal = GetDefaultElectricConsumers(mission, vehicleData, actuations);
foreach (var entry in GetElectricAuxConsumers(mission, vehicleData, vehicleClass, vehicleData.Components.BusAuxiliaries)) {
retVal[entry.Key] = entry.Value;
}
return retVal;
}
protected virtual Dictionary<string, ElectricConsumerEntry> GetDefaultElectricConsumers(
Mission mission, IVehicleDeclarationInputData vehicleData, IActuations actuations)
{
var retVal = new Dictionary<string, ElectricConsumerEntry>();
var doorDutyCycleFraction =
......@@ -142,11 +154,10 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
actuations.CycleTime;
var busAux = vehicleData.Components.BusAuxiliaries;
var electricDoors = vehicleData.DoorDriveTechnology == ConsumerTechnology.Electrically;
foreach (var consumer in DeclarationData.BusAuxiliaries.DefaultElectricConsumerList.Items) {
var applied = consumer.DefaultConsumer || consumer.Bonus
? 1.0
foreach (var consumer in DeclarationData.BusAuxiliaries.DefaultElectricConsumerList.Items) {
var applied = consumer.DefaultConsumer || consumer.Bonus
? 1.0
: GetNumberOfElectricalConsumersForMission(mission, consumer);
var nbr = consumer.DefaultConsumer
? GetNumberOfElectricalConsumersInVehicle(consumer.NumberInActualVehicle, mission, vehicleData)
......@@ -167,9 +178,24 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
BaseVehicle = consumer.BaseVehicle,
Current = current
};
}
return retVal;
}
private double GetNumberOfElectricalConsumersForMission(Mission mission, ElectricalConsumer consumer)
{
if (mission.BusParameter.ElectricalConsumers.ContainsKey(consumer.ConsumerName)) {
return mission.BusParameter.ElectricalConsumers[consumer.ConsumerName];
}
return 0;
}
protected virtual Dictionary<string, ElectricConsumerEntry> GetElectricAuxConsumers(Mission mission, IVehicleDeclarationInputData vehicleData, VehicleClass vehicleClass, IBusAuxiliariesDeclarationData busAux)
{
var retVal = new Dictionary<string, ElectricConsumerEntry>();
var spPower = DeclarationData.SteeringPumpBus.LookupElectricalPowerDemand(
mission.MissionType, busAux.SteeringPumpTechnology,
vehicleData.Length ?? mission.BusParameter.VehicleLength);
......@@ -178,7 +204,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
BaseVehicle = false,
Current = spPower / Constants.BusAuxiliaries.ElectricSystem.PowernetVoltage
};
var fanPower = DeclarationData.Fan.LookupElectricalPowerDemand(
vehicleClass, mission.MissionType, busAux.FanTechnology);
retVal[Constants.Auxiliaries.IDs.Fan] = new ElectricConsumerEntry {
......@@ -187,21 +213,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
BaseVehicle = false,
Current = fanPower / Constants.BusAuxiliaries.ElectricSystem.PowernetVoltage
};
return retVal;
}
private double GetNumberOfElectricalConsumersForMission(Mission mission, ElectricalConsumer consumer)
{
if (mission.BusParameter.ElectricalConsumers.ContainsKey(consumer.ConsumerName)) {
return mission.BusParameter.ElectricalConsumers[consumer.ConsumerName];
}
return 0;
}
protected virtual bool VehicleHasElectricalConsumer(string consumerName, IBusAuxiliariesDeclarationData busAux)
{
switch (consumerName) {
......
......@@ -248,8 +248,6 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
}
}
var simulationRunData = new VectoRunData {
Loading = loading.Key,
VehicleData = DataAdapterSpecific.CreateVehicleData(PrimaryVehicle, CompletedVehicle,
......
......@@ -90,6 +90,37 @@
</Gears>
</Data>
</Transmission>
<TorqueConverter>
<Data xsi:type="TorqueConverterDataPIFType">
<Manufacturer>Some Manufacturer</Manufacturer>
<Model>Some Model</Model>
<CertificationMethod>Standard values</CertificationMethod>
<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
<Date>2017-02-15T11:00:00Z</Date>
<AppVersion>TC CalcApp 123</AppVersion>
<Characteristics>
<Entry speedRatio="0.0000" torqueRatio="4.50" inputTorqueRef="700.00"/>
<Entry speedRatio="0.1000" torqueRatio="3.50" inputTorqueRef="640.00"/>
<Entry speedRatio="0.2000" torqueRatio="2.70" inputTorqueRef="560.00"/>
<Entry speedRatio="0.3000" torqueRatio="2.20" inputTorqueRef="460.00"/>
<Entry speedRatio="0.4000" torqueRatio="1.60" inputTorqueRef="350.00"/>
<Entry speedRatio="0.5000" torqueRatio="1.20" inputTorqueRef="250.00"/>
<Entry speedRatio="0.6000" torqueRatio="0.90" inputTorqueRef="160.00"/>
<Entry speedRatio="0.7400" torqueRatio="0.90" inputTorqueRef="1.00"/>
<Entry speedRatio="0.8100" torqueRatio="1.00" inputTorqueRef="-40.34"/>
<Entry speedRatio="0.9100" torqueRatio="1.00" inputTorqueRef="-80.34"/>
<Entry speedRatio="1.0200" torqueRatio="1.00" inputTorqueRef="-136.11"/>
<Entry speedRatio="1.1600" torqueRatio="1.00" inputTorqueRef="-216.52"/>
<Entry speedRatio="1.3600" torqueRatio="1.00" inputTorqueRef="-335.19"/>
<Entry speedRatio="1.6300" torqueRatio="1.00" inputTorqueRef="-528.77"/>
<Entry speedRatio="2.0400" torqueRatio="1.00" inputTorqueRef="-883.40"/>
<Entry speedRatio="3.2600" torqueRatio="1.00" inputTorqueRef="-2462.17"/>
<Entry speedRatio="8.1500" torqueRatio="1.00" inputTorqueRef="-16540.98"/>
<Entry speedRatio="28.1500" torqueRatio="0.20" inputTorqueRef="-116540.98"/>
</Characteristics>
</Data>
</TorqueConverter>
<Axlegear>
<Data xsi:type="AxlegearDataPIFType">
<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment