cleanup for pull
This commit is contained in:
		| @@ -95,7 +95,6 @@ | ||||
| // PID settings: | ||||
| // Comment the following line to disable PID and enable bang-bang. | ||||
| #define PIDTEMP | ||||
| #define PIDTEMPBED | ||||
| #define PID_MAX 255 // limits current to nozzle; 255=full current | ||||
| #ifdef PIDTEMP | ||||
|   //#define PID_DEBUG // Sends debug data to the serial port.  | ||||
| @@ -115,22 +114,50 @@ | ||||
| //    #define  DEFAULT_Ki 0.1   | ||||
| //    #define  DEFAULT_Kd 12   | ||||
|  | ||||
| //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, argressive factor of .15 (vs .1, 1, 10) | ||||
|     #define  DEFAULT_bedKp 10.00 | ||||
|     #define  DEFAULT_bedKi .023 | ||||
|     #define  DEFAULT_bedKd 305.4 | ||||
|  | ||||
| //mark from pidautotune | ||||
| //    #define  DEFAULT_bedKp 97.1 | ||||
| //    #define  DEFAULT_bedKi 1.41 | ||||
| //    #define  DEFAULT_bedKd 1675.16 | ||||
|  | ||||
| // Mendel Parts V9 on 12V     | ||||
| //    #define  DEFAULT_Kp 63.0 | ||||
| //    #define  DEFAULT_Ki 2.25 | ||||
| //    #define  DEFAULT_Kd 440 | ||||
| #endif // PIDTEMP | ||||
|  | ||||
| // Bed Temperature Control | ||||
| // Select PID or bang-bang with PIDTEMPBED.  If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis | ||||
| // | ||||
| // uncomment this to enable PID on the bed.   It uses the same ferquency PWM as the extruder.  | ||||
| // If your PID_dT above is the default, and correct for your hardware/configuration, that means 7.689Hz, | ||||
| // which is fine for driving a square wave into a resistive load and does not significantly impact you FET heating. | ||||
| // This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W heater.  | ||||
| // If your configuration is significantly different than this and you don't understand the issues involved, you proabaly  | ||||
| // shouldn't use bed PID until someone else verifies your hardware works. | ||||
| // If this is enabled, find your own PID constants below. | ||||
| //#define PIDTEMPBED | ||||
| // | ||||
| //#define BED_LIMIT_SWITCHING | ||||
|  | ||||
| // This sets the max power delived to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option. | ||||
| // all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis) | ||||
| // setting this to anything other than 255 enables a form of PWM to the bed just like HEATER_BED_DUTY_CYCLE_DIVIDER did, | ||||
| // so you shouldn't use it unless you are OK with PWM on your bed.  (see the comment on enabling PIDTEMPBED) | ||||
| #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current | ||||
|  | ||||
| #ifdef PIDTEMPBED | ||||
| //120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) | ||||
| //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, argressive factor of .15 (vs .1, 1, 10) | ||||
|     #define  DEFAULT_bedKp 10.00 | ||||
|     #define  DEFAULT_bedKi .023 | ||||
|     #define  DEFAULT_bedKd 305.4 | ||||
|  | ||||
| //120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) | ||||
| //from pidautotune | ||||
| //    #define  DEFAULT_bedKp 97.1 | ||||
| //    #define  DEFAULT_bedKi 1.41 | ||||
| //    #define  DEFAULT_bedKd 1675.16 | ||||
|  | ||||
| // FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles. | ||||
| #endif // PIDTEMPBED | ||||
|  | ||||
|  | ||||
|  | ||||
| //this prevents dangerous Extruder moves, i.e. if the temperature is under the limit | ||||
| //can be software-disabled for whatever purposes by | ||||
| #define PREVENT_DANGEROUS_EXTRUDE | ||||
|   | ||||
| @@ -5,13 +5,10 @@ | ||||
| //=============================Thermal Settings  ============================ | ||||
| //=========================================================================== | ||||
|  | ||||
| // Select one of these only to define how the bed temp is read. | ||||
| // | ||||
| //#define BED_LIMIT_SWITCHING | ||||
| #ifdef BED_LIMIT_SWITCHING | ||||
|   #define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS | ||||
| #endif | ||||
| #define BED_CHECK_INTERVAL 5000 //ms | ||||
| #define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control | ||||
|  | ||||
| //// Heating sanity check: | ||||
| // This waits for the watchperiod in milliseconds whenever an M104 or M109 increases the target temperature | ||||
|   | ||||
| @@ -153,8 +153,7 @@ void PID_autotune(float temp, int extruder, int ncycles) | ||||
|   long t_high; | ||||
|   long t_low; | ||||
|  | ||||
|   long bias=PID_MAX/2; | ||||
|   long d = PID_MAX/2; | ||||
|   long bias, d; | ||||
|   float Ku, Tu; | ||||
|   float Kp, Ki, Kd; | ||||
|   float max, min; | ||||
| @@ -173,9 +172,15 @@ void PID_autotune(float temp, int extruder, int ncycles) | ||||
|   disable_heater(); // switch off all heaters. | ||||
|  | ||||
| 	if (extruder<0) | ||||
| 	  soft_pwm_bed = PID_MAX/2; | ||||
| 	{ | ||||
| 	 	soft_pwm_bed = (PID_MAX_BED)/2; | ||||
| 		bias = d = (PID_MAX_BED)/2; | ||||
|   } | ||||
| 	else | ||||
| 	  soft_pwm[extruder] = PID_MAX/2; | ||||
| 	{ | ||||
| 	  soft_pwm[extruder] = (PID_MAX)/2; | ||||
| 		bias = d = (PID_MAX)/2; | ||||
|   } | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -209,8 +214,8 @@ void PID_autotune(float temp, int extruder, int ncycles) | ||||
|           t_low=t2 - t1; | ||||
|           if(cycles > 0) { | ||||
|             bias += (d*(t_high - t_low))/(t_low + t_high); | ||||
|             bias = constrain(bias, 20 ,PID_MAX-20); | ||||
|             if(bias > PID_MAX/2) d = PID_MAX - 1 - bias; | ||||
|             bias = constrain(bias, 20 ,(extruder<0?(PID_MAX_BED):(PID_MAX))-20); | ||||
|             if(bias > (extruder<0?(PID_MAX_BED):(PID_MAX))/2) d = (extruder<0?(PID_MAX_BED):(PID_MAX)) - 1 - bias; | ||||
|             else d = bias; | ||||
|  | ||||
|             SERIAL_PROTOCOLPGM(" bias: "); SERIAL_PROTOCOL(bias); | ||||
| @@ -414,10 +419,10 @@ void manage_heater() | ||||
| 		  dTerm_bed= (bedKd * (pid_input - temp_dState_bed))*K2 + (K1 * dTerm_bed); | ||||
| 		  temp_dState_bed = pid_input; | ||||
|  | ||||
| 		  pid_output = constrain(pTerm_bed + iTerm_bed - dTerm_bed, 0, PID_MAX); | ||||
| 		  pid_output = constrain(pTerm_bed + iTerm_bed - dTerm_bed, 0, PID_MAX_BED); | ||||
|  | ||||
|     #else  | ||||
|       pid_output = constrain(pid_setpoint_bed, 0, PID_MAX); | ||||
|       pid_output = constrain(pid_setpoint_bed, 0, PID_MAX_BED); | ||||
|     #endif //PID_OPENLOOP | ||||
|  | ||||
| 	  if((current_raw_bed > bed_minttemp) && (current_raw_bed < bed_maxttemp))  | ||||
| @@ -437,7 +442,7 @@ void manage_heater() | ||||
|         } | ||||
|         else  | ||||
|         { | ||||
| 					soft_pwm_bed = 100; | ||||
| 					soft_pwm_bed = PID_MAX_BED>>1; | ||||
|         } | ||||
|       } | ||||
|       else { | ||||
| @@ -454,7 +459,7 @@ void manage_heater() | ||||
|         else  | ||||
|           if(current_raw_bed <= target_bed_low_temp) | ||||
|         { | ||||
| 					soft_pwm_bed = 100; | ||||
| 					soft_pwm_bed = PID_MAX_BED>>1; | ||||
|         } | ||||
|       } | ||||
|       else { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user