Skip to content
This repository has been archived by the owner on Sep 27, 2024. It is now read-only.

[BPMApp] Wrong meaning of temperature control PID parameters (Kp, Ti, Td vs. Kp, Ki, Kd) #35

Open
danielot opened this issue Aug 18, 2018 · 0 comments

Comments

@danielot
Copy link
Member

RFFE firmware and EPICS IOC code uses standard PID coefficients (Kp, Ti, Td), however the actual feedback controller makes use of parallel coefficients (Kp, Ki, Kd).

OPI and PV names referring to Ti and Td should be changed to Ki and Kd.

henriquesimoes added a commit to lnls-dig/rffe-epics-ioc that referenced this issue Apr 18, 2023
Heater support include the switching between automatic and manual
heating control, besides the parameters for both methods. For the manual
heating setting, the voltage is used to indirectly control the
temperature. On the other hand, automatic control (through PID method)
is allows to specify a set-point temperature to be reached and Kp, Ti,
and Td constants from both boards.

Periodic scan is used in read-back records so that PV has the updated
value when some external access is done to the device to update its
configuration. An arbitrary value of 1 second has been chosen to keep
the value reasonably updated while not overloading the device. Moreover,
when a value is updated, the corresponding read-back value must be
updated so that scripts can directly read back the correct value.
Therefore, it has also been used a forward link to read-back from
set-point records. Note that it is used the `PROC` field in the
forwarding. This is because a non-passive scan is used in the read-back
records.

The PV names have been kept from the previous IOC. This implies that the
issue reported about the misleading PID coefficient names has not been
solved here [1]. This is because we should do that coordinated with the IOC
clients. Therefore, Td should be read as Kd and Ti should be read as Ki.
For this reason, they have been limited to be non-negative as defined in
the PID controller theory. The same goes for Kp. The upper limit (DRVH)
must be specified explicitly, so that the clipping condition `DRVL <
DRVH` holds (as both values defaults to 0). In this case, it is
unlimited (i.e. infinity).

[1]: lnls-dig/bpm-epics-ioc#35
henriquesimoes added a commit to lnls-dig/rffe-epics-ioc that referenced this issue Jun 12, 2023
Heater support include the switching between automatic and manual
heating control, besides the parameters for both methods. For the manual
heating setting, the voltage is used to indirectly control the
temperature. On the other hand, automatic control (through PID method)
is allows to specify a set-point temperature to be reached and Kp, Ti,
and Td constants from both boards.

Periodic scan is used in read-back records so that PV has the updated
value when some external access is done to the device to update its
configuration. An arbitrary value of 1 second has been chosen to keep
the value reasonably updated while not overloading the device. Moreover,
when a value is updated, the corresponding read-back value must be
updated so that scripts can directly read back the correct value.
Therefore, it has also been used a forward link to read-back from
set-point records. Note that it is used the `PROC` field in the
forwarding. This is because a non-passive scan is used in the read-back
records.

The PV names have been kept from the previous IOC. This implies that the
issue reported about the misleading PID coefficient names has not been
solved here [1]. This is because we should do that coordinated with the
IOC clients. Therefore, Td should be read as Kd and Ti should be read as
Ki. For this reason, they have been limited to be non-negative as
defined in the PID controller theory. The same goes for Kp, which is
referred as Kc by the firmware and thus in the protocol. The upper limit
(DRVH) must be specified explicitly, so that the clipping condition
`DRVL < DRVH` holds (as both values defaults to 0). In this case, it is
unlimited (i.e. infinity).

[1]: lnls-dig/bpm-epics-ioc#35
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant