fine tune PID loop

It turns out that the extra logic to clamp the output at 30% provided some decent information about the process open loop response. Based on a first-order with deadtime model, I suggest some controller gains below. Before the numbers, I want to make clear some assumptions and requirements:

A1. The PV and CV data provided came from the PID loop instruction, or were not altered by filtering or other manipulations.
A2. The critical PID configuration information is, as stated: independent gains, PV scaling 0 - 4095, PID scan (task) period 250 ms, PID loop update time 0.5 sec (needs to be corrected)
A3. Process response for the first 15 seconds of the trend would continue into the future according to first order expectation in the absence of additional control action. The trend chart implies this is an OK assumption.
A4. Process response is not significantly asymmetric -- that is, response to CV increase is comparable to CV decrease. This is probably OK for a heat exchanger.
A5. Process load conditions are typical for normal operations (e.g., fluid flow rates are typical). Probably OK since this data came from what was described as normal operation.
A6. The PID instruction is in a 250 ms periodic task (as indicated), and does not have pre-conditions on the rung for normal operation. In other words, the PID instruction is being scanned every 250 ms. Also, not critical since no derivative action, but the PV update time (i.e., from an analog or other input) is equal or faster than 250 ms.

Requirements for change:
R1. Make sure the loop update time parameter in the PID configuration matches the period at which the instruction is scanned. From what has been stated, this must be 0.25 seconds per assumption A6.
R2. Logic manipulating the PID action should be eliminated or minimized in normal operation. In this case, it is recommended to increase the .MAXO limit on that 10 second timer to more than 30% so that it is not affecting normal response.

That said, these are two sets of suggested gains in units of AB PID independent gains:

PI, No overshoot, sluggish response: Kp = 6, Ki = 2, Kd = 0
PI, Some overshoot with damping: Kp = 15, Ki = 5, Kd = 0

If you cannot meet response requirements, and the process measurement is not noisy, you could introduce derivative action to help counteract the process deadtime:

PID, aggressive (Cohen-Coon): Kp= 48, Ki = 6.5, Kd = 62

[These are based on FOWDT model values -- process gain: 0.023 %/%, deadtime: 4.5 sec, time constant: 3 sec.]

Disclaimer: This analysis is from "some person on the Internet" with limited information, and comes with no guarantees. Make sure any safety-related process or control limitations are sufficient to protect personnel and equipment.
 
Last edited:
Mispeld, are you feeling charitable enough to share how you calculated those gains? I've never fully understood how to do that based on a step change.
 
Mispeld, are you feeling charitable enough to share how you calculated those gains? I've never fully understood how to do that based on a step change.

The methodology that I use is very well documented at the Control Guru web site. At a minimum, I suggest reading through all of the articles in section 2 from this table of contents:

Control Guru - Practical Process Control - TOC

Time permitting, start at the beginning and go through all 10 sections.

This article (section 8, article 2) in the series gets into an example, providing guidelines for controller gains using deadtime, first order lag, and process gain:

PI Control of the Heat Exhanger

One more to pay particular attention to, is the only article in section 7:

Controller Gains...

It is important to understand which form of the PID equation is selected, and how to convert the recommended gains into that form.
 
Thanks Mispeld for all your professional instruction and help.

One more questions about PI and PID parameter:

PI, No overshoot, sluggish response: Kp = 6, Ki = 2, Kd = 0
PI, Some overshoot with damping: Kp = 15, Ki = 5, Kd = 0
PID, aggressive (Cohen-Coon): Kp= 48, Ki = 6.5, Kd = 62

When introducing derivative action, why Kp need to change from 6 to 48 and Ki change from 2 to 6.5, can I keep same Kp(6) and Ki (2) value and change Kd value to apply derivative action?
 
Here is the original calculations for the controlguru site.
Prof Cooper provided me with the actual data for the example.
http://deltamotion.com/peter/Mathcad/FOPDT/Mathcad - FOPDT.pdf
The pdf shows how the formulas for Kc and Ti were developed.
We used the ISA form of PID with a controller gain, Kc, and a integrator time constant in minutes.

The gains should have units. If all the gains are done in counts then how the scaling is done should be provided.
 
Thanks Mispeld for all your professional instruction and help.

One more questions about PI and PID parameter:

PI, No overshoot, sluggish response: Kp = 6, Ki = 2, Kd = 0
PI, Some overshoot with damping: Kp = 15, Ki = 5, Kd = 0
PID, aggressive (Cohen-Coon): Kp= 48, Ki = 6.5, Kd = 62

When introducing derivative action, why Kp need to change from 6 to 48 and Ki change from 2 to 6.5, can I keep same Kp(6) and Ki (2) value and change Kd value to apply derivative action?

You are welcome for the help, much of it coming from the excellent material at the Control Guru web site.

Regarding the question about derivative action: you do not have to increase proportional gain, but the point is that -- under the right conditions for derivative control -- you *can* increase proportional action for better response when including derivative action. However, there are many pitfalls with derivative action, and oftentimes it is avoided unless necessary and carefully implemented.

My suggestion is to start with the "standard" PI (Kp = 15, Ki = 5, Kd = 0, with maybe some overshoot), and evaluate if it meets response and overshoot recommendations. I lean this way because your heat exchanger likely has a valve as the final control element. Since valves tend to be non-linear, resulting in larger process gain nearer the closed position, a model based on the low side of valve operation will have a larger process gain than a similar step test near the mostly open position. So this low-side model-based tuning will have smaller recommended gains than a similar step test on the high-side. In other words: the "standard" gains will be "conservative" toward the higher end of valve opening.

Since the data for this model is based on a 0 to 30% step test, it will err on the side of conservative/sluggish if there is (decreasing) valve non-linearity, and you operate the valve over most of its 0 to 100% range. This might explain the larger gains already in place, and the 10-second, 30% limit.

Another thing to check is whether you get increasing flow (and temperature response) over the whole 0 to 100% of valve opening. If, for example, after 70% open, there is no additional flow, you want to set MAXO to 70%. This avoids undesirable integral action that must be later undone, probably leading to undesired oscillation. Ideally, you will have increasing flow from 0 to 100%, and smooth (not sticky) valve operation.

I recall the non-linearity being covered in the Control Guru articles.
 
Last edited:

Similar Topics

hello dear forum, About DELTA DIAView SCADA I defined a variable in Timescript VBscript I want access this variable from within a window For...
Replies
0
Views
564
I have a mechanical press. We are having problems and we believe it may have something to do with the movement and speed of the press. The press...
Replies
7
Views
1,442
Hello PLCS.Net! I have the EDS Hardware Installation Tool installed on my PC. When I try to install a file, It says it's successful, the...
Replies
2
Views
1,985
I know we have discussed these in the past but I found this and its a warning to some, this is in a spreadsheet but I think they could find the...
Replies
29
Views
9,304
Good evening all, We have a couple of volumetric fillers at the brewery where I work. We monitor & weigh our bottles to ensure we are legally...
Replies
4
Views
1,623
Back
Top Bottom