Jelajahi Sumber

Ki, Kp, Kd configuration store

PavelSindler 5 tahun lalu
induk
melakukan
9bfeedcd8e
1 mengubah file dengan 8 tambahan dan 8 penghapusan
  1. 8 8
      Firmware/temperature.cpp

+ 8 - 8
Firmware/temperature.cpp

@@ -396,7 +396,7 @@ void updatePID()
 {
 #ifdef PIDTEMP
   for(int e = 0; e < EXTRUDERS; e++) { 
-     iState_sum_max[e] = PID_INTEGRAL_DRIVE_MAX / cs.Ki;  
+     iState_sum_max[e] = PID_INTEGRAL_DRIVE_MAX / Ki;  
   }
 #endif
 #ifdef PIDTEMPBED
@@ -525,13 +525,13 @@ void manage_heater()
             pid_reset[e] = false;
           }
 #ifndef PonM
-          pTerm[e] = cs.Kp * pid_error[e];
+          pTerm[e] = Kp * pid_error[e];
           iState_sum[e] += pid_error[e];
           iState_sum[e] = constrain(iState_sum[e], iState_sum_min[e], iState_sum_max[e]);
-          iTerm[e] = cs.Ki * iState_sum[e];
+          iTerm[e] = Ki * iState_sum[e];
           // K1 defined in Configuration.h in the PID settings
           #define K2 (1.0-K1)
-          dTerm[e] = (cs.Kd * (pid_input - dState_last[e]))*K2 + (K1 * dTerm[e]); // e.g. digital filtration of derivative term changes
+          dTerm[e] = (Kd * (pid_input - dState_last[e]))*K2 + (K1 * dTerm[e]); // e.g. digital filtration of derivative term changes
           pid_output = pTerm[e] + iTerm[e] - dTerm[e]; // subtraction due to "Derivative on Measurement" method (i.e. derivative of input instead derivative of error is used)
           if (pid_output > PID_MAX) {
             if (pid_error[e] > 0 ) iState_sum[e] -= pid_error[e]; // conditional un-integration
@@ -541,10 +541,10 @@ void manage_heater()
             pid_output=0;
           }
 #else // PonM ("Proportional on Measurement" method)
-          iState_sum[e] += cs.Ki * pid_error[e];
-          iState_sum[e] -= cs.Kp * (pid_input - dState_last[e]);
+          iState_sum[e] += Ki * pid_error[e];
+          iState_sum[e] -= Kp * (pid_input - dState_last[e]);
           iState_sum[e] = constrain(iState_sum[e], 0, PID_INTEGRAL_DRIVE_MAX);
-          dTerm[e] = cs.Kd * (pid_input - dState_last[e]);
+          dTerm[e] = Kd * (pid_input - dState_last[e]);
           pid_output = iState_sum[e] - dTerm[e];  // subtraction due to "Derivative on Measurement" method (i.e. derivative of input instead derivative of error is used)
           pid_output = constrain(pid_output, 0, PID_MAX);
 #endif // PonM
@@ -906,7 +906,7 @@ void tp_init()
     maxttemp[e] = maxttemp[0];
 #ifdef PIDTEMP
     iState_sum_min[e] = 0.0;
-    iState_sum_max[e] = PID_INTEGRAL_DRIVE_MAX / cs.Ki;
+    iState_sum_max[e] = PID_INTEGRAL_DRIVE_MAX / Ki;
 #endif //PIDTEMP
 #ifdef PIDTEMPBED
     temp_iState_min_bed = 0.0;