diff --git a/firmware/controllers/algo/aux_pid.cpp b/firmware/controllers/algo/aux_pid.cpp index 72179fcd87..05a2dfb1c4 100644 --- a/firmware/controllers/algo/aux_pid.cpp +++ b/firmware/controllers/algo/aux_pid.cpp @@ -35,7 +35,7 @@ static SimplePwm auxPidPwm[AUX_PID_COUNT]; static OutputPin auxPidPin[AUX_PID_COUNT]; static pid_s *auxPidS = &persistentState.persistentConfiguration.engineConfiguration.auxPid[0]; -static Pid auxPid(auxPidS, 0, 90); +static Pid auxPid(auxPidS); static Logging *logger; static bool isEnabled(int index) { diff --git a/firmware/controllers/algo/engine.cpp b/firmware/controllers/algo/engine.cpp index eecee4d6f9..35084ee075 100644 --- a/firmware/controllers/algo/engine.cpp +++ b/firmware/controllers/algo/engine.cpp @@ -264,7 +264,7 @@ void Engine::setConfig(persistent_config_s *config) { this->config = config; engineConfiguration = &config->engineConfiguration; memset(config, 0, sizeof(persistent_config_s)); - engineState.warmupAfrPid.init(&config->engineConfiguration.warmupAfrPid, 0.5, 1.5); + engineState.warmupAfrPid.init(&config->engineConfiguration.warmupAfrPid); } void Engine::printKnockState(void) { diff --git a/firmware/controllers/alternatorController.cpp b/firmware/controllers/alternatorController.cpp index d46d19cca8..488f9c16f0 100644 --- a/firmware/controllers/alternatorController.cpp +++ b/firmware/controllers/alternatorController.cpp @@ -29,7 +29,7 @@ int alternatorPidResetCounter = 0; static SimplePwm alternatorControl; static pid_s *altPidS = &persistentState.persistentConfiguration.engineConfiguration.alternatorControl; -static Pid altPid(altPidS, 1, 90); +static Pid altPid(altPidS); static THD_WORKING_AREA(alternatorControlThreadStack, UTILITY_THREAD_STACK_SIZE); diff --git a/firmware/controllers/electronic_throttle.cpp b/firmware/controllers/electronic_throttle.cpp index 4ba7fabcd6..bf6f06ff1f 100644 --- a/firmware/controllers/electronic_throttle.cpp +++ b/firmware/controllers/electronic_throttle.cpp @@ -73,7 +73,7 @@ static OutputPin outputDirectionClose CCM_OPTIONAL; EXTERN_ENGINE; -static Pid pid(&engineConfiguration->etb, 0, 100); +static Pid pid(&engineConfiguration->etb); static float prevTps; @@ -109,7 +109,7 @@ static msg_t etbThread(void *arg) { pid.postState(&tsOutputChannels); } if (engineConfiguration->isVerboseETB) { - pid.showPidStatus(&logger, "ETB", engineConfiguration->etb.period); + pid.showPidStatus(&logger, "ETB"); } diff --git a/firmware/controllers/idle_thread.cpp b/firmware/controllers/idle_thread.cpp index f5bf411da5..76265138bb 100644 --- a/firmware/controllers/idle_thread.cpp +++ b/firmware/controllers/idle_thread.cpp @@ -45,7 +45,7 @@ EXTERN_ENGINE static bool shouldResetPid = false; -static Pid idlePid(&engineConfiguration->idleRpmPid, 1, 99); +static Pid idlePid(&engineConfiguration->idleRpmPid); // todo: extract interface for idle valve hardware, with solenoid and stepper implementations? static SimplePwm idleSolenoid; @@ -83,7 +83,7 @@ static void showIdleInfo(void) { if (engineConfiguration->idleMode == IM_AUTO) { - idlePid.showPidStatus(logger, "idle", engineConfiguration->idleRpmPid.period); + idlePid.showPidStatus(logger, "idle"); } } @@ -239,7 +239,7 @@ static msg_t ivThread(int param) { } if (engineConfiguration->isVerboseIAC && engineConfiguration->idleMode == IM_AUTO) { - idlePid.showPidStatus(logger, "idle", engineConfiguration->idleRpmPid.period); + idlePid.showPidStatus(logger, "idle"); } diff --git a/firmware/controllers/math/pid.cpp b/firmware/controllers/math/pid.cpp index 4b12d604db..d7b086ccbd 100644 --- a/firmware/controllers/math/pid.cpp +++ b/firmware/controllers/math/pid.cpp @@ -12,14 +12,14 @@ #include "math.h" Pid::Pid() { - init(NULL, NAN, NAN); + init(NULL); } -Pid::Pid(pid_s *pid, float minResult, float maxResult) { - init(pid, minResult, maxResult); +Pid::Pid(pid_s *pid) { + init(pid); } -void Pid::init(pid_s *pid, float minResult, float maxResult) { +void Pid::init(pid_s *pid) { this->pid = pid; dTerm = iTerm = 0; @@ -123,7 +123,7 @@ void Pid::sleep() { #endif /* EFI_UNIT_TEST */ } -void Pid::showPidStatus(Logging *logging, const char*msg, int dTime) { +void Pid::showPidStatus(Logging *logging, const char*msg) { scheduleMsg(logging, "%s settings: offset=%d P=%.5f I=%.5f D=%.5f dT=%d", msg, pid->offset, diff --git a/firmware/controllers/math/pid.h b/firmware/controllers/math/pid.h index 67c7078729..0bcd75d9b7 100644 --- a/firmware/controllers/math/pid.h +++ b/firmware/controllers/math/pid.h @@ -20,8 +20,8 @@ class Pid { public: Pid(); - Pid(pid_s *pid, float minResult, float maxResult); - void init(pid_s *pid, float minResult, float maxResult); + Pid(pid_s *pid); + void init(pid_s *pid); bool isSame(pid_s *pid); float getValue(float target, float input); @@ -42,7 +42,7 @@ public: float maxResult; float iTerm; float dTerm; // we are remembering this only for debugging purposes - void showPidStatus(Logging *logging, const char*msg, int dTime); + void showPidStatus(Logging *logging, const char*msg); void sleep(); private: pid_s *pid; diff --git a/firmware/controllers/trigger/main_trigger_callback.cpp b/firmware/controllers/trigger/main_trigger_callback.cpp index 004e1b1790..8e86889050 100644 --- a/firmware/controllers/trigger/main_trigger_callback.cpp +++ b/firmware/controllers/trigger/main_trigger_callback.cpp @@ -69,7 +69,7 @@ static const char *prevOutputName = NULL; static Logging *logger; #if ! EFI_UNIT_TEST static pid_s *fuelPidS = &persistentState.persistentConfiguration.engineConfiguration.fuelClosedLoopPid; -static Pid fuelPid(fuelPidS, -100, 100); +static Pid fuelPid(fuelPidS); extern TunerStudioOutputChannels tsOutputChannels; #endif