PAC Control PID setup

Hello all,

I have a chart which very poorly controls 6 outputs to cooling fans for temperature control. It is all on the Snap-Pac system. I want to change from the chart which turns fans on and off based on the setpoints, to a PID control. I have an analog input I can use for a setpoint but I’m stuck from there. Does anyone have a similar setup?


Sounds like 6 PID loops with the same input and 6 different set points to turn the fans on and off?

Can you give us a little more to go on? Are the fans to be staggered, or you want all 6 to be on/off at the same time for example.

You’re right I was vague. Yes the fans are staggered. The objective right now is to control the output temperature of natural gas, and to turn on up to 6 fans as needed based on the cooling’s effectiveness.

That’s helpful. Thanks for the extra details.

There are probably a few ways to do this. Not sure a PID is required, but if you want to go that way…
Set the temperature input to the PID, set the PID output to be ‘Host’ and between 0 to 100%.
Set some rough values of 10, 1, .1 for P, I and D.
Configure the set point to be from ‘Host’ so you can change it via PAC Display or groov View.
Then when the PID output is between 5% and 20%, fan 1 is on. Between 21% and 30%, fan 1 and fan2 are on and so on.
In short, as the PID output ramps up looking for more cooling, more fans turn on. As the PID output goes down, the fans step off one at a time.

Of course your chart is probably doing exactly that without the PID and you say its not working/controlling very well, so adding a PID is only going to add more noise and things to control and oscillate, so looking at the current issue might be time well spent.

Thank you for the suggestion and input. The current control uses lots of Delay blocks and the setpoint looks more like a suggestion than a controlled variable. It swings up and down all day and night. That’s why I wanted to clean it up by using a PID and then the percentage idea is what I had in mind as well, I just have never set up a PID from scratch. Thanks!

Something like this should get you going:

Just watch out for that initial set point value.
By default it is zero until the host writes to it, your PID loop will do a few turns before the host gets to writing a value so you want a value in there that will work for your process as the initial value.
(I found all this out the bad / hard way, if I can help someone else ovoid that…)

We also have a nice walk through on doing some tuning.
I would also start with something like a 10 second scan rate, the 0.014 in that screen shot would be very very bad for you.