Dear all,
We have a control problem not solved for 30 years, because of the very fast and peculiar characteristics of our process. We can’t make any kind of disturbance test in this control loop, because of the risk of plant trip. In order to try to solve this problem we’ve made a process model, based on phenomenological modeling allowing us to test control strategies and different tuning parameters. This process model has very good fit to actual data and we tested some control strategies with standard discrete PID algorithm in Matlab, with encouraging results, when we adjust this control loop to run in 100 msec execution time
But, for our surprise, we could not reproduce the behavior of Delta V PID algorithm in Matlab. If we collect PV and SP data and try to apply PID algorithm we could not reproduce OUT data behavior. Since in Delta V online manual there is not the discrete algorithm of PID function (difference equation), we used a standard trapezoidal discretization algorithm of the continuous PID algorithm shown in the Online manual, with no success.
As the major DCS vendors supply the discrete PID algorithm of their systems, we supposed Emerson could also supply Delta V PID discrete algorithm, but they said that they can´t give us this kind of information.
So, even with a very good process model we can’t use it, because we can’t guarantee the tuning data are suitable to the real process response we need.
Can you provide or recommend some reference of the discrete algorithm of Delta V (we are in version 12.3)? Or some implementation of it in Matlab?
Thanks.
Andre Dicaire
In reply to neilrbrown:
In reply to Andre Dicaire:
In reply to Mark Coughran:
In reply to James Beall:
James,
Bellow is the Algorithm we made trying to reproduce Delta V PID behavior:
The first gain is scale adjustment (0 to 6000 rpm). Then we made a discretization of BOL algorithm using the tunning parameters.
I may be wrong, but we made this discretization to be "positional" PID, since we calculate the MV value each cycle and not only MV variation, also the discrete filter (Show as discrete-time inegrator in drawing).
Of course there is something wrong (otherwise I would not asking you) but we cannot find the error in this continuous to discrete translation.
Thank you,
Flávio
In reply to Flavio Issa: