From a90ca2b2007cf5094cbd54ea667ee23198501d30 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Sun, 10 Apr 2022 19:11:34 -0400 Subject: [PATCH] Hellen NB2 default tune #4038 --- firmware/config/engines/mazda_miata_vvt.cpp | 25 +++++++++++++------ .../controllers/actuators/idle_thread_io.cpp | 6 +++-- .../algo/defaults/default_fuel.cpp | 2 +- .../controllers/algo/engine_configuration.cpp | 5 ++-- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/firmware/config/engines/mazda_miata_vvt.cpp b/firmware/config/engines/mazda_miata_vvt.cpp index 03f25745db..51b3fc186c 100644 --- a/firmware/config/engines/mazda_miata_vvt.cpp +++ b/firmware/config/engines/mazda_miata_vvt.cpp @@ -241,10 +241,10 @@ void setMazdaNB2VVTSettings() { // VVT closed loop engineConfiguration->auxPid[0].pFactor = 2; engineConfiguration->auxPid[0].iFactor = 0.005; - engineConfiguration->auxPid[0].dFactor = 0; + engineConfiguration->auxPid[0].dFactor = 0.002; engineConfiguration->auxPid[0].offset = 33; - engineConfiguration->auxPid[0].minValue = 24; - engineConfiguration->auxPid[0].maxValue = 44; + engineConfiguration->auxPid[0].minValue = 20; + engineConfiguration->auxPid[0].maxValue = 90; } static void set4EC_AT() { @@ -277,10 +277,10 @@ static void setCommonMazdaNB() { engineConfiguration->isAlternatorControlEnabled = true; // enable altdebug engineConfiguration->targetVBatt = 13.8; - engineConfiguration->alternatorControl.offset = 40; - engineConfiguration->alternatorControl.pFactor = 14; - engineConfiguration->alternatorControl.iFactor = 0.1; - engineConfiguration->alternatorControl.dFactor = 0; + engineConfiguration->alternatorControl.offset = 20; + engineConfiguration->alternatorControl.pFactor = 16; + engineConfiguration->alternatorControl.iFactor = 8; + engineConfiguration->alternatorControl.dFactor = 0.1; engineConfiguration->alternatorControl.periodMs = 10; copyArray(config->veRpmBins, mazda_miata_nb2_RpmBins); @@ -320,6 +320,17 @@ static void setCommonMazdaNB() { engineConfiguration->iacByTpsTaper = 6; engineConfiguration->acIdleExtraOffset = 15; + engineConfiguration->useIdleTimingPidControl = true; + engineConfiguration->idlePidRpmUpperLimit = 350; + engineConfiguration->idlePidRpmDeadZone = 100; + + engineConfiguration->crankingIACposition = 36; + engineConfiguration->afterCrankingIACtaperDuration = 189; + + engineConfiguration->wwaeTau = 0.1; + engineConfiguration->targetVBatt = 14.2; + + engineConfiguration->vehicleWeight = 1070; engineConfiguration->specs.cylindersCount = 4; engineConfiguration->specs.firingOrder = FO_1_3_4_2; diff --git a/firmware/controllers/actuators/idle_thread_io.cpp b/firmware/controllers/actuators/idle_thread_io.cpp index 49c45140b4..e0ecfc2dd4 100644 --- a/firmware/controllers/actuators/idle_thread_io.cpp +++ b/firmware/controllers/actuators/idle_thread_io.cpp @@ -179,7 +179,7 @@ void startIdleBench(void) { void setDefaultIdleParameters() { - engineConfiguration->idleRpmPid.pFactor = 0.1f; + engineConfiguration->idleRpmPid.pFactor = 0.01f; engineConfiguration->idleRpmPid.iFactor = 0.05f; engineConfiguration->idleRpmPid.dFactor = 0.0f; @@ -193,10 +193,12 @@ void setDefaultIdleParameters() { // Allow +- 10 degrees adjustment engineConfiguration->idleTimingPid.minValue = -10; - engineConfiguration->idleTimingPid.minValue = 10; + engineConfiguration->idleTimingPid.maxValue = 10; // Idle region is target + 100 RPM engineConfiguration->idlePidRpmUpperLimit = 100; + + engineConfiguration->idlePidRpmDeadZone = 50; } /** diff --git a/firmware/controllers/algo/defaults/default_fuel.cpp b/firmware/controllers/algo/defaults/default_fuel.cpp index 07e123235a..48ca95378a 100644 --- a/firmware/controllers/algo/defaults/default_fuel.cpp +++ b/firmware/controllers/algo/defaults/default_fuel.cpp @@ -103,7 +103,7 @@ static void setDefaultFuelCutParameters() { engineConfiguration->coastingFuelCutRpmHigh = 1500; engineConfiguration->coastingFuelCutTps = 2; engineConfiguration->coastingFuelCutMap = 30; - engineConfiguration->coastingFuelCutClt = 30; + engineConfiguration->coastingFuelCutClt = 60; } static void setDefaultStftSettings() { diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index 8cfb041763..b2e3d78803 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -520,11 +520,10 @@ static void setDefaultEngineConfiguration() { engineConfiguration->sdCardPeriodMs = 50; engineConfiguration->mapMinBufferLength = 1; + engineConfiguration->vvtActivationDelayMs = 6000; engineConfiguration->startCrankingDuration = 3; - engineConfiguration->idlePidRpmDeadZone = 50; - engineConfiguration->maxAcRpm = 5000; engineConfiguration->maxAcClt = 100; engineConfiguration->maxAcTps = 75; @@ -534,7 +533,7 @@ static void setDefaultEngineConfiguration() { engineConfiguration->auxPid[0].minValue = 10; engineConfiguration->auxPid[0].maxValue = 90; - engineConfiguration->alternatorControl.minValue = 10; + engineConfiguration->alternatorControl.minValue = 0; engineConfiguration->alternatorControl.maxValue = 90; setLinearCurve(engineConfiguration->scriptCurve1Bins, 0, 100, 1);