@@ -240,7 +240,8 @@ where
240240 let d_unbounded = -match self . prev_measurement . as_ref ( ) {
241241 Some ( prev_measurement) => measurement - * prev_measurement,
242242 None => T :: zero ( ) ,
243- } * self . kd / dt;
243+ } * self . kd
244+ / dt;
244245 self . prev_measurement = Some ( measurement) ;
245246 let d = apply_limit ( self . d_limit , d_unbounded) ;
246247
@@ -290,11 +291,11 @@ mod tests {
290291 assert_eq ! ( pid. setpoint, 10.0 ) ;
291292
292293 // Test simple proportional
293- assert_eq ! ( pid. next_control_output( 0.0 , 1.0 ) . output, 20.0 ) ;
294+ assert_eq ! ( pid. next_control_output( 0.0 , 1.0 ) . output, 20.0 ) ;
294295
295296 // Test proportional limit
296297 pid. p_limit = 10.0 ;
297- assert_eq ! ( pid. next_control_output( 0.0 , 1.0 ) . output, 10.0 ) ;
298+ assert_eq ! ( pid. next_control_output( 0.0 , 1.0 ) . output, 10.0 ) ;
298299 }
299300
300301 /// Derivative-only controller operation and limits
@@ -304,14 +305,14 @@ mod tests {
304305 pid. p ( 0.0 , 100.0 ) . i ( 0.0 , 100.0 ) . d ( 2.0 , 100.0 ) ;
305306
306307 // Test that there's no derivative since it's the first measurement
307- assert_eq ! ( pid. next_control_output( 0.0 , 1.0 ) . output, 0.0 ) ;
308+ assert_eq ! ( pid. next_control_output( 0.0 , 1.0 ) . output, 0.0 ) ;
308309
309310 // Test that there's now a derivative
310- assert_eq ! ( pid. next_control_output( 5.0 , 1.0 ) . output, -10.0 ) ;
311+ assert_eq ! ( pid. next_control_output( 5.0 , 1.0 ) . output, -10.0 ) ;
311312
312313 // Test derivative limit
313314 pid. d_limit = 5.0 ;
314- assert_eq ! ( pid. next_control_output( 10.0 , 1.0 ) . output, -5.0 ) ;
315+ assert_eq ! ( pid. next_control_output( 10.0 , 1.0 ) . output, -5.0 ) ;
315316 }
316317
317318 /// Integral-only controller operation and limits
@@ -321,26 +322,26 @@ mod tests {
321322 pid. p ( 0.0 , 100.0 ) . i ( 2.0 , 100.0 ) . d ( 0.0 , 100.0 ) ;
322323
323324 // Test basic integration
324- assert_eq ! ( pid. next_control_output( 0.0 , 1.0 ) . output, 20.0 ) ;
325- assert_eq ! ( pid. next_control_output( 0.0 , 1.0 ) . output, 40.0 ) ;
326- assert_eq ! ( pid. next_control_output( 5.0 , 1.0 ) . output, 50.0 ) ;
325+ assert_eq ! ( pid. next_control_output( 0.0 , 1.0 ) . output, 20.0 ) ;
326+ assert_eq ! ( pid. next_control_output( 0.0 , 1.0 ) . output, 40.0 ) ;
327+ assert_eq ! ( pid. next_control_output( 5.0 , 1.0 ) . output, 50.0 ) ;
327328
328329 // Test limit
329330 pid. i_limit = 50.0 ;
330- assert_eq ! ( pid. next_control_output( 5.0 , 1.0 ) . output, 50.0 ) ;
331+ assert_eq ! ( pid. next_control_output( 5.0 , 1.0 ) . output, 50.0 ) ;
331332 // Test that limit doesn't impede reversal of error integral
332- assert_eq ! ( pid. next_control_output( 15.0 , 1.0 ) . output, 40.0 ) ;
333+ assert_eq ! ( pid. next_control_output( 15.0 , 1.0 ) . output, 40.0 ) ;
333334
334335 // Test that error integral accumulates negative values
335336 let mut pid2 = Pid :: new ( -10.0 , 100.0 ) ;
336337 pid2. p ( 0.0 , 100.0 ) . i ( 2.0 , 100.0 ) . d ( 0.0 , 100.0 ) ;
337- assert_eq ! ( pid2. next_control_output( 0.0 , 1.0 ) . output, -20.0 ) ;
338- assert_eq ! ( pid2. next_control_output( 0.0 , 1.0 ) . output, -40.0 ) ;
338+ assert_eq ! ( pid2. next_control_output( 0.0 , 1.0 ) . output, -20.0 ) ;
339+ assert_eq ! ( pid2. next_control_output( 0.0 , 1.0 ) . output, -40.0 ) ;
339340
340341 pid2. i_limit = 50.0 ;
341- assert_eq ! ( pid2. next_control_output( -5.0 , 1.0 ) . output, -50.0 ) ;
342+ assert_eq ! ( pid2. next_control_output( -5.0 , 1.0 ) . output, -50.0 ) ;
342343 // Test that limit doesn't impede reversal of error integral
343- assert_eq ! ( pid2. next_control_output( -15.0 , 1.0 ) . output, -40.0 ) ;
344+ assert_eq ! ( pid2. next_control_output( -15.0 , 1.0 ) . output, -40.0 ) ;
344345 }
345346
346347 /// Checks that a full PID controller's limits work properly through multiple output iterations
@@ -349,11 +350,11 @@ mod tests {
349350 let mut pid = Pid :: new ( 10.0 , 1.0 ) ;
350351 pid. p ( 1.0 , 100.0 ) . i ( 0.0 , 100.0 ) . d ( 0.0 , 100.0 ) ;
351352
352- let out = pid. next_control_output ( 0.0 , 1.0 ) ;
353+ let out = pid. next_control_output ( 0.0 , 1.0 ) ;
353354 assert_eq ! ( out. p, 10.0 ) ; // 1.0 * 10.0
354355 assert_eq ! ( out. output, 1.0 ) ;
355356
356- let out = pid. next_control_output ( 20.0 , 1.0 ) ;
357+ let out = pid. next_control_output ( 20.0 , 1.0 ) ;
357358 assert_eq ! ( out. p, -10.0 ) ; // 1.0 * (10.0 - 20.0)
358359 assert_eq ! ( out. output, -1.0 ) ;
359360 }
@@ -364,25 +365,25 @@ mod tests {
364365 let mut pid = Pid :: new ( 10.0 , 100.0 ) ;
365366 pid. p ( 1.0 , 100.0 ) . i ( 0.1 , 100.0 ) . d ( 1.0 , 100.0 ) ;
366367
367- let out = pid. next_control_output ( 0.0 , 1.0 ) ;
368+ let out = pid. next_control_output ( 0.0 , 1.0 ) ;
368369 assert_eq ! ( out. p, 10.0 ) ; // 1.0 * 10.0
369370 assert_eq ! ( out. i, 1.0 ) ; // 0.1 * 10.0
370371 assert_eq ! ( out. d, 0.0 ) ; // -(1.0 * 0.0)
371372 assert_eq ! ( out. output, 11.0 ) ;
372373
373- let out = pid. next_control_output ( 5.0 , 1.0 ) ;
374+ let out = pid. next_control_output ( 5.0 , 1.0 ) ;
374375 assert_eq ! ( out. p, 5.0 ) ; // 1.0 * 5.0
375376 assert_eq ! ( out. i, 1.5 ) ; // 0.1 * (10.0 + 5.0)
376377 assert_eq ! ( out. d, -5.0 ) ; // -(1.0 * 5.0)
377378 assert_eq ! ( out. output, 1.5 ) ;
378379
379- let out = pid. next_control_output ( 11.0 , 1.0 ) ;
380+ let out = pid. next_control_output ( 11.0 , 1.0 ) ;
380381 assert_eq ! ( out. p, -1.0 ) ; // 1.0 * -1.0
381382 assert_eq ! ( out. i, 1.4 ) ; // 0.1 * (10.0 + 5.0 - 1)
382383 assert_eq ! ( out. d, -6.0 ) ; // -(1.0 * 6.0)
383384 assert_eq ! ( out. output, -5.6 ) ;
384385
385- let out = pid. next_control_output ( 10.0 , 1.0 ) ;
386+ let out = pid. next_control_output ( 10.0 , 1.0 ) ;
386387 assert_eq ! ( out. p, 0.0 ) ; // 1.0 * 0.0
387388 assert_eq ! ( out. i, 1.4 ) ; // 0.1 * (10.0 + 5.0 - 1.0 + 0.0)
388389 assert_eq ! ( out. d, 1.0 ) ; // -(1.0 * -1.0)
@@ -401,8 +402,8 @@ mod tests {
401402
402403 for _ in 0 ..5 {
403404 assert_eq ! (
404- pid_f32. next_control_output( 0.0 , 1.0 ) . output,
405- pid_f64. next_control_output( 0.0 , 1.0 ) . output as f32
405+ pid_f32. next_control_output( 0.0 , 1.0 ) . output,
406+ pid_f64. next_control_output( 0.0 , 1.0 ) . output as f32
406407 ) ;
407408 }
408409 }
@@ -419,8 +420,8 @@ mod tests {
419420
420421 for _ in 0 ..5 {
421422 assert_eq ! (
422- pid_i32. next_control_output( 0 , 1 ) . output,
423- pid_i8. next_control_output( 0i8 , 1i8 ) . output as i32
423+ pid_i32. next_control_output( 0 , 1 ) . output,
424+ pid_i8. next_control_output( 0i8 , 1i8 ) . output as i32
424425 ) ;
425426 }
426427 }
0 commit comments