Author: alc
Date: Thu Jun  7 07:48:50 2018
New Revision: 334769
URL: https://svnweb.freebsd.org/changeset/base/334769

Log:
  When pidctrl_daemon() is called multiple times within an interval, it
  should use the cumulative error to calculate the output.

Modified:
  head/sys/kern/subr_pidctrl.c

Modified: head/sys/kern/subr_pidctrl.c
==============================================================================
--- head/sys/kern/subr_pidctrl.c        Thu Jun  7 07:48:26 2018        
(r334768)
+++ head/sys/kern/subr_pidctrl.c        Thu Jun  7 07:48:50 2018        
(r334769)
@@ -146,7 +146,7 @@ pidctrl_daemon(struct pidctrl *pc, int input)
        pc->pc_derivative = pc->pc_error - pc->pc_olderror;
 
        /* Divide by inverse gain values to produce output. */
-       output = (error / Kpd) + (pc->pc_integral / Kid) +
+       output = (pc->pc_error / Kpd) + (pc->pc_integral / Kid) +
            (pc->pc_derivative / Kdd);
        output = MAX(output - pc->pc_output, 0);
        /* Save for sysctl. */
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to