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.
This commit is contained in:
parent
a8a8f236d2
commit
e86f2342c0
@ -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.
|
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||||
|
|
||||||
#ifdef PIDTEMPBED
|
#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+)
|
//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)
|
//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_bedKp 10.00
|
||||||
|
@ -361,7 +361,7 @@ void updatePID() {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef PIDTEMPBED
|
#ifdef PIDTEMPBED
|
||||||
temp_iState_max_bed = PID_INTEGRAL_DRIVE_MAX / bedKi;
|
temp_iState_max_bed = PID_BED_INTEGRAL_DRIVE_MAX / bedKi;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -844,7 +844,7 @@ void tp_init() {
|
|||||||
#endif //PIDTEMP
|
#endif //PIDTEMP
|
||||||
#ifdef PIDTEMPBED
|
#ifdef PIDTEMPBED
|
||||||
temp_iState_min_bed = 0.0;
|
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
|
#endif //PIDTEMPBED
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user