Compressor variable speed drive control


Thread Starter

Roy Gibson

I'm trying to control the speed of an air compressor motor to maintain a 10 bar outlet pressure. I've never done anything like this before (I've just graduated as an electrical engineer). The outlet of the compressor is connected to a buffer vessel, which is then connected to an air separation system. The variable speed motor drive has a reference speed signal of 4-20 mA.

I am measuring pressure at the compressor outlet (a 4-20 mA signal). When the buffer outlet is closed, the outlet pressure builds up as a straight line with time (motor running direct on line).

The load flow rate varies continuously and unpredictably. I thought I could use two cascaded controllers. The first one would take pressure as a setpoint and the second would take the derivative of pressure (assuming this is proportional to flowrate?). Would this work (I only know the absolute basics of fluid dynamics eg. Bernoulli's equation)?

Thanks and regards,
Roy Gibson.
My memory collapses on that subject,it's an immense one.
There was (may still be of rescue for you) a company Powell in Houston Texas manufacturing
Micon (8 loops based) the most advanced system in the years 1980.
In that Micon there was a loop specialy designed for compressor control. She needs to be very fast (milliseconds). I could find some material on that, looking in my compendium.
An other case I was involved in the tar sand, used a system (Fisher ?? not Fisher Control Valves). They were not using Rosemount diaphragm type XTR (too slow).
On decreasing load, sound wawes coming back and reaching the blades may damage (even destroy ) the impeler's blades. This is why the very fast response of the loop.
Your equal percentage valve puzzles me because on pressure I have seen only quick opening. The process is fast.
If I can be of more help [email protected]

Bob Dannenfelser

Hi, Roy! In the words of Scotty from Star Trek, "you're overthinking the plumbing and stopping up the drain!" Here at Mottley we apply VFD's to Air
Compressors and have, from experience, found that you need to put your pressure transducer on the "load side" of the "buffer vessel" as you refer
to it. You may even want to put it on the load side of the Air Separation System. If you put the transducer directly on the discharge of the
compressor, it will hunt too much. Assuming you are using the PID control built into the drive (as we do), have it track the pressure on the load side of the receiver and increase speed as pressure drops. We have also found that the tuning parameters of the PID algorithm need to be "dumbed down" a bit, that is to say a relatively sluggish response.

The application engineer from our VFD supplier, Jim Mail of Danfoss, has written a paper on the application of drives to air compressors. You can
e-mail him at [email protected]. He may be able to give you some additional pointers.

Good luck.
Bob Dannenfelser
Control Business Unit Manager
Mottley Air Power
Baltimore, MD

David W. Spitzer


I did this some years ago on a positive displacement rotary air compressor. It worked like a champ and the header pressure was under excellent (straight line) control. Energy savings paid for the application in months.

One word of warning --- be very careful of the mechanical aspects of the operation because running the compressor at certain speeds can burn up the compressor.


David W. Spitzer
[email protected]
the issues are not only the control but the warranty on the compressors, the cooling of the oil for the compression elements which might be driven off the main motor, possible mechanical resonances, etc.

there is one variable speed range made by atlas copco, you might want to go thru their web site for more info.


Johan Bengtsson

I don't think you need the cascade loop, one controller should be enough. If you have problem tuning this because the pressure changes too rapidly for the controller to shut off the motor you should consider inserting a tank to buffer
the compressed air rather than using two controllers in cascade since that really would not help you in this case.

/Johan Bengtsson

P&L, the Academy of Automation
Box 252, S-281 23 H{ssleholm SWEDEN
Tel: +46 451 49 460, Fax: +46 451 89 833
E-mail: [email protected]

Mehmet Alpay

Hi Roy,

If I understand your problem correctly, you are essentially trying to design a controller for disturbance rejection. I use the term "disturbance" to refer to the unpredictable load flow rate you mention in your problem

The compressor outlet pressure you are trying to control is effected by two external phenomena: the speed of the motor (which you can change, so that's your actuator), and the load flow rate (which you cannot even predict, so that's your disturbance). BTW, be careful how you use the word "control": you are NOT trying to control the motor speed, but rather the compresser outlet pressure (i.e., maintain it at 10 bar) by "manipulating" the motor speed (hence the term "actuator" for the motor :) Anyway, going back to the main topic, I would suggest measuring the load flow rate in addition to the compressor outlet pressure if this is possible. Then I would recommend feeding back both signals to the controller. This gives you the two pieces of information you would need to compute the necessary controller action:

1. Comparing the desired (10 bar) and actual compresser pressure, you find out the pressure error (let's call that Pe), and
2. Measuring the load flow rate, you know your disturbance - it's even better than predicting it! :)))

Things get a bit hairy here: since I'm no expert on fluid dynamics myself, I cannot help you figure out how exactly the load flow rate effects the compressor outlet pressure. Nevertheless, I think it would be safe to assume there's a negative relationship between the two - i.e., the higher the load flow rate, the quicker the compressor pressure drops. Under this assumption,
here's a possible control rule for your controller (which, I presume, will be driving an amplifier that, in turn, will drive the motor):

u(t) = Kp*Pe + Ki*integral(Pe) + Kd*derivative(Pe) + Kv*(measured load flow

You will notice that this is a standard PID controller with a twist: you have an additional compensation term which enables your controller to
rapidly respond to load flow rate changes. The controller output u(t) is the reference speed signal to your amplifier.

Here's a quick reality check to see if this controller would work: let's assume the load flow rate is constant. Then, once the transients die out, you should have the motor running at constant speed to compensate for the constant "leakage" due to load flow. With Pe(t)=0 (remember: no transients :) and load flow rate constant, that's exactly what you would have from the above control rule. Not a bad start :)

Two important notes: 1) If it's impossible to measure the load flow rate, then you could still use the PID portion of the above controller without the last term, but it probably would not perform as well (read: sluggish) since the controller reaction time to changes in load flow rate is delayed - i.e., you will not see them until the compresser pressure starts drifting from
your set value of 10 bar, and 2) If you can get a better understanding of the relationship between the load flow rate and compressor outlet pressure,
you might be able to replace the simplistic compensation term (Kv*measured flow rate) of the above control rule with something more sophisticated (nonlinear, dynamic, whatever ...) for better performance.

Hope this helps :)

Mehmet Emin Alpay
Control Systems Engineer
ESI, Central Engineering
(503) 672 5755
Dear Roy,
What is the range of pressure control, volume of buffer vessel as well as flow rate of air?
I suggest you to try for on-off type of pressure control device. i.e. at high pressure compressor stops and at low pressure compressor starts. It
will save power and ensure pressure is with in the bend width.
Joy Shah

Johan Bengtsson

This is called feed forwarding and most controllers have an input for that.

The easiest way to determine a reasonable value for Kv as it is stated below (Kf and Kff are some other terms sometimes found for this) is to do the following:

1. Optimise your controller as you would without this feature
2. Note the applied control signal for two quite different air flows after the controller have settled for this particular flow.
3. Kff=(out1-out2)/(flow1-flow2)

This is a general way to compute the feed forward constant, if you get a negative value in (3) then it should indeed be a negative value (the disturbance is acting in a way that required a lower output), but in this case you will of course get a positive value.

It is not uncommon that this value would need to be different in different ranges (ie actually not constant), pick a reasonable value best covering the entire range (unless of course you want to
make a more complicated formula). The normal PID functions take care of the rest.

/Johan Bengtsson

P&L, the Academy of Automation
Box 252, S-281 23 H{ssleholm SWEDEN
Tel: +46 451 49 460, Fax: +46 451 89 833
E-mail: [email protected]

John G. Boland

Hi, list,

Mehmet writes:
<< you are essentially trying to design a controller for disturbance rejection. [considering] two external phenomena: the speed of the motor [...] and the load flow rate [lots of good stuff]. >>

Just a thought...

Might this be handled as a storage tank outlet flow rate (scfm) control loop, commanding the motor rpm (or kW), with a supervisory storage tank volume (scf) control loop?

The flow rate loop would use either a compensated vortex meter or orifice plate and the volume loop would use a temperature-compensated pressure on the storage tank.

The two loops could share the temperature compensation t/c and static pressure sensor (absolute) psi transmitter, if they are located properly. They don't have to be accurate to a billionth of a percent.

The flow loop would be tuned 5x or 10x as fast as the volume loop.

Like I said, a thought...


John G. Boland, president
VisiBit Corporation
One Parker Square Suite 408
2525 Kell Boulevard
Wichita Falls, Texas 76308
940.723.1478 fax