Procházet zdrojové kódy

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.
Jonathan Bastien-Filiatrault před 10 roky
rodič
revize
e86f2342c0
2 změnil soubory, kde provedl 4 přidání a 2 odebrání
  1. 2
    0
      Marlin/Configuration.h
  2. 2
    2
      Marlin/temperature.cpp

+ 2
- 0
Marlin/Configuration.h Zobrazit soubor

@@ -243,6 +243,8 @@ Here are some standard links for getting your machine calibrated:
243 243
 //#define PID_BED_DEBUG // Sends debug data to the serial port.
244 244
 
245 245
 #ifdef PIDTEMPBED
246
+    #define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
247
+
246 248
 //120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
247 249
 //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
248 250
     #define  DEFAULT_bedKp 10.00

+ 2
- 2
Marlin/temperature.cpp Zobrazit soubor

@@ -361,7 +361,7 @@ void updatePID() {
361 361
     }
362 362
   #endif
363 363
   #ifdef PIDTEMPBED
364
-    temp_iState_max_bed = PID_INTEGRAL_DRIVE_MAX / bedKi;
364
+    temp_iState_max_bed = PID_BED_INTEGRAL_DRIVE_MAX / bedKi;
365 365
   #endif
366 366
 }
367 367
 
@@ -844,7 +844,7 @@ void tp_init() {
844 844
     #endif //PIDTEMP
845 845
     #ifdef PIDTEMPBED
846 846
       temp_iState_min_bed = 0.0;
847
-      temp_iState_max_bed = PID_INTEGRAL_DRIVE_MAX / bedKi;
847
+      temp_iState_max_bed = PID_BED_INTEGRAL_DRIVE_MAX / bedKi;
848 848
     #endif //PIDTEMPBED
849 849
   }
850 850
 

Loading…
Zrušit
Uložit