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"