PID overkill?

nhicks

Member
Join Date
Jan 2007
Location
Whitewater, WI
Posts
111
I have an application using a vent fan, VFD, RTD and PLC via Modbus. We are usijg a typical 7.5HP vent fan, through a Hitachi SJ200 VFD. The VFD is attached to a Micrologix 1100 through Modbus, and the ML1100 has an RTD input.

In our enclosure, the temp will be X. When the customer turns on part of the load, I want the fan to turn on to a minimum of 20%. As the temp rises in the enclosure, I need the fan to increase as well. If the customer turns on all load, I will override the RTD and turn the fan on 100%.

My question; is a PID loop to control this overkill?
I do not really know the first thing about PID - and I have the website from Ron Beaufort, that I need to sit down and look through soon. I wonder if the Proportional portion is all I need?

Any insight would be appreciated.
 
PID sounds just the job for this. I have never used a ML1100, does it support the PID instruction? if so use it. When it comes to tuning if you can not get it right post back with what is happening, I am sure we can help you get the figures right.
 
Can you cool to much? Do you have to maintain a setpoint?
If not I would not bother with a PID loop.
If you know what the maximum temperature allowed is you can use math to calculate a fan percentage.
 
If your PLC has PID built in, then it's not overkill. You can always turn off parts of it. Just use 'P' for example. You can set minimum output to 20%.
With PID you have lots of 'control knobs'. You can use some or all.
On the surface it appears overkill, but programming wise it's probably the easiest way to do it. Grab the box, plug in the numbers, etc. Let the processor do the math.
 
Regarding the Hitachi: A PID is an elegant solution, no question. AND since you have the 20% and 100% requirements (which would be independent of the PID anyway)....you may want to consider controlling the VFD with the "multi-speed select" function optioned into 4 "intelligent inputs".

In the section of your Hitachi manual that describes "intelligent inputs", find the description for setting up "multi-speed select". Notice that you can use 4 inputs to generate 16 speeds.

You could use 4 outputs from ANY PLC to select those speeds, two of those speeds would be your 20% and your 100% as required.

"Multi-speed" would be precise enough for variable vent fan cooling. It would use up MORE of your PLC digital outputs, but not require an analog output signal.

Something to consider.

I'm not familiar with your PLC.

Stationmaster
 
There is one thing about your post that I'm not clear on: Are you trying to maintian a particular temperature by increasing air flow, or do you simply want to increase airflow proportional to temperature? If its the former then a PID is one good way to do it. If its the latter then PID may not be what you are really looking for.

------------------------------------------------------

For everyones info: The ML1100 does have a PID function.

Configure the PIDs minimum output at 20%, but direct the output to an intermediate word. Then use logic to either write that word to the drive over modbus or write a zero speed command when the motor is off. I would also recommend placing the PID in manual mode via software and writing 20% to the output when it is not needed so that you always force the PID output back down to 20% when the motor is not running.
 
Thanks for all the responses so far.

Alaric - The second is more what im looking for. I dont have a set point, and this device is trailer mounted, could be 10 below outside, or a 90 degree day. Obviously I want the fan to do as little as possible to keep the equipment cool. What cool is, im not sure, but within a reasonable operating temp.
I was under the impression of if the temp is rising at any rate for a minute, raise the speed by 5%. Again if the temp is still rising, add another 5%. If two increases are done, and the temp is still rising, add another 10%. And conversly, id have some logic watching for the temp to lower, thus slowing the fan.

Stationmaster - I used that 3 input "smart" input on another job where we had a Eaton MVX9000 - it was slick, and I wouldnt be opposed to using that again. We just have the Modbus in place for other devices, and this way we can get 1% resolution if we wanted.

Thanks again
 
nhicks said:
Stationmaster - I used that 3 input "smart" input on another job where we had a Eaton MVX9000 - it was slick, and I wouldnt be opposed to using that again. We just have the Modbus in place for other devices, and this way we can get 1% resolution if we wanted.

Thanks again

Roger that. Somehow I missed (or neglected) the part about the Modbus. On the one hand It will do the job without using up your outputs, on the other, 1% resolution for what you are describing is more than you really need.

I am a little soft on bus communication to the Hitachi, even though I have them doing everything from pumping to bagging to blowing to conveying. I just need to take the time to learn it.

Interesting that you are comfortable with modbus and not comfortable with PID. I am just the opposite.

Stationmaster
 
Be a little bit careful about how you frame the problem. Ultimately you are trying to keep the temperature within some range. At some point you need to determine what constitutes 'too hot'. The way you desribe your system reaction you are simply happy if the temperature is stable. You don't care if you are stable at -30 or 300, as long as you are stable (the temperature isn't changing). This doesn't seem to meet the needs of your typical cooling application.

Keith
 
Are you cooling electronics? The perfect temperature for that is 68F. For anything else, fluctuations in temperature cause early failures.
I think the primary concern is a stable, controlled temp. Second is a maximum temp. Ignore the fact that you don't need to control to a setpoint. This thing will be a lot easier if you pretend that you do.
The main problem is incoming air. -10F air will remove heat much faster than 90F. You may need 2 or 3 different PID parameter sets, and switch over based on incoming air temp.
It may sound like I'm overcomplicating it, but with such a wide range of incoming air temp, this task may not be as simple as it first appears.
nhicks said:
... I was under the impression of if the temp is rising at any rate for a minute, raise the speed by 5%. Again if the temp is still rising, add another 5%. If two increases are done, and the temp is still rising, add another 10%. And conversly, id have some logic watching for the temp to lower, thus slowing the fan.
That's EXACTLY what a PID will do for you. Pick a setpoint, add a PID control loop, and let the PLC do the rest. Using PID makes it much easier, not harder. You want to override the PID and go to 100% if all loads are turned on. The PID will go to 100% output quickly. You may not need the override. Do you want 100% if the outside air temp is -10F? I doubt it. Again, let the PID do all of this for you. That's its job.

