Hi Bruce,
As I recall I copied that logic from the old PID record from EPICS base. I agree that KP should probably not be in the I and D terms, but I think it's too late to change it, since users have tuned their EPID systems using this formula.
Mark
________________________________
From: Bruce Hill [[email protected]]
Sent: Wednesday, February 27, 2013 12:36 AM
To: Mark Rivers
Cc: [email protected]
Subject: Question about epid record
Hi Mark,
I'm in the process of replacing a genSub based PID controller with
the epid record that you and Bob developed, and I'm puzzled by a difference
in how the two compute the I and D terms.
In the classical PID algorithm, the value of M(n), the manipulated variable is
M(n) = KP*(E(n) + KI*SUMi(E(i)*dT(i)) + KD*(E(n) -E(n-1))/dT(n)
In fact, the above is from line 33 of devEpidSoft.c, and agrees with
other descriptions I've found of the PID calculation.
However, in the do_pid() function, and in epidRecord.html, the
calculation includes the KP gain in the integral and derivative terms.
M(n) = KP*(E(n) + KP*KI*SUMi(E(i)*dT(i)) + KP*KD*(E(n) -E(n-1))/dT(n)
I can scale my KI and KD gain factors by KP to get the equivalent result,
but I don't see why the effective integral gain should be affected when
the proportional gain is tweaked. Ditto for KD.
Any comments or clarification would be appreciated.
Thanks,
- Bruce
--
Bruce Hill
Member Technical Staff
SLAC National Accelerator Laboratory
- Replies:
- AW: Question about epid record Pal Trivan
- References:
- Question about epid record Bruce Hill
- Navigate by Date:
- Prev:
Re: caClient with PCAS Benjamin Franksen
- Next:
Installing EPICS&MEDM on UBUNTU Yasemin Barutçu
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
<2013>
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Question about epid record Bruce Hill
- Next:
AW: Question about epid record Pal Trivan
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
<2013>
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|