Anti-reset-windup for a cascade control loop with 1 Master and multiple slaves

Hi,

I would like to ask how do you set up an anti-reset-windup mechanism for a cascade control loop with 1 master controller and multiple slave controllers.

The controller in question is a master level controller, with up to 10 slave flow controllers. The slave flow controllers to be in service are selected by the DCS panel operator depending on process needs (e.g. 5 out of 10 flow controllers are cascaded to the level controller). I could only find examples for anti-reset-windup for a simple 1-master, 1-slave cascade control (BKCAL_OUT from the slave PID controller needs to be connected to the BKCAL_IN of the master PID controller) and would like to know how this can be further extended to multiple slaves.

Thanks!

Yours sincerely,

Kerina

  • In reply to Jimmy Lee:

    Jimmy,

    First tune the secondary loop (aka lower loop) to the desired Lambda.  Now put the primary (aka upper loop) in manual and the secondary loop in Cascade.  Now you can perform step tests of the primary loop by stepping its output (which steps the SP of the secondary loop) and analyzing the response of the PV.  For example, if it is a first order self-regulating response you will determine Kp, Deadtime and Tau1. If it is an integrating response you will determine the integrating process loop gain, Kpi and the dead time.  Then you tune the primary loop with a Lambda greater then at least 5 times the Lambda of the secondary loop, as desired for loop coordination or variability regulations, both subject to minimum Lambda for robustness requirements.  For example, you might find a minimum Lambda for the primary loop from a robustness standpoint to be 50 times the Lambda of the secondary loop!  That is ok, it meets the cascade response speed separation requirements.  The integral of the primary loop controller is set by the Lambda tuning rules that you choose.  For example, if the primary loop's response is a first order self-regulating response, the integral time is set equal to the Tau of the open loop response.  If it's response is an integrator, the integral time is set equal to [2*Lambda + Dead time].

    See my ISA articles on Lambda tuning!  

    Loop tuning basics: Integrating processes -  https://www.isa.org/intech/201604basics/ 

    Loop tuning basics: Self-regulating processes - https://www.isa.org/intech/201606basics/

     Loop tuning basics: Complex process responses  https://www.isa.org/intech/201610web/

  • In reply to James Beall:

    Many Thanks, James