Limit PID output based on another PID output

ASF

Lifetime Supporting Member
Join Date
Jun 2012
Location
Australia
Posts
3,907
Hi all,

I posted recently about a HVAC-style process control application I'm working on, and have a related question that probably warrants its own thread.

I have a chamber with a supply air fan and a return air fan. In the scenario I'm currently trying to control, there is no recirculation of air; we just draw air directly from outside with the supply air fan, and exhaust it directly back outside with the return air fan.

In this scenario, Priority One is to maintain a negative pressure in the chamber, say -20Pa. This is achieved by varying the speed of the return air fan.
Priority Two is to maintain a set amount of air flow through the chamber. This is achieved by varying the speed of the supply air fan.

Now, if the system has been well designed by the HVAC designers, it should be the case that no matter how fast the supply air fans are running, and how much air they're pushing into the room, the return air fans will always have enough capacity to maintain the negative pressure in the room. I'd like to think that this will be the case. But let's just entertain the ludicrous idea that maybe this isn't the case, and that if I ran the supply air fan flat out, the return air fan wouldn't be able to keep up with demand and I'd lose my negative pressure setpoint. This would be undesirable; maintaining that negative pressure is Priority One.

So, if that were the case, I would need some way for the supply air fans PID loop to look at the return air fans PID loop, note that the return air loop is at (or close to) 100% and not maintaining setpoint, and to limit its output (or back off slightly).

Is there a PID feature available for this? Or does anyone have any ideas on how to achieve it neatly? I feel like there should be a more elegant solution than just brute force or hardcoded limits.
 
Since air flow is second priority, my first approach would be to back off on the total flow set point when the return loop is at 100% with output-increasing-error. This lets the loops run as designed, avoiding side effects such as wind-up if the flow loop output is altered before going to the drive.

Depending on how common the situation becomes, the flow set point manipulation could be "full blown" cascade, or maybe a simple logic-based algorithm. It will likely come down to how well behaved the loops are, and the extent of interaction.
 
There are several ways to do this. 1) Cascade loops would almost certainly work well in this situation. 2) The supply air loop could possibly be a ratio of the return air loop or 3) a simple clamp on the supply air output might be all you need.
 
Thanks for the suggestions...

1. ...back off on the total flow set point when the return loop is at 100% with output-increasing-error.
I don't mind this idea because as you say, at least I'm not artificially altering or overriding the PID. The only thing is I'd prefer not to have the PLC "magically" change setpoints as it tends to erode operator confidence. Maybe if I change the setpoint "behind the scenes" without displaying it on the SCADA...

2. Cascade loops would almost certainly work well in this situation
I'm not sure that this is the right application for a cascade loop? I'm a long way from an expert on the subject, but my understanding of the correct application for a cascade loop is one where both loops are working in tandem to achieve the same end. In my case, the loops are in some ways acting to achieve opposite ends, and I just have to make sure that one loop is better at its job than the other

3. The supply air loop could possibly be a ratio of the return air loop
Not sure I follow. I'm not measuring return air flow. Only supply air flow and room pressure. Perhaps you mean I proportionally adjust the air flow setpoint based on the pressure setpoint - but the pressure setpoint will never change. In this mode of operation, the air flow setpoint is set significantly higher than normal running, and again, will really not change.

4. a simple clamp on the supply air output might be all you need
That would be the quick-and-dirty way of doing it, and if all else fails that'll be my go-to. But I'd prefer to find a way, if possible, of having it a little smarter than just working out a maximum value during commissioning and assuming that the characteristics of the system that ultimately determine that value won't change over the life of the system.
 
Add a third PID for limiting output to supply air fan based on pressure (with a setpoint of say -18Pa, some pressure indicating that return air fan cant keep up)

The two pid outputs into a MIN gate and some backtracking (limit output) to the flow controller when pressure controller is limiting supply air flow.

The original pid for pressure/return air fan will just do what it does today. Except maybe add feedforward based on supply air fan speed so it will react fast to changes in speed on air supply and keep pressure down.

Hope this makes some sort of sense?
 
Last edited:
A picture to show might be better in this case. :)

Sk_rmklipp.jpg
 
Last edited:
Have a PID loop that targets the exhaust control loop at 95%. The output of the loop is then the max clamp of the supply air PID. The loop would be reverse acting and need to be sure to be clamped at at perhaps 50-100%.
 
I had a similar application although only controlling a single valve. The main process variable is the main steam pressure into the condenser, however if the condenser pressure started climbing I needed to back off of the steam coming in regardless of the main steam pressure.

If the condenser pressure gets too high the CV "locks" at that value. As the condenser pressure increases the valve will keep closing on a percentage basis based on output of the function generator until at some point the valve will be completely closed.

