Date: Thu, 7 Jun 2018 07:48:50 +0000 (UTC) From: Alan Cox <alc@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r334769 - head/sys/kern Message-ID: <201806070748.w577mopW062344@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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. */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201806070748.w577mopW062344>