From e86f2342c057cdc624a07a11ed26bb653c790bda Mon Sep 17 00:00:00 2001 From: Jonathan Bastien-Filiatrault Date: Thu, 28 May 2015 11:30:56 -0400 Subject: [PATCH 1/2] Separate the maximum integral power for the bed from PID_INTEGRAL_DRIVE_MAX / PID_MAX. My PID_INTEGRAL_DRIVE_MAX was at 96, which was insufficient for my bed to reach its intended temperature. The head requires a low maximum power since I run on 24 volts and it has a somewhat low thermal mass. --- Marlin/Configuration.h | 2 ++ Marlin/temperature.cpp | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index d9d9aa8b2..32a0a888d 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -243,6 +243,8 @@ Here are some standard links for getting your machine calibrated: //#define PID_BED_DEBUG // Sends debug data to the serial port. #ifdef PIDTEMPBED + #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term + //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 diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 356c0057c..d55ebffd9 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -361,7 +361,7 @@ void updatePID() { } #endif #ifdef PIDTEMPBED - temp_iState_max_bed = PID_INTEGRAL_DRIVE_MAX / bedKi; + temp_iState_max_bed = PID_BED_INTEGRAL_DRIVE_MAX / bedKi; #endif } @@ -844,7 +844,7 @@ void tp_init() { #endif //PIDTEMP #ifdef PIDTEMPBED temp_iState_min_bed = 0.0; - temp_iState_max_bed = PID_INTEGRAL_DRIVE_MAX / bedKi; + temp_iState_max_bed = PID_BED_INTEGRAL_DRIVE_MAX / bedKi; #endif //PIDTEMPBED } From d46d9d998ee7205f29a94c3d3ee191088d4219b6 Mon Sep 17 00:00:00 2001 From: Jonathan Bastien-Filiatrault Date: Thu, 28 May 2015 12:51:37 -0400 Subject: [PATCH 2/2] Add maximum bed integral term in example configurations. --- Marlin/example_configurations/Felix/Configuration.h | 2 ++ Marlin/example_configurations/Hephestos/Configuration.h | 2 ++ Marlin/example_configurations/K8200/Configuration.h | 2 ++ .../RepRapWorld/Megatronics/Configuration.h | 2 ++ Marlin/example_configurations/SCARA/Configuration.h | 2 ++ Marlin/example_configurations/WITBOX/Configuration.h | 2 ++ Marlin/example_configurations/delta/biv2.5/Configuration.h | 2 ++ Marlin/example_configurations/delta/generic/Configuration.h | 2 ++ Marlin/example_configurations/delta/kossel_mini/Configuration.h | 2 ++ Marlin/example_configurations/delta/kossel_pro/Configuration.h | 2 ++ Marlin/example_configurations/makibox/Configuration.h | 2 ++ Marlin/example_configurations/tvrrug/Round2/Configuration.h | 2 ++ 12 files changed, 24 insertions(+) diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index 5352bc5e1..d78417ad5 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -217,6 +217,8 @@ Here are some standard links for getting your machine calibrated: //#define PID_BED_DEBUG // Sends debug data to the serial port. #ifdef PIDTEMPBED + #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term + // Felix Foil Heater #define DEFAULT_bedKp 103.37 #define DEFAULT_bedKi 2.79 diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index 0b437d107..bef71478c 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -234,6 +234,8 @@ Here are some standard links for getting your machine calibrated: //#define PID_BED_DEBUG // Sends debug data to the serial port. #ifdef PIDTEMPBED + #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term + //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 diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index 6061e739f..30ad8de68 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -253,6 +253,8 @@ Here are some standard links for getting your machine calibrated: //#define PID_BED_DEBUG // Sends debug data to the serial port. #ifdef PIDTEMPBED + #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term + //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 diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index b98c72437..5ca7d9fe2 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -243,6 +243,8 @@ Here are some standard links for getting your machine calibrated: //#define PID_BED_DEBUG // Sends debug data to the serial port. #ifdef PIDTEMPBED + #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term + //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 diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index 1d85ac56c..d2ccce867 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -256,6 +256,8 @@ Here are some standard links for getting your machine calibrated: //#define PID_BED_DEBUG // Sends debug data to the serial port. #ifdef PIDTEMPBED + #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term + //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 diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index 53ce0bad3..20eae4e90 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -233,6 +233,8 @@ Here are some standard links for getting your machine calibrated: //#define PID_BED_DEBUG // Sends debug data to the serial port. #ifdef PIDTEMPBED + #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term + //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 diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index f86b2da38..8c3356fe0 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -260,6 +260,8 @@ Here are some standard links for getting your machine calibrated: //#define PID_BED_DEBUG // Sends debug data to the serial port. #ifdef PIDTEMPBED + #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term + //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 diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index 4820f5890..34019e999 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -260,6 +260,8 @@ Here are some standard links for getting your machine calibrated: //#define PID_BED_DEBUG // Sends debug data to the serial port. #ifdef PIDTEMPBED + #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term + //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 diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index cf8cd0b9d..4724611a0 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -260,6 +260,8 @@ Here are some standard links for getting your machine calibrated: //#define PID_BED_DEBUG // Sends debug data to the serial port. #ifdef PIDTEMPBED + #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term + //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 diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index 3472a46e9..ca609f8eb 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -256,6 +256,8 @@ Here are some standard links for getting your machine calibrated: //#define PID_BED_DEBUG // Sends debug data to the serial port. #ifdef PIDTEMPBED + #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term + //Kossel Pro heated bed plate with borosilicate glass //from pidautotune (M303 E-1 S60 C8) #define DEFAULT_bedKp 370.25 diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index a5f04cf48..e73cebe9c 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -230,6 +230,8 @@ Here are some standard links for getting your machine calibrated: //#define PID_BED_DEBUG // Sends debug data to the serial port. #ifdef PIDTEMPBED + #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term + //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 diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index 92ed23f2f..33496aa73 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -232,6 +232,8 @@ Here are some standard links for getting your machine calibrated: //#define PID_BED_DEBUG // Sends debug data to the serial port. #ifdef PIDTEMPBED + #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term + //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