The nice thing is its easy to tweak just by adjusting the values in the function generator. Since its dynamic it will start closing down regardless of whether the CV is at 50% or 100% so it starts adjusting immediately once you hit your limiting condition.

Capture.JPG
 
To have full PID control available when the exhaust fan has reached its upper limit, I'd suggest a solution similar to Dirt's: An alternative PID controller for chamber pressure with output going to supply fan speed.


The logic for selecting which PID controller acts on the supply fan:
When pressure controller output is 100% and pressure deviation gets too high, switch to the alternative controller.
When the air flow is at the desired setpoint and the output of the primary pressure controller has dropped a little below 100%, switch back to the primary controller.


To ensure smooth transitions, set the alternative pressure controller's output (or bias) equal to or perhaps a little lower than the air flow controllers output while the primary controller is on duty.
 
ASF--HI, I have run into this exact issue with a project I've been working on for about a year with AHU's. What we did was we had the fans using CFM as PV's. In my case, we had inches of water column and I converted it in logic to CFM using a k-factor supplied by the engineers that designed the system. So the inches water column came into a tag from the BACnet comms. So at first, we only had the CFM's from the supply fans, so I simply "tracked" (or "slaved") the return fans off the supply fans using a subtract instruction. "Supply fan output (percent) minus, say, 10 move result into return fan VFD setpoint.

Then they wanted to use a minimum outside air damper to control the CFM's and the fans. So I created a loop for the outside air damper to maintain certain CFM as input by the building control system, and then used that minimum CFM as the variable to subtract from the Supply fan CFM. That result was used as the process variable for the PID in the return fans.

Then I'm sure you can see that if the supply fans had a PV of say 15000 CFM, and the outside air damper was modulating at say 3500 CFM ,then the result would be 11500 moved into the return fan PID setpoint. Then the return fan VFD would be modulated to try to hold that. So only 3 PID's--Supply fans, return fans and outside air damper.

And answer to your concern if the fans can't keep up, this will work no matter what the supply fans are doing. We were using static pressure for the return fans, but this works much better for duct/room static pressures. Hope this helps.
 
Thanks for the info!

So if I understand correctly, you were trying to maintain equal supply and return air flow, yes? If your total supply airflow is 10000 CFM, you want 10000 CFM on the return.

The difference for me is that I don't have air flow sensors on the return air, since return air flow is not a critical factor. The return air fans primary concern is maintaining a negative pressure. I could potentially work out a ratio of how much more return air flow I need to get the negative pressure, but once I'm at negative pressure setpoint, I figure that ratio would change. I'll give it some thought though and see if I can work out a way to apply your solution to this application!
 
Hi, well we don't want the flow to be equal. Most office buildings run a slight positive pressure--approx. .025" water column. That lets air out when outside doors are opened, helps with CO2 control and doesn't let negative pressure pull in outside air which could be energy depleting (too warm, too cold).
And additional issues with this particular job were that the supply fans ran at a different max frequency than the return fans. Like the supply fans ran at 68 hz max and the return fans at 76 hz max. So this is why we went to CFM tracking instead of just percent output speed.
As you stated, you may not be all that concerned with return air, but you'll need a static pressure sensor somewhere in the system. You want to be careful on starts that dampers and fans are controlled in proper sequencing to prevent possible duct damage as I might have mentioned. Too much positive or negative pressure won't work well, either. This vehicle test cell job I'm doing now has negative pressure for the cell, which is actually quite a large room. Making a WAG, I would say it's because of any potential exhaust leaks (CO) would not be expelled through any leaks in the room into manned spaces during a test. IMHO. If I've helped you even 1 % then you're better off than yesterday. All the best and good luck!!
 
Thanks saultgeorge (and everyone else).


We ended up allowing the return air fans to run up to a maximum of 55Hz, after confirming the suitability with the manufacturer, and limiting the supply fans to 50Hz. The additional 5Hz gets it over the line; with the supply fans running at 100% the return fans can maintain negative pressure
 

Similar Topics

Hey guys, we noticed here that there are some PID blocks in RS5 programs that have the %output limited to various #s. One is set at 65%, and the...
Replies
27
Views
7,423
Not a PLC question but still controls. I have an application with an ABB ACH550 that I will be adding a sensor to the drive and have the drive...
Replies
2
Views
1,145
Hello, I have a PID that I am using for an oxygen valve that regulates the pressure. Often when the header pressure is too low, the output will...
Replies
4
Views
1,233
Hello all, I have a pump that has operational limits 15-100% Speed (9-60Hz). 1. On the PID instruction would you limit (.MINO=15% and...
Replies
21
Views
5,078
Hello, I have a program that monitors pressure in a manifold discharge pipe. Pressure in the pipe should be less then 7.5 PSI. If the pressure is...
Replies
17
Views
12,671
Back
Top Bottom