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

Skip to content
Snippets Groups Projects
Commit 044efcce authored by Michael KRISPER's avatar Michael KRISPER
Browse files

added constant auxiliary (from declaration mode) to powertrain builder.

parent eca85696
No related branches found
No related tags found
No related merge requests found
......@@ -2,6 +2,7 @@
using System.Runtime.Serialization;
using TUGraz.VectoCore.Models.SimulationComponent.Data;
using TUGraz.VectoCore.Models.SimulationComponent.Impl;
using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.Models.Simulation.Data
{
......@@ -42,6 +43,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
public string Path;
public string Technology;
public string[] TechList;
public Watt PowerDemand;
public bool IsConstant;
public AuxiliaryData Data;
}
......
using System;
using System.Collections.Generic;
using System.Data.SqlTypes;
using TUGraz.VectoCore.Exceptions;
using TUGraz.VectoCore.Models.Connector.Ports;
using TUGraz.VectoCore.Models.Simulation.Data;
......@@ -64,14 +61,19 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
// connect cluch --> aux --> ... --> aux_XXX --> directAux
if (data.Aux != null) {
foreach (var auxData in data.Aux) {
var auxCycleData = new AuxiliaryCycleDataAdapter(data.Cycle, auxData.ID);
IAuxiliary auxiliary = new MappingAuxiliary(_container, auxCycleData, auxData.Data);
IAuxiliary auxiliary;
if (auxData.IsConstant) {
auxiliary = new DirectAuxiliary(_container, new AuxiliaryConstantDemand(auxData.PowerDemand));
} else {
var auxCycleData = new AuxiliaryCycleDemandAdapter(data.Cycle, auxData.ID);
auxiliary = new MappingAuxiliary(_container, auxCycleData, auxData.Data);
}
tmp = AddComponent(tmp, auxiliary);
}
}
// connect directAux --> engine
IAuxiliary directAux = new DirectAuxiliary(_container, new AuxiliaryCycleDataAdapter(data.Cycle));
IAuxiliary directAux = new DirectAuxiliary(_container, new AuxiliaryCycleDemandAdapter(data.Cycle));
tmp = AddComponent(tmp, directAux);
AddComponent(tmp, new CombustionEngine(_container, data.EngineData));
......@@ -135,7 +137,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
var engine = new CombustionEngine(_container, data.EngineData);
var gearBox = new EngineOnlyGearbox(_container);
IAuxiliary addAux = new DirectAuxiliary(_container, new AuxiliaryCycleDataAdapter(data.Cycle));
IAuxiliary addAux = new DirectAuxiliary(_container, new AuxiliaryCycleDemandAdapter(data.Cycle));
addAux.InPort().Connect(engine.OutPort());
gearBox.InPort().Connect(addAux.OutPort());
......
......@@ -7,7 +7,7 @@ using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.Models.SimulationComponent.Data
{
public class AuxiliaryCycleDataAdapter : IAuxiliaryCycleData
public class AuxiliaryCycleDemandAdapter : IAuxiliaryDemand
{
private readonly string _auxiliaryId;
private readonly DrivingCycleData _drivingCycle;
......@@ -15,7 +15,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
private readonly ILog Log;
public AuxiliaryCycleDataAdapter(DrivingCycleData inputData, string column = null)
public AuxiliaryCycleDemandAdapter(DrivingCycleData inputData, string column = null)
{
Log = LogManager.GetLogger(GetType());
_drivingCycle = inputData;
......@@ -42,4 +42,23 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
: CurrentCycleEntry.AuxiliarySupplyPower[_auxiliaryId];
}
}
public class AuxiliaryConstantDemand : IAuxiliaryDemand
{
/// <summary>
/// Actually Watt Per Second [W/s]
/// </summary>
private readonly Watt _powerDemand;
public AuxiliaryConstantDemand(Watt powerDemand)
{
_powerDemand = powerDemand;
}
public Watt GetPowerDemand(TimeSpan ignored, TimeSpan ignored2)
{
return _powerDemand;
}
}
}
\ No newline at end of file
......@@ -3,7 +3,7 @@ using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.Models.SimulationComponent.Data
{
public interface IAuxiliaryCycleData
public interface IAuxiliaryDemand
{
Watt GetPowerDemand(TimeSpan absTime, TimeSpan dt);
}
......
using System;
using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
{
public class AuxiliaryData
{
public double EfficiencyToSupply { get; set; }
public double TransitionRatio { get; set; }
public double EfficiencyToEngine { get; set; }
public Watt GetPowerDemand(PerSecond nAuxiliary, Watt powerAuxOut)
{
throw new NotImplementedException();
}
public static AuxiliaryData ReadFromFile(string filePath)
{
throw new NotImplementedException();
}
}
}
\ No newline at end of file
......@@ -10,11 +10,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
{
public class DirectAuxiliary : VectoSimulationComponent, IAuxiliary, ITnInPort, ITnOutPort
{
private readonly IAuxiliaryCycleData _demand;
private readonly IAuxiliaryDemand _demand;
private ITnOutPort _outPort;
private Watt _powerDemand;
public DirectAuxiliary(IVehicleContainer container, IAuxiliaryCycleData demand)
public DirectAuxiliary(IVehicleContainer container, IAuxiliaryDemand demand)
: base(container)
{
_demand = demand;
......
......@@ -8,31 +8,14 @@ using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
{
public class AuxiliaryData
{
public double EfficiencyToSupply { get; set; }
public double TransitionRatio { get; set; }
public double EfficiencyToEngine { get; set; }
public Watt GetPowerDemand(PerSecond nAuxiliary, Watt powerAuxOut)
{
throw new NotImplementedException();
}
public static AuxiliaryData ReadFromFile(string filePath)
{
throw new NotImplementedException();
}
}
public class MappingAuxiliary : VectoSimulationComponent, IAuxiliary, ITnInPort, ITnOutPort
{
private readonly IAuxiliaryCycleData _demand;
private readonly IAuxiliaryDemand _demand;
private AuxiliaryData _data;
private ITnOutPort _outPort;
private Watt _powerDemand;
public MappingAuxiliary(IVehicleContainer container, IAuxiliaryCycleData demand, AuxiliaryData data)
public MappingAuxiliary(IVehicleContainer container, IAuxiliaryDemand demand, AuxiliaryData data)
: base(container)
{
_demand = demand;
......
......@@ -152,13 +152,14 @@
<Compile Include="Models\Declaration\Mission.cs" />
<Compile Include="Models\Declaration\MissionType.cs" />
<Compile Include="Models\SimulationComponent\Data\Engine\PT1Curve.cs" />
<Compile Include="Models\SimulationComponent\Impl\AuxiliaryData.cs" />
<Compile Include="Models\Simulation\Impl\DistanceRun.cs" />
<Compile Include="Models\Simulation\Impl\PowertrainBuilder.cs" />
<Compile Include="Utils\DataTableExtensionMethods.cs" />
<Compile Include="Utils\EnumHelper.cs" />
<Compile Include="Utils\RessourceHelper.cs" />
<Compile Include="Models\Declaration\Segment.cs" />
<Compile Include="Models\SimulationComponent\Data\AuxiliaryCycleDataAdapter.cs" />
<Compile Include="Models\SimulationComponent\Data\AuxiliaryDemandAdapter.cs" />
<Compile Include="Models\Declaration\Axle.cs" />
<Compile Include="Models\Declaration\AxleConfiguration.cs" />
<Compile Include="Models\SimulationComponent\Data\CombustionEngineData.cs" />
......@@ -166,7 +167,7 @@
<Compile Include="Models\SimulationComponent\Data\DrivingCycleData.cs" />
<Compile Include="Models\SimulationComponent\Data\Engine\FuelConsumptionMap.cs" />
<Compile Include="Models\SimulationComponent\Data\Engine\FullLoadCurve.cs" />
<Compile Include="Models\SimulationComponent\Data\IAuxiliaryCycleData.cs" />
<Compile Include="Models\SimulationComponent\Data\IAuxiliaryDemand.cs" />
<Compile Include="Models\SimulationComponent\Data\GearboxData.cs" />
<Compile Include="Models\SimulationComponent\Data\Gearbox\GearData.cs" />
<Compile Include="Models\SimulationComponent\Data\Gearbox\TransmissionLossMap.cs" />
......
......@@ -28,7 +28,7 @@ namespace TUGraz.VectoCore.Tests.Integration.EngineOnlyCycle
var engineData =
EngineeringModeSimulationDataReader.CreateEngineDataFromFile(TestContext.DataRow["EngineFile"].ToString());
var aux = new DirectAuxiliary(vehicle, new AuxiliaryCycleDataAdapter(data));
var aux = new DirectAuxiliary(vehicle, new AuxiliaryCycleDemandAdapter(data));
var gearbox = new EngineOnlyGearbox(vehicle);
......
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