Merge remote-tracking branch 'origin/Marlin_v1' into Marlin_v1
This commit is contained in:
		| @@ -104,11 +104,11 @@ | |||||||
|   // PID_SWING_AT_CRITIAL is the time for a full period of the oscillations at the critical Gain |   // PID_SWING_AT_CRITIAL is the time for a full period of the oscillations at the critical Gain | ||||||
|   // usually further manual tunine is necessary. |   // usually further manual tunine is necessary. | ||||||
|  |  | ||||||
|   #define PID_CRITIAL_GAIN 3000 |   #define PID_CRITIAL_GAIN 50 | ||||||
|   #define PID_SWING_AT_CRITIAL 45 //seconds |   #define PID_SWING_AT_CRITIAL 47 //seconds | ||||||
|    |    | ||||||
|   #define PID_PI    //no differentail term |   //#define PID_PI    //no differentail term | ||||||
|   //#define PID_PID //normal PID |   #define PID_PID //normal PID | ||||||
|  |  | ||||||
|   #ifdef PID_PID |   #ifdef PID_PID | ||||||
|     //PID according to Ziegler-Nichols method |     //PID according to Ziegler-Nichols method | ||||||
|   | |||||||
| @@ -902,24 +902,28 @@ inline void process_commands() | |||||||
|  |  | ||||||
|     #ifdef PIDTEMP |     #ifdef PIDTEMP | ||||||
|     case 301: // M301 |     case 301: // M301 | ||||||
|       if(code_seen('P')) Kp = code_value(); |       { | ||||||
|       if(code_seen('I')) Ki = code_value()*PID_dT; |          | ||||||
|       if(code_seen('D')) Kd = code_value()/PID_dT; |         | ||||||
|       #ifdef PID_ADD_EXTRUSION_RATE |         if(code_seen('P')) Kp = code_value(); | ||||||
|       if(code_seen('C')) Kc = code_value(); |         if(code_seen('I')) Ki = code_value()*PID_dT; | ||||||
|       #endif |         if(code_seen('D')) Kd = code_value()/PID_dT; | ||||||
|       SERIAL_PROTOCOL("ok p:"); |         #ifdef PID_ADD_EXTRUSION_RATE | ||||||
|       SERIAL_PROTOCOL(Kp); |         if(code_seen('C')) Kc = code_value(); | ||||||
|       SERIAL_PROTOCOL(" i:"); |         #endif | ||||||
|       SERIAL_PROTOCOL(Ki/PID_dT); |         updatePID(); | ||||||
|       SERIAL_PROTOCOL(" d:"); |         SERIAL_PROTOCOL("ok p:"); | ||||||
|       SERIAL_PROTOCOL(Kd*PID_dT); |         SERIAL_PROTOCOL(Kp); | ||||||
|       #ifdef PID_ADD_EXTRUSION_RATE |         SERIAL_PROTOCOL(" i:"); | ||||||
|       SERIAL_PROTOCOL(" c:"); |         SERIAL_PROTOCOL(Ki/PID_dT); | ||||||
|       SERIAL_PROTOCOL(Kc*PID_dT); |         SERIAL_PROTOCOL(" d:"); | ||||||
|       #endif |         SERIAL_PROTOCOL(Kd*PID_dT); | ||||||
|       SERIAL_PROTOCOLLN(""); |         #ifdef PID_ADD_EXTRUSION_RATE | ||||||
|        |         SERIAL_PROTOCOL(" c:"); | ||||||
|  |         SERIAL_PROTOCOL(Kc*PID_dT); | ||||||
|  |         #endif | ||||||
|  |         SERIAL_PROTOCOLLN(""); | ||||||
|  |       } | ||||||
|       break; |       break; | ||||||
|     #endif //PIDTEMP |     #endif //PIDTEMP | ||||||
|     case 400: // finish all moves |     case 400: // finish all moves | ||||||
|   | |||||||
| @@ -114,6 +114,13 @@ static unsigned long previous_millis_heater, previous_millis_bed_heater; | |||||||
| //=============================functions         ============================ | //=============================functions         ============================ | ||||||
| //=========================================================================== | //=========================================================================== | ||||||
|    |    | ||||||
|  | void updatePID() | ||||||
|  | { | ||||||
|  | #ifdef PIDTEMP | ||||||
|  |   temp_iState_max = PID_INTEGRAL_DRIVE_MAX / Ki; | ||||||
|  | #endif | ||||||
|  | } | ||||||
|  |    | ||||||
| void manage_heater() | void manage_heater() | ||||||
| { | { | ||||||
|   #ifdef USE_WATCHDOG |   #ifdef USE_WATCHDOG | ||||||
|   | |||||||
| @@ -87,6 +87,7 @@ inline bool isCoolingBed() {return target_raw[TEMPSENSOR_BED] < current_raw[TEMP | |||||||
|  |  | ||||||
| void disable_heater(); | void disable_heater(); | ||||||
| void setWatch(); | void setWatch(); | ||||||
|  | void updatePID(); | ||||||
|  |  | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user