Slow Acting Long Time Interval PID Tuning

Dead time is measured from the time the control output changes, the orange line, to the time the system responds.
You have the wrong definition of dead time.
There may be multiple dead times in a system but they can be combined into one.



I don't agree with quantizing the control output into such coarse steps.
Quantizing to steps may work if the update rate was faster. Then this would be like a multi step PWM.


A thousand curses on the person that designed this mess.
 
@PeterN I understand what you are saying, and agree that, at a minimum, there may be better alternatives to stiction and other backlash and/or hysteresis issues.


But in the actual case the control valve will be initially behind the CV (deadtime), then ahead of the CV ("aheadtime" if you will), then behind, then ahead, etc. So from a practical standpoint, with the obviously much longer time constants in play, that will average out and behave as if deadtime is much smaller than system time constants, and so can be ignored with Td set to zero.
 
But in the actual case the control valve will be initially behind the CV (deadtime), then ahead of the CV ("aheadtime" if you will), then behind, then ahead, etc. So from a practical standpoint, with the obviously much longer time constants in play, that will average out and behave as if deadtime is much smaller than system time constants, and so can be ignored with Td set to zero.
I shake my head. The PV can never respond to a change in the CV that hasn't happened yet.
This is the problem. Until you understand what you are controlling you will need to be lucky to get it to work and at least waste a lot of time like on this project.
 
no, I thought I posted a response at least a day ago, but apparently it was lost.


I have no choice but to resort to a Dreaded ASCII Graphic bwahahahahaha!


Code:
    [COLOR=darkorange]+---[/COLOR]o  --1%[B][COLOR=darkorange]
    |[/COLOR][/B][COLOR=Blue][B]  /[/B][/COLOR]
[COLOR=darkorange][B]    |[/B][/COLOR] [COLOR=blue][B]/[/B][/COLOR]
[COLOR=darkorange][B]    |[/B][/COLOR][COLOR=blue][B]/[/B][/COLOR]
    +
   [COLOR=blue][B]/[/B][/COLOR][COLOR=darkorange][B]|[/B][/COLOR]
 [COLOR=blue][B] /[/B][/COLOR] [COLOR=darkorange][B]|[/B][/COLOR][COLOR=blue][B]
 /[/B][/COLOR]  [COLOR=darkorange][B]|[/B][/COLOR]
o[B][COLOR=DarkOrange]---+[/COLOR][/B][COLOR=DarkOrange][COLOR=Black]      --0%
^       ^
T=0s    T=Ns[/COLOR][/COLOR]
Blue is the PID CV output; orange is the clamped, rounded valve position signal. To first order, the effect of the valve position will over the time period 0s to N seconds will proportional to the area under the curve over that time period i.e. 0.5N %-s. Without clamping and rounding, the effect of the CV if sent directly to the valve would be proportional to the same area.

Obviously there are a lot of unknowns, e.g. does the valve position match the signal, etc., etc., etc. But those are all second-order effects. Given the paucity of information, first-order guesses are the best we have; second-order minutiae are not worth pursuing.

Bottom line: yes, there is some small deadtime, but given the large time constant(s) of this system, a Td of 0 will not prevent a tuned system that meets OP's requirement of +/-0.05degC.
 
no, I thought I posted a response at least a day ago, but apparently it was lost.


I have no choice but to resort to a Dreaded ASCII Graphic bwahahahahaha!


Code:
    [COLOR=darkorange]+---[/COLOR]o  --1%[B][COLOR=darkorange]
    |[/COLOR][/B][COLOR=Blue][B]  /[/B][/COLOR]
[COLOR=darkorange][B]    |[/B][/COLOR] [COLOR=blue][B]/[/B][/COLOR]
[COLOR=darkorange][B]    |[/B][/COLOR][COLOR=blue][B]/[/B][/COLOR]
    +
   [COLOR=blue][B]/[/B][/COLOR][COLOR=darkorange][B]|[/B][/COLOR]
 [COLOR=blue][B] /[/B][/COLOR] [COLOR=darkorange][B]|[/B][/COLOR][COLOR=blue][B]
 /[/B][/COLOR]  [COLOR=darkorange][B]|[/B][/COLOR]
o[B][COLOR=DarkOrange]---+[/COLOR][/B][COLOR=DarkOrange][COLOR=Black]      --0%
^       ^
T=0s    T=Ns[/COLOR][/COLOR]
Blue is the PID CV output;
orange is the clamped, rounded valve position signal. To first order, the effect of the valve position will over the time period 0s to N seconds will proportional to the area under the curve over that time period i.e. 0.5N %-s. Without clamping and rounding, the effect of the CV if sent directly to the valve would be proportional to the same area.

Obviously there are a lot of unknowns, e.g. does the valve position match the signal, etc., etc., etc. But those are all second-order effects. Given the paucity of information, first-order guesses are the best we have; second-order minutiae are not worth pursuing.

Bottom line: yes, there is some small deadtime, but given the large time constant(s) of this system, a Td of 0 will not prevent a tuned system that meets OP's requirement of +/-0.05degC.
I am talking about the original plots. There is huge dead time between the control signal to the valve and when the blue line, the temperature, response.


If you can't get this right there is no hope.
 
I am talking about the original plots.

No, you are not ...

The PV can never respond to a change in the CV that hasn't happened yet....

but that is a distraction.

There is huge dead time between the control signal to the valve and when the blue line, the temperature, response.


