This repository has been archived by the owner on Sep 27, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
[BPMApp] Wrong meaning of temperature control PID parameters (Kp, Ti, Td vs. Kp, Ki, Kd) #35
Comments
This was referenced Mar 3, 2023
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.
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.
The text was updated successfully, but these errors were encountered: