proportional band not activating when it should

Randylahey

Member
Join Date
Sep 2022
Location
Kansas
Posts
5
Hi,

Fairly new to plcs so sorry for the noob question.

I have a honeywell hc 900 PLC that has a PID loop with PB% of 25, I=.45, D=0.

I have a furnace with a SP of 980C and see 100% output until it reaches 978C. My range for this controller is 0-1300C. Shouldn't I expect the proportional action to kick in sooner and start throttling the power sooner than 978C? i would expect the band to be centered at the SP but it doesn't appear to be the case.
 
The PID loop is almost certainly performing exactly as it was designed and programmed to do. PLCs care not a whit what you want them to do or think they should do, but they will mercilessly and inexorably do exactly what you tell them to do.

TL;DR

Here is how PID functions: https://literature.rockwellautomation.com/idc/groups/literature/documents/wp/logix-wp008_-en-p.pdf

In a PLC, which is a digital device, that algorithm is applied every PID update.

Look at the "velocity" form of the PID equation.

When the temperature is rising but is still below setpoint, the error term is decreasing but still positive. On each PID update

  • The decreasing error will produce a negative Proportional (P) contribution to the change per update that is proportional to the slope of the error i.e. temperature vs. time, so this contribution per update is probably fairly steady, though decreasing, over time, i.e. with the error.
  • The positive error will produce a positive Integral (I) contribution to the change per update that is proportional to the magnitude of the error, so this contribution per update is decreasing over time.
When the furnace is started it is very cold, the error is large and positive, and so the integral terms accumulate and drive the valve to 100%, which is what you see.

The implemented PID algorithm probably has "anti-windup reset" (or "anti-reset windup"), which simply means that on each PID update, after it calculates CVn from CVn-1 and the other parameters, if that calculated CVn is greater than 100%, it is adjusted (reset) to 100%, which becomes the CVn-1 (starting point) for the next update.

Since CVn-1 is 100% at the start of each update, as long as the per-update I term is more positive than the per-update P term is negative, CVn will be calculated greater than, and subsequently reset to, 100% on each PID update.

So the behavior you are seeing, where CVn does not go below 100% until 978°C, means that at that temperature is the first time that the per-update P term is more negative than the per-update I term is positive, which speaks to the relationship (i.e. ratio) between the rate of change of error at that point and the PID update time, which ratio could be probably be calculated from the PID tuning parameters (PB%, I(repeats per minute?), and update time).
 
Last edited:
@DrBitBoy, does the Honeywell use the same format as Rockwell for PID control?

@Randylahey,

your description of the problem doesn't tell us much since we don't know if it overshoots or by how much and how long did it take to get there. Is there an overshoot?

The way for the output to start dropping sooner is usually some derivative, but that brings in some issues and if the process is slow it will most likely not be worth it.
 
@DrBitBoy, does the Honeywell use the same format as Rockwell for PID control?


Good question.


I am assuming it is digital, and it has an update time, and the Honeywell designers implemented a canonical PID algorithm.

Unless those assumptions are not true, which I agree could be the case, the formulae in the Rockwell/A-B document apply, to first order at least.

Granted, the form of the tuning parameters (PB% vs. Ki vs. Kp) may be different, but in the end those are constants that can be converted from one to the other to match the equations in the document.

My main point was that, while study of PID in general is a large field, the actual behavior of an implemented PID is a simple combination of three terms with constant linear scaling if three quantities (magnitude, integral, derivative) of the measured error, and that actual behavior is all that is necessary to answer OP's query.
 
Last edited:
Thanks for your responses.

The overshoot varies depending on the mass in the furnace. Sometimes I will see a 10- 20C overshoot.

For my process, it is too much. The other option is to reduce the ramping rates but I'd rather control the output near the end of the ramping stage to not increase the overall time of the cycle.
 
so there is some lag but probably not much dead time involved.

If it was dead time, then adding some D action might (might) help, but not if the CV (PID output, Controlled Value) is saturated.

Also note that the PV (Process Value i.e. measured) is likely at one point in the furnace, perhaps the outlet temperature of the material leaving the furnace. Presumably it is representative of the material temperature, but some of the material will be hotter and some cooler; also the mass of the furnace (tubes, refractory, etc.) itself could be an issue, as the fuel combusted is heating everything in a non-steady state manner, and the transfer of that heat to the material is a complex process.

In the end the point at which the valve will back off from saturation (100%) is a function of the ratio between the P gain and the I gain (translating gains to band or time is another topic); the lower the I gain is relative to the P gain, the earlier the valve will start to close (I think o_O :unsure:).

Also note that, if the I gain is decreased, then the response to process changes during normal (steady?) operation will be slower.

Because the CV (valve position) is saturating, it probably does not matter much to the cycle time if the I gain is backed off, it will only take longer to initially saturate the CV, after which it will heat at the same rate (100% is 100%).

If the setpoint is on a ramp then also increasing the ramp rate might, along with decreasing the I gain, might be the way to go to compensate for the slower start. again, this assumes a saturated CV is the target behavior, although if it is saturating then the setpoint ramp is meaningless, at least on startup.

Caveat: this is all speculation; I don't know your process, whether it is a continuous process and you are trying to correct startup behavior, or if it is a batch process that heats the process material, then holds it at temperature for a short time, then shuts off.
 
Last edited:
If you don't already have the function block manual, the attachment has the PID function block section.
 
@DrBitBoy, does the Honeywell use the same format as Rockwell for PID control?

@Randylahey,

your description of the problem doesn't tell us much since we don't know if it overshoots or by how much and how long did it take to get there. Is there an overshoot?

The way for the output to start dropping sooner is usually some derivative, but that brings in some issues and if the process is slow it will most likely not be worth it.

NO...not the same PID calculations. HW is better than Rockwell...IMHO, as far as process control (not logic control)....mainly in the design of their purpose.

If you are tracking a setpoint.... I would use PID B instead of PID A.
Have you tried AutoTune? Then fine tune from there.
 
PID B states that it does not provide a proportional response. I'm assuming this would make the controller more reactive to the error as it wouldn't take into account the proportional gain?

Is derivative not beneficial in this case? From my understanding derivative helps predict how far off the the PV is from the SP and helps throttle the output to prevent overshoot. but like someone mentioned in this thread, it may be bring more problems into the equation that I am not aware of.
 
I have also the tried enable fuzzy overshoot feature but receive inconsistent results with this feature on. Any experience with this feature?
 
PID B states that it does not provide a proportional response. I'm assuming this would make the controller more reactive to the error as it wouldn't take into account the proportional gain?


I don't think that is what the documentation states about PID B. I think it rather states that a proportional response is not triggered by a change in setpoint, which means it is triggered by changes in PV, not by changes in error.


Is derivative not beneficial in this case? From my understanding derivative helps predict how far off the the PV is from the SP and helps throttle the output to prevent overshoot. but like someone mentioned in this thread, it may be bring more problems into the equation that I am not aware of.


The reason derivative would not help in this particular case is that the CV output is saturated:


So as the temperature approaches the setpoint:
  • it is probably increasing at a relatively constant rate,
    • and has been doing so for some time, i.e. ΔPV/Δt is, more or less a constant and has been for a long time,
  • so a relatively constant derivative contribution to the CV output will have already been applied to CV much earlier,
  • and because the CV output is saturated and has been for some time,
    • that relatively constant derivative contribution will also have been long since lost in the CV output by whatever algorithm is used to implement the anti-windup reset.
 
I have also the tried enable fuzzy overshoot feature but receive inconsistent results with this feature on. Any experience with this feature?

Never worked very well for me. I am controlling heat on a furnace, which is slower going up than down, that is why I use derivative action. The D term show to be size of % power change over time.
 
Nothing makes sense.
Is the PB 25% of 1300 or full range?
or is the 25 a value in degrees so the PB is 980 degree +/- 25 degrees?
In the later case the output should be on 100% when the temperature is below 980-25=955 degrees. The 978 makes no sense.
Are you sure you understand how the PB is set?

What makes sense is that the system response changes as the mass that is being heated up changes. I would look at some way to determine how much mass is being heated up and more heat proportional to the amount of mass being heated and how much it need to be heated up.

Fuzzy this and that control is bogus. First you must understand the system. It it clear the controller is not set right and you aren't using feed forwards or changing the gains as a function of mass.
 
PB is percentage of the configured range, which OP states is 0-1300


Range-limit-tab-in-PID-block-hi.jpg
 
Thank you Drbitboy for all of the explanations. I guess I can play with the P and I gain ratios to unsaturate the output earlier. That is the ultimate goal afterall.
 

Similar Topics

hello this is my 1st post but I have read many on here. im a novice when it comes to plcs, I actually have no training. at my present job these...
Replies
11
Views
3,525
I'm trying to improve tuning on Watlow 'Series PD' PID controller and am using some tuning guides to help. Application is simple temperature...
Replies
7
Views
7,067
Anyone ever PWMd the coils of a bang-bang valve? I tried it recently so that I could reduce machine setup-time by eliminating the manual flow...
Replies
41
Views
5,121
Anyone have experience w/ this module/application. I have been tasked w/ using this module to control the flow of chemicals w/ a iQ Tesla...
Replies
4
Views
1,441
All this recent talk of PID brought me back to an issue I was looking at a few months ago. My next project will involve cycling a valve to provide...
Replies
14
Views
2,622
Back
Top Bottom