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 a7fc9683 authored by Stefanos Doumpoulakis's avatar Stefanos Doumpoulakis
Browse files

added to report: NCV, positive engine work

parent ad9ec169
No related branches found
No related tags found
No related merge requests found
......@@ -332,7 +332,7 @@ namespace TUGraz.VectoCore.Configuration
/// When the simulated (in VTP) positive engine work deviates more than this threshold
/// from the measured positive energy of the vdri, a warning is issued.
/// </summary>
public const double VTPEngineWorkDeviationThreshold = 0.005;
public const double VTPEngineWorkDeviationThreshold = 0.01;
}
public static class XML
......
......@@ -226,6 +226,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
vtpRunData.VTPData = new VTPData() {
CorrectionFactors = correctionFactors,
FuelNCVs = JobInputData.FuelNCVs
};
vtpRunData.TorqueDriftLeftWheel = JobInputData.TorqueDriftLeftWheel;
......
......@@ -306,6 +306,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
public class VTPData
{
public Dictionary<FuelType, double> CorrectionFactors;
public IList<IFuelNCVData> FuelNCVs;
}
public class AuxFanData
......
......@@ -97,6 +97,9 @@ namespace TUGraz.VectoCore.OutputData.XML
public Scalar CO2Emissions { protected set; get; } = null;
public Scalar PMFlow { protected set; get; } = null;
public Scalar PositiveEngineWorkDeviation { protected set; get; } = null;
public ConvertedSI MeasuredPositiveEngineWork { protected set; get; } = null;
public ConvertedSI SimulatedPositiveEngineWork { protected set; get; } = null;
public IList<IFuelNCVData> FuelNCVs { protected set; get; } = null;
#region Overrides of ResultEntry
......@@ -132,11 +135,10 @@ namespace TUGraz.VectoCore.OutputData.XML
//VTPFcFinalSimulated = data.TimeIntegral<Kilogram>(ModalResultField.FCFinal);
VTPFcCorrectionFactors = runData.VTPData.CorrectionFactors;
FuelNCVs = runData.VTPData.FuelNCVs;
var measuredPositiveEngineWork = CalculateMeasuredPositiveEngineWork(runData);
CalculateEmissions(runData, measuredPositiveEngineWork);
CalculatePositiveEngineWorkDeviation(data, measuredPositiveEngineWork);
CalculatePositiveEngineWorkData(runData, data);
CalculateEmissions(runData, MeasuredPositiveEngineWork);
}
private ConvertedSI CalculateMeasuredPositiveEngineWork(VectoRunData runData)
......@@ -147,10 +149,12 @@ namespace TUGraz.VectoCore.OutputData.XML
.ConvertToKiloWattHour();
}
private void CalculatePositiveEngineWorkDeviation(IModalDataContainer data, ConvertedSI measuredWork)
private void CalculatePositiveEngineWorkData(VectoRunData runData, IModalDataContainer data)
{
var simulatedWork = data.TotalEngineWorkPositive().ConvertToKiloWattHour();
PositiveEngineWorkDeviation = ((measuredWork - simulatedWork) / measuredWork).SI<Scalar>();
MeasuredPositiveEngineWork = CalculateMeasuredPositiveEngineWork(runData);
SimulatedPositiveEngineWork = data.TotalEngineWorkPositive().ConvertToKiloWattHour();
PositiveEngineWorkDeviation =
((MeasuredPositiveEngineWork - SimulatedPositiveEngineWork) / MeasuredPositiveEngineWork).SI<Scalar>();
}
private void CalculateEmissions(VectoRunData runData, ConvertedSI measuredPositiveEngineWork)
......@@ -285,6 +289,13 @@ namespace TUGraz.VectoCore.OutputData.XML
new XElement(
tns + "WorkPosVT", new XAttribute(XMLNames.Report_Results_Unit_Attr, "kWh"),
vtpResult.VTPWorkPWheelPos.ConvertToKiloWattHour().ToXMLFormat(3)),
vtpResult.FuelNCVs.Select(x =>
new XElement(
tns + "FuelNCV",
new XAttribute("fuelType", x.Type.ToXMLFormat()),
new XAttribute(XMLNames.Report_Results_Unit_Attr, x.NCV.ConvertToMegaJoulePerKilogram().Units),
x.NCV.ConvertToMegaJoulePerKilogram().ToXMLFormat(3)
)),
vtpFcMeasured.Select(x =>
new XElement(
tns + "FuelConsumption",
......@@ -377,6 +388,16 @@ namespace TUGraz.VectoCore.OutputData.XML
vtpResult.PMFlow.ToXMLFormat(3)
));
pollutantsElement.Add(
new XElement(tns + "PositiveEngineWork",
new XElement(tns + "Measured", new XAttribute(XMLNames.Report_Results_Unit_Attr, "kWh"),
vtpResult.MeasuredPositiveEngineWork.ToXMLFormat(3)
),
new XElement(tns + "Simulated", new XAttribute(XMLNames.Report_Results_Unit_Attr, "kWh"),
vtpResult.SimulatedPositiveEngineWork.ToXMLFormat(3)
)
));
return pollutantsElement;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment