From 1fbb809666ba81c96db46936ef387fc6b9126dd4 Mon Sep 17 00:00:00 2001 From: Michael Krisper <michael.krisper@tugraz.at> Date: Mon, 30 Aug 2021 17:30:37 +0200 Subject: [PATCH] Alternator: restore previous version (unchanged) --- .../Impl/Electrics/Alternator.cs | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Electrics/Alternator.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Electrics/Alternator.cs index d0b9c4b1d4..a928e33e60 100644 --- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Electrics/Alternator.cs +++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Electrics/Alternator.cs @@ -64,20 +64,20 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electric public double GetEfficiency(PerSecond crankSpeed, Ampere currentDemand) { // First build RangeTable, table 4 - InitialiseRangeTable(); - CalculateRangeTable(currentDemand); + InitialiseRangeTable(); + CalculateRangeTable(currentDemand); - // Calculate ( Interpolate ) Efficiency - var range = RangeTable.Select(s => new AltUserInput<PerSecond>(s.RPM, s.Efficiency)).ToList(); - - return Iterpolate(range, crankSpeed * PulleyRatio); + // Calculate ( Interpolate ) Efficiency + var range = RangeTable.Select(s => new AltUserInput<PerSecond>(s.RPM, s.Efficiency)).ToList(); + return Iterpolate(range, crankSpeed * PulleyRatio); + } + - - public static double Iterpolate<T>(List<AltUserInput<T>> values, T x) where T : SI + public static double Iterpolate<T>(List<AltUserInput<T>> values, T x) where T:SI { var lowestX = values.Min(m => m.Amps); var highestX = values.Max(m => m.Amps); @@ -103,7 +103,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electric var deltaX = postKey - preKey; var deltaEff = postEff - preEff; - + var retVal = ((x - preKey) / deltaX).Value() * deltaEff + preEff; return retVal; @@ -166,9 +166,14 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electric // IF(M12=IF(N12>N13,M12-((M12-M13)/(N12-N13))*(N12-N11),M12-((M12-M13)/(N12-N13))*(N12-N11)), M12-0.01, IF(N12>N13,M12-((M12-M13)/(N12-N13))*(N12-N11),M12-((M12-M13)/(N12-N13))*(N12-N11))) var M11 = N12 - N13 == 0 ? 0.RPMtoRad() - : M12 == M12 - (M12 - M13) / (N12 - N13) * (N12 - N11) + : ( + M12 == (N12 > N13 + ? M12 - (M12 - M13) / (N12 - N13) * (N12 - N11) + : M12 - (M12 - M13) / (N12 - N13) * (N12 - N11)) ? M12 - 0.01.RPMtoRad() - : M12 - (M12 - M13) / (N12 - N13) * (N12 - N11); + : (N12 > N13 + ? M12 - (M12 - M13) / (N12 - N13) * (N12 - N11) + : M12 - (M12 - M13) / (N12 - N13) * (N12 - N11))); RangeTable[1].RPM = M11; -- GitLab