diff --git a/VectoCore/VectoCore/Configuration/Constants.cs b/VectoCore/VectoCore/Configuration/Constants.cs index d88a0b949712e28618590675133ed34ecc83d462..306c57e0fce6e3e3b86fdb366b4eac48ca921756 100644 --- a/VectoCore/VectoCore/Configuration/Constants.cs +++ b/VectoCore/VectoCore/Configuration/Constants.cs @@ -146,7 +146,7 @@ namespace TUGraz.VectoCore.Configuration /// The initial search interval for the operating point search in the driver. /// </summary> public static readonly MeterPerSquareSecond OperatingPointInitialSearchIntervalAccelerating = - -0.1.SI<MeterPerSquareSecond>(); + 0.1.SI<MeterPerSquareSecond>(); public static readonly PerSecond EngineIdlingSearchInterval = 10.SI<PerSecond>(); diff --git a/VectoCore/VectoCore/Utils/SearchAlgorithm.cs b/VectoCore/VectoCore/Utils/SearchAlgorithm.cs index 5b001a40783e26dc7beb1a341be2f2a1110bb8be..2316cded98f3764e921705622f54f83c5833aa01 100644 --- a/VectoCore/VectoCore/Utils/SearchAlgorithm.cs +++ b/VectoCore/VectoCore/Utils/SearchAlgorithm.cs @@ -97,8 +97,14 @@ namespace TUGraz.VectoCore.Utils ref iterationCount); } catch (VectoException ex) { var log = LogManager.GetLogger(typeof(SearchAlgorithm).FullName); - log.Debug("Falling back to LineSearch. InterpolationSearch failed: " + ex.Message); - result = LineSearch(x, y, interval, getYValue, evaluateFunction, criterion, abortCriterion, ref iterationCount); + log.Debug("Falling back to InterpolationSearch in reverse. Normal InterpolationSearch failed: " + ex.Message); + try { + result = InterpolateSearch(x, y, -interval, getYValue, evaluateFunction, criterion, abortCriterion, + ref iterationCount); + } catch (VectoException ex1) { + log.Debug("Falling back to LineSearch. Reverse InterpolationSearch failed: " + ex1.Message); + result = LineSearch(x, y, interval, getYValue, evaluateFunction, criterion, abortCriterion, ref iterationCount); + } } return result; } diff --git a/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs b/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs index b48ca55f2411ad6ff81ce60b2963588cf4b0ffad..f4aa1ca18eb96050c0562e090e015b04038eca47 100644 --- a/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs +++ b/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs @@ -194,7 +194,7 @@ namespace TUGraz.VectoCore.Tests.Integration Assert.IsTrue(jobContainer.Runs.All(r => r.Success), string.Concat(jobContainer.Runs.Select(r => r.ExecException))); } - [TestCase(GearboxSpeedLimitJobDecl)] + [TestCategory("LongRunning"), TestCase(GearboxSpeedLimitJobDecl)] public void TestRunGbxSpeedLimitedSimulations(string file) { var fileWriter = new FileOutputWriter(file);