Skip to content

Commit 528e189

Browse files
committed
style and study
1 parent 263a12c commit 528e189

File tree

1 file changed

+9
-14
lines changed

1 file changed

+9
-14
lines changed

Marlin/src/module/temperature.h

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -174,9 +174,9 @@ typedef struct { float p, i, d, c, f; } raw_pidcf_t;
174174
protected:
175175
bool pid_reset = true;
176176
bool pid_below = false;
177-
float temp_iState = 0.0f, temp_dState = 0.0f;
177+
float temp_iState = 0, temp_dState = 0;
178178
float work_p = 0, work_i = 0, work_d = 0;
179-
float max_power_over_i_gain = 255.0f;
179+
float max_power_over_i_gain = 255;
180180

181181
public:
182182
float Kp = 0, Ki = 0, Kd = 0;
@@ -191,13 +191,13 @@ typedef struct { float p, i, d, c, f; } raw_pidcf_t;
191191
float cTerm() const { return 0; }
192192
float fTerm() const { return 0; }
193193
void set_Kp(float p) { Kp = p; }
194-
void set_Ki(float i) { Ki = scalePID_i(i); max_power_over_i_gain = float(MAX_POW) / Ki - float(MIN_POW);}
194+
void set_Ki(float i) { Ki = scalePID_i(i); max_power_over_i_gain = float(MAX_POW) / Ki - float(MIN_POW); }
195195
void set_Kd(float d) { Kd = scalePID_d(d); }
196196
void set_Kc(float) {}
197197
void set_Kf(float) {}
198198
int low() const { return MIN_POW; }
199199
int high() const { return MAX_POW; }
200-
void reset() { pid_reset = true; pid_below = false;}
200+
void reset() { pid_reset = true; pid_below = false; }
201201
void set(float p, float i, float d, float c=1, float f=0) { set_Kp(p); set_Ki(i); set_Kd(d); set_Kc(c); set_Kf(f); }
202202
void set(const raw_pid_t &raw) { set(raw.p, raw.i, raw.d); }
203203
void set(const raw_pidcf_t &raw) { set(raw.p, raw.i, raw.d, raw.c, raw.f); }
@@ -220,22 +220,17 @@ typedef struct { float p, i, d, c, f; } raw_pidcf_t;
220220
}
221221
else {
222222
if (pid_reset) {
223-
pid_reset = false;
223+
temp_iState = pid_below ? max_power_over_i_gain : 0;
224224
work_d = 0;
225-
if (pid_below) {
226-
temp_iState = max_power_over_i_gain;
227-
pid_below = false;
228-
}
229-
else {
230-
temp_iState = 0;
231-
}
225+
pid_reset = false;
226+
pid_below = false;
232227
}
233228

234-
temp_iState = constrain(temp_iState + pid_error, -max_power_over_i_gain/4.0f, max_power_over_i_gain);
229+
temp_iState = constrain(temp_iState + pid_error, -0.25f * max_power_over_i_gain, max_power_over_i_gain);
235230

236231
work_p = Kp * pid_error;
237232
work_i = Ki * temp_iState;
238-
work_d = work_d + PID_K2 * (Kd * (temp_dState - current) - work_d);
233+
work_d += (Kd * (temp_dState - current) - work_d) * PID_K2;
239234

240235
output_pow = constrain(work_p + work_i + work_d + float(MIN_POW), 0, MAX_POW);
241236
}

0 commit comments

Comments
 (0)