mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2026-02-20 00:31:35 +01:00
🔧 Uppercase PID, etc.
This commit is contained in:
@@ -682,13 +682,13 @@
|
||||
#if ENABLED(PID_PARAMS_PER_HOTEND)
|
||||
// Specify up to one value per hotend here, according to your setup.
|
||||
// If there are fewer values, the last one applies to the remaining hotends.
|
||||
#define DEFAULT_Kp_LIST { 22.20, 22.20 }
|
||||
#define DEFAULT_Ki_LIST { 1.08, 1.08 }
|
||||
#define DEFAULT_Kd_LIST { 114.00, 114.00 }
|
||||
#define DEFAULT_KP_LIST { 22.20, 22.20 }
|
||||
#define DEFAULT_KI_LIST { 1.08, 1.08 }
|
||||
#define DEFAULT_KD_LIST { 114.00, 114.00 }
|
||||
#else
|
||||
#define DEFAULT_Kp 22.20
|
||||
#define DEFAULT_Ki 1.08
|
||||
#define DEFAULT_Kd 114.00
|
||||
#define DEFAULT_KP 22.20
|
||||
#define DEFAULT_KI 1.08
|
||||
#define DEFAULT_KD 114.00
|
||||
#endif
|
||||
#else
|
||||
#define BANG_MAX 255 // Limit hotend current while in bang-bang mode; 255=full current
|
||||
@@ -775,9 +775,9 @@
|
||||
|
||||
// 120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||
// from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
|
||||
#define DEFAULT_bedKp 10.00
|
||||
#define DEFAULT_bedKi .023
|
||||
#define DEFAULT_bedKd 305.4
|
||||
#define DEFAULT_BED_KP 10.00
|
||||
#define DEFAULT_BED_KI .023
|
||||
#define DEFAULT_BED_KD 305.4
|
||||
|
||||
// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
|
||||
#else
|
||||
@@ -821,9 +821,9 @@
|
||||
// Lasko "MyHeat Personal Heater" (200w) modified with a Fotek SSR-10DA to control only the heating element
|
||||
// and placed inside the small Creality printer enclosure tent.
|
||||
//
|
||||
#define DEFAULT_chamberKp 37.04
|
||||
#define DEFAULT_chamberKi 1.40
|
||||
#define DEFAULT_chamberKd 655.17
|
||||
#define DEFAULT_CHAMBER_KP 37.04
|
||||
#define DEFAULT_CHAMBER_KI 1.40
|
||||
#define DEFAULT_CHAMBER_KD 655.17
|
||||
// M309 P37.04 I1.04 D655.17
|
||||
|
||||
// FIND YOUR OWN: "M303 E-2 C8 S50" to run autotune on the chamber at 50 degreesC for 8 cycles.
|
||||
|
||||
@@ -375,14 +375,14 @@
|
||||
// A well-chosen Kc value should add just enough power to melt the increased material volume.
|
||||
//#define PID_EXTRUSION_SCALING
|
||||
#if ENABLED(PID_EXTRUSION_SCALING)
|
||||
#define DEFAULT_Kc (100) // heating power = Kc * e_speed
|
||||
#define DEFAULT_KC (100) // heating power = Kc * e_speed
|
||||
#define LPQ_MAX_LEN 50
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Add an additional term to the heater power, proportional to the fan speed.
|
||||
* A well-chosen Kf value should add just enough power to compensate for power-loss from the cooling fan.
|
||||
* You can either just add a constant compensation with the DEFAULT_Kf value
|
||||
* You can either just add a constant compensation with the DEFAULT_KF value
|
||||
* or follow the instruction below to get speed-dependent compensation.
|
||||
*
|
||||
* Constant compensation (use only with fan speeds of 0% and 100%)
|
||||
@@ -413,18 +413,18 @@
|
||||
#if ENABLED(PID_FAN_SCALING_ALTERNATIVE_DEFINITION)
|
||||
// The alternative definition is used for an easier configuration.
|
||||
// Just figure out Kf at full speed (255) and PID_FAN_SCALING_MIN_SPEED.
|
||||
// DEFAULT_Kf and PID_FAN_SCALING_LIN_FACTOR are calculated accordingly.
|
||||
// DEFAULT_KF and PID_FAN_SCALING_LIN_FACTOR are calculated accordingly.
|
||||
|
||||
#define PID_FAN_SCALING_AT_FULL_SPEED 13.0 //=PID_FAN_SCALING_LIN_FACTOR*255+DEFAULT_Kf
|
||||
#define PID_FAN_SCALING_AT_MIN_SPEED 6.0 //=PID_FAN_SCALING_LIN_FACTOR*PID_FAN_SCALING_MIN_SPEED+DEFAULT_Kf
|
||||
#define PID_FAN_SCALING_AT_FULL_SPEED 13.0 //=PID_FAN_SCALING_LIN_FACTOR*255+DEFAULT_KF
|
||||
#define PID_FAN_SCALING_AT_MIN_SPEED 6.0 //=PID_FAN_SCALING_LIN_FACTOR*PID_FAN_SCALING_MIN_SPEED+DEFAULT_KF
|
||||
#define PID_FAN_SCALING_MIN_SPEED 10.0 // Minimum fan speed at which to enable PID_FAN_SCALING
|
||||
|
||||
#define DEFAULT_Kf (255.0*PID_FAN_SCALING_AT_MIN_SPEED-PID_FAN_SCALING_AT_FULL_SPEED*PID_FAN_SCALING_MIN_SPEED)/(255.0-PID_FAN_SCALING_MIN_SPEED)
|
||||
#define PID_FAN_SCALING_LIN_FACTOR (PID_FAN_SCALING_AT_FULL_SPEED-DEFAULT_Kf)/255.0
|
||||
#define DEFAULT_KF (255.0*PID_FAN_SCALING_AT_MIN_SPEED-PID_FAN_SCALING_AT_FULL_SPEED*PID_FAN_SCALING_MIN_SPEED)/(255.0-PID_FAN_SCALING_MIN_SPEED)
|
||||
#define PID_FAN_SCALING_LIN_FACTOR (PID_FAN_SCALING_AT_FULL_SPEED-DEFAULT_KF)/255.0
|
||||
|
||||
#else
|
||||
#define PID_FAN_SCALING_LIN_FACTOR (0) // Power-loss due to cooling = Kf * (fan_speed)
|
||||
#define DEFAULT_Kf 10 // A constant value added to the PID-tuner
|
||||
#define DEFAULT_KF 10 // A constant value added to the PID-tuner
|
||||
#define PID_FAN_SCALING_MIN_SPEED 10 // Minimum fan speed at which to enable PID_FAN_SCALING
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -621,6 +621,18 @@
|
||||
#error "BTT_MINI_12864_V1 is now BTT_MINI_12864."
|
||||
#elif defined(SDIO_SUPPORT)
|
||||
#error "SDIO_SUPPORT is now ONBOARD_SDIO."
|
||||
#elif defined(DEFAULT_Kp_LIST) || defined(DEFAULT_Ki_LIST) || defined(DEFAULT_Kd_LIST)
|
||||
#error "DEFAULT_Kp_LIST, DEFAULT_Ki_LIST, DEFAULT_Kd_LIST are now (uppercase) DEFAULT_KP_LIST, DEFAULT_KI_LIST, DEFAULT_KD_LIST."
|
||||
#elif defined(DEFAULT_Kp) || defined(DEFAULT_Ki) || defined(DEFAULT_Kd)
|
||||
#error "DEFAULT_Kp, DEFAULT_Ki, DEFAULT_Kd are now (uppercase) DEFAULT_KP, DEFAULT_KI, DEFAULT_KD."
|
||||
#elif defined(DEFAULT_bedKp) || defined(DEFAULT_bedKi) || defined(DEFAULT_bedKd)
|
||||
#error "DEFAULT_bedKp, DEFAULT_bedKi, DEFAULT_bedKd are now DEFAULT_BED_KP, DEFAULT_BED_KI, DEFAULT_BED_KD."
|
||||
#elif defined(DEFAULT_chamberKp) || defined(DEFAULT_chamberKi) || defined(DEFAULT_chamberKd)
|
||||
#error "DEFAULT_chamberKp, DEFAULT_chamberKi, DEFAULT_chamberKd are now DEFAULT_CHAMBER_KP, DEFAULT_CHAMBER_KI, DEFAULT_CHAMBER_KD."
|
||||
#elif defined(DEFAULT_Kc)
|
||||
#error "DEFAULT_Kc is now (uppercase) DEFAULT_KC."
|
||||
#elif defined(DEFAULT_Kf)
|
||||
#error "DEFAULT_Kf is now (uppercase) DEFAULT_KF."
|
||||
#endif
|
||||
|
||||
// L64xx stepper drivers have been removed
|
||||
|
||||
@@ -503,7 +503,9 @@ void MarlinUI::draw_status_screen() {
|
||||
|
||||
const bool show_e_total = TERN0(LCD_SHOW_E_TOTAL, printingIsActive());
|
||||
|
||||
static u8g_uint_t progress_bar_solid_width = 0;
|
||||
#if HAS_PRINT_PROGRESS
|
||||
static u8g_uint_t progress_bar_solid_width = 0;
|
||||
#endif
|
||||
|
||||
// At the first page, generate new display values
|
||||
if (first_page) {
|
||||
|
||||
@@ -3242,47 +3242,47 @@ void MarlinSettings::reset() {
|
||||
|
||||
#if ENABLED(PIDTEMP)
|
||||
#if ENABLED(PID_PARAMS_PER_HOTEND)
|
||||
constexpr float defKp[] =
|
||||
#ifdef DEFAULT_Kp_LIST
|
||||
DEFAULT_Kp_LIST
|
||||
constexpr float defKP[] =
|
||||
#ifdef DEFAULT_KP_LIST
|
||||
DEFAULT_KP_LIST
|
||||
#else
|
||||
ARRAY_BY_HOTENDS1(DEFAULT_Kp)
|
||||
ARRAY_BY_HOTENDS1(DEFAULT_KP)
|
||||
#endif
|
||||
, defKi[] =
|
||||
#ifdef DEFAULT_Ki_LIST
|
||||
DEFAULT_Ki_LIST
|
||||
, defKI[] =
|
||||
#ifdef DEFAULT_KI_LIST
|
||||
DEFAULT_KI_LIST
|
||||
#else
|
||||
ARRAY_BY_HOTENDS1(DEFAULT_Ki)
|
||||
ARRAY_BY_HOTENDS1(DEFAULT_KI)
|
||||
#endif
|
||||
, defKd[] =
|
||||
#ifdef DEFAULT_Kd_LIST
|
||||
DEFAULT_Kd_LIST
|
||||
, defKD[] =
|
||||
#ifdef DEFAULT_KD_LIST
|
||||
DEFAULT_KD_LIST
|
||||
#else
|
||||
ARRAY_BY_HOTENDS1(DEFAULT_Kd)
|
||||
ARRAY_BY_HOTENDS1(DEFAULT_KD)
|
||||
#endif
|
||||
;
|
||||
static_assert(WITHIN(COUNT(defKp), 1, HOTENDS), "DEFAULT_Kp_LIST must have between 1 and HOTENDS items.");
|
||||
static_assert(WITHIN(COUNT(defKi), 1, HOTENDS), "DEFAULT_Ki_LIST must have between 1 and HOTENDS items.");
|
||||
static_assert(WITHIN(COUNT(defKd), 1, HOTENDS), "DEFAULT_Kd_LIST must have between 1 and HOTENDS items.");
|
||||
static_assert(WITHIN(COUNT(defKP), 1, HOTENDS), "DEFAULT_KP_LIST must have between 1 and HOTENDS items.");
|
||||
static_assert(WITHIN(COUNT(defKI), 1, HOTENDS), "DEFAULT_KI_LIST must have between 1 and HOTENDS items.");
|
||||
static_assert(WITHIN(COUNT(defKD), 1, HOTENDS), "DEFAULT_KD_LIST must have between 1 and HOTENDS items.");
|
||||
#if ENABLED(PID_EXTRUSION_SCALING)
|
||||
constexpr float defKc[] =
|
||||
#ifdef DEFAULT_Kc_LIST
|
||||
DEFAULT_Kc_LIST
|
||||
constexpr float defKC[] =
|
||||
#ifdef DEFAULT_KC_LIST
|
||||
DEFAULT_KC_LIST
|
||||
#else
|
||||
ARRAY_BY_HOTENDS1(DEFAULT_Kc)
|
||||
ARRAY_BY_HOTENDS1(DEFAULT_KC)
|
||||
#endif
|
||||
;
|
||||
static_assert(WITHIN(COUNT(defKc), 1, HOTENDS), "DEFAULT_Kc_LIST must have between 1 and HOTENDS items.");
|
||||
static_assert(WITHIN(COUNT(defKC), 1, HOTENDS), "DEFAULT_KC_LIST must have between 1 and HOTENDS items.");
|
||||
#endif
|
||||
#if ENABLED(PID_FAN_SCALING)
|
||||
constexpr float defKf[] =
|
||||
#ifdef DEFAULT_Kf_LIST
|
||||
DEFAULT_Kf_LIST
|
||||
constexpr float defKF[] =
|
||||
#ifdef DEFAULT_KF_LIST
|
||||
DEFAULT_KF_LIST
|
||||
#else
|
||||
ARRAY_BY_HOTENDS1(DEFAULT_Kf)
|
||||
ARRAY_BY_HOTENDS1(DEFAULT_KF)
|
||||
#endif
|
||||
;
|
||||
static_assert(WITHIN(COUNT(defKf), 1, HOTENDS), "DEFAULT_Kf_LIST must have between 1 and HOTENDS items.");
|
||||
static_assert(WITHIN(COUNT(defKF), 1, HOTENDS), "DEFAULT_KF_LIST must have between 1 and HOTENDS items.");
|
||||
#endif
|
||||
#define PID_DEFAULT(N,E) def##N[E]
|
||||
#else
|
||||
@@ -3290,11 +3290,11 @@ void MarlinSettings::reset() {
|
||||
#endif
|
||||
HOTEND_LOOP() {
|
||||
thermalManager.temp_hotend[e].pid.set(
|
||||
PID_DEFAULT(Kp, ALIM(e, defKp)),
|
||||
PID_DEFAULT(Ki, ALIM(e, defKi)),
|
||||
PID_DEFAULT(Kd, ALIM(e, defKd))
|
||||
OPTARG(PID_EXTRUSION_SCALING, PID_DEFAULT(Kc, ALIM(e, defKc)))
|
||||
OPTARG(PID_FAN_SCALING, PID_DEFAULT(Kf, ALIM(e, defKf)))
|
||||
PID_DEFAULT(KP, ALIM(e, defKP)),
|
||||
PID_DEFAULT(KI, ALIM(e, defKI)),
|
||||
PID_DEFAULT(KD, ALIM(e, defKD))
|
||||
OPTARG(PID_EXTRUSION_SCALING, PID_DEFAULT(KC, ALIM(e, defKC)))
|
||||
OPTARG(PID_FAN_SCALING, PID_DEFAULT(KF, ALIM(e, defKF)))
|
||||
);
|
||||
}
|
||||
#endif
|
||||
@@ -3308,14 +3308,14 @@ void MarlinSettings::reset() {
|
||||
// Heated Bed PID
|
||||
//
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
thermalManager.temp_bed.pid.set(DEFAULT_bedKp, DEFAULT_bedKi, DEFAULT_bedKd);
|
||||
thermalManager.temp_bed.pid.set(DEFAULT_BED_KP, DEFAULT_BED_KI, DEFAULT_BED_KD);
|
||||
#endif
|
||||
|
||||
//
|
||||
// Heated Chamber PID
|
||||
//
|
||||
#if ENABLED(PIDTEMPCHAMBER)
|
||||
thermalManager.temp_chamber.pid.set(DEFAULT_chamberKp, DEFAULT_chamberKi, DEFAULT_chamberKd);
|
||||
thermalManager.temp_chamber.pid.set(DEFAULT_CHAMBER_KP, DEFAULT_CHAMBER_KI, DEFAULT_CHAMBER_KD);
|
||||
#endif
|
||||
|
||||
//
|
||||
|
||||
@@ -839,14 +839,14 @@ volatile bool Temperature::raw_temps_ready = false;
|
||||
TERN_(HOST_PROMPT_SUPPORT, hostui.notify(GET_TEXT_F(MSG_PID_AUTOTUNE_DONE)));
|
||||
|
||||
#if ANY(PIDTEMPBED, PIDTEMPCHAMBER)
|
||||
FSTR_P const estring = GHV(F("chamber"), F("bed"), FPSTR(NUL_STR));
|
||||
say_default_(); SERIAL_ECHOF(estring); SERIAL_ECHOLNPGM("Kp ", tune_pid.p);
|
||||
say_default_(); SERIAL_ECHOF(estring); SERIAL_ECHOLNPGM("Ki ", tune_pid.i);
|
||||
say_default_(); SERIAL_ECHOF(estring); SERIAL_ECHOLNPGM("Kd ", tune_pid.d);
|
||||
FSTR_P const estring = GHV(F("CHAMBER_"), F("BED_"), FPSTR(NUL_STR));
|
||||
say_default_(); SERIAL_ECHOF(estring); SERIAL_ECHOLNPGM("KP ", tune_pid.p);
|
||||
say_default_(); SERIAL_ECHOF(estring); SERIAL_ECHOLNPGM("KI ", tune_pid.i);
|
||||
say_default_(); SERIAL_ECHOF(estring); SERIAL_ECHOLNPGM("KD ", tune_pid.d);
|
||||
#else
|
||||
say_default_(); SERIAL_ECHOLNPGM("Kp ", tune_pid.p);
|
||||
say_default_(); SERIAL_ECHOLNPGM("Ki ", tune_pid.i);
|
||||
say_default_(); SERIAL_ECHOLNPGM("Kd ", tune_pid.d);
|
||||
say_default_(); SERIAL_ECHOLNPGM("KP ", tune_pid.p);
|
||||
say_default_(); SERIAL_ECHOLNPGM("KI ", tune_pid.i);
|
||||
say_default_(); SERIAL_ECHOLNPGM("KD ", tune_pid.d);
|
||||
#endif
|
||||
|
||||
auto _set_hotend_pid = [](const uint8_t tool, const raw_pid_t &in_pid) {
|
||||
|
||||
@@ -24,7 +24,7 @@ restore_configs
|
||||
opt_set MOTHERBOARD BOARD_BTT_GTR_V1_0 SERIAL_PORT -1 \
|
||||
EXTRUDERS 5 TEMP_SENSOR_1 1 TEMP_SENSOR_2 1 TEMP_SENSOR_3 1 TEMP_SENSOR_4 1 \
|
||||
Z_DRIVER_TYPE A4988 Z2_DRIVER_TYPE A4988 Z3_DRIVER_TYPE A4988 Z4_DRIVER_TYPE A4988 \
|
||||
DEFAULT_Kp_LIST '{ 22.2, 20.0, 21.0, 19.0, 18.0 }' DEFAULT_Ki_LIST '{ 1.08 }' DEFAULT_Kd_LIST '{ 114.0, 112.0, 110.0, 108.0 }'
|
||||
DEFAULT_KP_LIST '{ 22.2, 20.0, 21.0, 19.0, 18.0 }' DEFAULT_KI_LIST '{ 1.08 }' DEFAULT_KD_LIST '{ 114.0, 112.0, 110.0, 108.0 }'
|
||||
opt_enable TOOLCHANGE_FILAMENT_SWAP TOOLCHANGE_MIGRATION_FEATURE TOOLCHANGE_FS_SLOW_FIRST_PRIME TOOLCHANGE_FS_PRIME_FIRST_USED \
|
||||
REPRAP_DISCOUNT_SMART_CONTROLLER PID_PARAMS_PER_HOTEND Z_MULTI_ENDSTOPS
|
||||
exec_test $1 $2 "BigTreeTech GTR | 6 Extruders | Quad Z + Endstops" "$3"
|
||||
|
||||
Reference in New Issue
Block a user