I am planning to implement averaging type level control in a vessel using either the non-linear control or gain scheduling control options in DeltaV.
I have implemented averaging level control on a number of other systems, either by programming error squared type control or by using gain scheduling, so am familiar with all the issues involved, but need some guidance on how to implement with DeltaV.
The PID control function block description that I have shows non-linear gain and how to implement, but doesnt show gain scheduling as an option. A separate document titled "interesting and useful features of DeltaV" lists gain scheduling as being available, but the details on how to implement it are a bit vague, and it appears you have to install some function blocks around the controller to get it to work. Does anyone have a tech note on how to implement gain scheduling?
I would prefer to use the gain scheduling, but having only three zones is a bit limiting unless the reference variable can be set to error, and I only see PV, Out and Auxvar listed as being available. Can Auxvar be configured to read error?
If I end up having to use non-linear gain, I will need to reduce the integral action when error is small to prevent oscillations. The "interesting and useful features" note indicates that integral can be based on gain*minmod but doesnt describe details of how to do this. Any suggestions?
Jeff Richards
Jeff,
The gain scheduling function is discussed in Books On Line (see PID_GAINSCHED). It is in the DeltaV configuration Library. For your application, you should calculate the absolute value of the PID/Error (assuming you want equal action for positive or negative errors). This allows to have different tuning for 3 ranges of the PV deviation from SP.
If this level has an "integrating" response like most levels, you should use Lambda tuning for integrating processes to get the 3 sets of tuning. See my article in ISA InTech magazine for more information.
As I pointed out in the "Interesting and Useful Features", if you use the non-linear gain, you should use the Reset time that is calculated for the lowest effective gain (Gain*MinMod) using the aforementioned Lambda Tuning for integrating processes. This will be the slower (longer) Reset time than would be used for the full Gain.
FYI, I am not a proponent of error squared, especially without any limits, for integrating process. With a fixed Reset time and small errors resulting in low effective controller gain, the resulting tuning will most surely be oscillatory when the PV is close to the SP!
Hope this helps!
James
In reply to James Beall:
Hi Jeff,
To be honest I do not like doing that kind of control, but if it has worked for you then I guess it is ok. Any integrating process with adaptive gain on a handle which is linear to the rise rate of the integrator will not be ideal. Have you considered passing the PV through a moving average filter ? A filter can be approximated with a first order lag, or you can build a filtering block using an array and some calculations. I am not sure how to attach files to this response but I have a class module which would work I think.
regards
Paul