Browse Source

Remove dead code from get_pid_output

See #12981
pull/1/head
Scott Lahteine 6 years ago
parent
commit
599cdc3f0f
  1. 28
      Marlin/src/module/temperature.cpp

28
Marlin/src/module/temperature.cpp

@ -725,18 +725,9 @@ float Temperature::get_pid_output(const int8_t e) {
float pid_error = target_temperature[HOTEND_INDEX] - current_temperature[HOTEND_INDEX]; float pid_error = target_temperature[HOTEND_INDEX] - current_temperature[HOTEND_INDEX];
work_pid[HOTEND_INDEX].Kd = PID_K2 * PID_PARAM(Kd, HOTEND_INDEX) * (current_temperature[HOTEND_INDEX] - temp_dState[HOTEND_INDEX]) + float(PID_K1) * work_pid[HOTEND_INDEX].Kd; work_pid[HOTEND_INDEX].Kd = PID_K2 * PID_PARAM(Kd, HOTEND_INDEX) * (current_temperature[HOTEND_INDEX] - temp_dState[HOTEND_INDEX]) + float(PID_K1) * work_pid[HOTEND_INDEX].Kd;
temp_dState[HOTEND_INDEX] = current_temperature[HOTEND_INDEX]; temp_dState[HOTEND_INDEX] = current_temperature[HOTEND_INDEX];
#if HEATER_IDLE_HANDLER
if (heater_idle_timeout_exceeded[HOTEND_INDEX]) { if (target_temperature[HOTEND_INDEX] == 0
pid_output = 0; || pid_error < -(PID_FUNCTIONAL_RANGE)
pid_reset[HOTEND_INDEX] = true;
}
else
#endif
if (pid_error > PID_FUNCTIONAL_RANGE) {
pid_output = BANG_MAX;
pid_reset[HOTEND_INDEX] = true;
}
else if (pid_error < -(PID_FUNCTIONAL_RANGE) || target_temperature[HOTEND_INDEX] == 0
#if HEATER_IDLE_HANDLER #if HEATER_IDLE_HANDLER
|| heater_idle_timeout_exceeded[HOTEND_INDEX] || heater_idle_timeout_exceeded[HOTEND_INDEX]
#endif #endif
@ -744,6 +735,10 @@ float Temperature::get_pid_output(const int8_t e) {
pid_output = 0; pid_output = 0;
pid_reset[HOTEND_INDEX] = true; pid_reset[HOTEND_INDEX] = true;
} }
else if (pid_error > PID_FUNCTIONAL_RANGE) {
pid_output = BANG_MAX;
pid_reset[HOTEND_INDEX] = true;
}
else { else {
if (pid_reset[HOTEND_INDEX]) { if (pid_reset[HOTEND_INDEX]) {
temp_iState[HOTEND_INDEX] = 0.0; temp_iState[HOTEND_INDEX] = 0.0;
@ -806,11 +801,12 @@ float Temperature::get_pid_output(const int8_t e) {
#else /* PID off */ #else /* PID off */
#if HEATER_IDLE_HANDLER #if HEATER_IDLE_HANDLER
if (heater_idle_timeout_exceeded[HOTEND_INDEX]) #define _TIMED_OUT_TEST heater_idle_timeout_exceeded[HOTEND_INDEX]
pid_output = 0; #else
else #define _TIMED_OUT_TEST false
#endif #endif
pid_output = (current_temperature[HOTEND_INDEX] < target_temperature[HOTEND_INDEX]) ? BANG_MAX : 0; pid_output = (!_TIMED_OUT_TEST && current_temperature[HOTEND_INDEX] < target_temperature[HOTEND_INDEX]) ? BANG_MAX : 0;
#undef _TIMED_OUT_TEST
#endif #endif
return pid_output; return pid_output;

Loading…
Cancel
Save