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

Skip to content
Snippets Groups Projects
Commit cc54aaf0 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

adding addtional test-cases for engine-only simulation. results match with...

adding addtional test-cases for engine-only simulation. results match with modified Vecto 2.0 engine-only computation
parent 2c31f345
No related branches found
No related tags found
No related merge requests found
......@@ -3,6 +3,7 @@ using Common.Logging;
using TUGraz.VectoCore.Models.Simulation.Data;
using TUGraz.VectoCore.Models.SimulationComponent.Data;
using TUGraz.VectoCore.Models.SimulationComponent.Impl;
using EngineOnlyDrivingCycle = TUGraz.VectoCore.Models.SimulationComponent.Impl.EngineOnlyDrivingCycle;
namespace TUGraz.VectoCore.Models.Simulation.Impl
{
......
......@@ -259,14 +259,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
{
var entry = new DrivingCycleEntry
{
Distance = row.GetDouble(Fields.Distance),
VehicleSpeed = row.GetDouble(Fields.VehicleSpeed),
RoadGradient = row.GetDoubleOrDefault(Fields.RoadGradient),
AdditionalAuxPowerDemand = row.GetDoubleOrDefault(Fields.AdditionalAuxPowerDemand),
EngineSpeed = row.GetDoubleOrDefault(Fields.EngineSpeed),
Gear = row.GetDoubleOrDefault(Fields.Gear),
AirSpeedRelativeToVehicle = row.GetDoubleOrDefault(Fields.AirSpeedRelativeToVehicle),
WindYawAngle = row.GetDoubleOrDefault(Fields.WindYawAngle)
Distance = row.ParseDouble(Fields.Distance),
VehicleSpeed = row.ParseDouble(Fields.VehicleSpeed),
RoadGradient = row.ParseDoubleOrGetDefault(Fields.RoadGradient),
AdditionalAuxPowerDemand = row.ParseDoubleOrGetDefault(Fields.AdditionalAuxPowerDemand),
EngineSpeed = row.ParseDoubleOrGetDefault(Fields.EngineSpeed),
Gear = row.ParseDoubleOrGetDefault(Fields.Gear),
AirSpeedRelativeToVehicle = row.ParseDoubleOrGetDefault(Fields.AirSpeedRelativeToVehicle),
WindYawAngle = row.ParseDoubleOrGetDefault(Fields.WindYawAngle)
};
// todo: implement additional aux as dictionary!
......@@ -300,14 +300,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
{
var entry = new DrivingCycleEntry
{
Time = row.GetDoubleOrDefault(Fields.Time),
VehicleSpeed = row.GetDouble(Fields.VehicleSpeed),
RoadGradient = row.GetDoubleOrDefault(Fields.RoadGradient),
AdditionalAuxPowerDemand = row.GetDoubleOrDefault(Fields.AdditionalAuxPowerDemand),
Gear = row.GetDoubleOrDefault(Fields.Gear),
EngineSpeed = row.GetDoubleOrDefault(Fields.EngineSpeed),
AirSpeedRelativeToVehicle = row.GetDoubleOrDefault(Fields.AirSpeedRelativeToVehicle),
WindYawAngle = row.GetDoubleOrDefault(Fields.WindYawAngle)
Time = row.ParseDoubleOrGetDefault(Fields.Time),
VehicleSpeed = row.ParseDouble(Fields.VehicleSpeed),
RoadGradient = row.ParseDoubleOrGetDefault(Fields.RoadGradient),
AdditionalAuxPowerDemand = row.ParseDoubleOrGetDefault(Fields.AdditionalAuxPowerDemand),
Gear = row.ParseDoubleOrGetDefault(Fields.Gear),
EngineSpeed = row.ParseDoubleOrGetDefault(Fields.EngineSpeed),
AirSpeedRelativeToVehicle = row.ParseDoubleOrGetDefault(Fields.AirSpeedRelativeToVehicle),
WindYawAngle = row.ParseDoubleOrGetDefault(Fields.WindYawAngle)
};
// todo: implement additional aux as dictionary!
......@@ -339,25 +339,25 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
{
var entry = new DrivingCycleEntry();
entry.EngineSpeed = row.GetDouble(Fields.EngineSpeed);
entry.EngineSpeed = row.ParseDouble(Fields.EngineSpeed);
if (row.Table.Columns.Contains(Fields.EngineTorque))
{
if (row.Field<string>(Fields.EngineTorque).Equals("<DRAG>"))
entry.Drag = true;
else
entry.EngineTorque = row.GetDouble(Fields.EngineTorque);
entry.EngineTorque = row.ParseDouble(Fields.EngineTorque);
}
else
{
if (row.Field<string>(Fields.EnginePower).Equals("<DRAG>"))
entry.Drag = true;
else
entry.EngineTorque = VectoMath.ConvertPowerToTorque(row.GetDouble(Fields.EnginePower), entry.EngineSpeed);
entry.EngineTorque = VectoMath.ConvertPowerToTorque(row.ParseDouble(Fields.EnginePower), entry.EngineSpeed);
}
if (row.Table.Columns.Contains(Fields.AdditionalAuxPowerDemand))
entry.AdditionalAuxPowerDemand = row.GetDouble(Fields.AdditionalAuxPowerDemand);
entry.AdditionalAuxPowerDemand = row.ParseDouble(Fields.AdditionalAuxPowerDemand);
return entry;
}
......
......@@ -82,6 +82,7 @@
<Compile Include="Models\SimulationComponent\IDrivingCycle.cs" />
<Compile Include="Models\SimulationComponent\Impl\DistanceBasedDrivingCycle.cs" />
<Compile Include="Models\SimulationComponent\Impl\TimeBasedDrivingCycle.cs" />
<Compile Include="Models\Simulation\Data\EngineOnlyDrivingCycle.cs" />
<Compile Include="Utils\IMemento.cs" />
<Compile Include="Models\SimulationComponent\Impl\CombustionEngine.cs" />
<Compile Include="Models\SimulationComponent\Impl\EngineOnlyGearbox.cs" />
......
......@@ -6,6 +6,7 @@ using TUGraz.VectoCore.Models.SimulationComponent;
using TUGraz.VectoCore.Models.SimulationComponent.Data;
using TUGraz.VectoCore.Models.SimulationComponent.Impl;
using TUGraz.VectoCore.Tests.Utils;
using EngineOnlyDrivingCycle = TUGraz.VectoCore.Models.SimulationComponent.Impl.EngineOnlyDrivingCycle;
namespace TUGraz.VectoCore.Tests.Models.Simulation
{
......
......@@ -81,15 +81,35 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
absTime += dt;
}
port.Request(absTime, dt, VectoMath.ConvertPowerToTorque(2329.973, 644.4445), 644.4445);
engineSpeed = 644.4445;
port.Request(absTime, dt, VectoMath.ConvertPowerToTorque(2329.973, engineSpeed), engineSpeed);
engine.CommitSimulationStep(dataWriter);
absTime += dt;
Assert.AreEqual(1152.40304, dataWriter.GetDouble(ModalResultField.PaEng), 0.001);
torque = 4264.177;
for (var i = 0; i < 2; i++) {
port.Request(absTime, dt, torque, engineSpeed);
engine.CommitSimulationStep(dataWriter);
absTime += dt;
}
engineSpeed = 869.7512;
port.Request(absTime, dt, VectoMath.ConvertPowerToTorque(7984.56, engineSpeed), engineSpeed);
engine.CommitSimulationStep(dataWriter);
absTime += dt;
Assert.AreEqual(7108.32, dataWriter.GetDouble(ModalResultField.PaEng), 0.001);
engineSpeed = 644.4445;
port.Request(absTime, dt, VectoMath.ConvertPowerToTorque(7984.56, engineSpeed), engineSpeed);
engine.CommitSimulationStep(dataWriter);
absTime += dt;
Assert.AreEqual(-7108.32, dataWriter.GetDouble(ModalResultField.PaEng), 0.001);
}
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\TestData\\EngineTests.csv", "EngineTests#csv", DataAccessMethod.Sequential)]
......
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