PID of Pressure System

I am trying to develop an control system for a pressure test system. The system needs to perform one of two functions, control the pressure or control the bleed down rate. My system consists of a air driven water pump and multiple “zones” that are pressurized by this one pump. It should also be noted that each zone is temperature controlled and therefore pressure will change due to changing temperatures. Each zone needs to have its own pressure control.

Each zone consists of a air-operated shut-in valve and motorized metering valve on the inlet to the zone and the outlet. The plan is to use the inlet metering valve to control the pressure increase and and the outlet metering valve to control the pressure decrease. The metering valves do not seal 100% so the shut-in valves are required to hold at pressure.

So what I am looking for is some suggestions on how I set the PID controls up for the inlet and outlet metering valves so they are not both trying to control at the same time?

The way the metering valve are made is basically a motor turning a needle valve. Therefore the reaction time is slow compared to the pressure increase. Is what I am doing going to be possible?


There are probably lots of ways to do this.

What I do for HVAC, where I have a PID for cooling and one for heating, is to have a deadband region that when the input goes above the top of the deadband, I disable the heating PID and enable the cooling PID and vice versa. (See the SetPIDMode command).

You could also adjust the input ranges of the PIDs so they don’t overlap - but I find this to be more cumbersome when I need the setpoint to change.

Thanks for the reply Philip, the method you are doing with your HVAC is the way I have done mine setup. Always nice to be able to validate what you are doing.

Which models of Opto 22 I/O Units (brains) are you using in this project?

PID loops on PAC brains operate differently than those on Mistic protocol brains. On PAC brains when a PID loop is put into manual mode, the PID calculation no longer updates the PID Output parameter (part of the PID loop structure), but the PID loop does continue to move from the PID Output parameter to the analog output. If you want to use 2 PID loops for the same analog output point, configure both loops to have the output be “To Host”. Then use logic to read the appropriate PID output and then move it to the analog point.