Forget about all the complicated explainations of PID. Just treat it as a black box for now. A Temperature Controller in a box.
After you have your hardware in place, you can play.
Adjust 'P' for the response you want (gain). That's the most important, and probably all you'll need.
The 'D' is for response to an upset. When the operator turns on another load, how fast do you want it to respond to the upset?
The 'I' is just an offset. Your setpoint is 68F, but the system flat lines at 70F. Adjust 'I' to shift the flatline down 2 degrees.
(The PID gurus will probably shoot me for this oversimplification!).

What you'll discover is the 'P' number will be quite different based on incoming air temp. You may need to add another sensor for incoming air, and dynamicly vary 'P'.
The 'I' and 'D' will change too, but not by much. I think we can safely ignore it for this application, at least for now.
To simplify this (eliminate second sensor), 3 different 'P' numbers may be enough. Add a panel switch with Cold, Normal, and Hot. Let the input determine which set of PID parameters to load. (Now I've complicated it).
 
Last edited:
keithkyll said:
(The PID gurus will probably shoot me for this oversimplification!).

BANG.

nhicks said:
Alaric - The second is more what im looking for...
OK, then use an SCP trick.
For example: You want to run the fan at between 20% and 100% from 70F to 100F. Lets say the temperature PV is at N7:0. Using the SCP (scale with parameters) instruction:
SCP N7:0 70 100 20 100 N7:1
N7:1 contains the drive speed percentage, and it ragnes from
20% to 100% proportional to the temperature between 70F and 100F. At temperatures above 100F the value in N7:1 is greater than 100, so we need a rung to clamp that value. This is simple.
GRT N7:1 100 MOV 100 N7:1.
At temperatures below 70, we get a value less than 20 in N7:1. Since we want the drive to be off, we clamp it to zero
LES N7:1 20 CLR N7:1.
Now all that is left is to move N7:1 to the drive command. Should you take this approach you probably need to design in some kind of hysteresis or time delay so that you are not constantly turning the fan on/off as temperature hovers at 69.9 to 70.0 degrees.

That said, I'm still wondering why you don't want to choose a single temperature setpoint and use a PID.
 
Last edited:
Thanks for the info Alaric - sorry for the delay, big projects never die I guess.
Back to this "fun" project - I intend to explore your SCP style of control below. I hope to start the programming today, the unit is no where near ready for testing though... maybe I can use a hair dryer though!
Your logic sounds good. As for the hysterisis, or low end cutoff - we will probably not shut the fan off. As by the fan stops, it will be hot enough to need to run again. So we will assume when any of the 24 load steps are turned on, the fan will need to be running at minimumum 20% or so.

As for your last question, im curious if the idea will work. if we take (as mentioned) 68DEG F for example, on a 40Deg F day, with 1 step on, the fan would run at 20%, probably never reaching 68. I dont think this would be an issue. So, thinking about it - I think your second suggestion will also work. Im curious how much more involved or difficult this would be compared to the simple scaling above.

NH


Alaric said:
BANG.


OK, then use an SCP trick.
For example: You want to run the fan at between 20% and 100% from 70F to 100F. Lets say the temperature PV is at N7:0. Using the SCP (scale with parameters) instruction:
SCP N7:0 70 100 20 100 N7:1
N7:1 contains the drive speed percentage, and it ragnes from
20% to 100% proportional to the temperature between 70F and 100F. At temperatures above 100F the value in N7:1 is greater than 100, so we need a rung to clamp that value. This is simple.
GRT N7:1 100 MOV 100 N7:1.
At temperatures below 70, we get a value less than 20 in N7:1. Since we want the drive to be off, we clamp it to zero
LES N7:1 20 CLR N7:1.
Now all that is left is to move N7:1 to the drive command. Should you take this approach you probably need to design in some kind of hysteresis or time delay so that you are not constantly turning the fan on/off as temperature hovers at 69.9 to 70.0 degrees.

That said, I'm still wondering why you don't want to choose a single temperature setpoint and use a PID.
 

Similar Topics

Hi, I would like to assemble a simulator/practice booster pump system that uses PID to maintain steady water pressure under various outlet demands...
Replies
0
Views
80
Hello, I have a motor that we are sending a RPM Speed Output from 0-100% to the VFD. However, the Motor HP needs to be limited to 6000 HP and the...
Replies
3
Views
91
I have S7 1512C controler for controlling 48 PID temperature loop, the output is PWM. Please I need the best, most efficient way to write the...
Replies
13
Views
604
Hi all, I'm having trouble solving a problem I've been working on for several months, and thought you might like a stab at it. The machine runs...
Replies
22
Views
951
How can I connect PID Output to a valve. In ladder logic program is there any logic do I want to add between valve and PID? PV=SP What will be the...
Replies
7
Views
417
Back
Top Bottom