Cf. Post #119: to my finely calibrated eyeball, from the dynamics of the orange and blue lines immediately after the white vertical bar it is impossible to identify lag vs. deadtime; even if the latter, it cannot be more than a quarter-hour, so please justify how that is called "huge," given the obvious size of the time constant.

If you can't get this right there is no hope.

Are you sure you are not swapping Direct- vs. Reverse-acting?
 
There is no hope or help until you figure out what dead time is.


I've known what deadtime is for over 40y. The question here is not if there is any deadtime in this process; of course there is. The question is whether it is significant enough to need to be compensated for via the PIDE parameters.
 
Last edited:
I have an updating on my tuning process.

After messing with a lot a parameters I found that (at least with the AB PIDE) that derivative control is not required for this process. A PI controller is all that is necessary. This is a graph over 24 hours with the following parameters.

Red = Setpoint (12°C)

Upper Blue = Lower Temperature
Lower Blue = Lower Valve Position

Upper Purple = Upper Temperature
Lower Purple = Lower Valve Position

P = 60
I = 120
D = 0

My output is quite noisy but this it within acceptable levels. Keep in mind this small picture contains 2880 data points per pen line. One interesting thing I find across all my tanks is that the output of the valves roughly follows the temperature instead of lagging like it was before.

The next big test is to see how the PID or more effectively the PI reacts to a large temperature change and if it can predict adequately to not overshoot.

Your guys' input has been extremally valuable but i'm still open to suggestions on how to improve on this.

Tank 15 P60 I120.PNG
 
P = 60
I = 120
D = 0


ne interesting thing I find across all my tanks is that the output of the valves roughly follows the temperature instead of lagging like it was before.
Yes, D is zero, and I is so large that integral action is minimal, so this is essentially a P-only controller.

Try P=50, I=60, as @Mispeld suggested.




Upper Blue = Lower Temperature
Lower Blue = Lower Valve Position

Upper Purple = Upper Temperature
Lower Purple = Lower Valve Position


How can Lower Blue and Lower Purple be the same thing (Lower Valve Position)?


Is there more than one valve?


Are these actual valve position(s), or are they the post-processed (rounded, clamped) PID output CV signal sent to the valve(s)
 
Last edited:
Your guys' input has been extremally valuable but i'm still open to suggestions on how to improve on this.

Some of your (non-mutually-exclusive) options moving forward:

1. Continue trial-and-error tuning with limited information available. As noted, the second set of results now showing PV and CV in phase implies a shift from integral-dominant to proportional dominant. Improvement is likely possible within the current operating window of the CV.

2. Investigate and improve the control valve situation.

a) If the root cause of unreliable operation cannot be fixed, then consider a deadband-like algorithm on the CV output instead of the round-to-one-percent strategy.

b) Characterize the value flow at typical coolant operating pressure. Then linearize the flow vs. CV response with an inverse or stepwise compensation function after the PIDE.

3. Increase process understanding to guide incremental tuning decisions.

a) Run in manual at fixed output, as long as safety- and cost-wise possible, to get insight on the nature and source of process disturbances.

b) If step 3a demonstrates an inherently stable process (i.e., PV basically flatlines when CV flatlines), introduce a reasonable open-loop (manual mode) step change in the CV to observe PV response. This will take a lot of patience for the slow process, but can be a gold mine of information for modeling, simulation, and tuning under the assumption of little or no external influence during the step test.

c) Develop a first principle model for the process such as can be used in simulation and computational tuning techniques.

4. Install instrumentation to better understand the process and potential disturbances. For example, a flow/temperature device on the coolant supply line to measure flow linearity and source temperature stability under normal and test conditions. Keyence makes a clamp-on for flow and pipe temperature that should be fine with diluted glycol. (I have good experience with Keyence products, but their sales tactics not so much.)

5. Determine from the "process owner" the required control system performance. Additional action is a cost in time and possibly equipment. Does potential improvement in process yield justify more spending? This will give you a budget. There should be an objective goal to reach in terms of a control system performance measurement (e.g., error range, error std dev, integrated error).
 
Last edited:
Try P=50, I=60, as @Mispeld suggested.

How can Lower Blue and Lower Purple be the same thing (Lower Valve Position)?

Is there more than one valve?

Are these actual valve position(s), or are they the post-processed (rounded, clamped) PID output CV signal sent to the valve(s)


Sorry that was a typeo it theres is an upper and lower jacket valve. I tried p 35 and I 60 and the reaction was still to slow. It seems that the higher the I the more reactive the CV, however this does also produce a lot of noise on PV change.
 

Similar Topics

Hey guys, I have a Controllogix and I am tying to control a PID loop for Chlorine (CL2). The trouble is the mixing point is 15 minutes away from...
Replies
16
Views
6,716
Hi All, we've recently upgraded from FTView SE v10 to v12. Since the upgrade we've been having a problem where the HMI is slow to update tags in...
Replies
0
Views
38
Hi, I have some problem with View Point which I'm using to manual control of conveyors. On begin when in network was only PLC and HMI View Point...
Replies
0
Views
62
Hi. Importing a 2014 aapck in 2023: no problem using it, adding windows, works very well, no problem whatsoever. Creating a new project: as...
Replies
2
Views
707
I am having a weird experience using KepwareEx6 as an OPC Server for a set of SLC processors where the tag data is not updating remotely at the...
Replies
2
Views
530
Back
Top Bottom