230vac motor linear speed control

Hello guys,

I'm controlling the speed of a 230vac fan motor using phase cutting in combination with zero cross detection. So far, so good. I can set a speed from 0% to 100%; 0% is a complete standstill and 100% full speed. The problem is that the speed control is not linear. When a set the speed to let's say 70%, the motor is almost running the same speed as 100%. I wonder if there is a formula to compensate for this behaviour or maybe a lookup table or something.

Any help would be appreciated.

Cheers,

Bas

The non linearity is a function of the motor characteristic and the fan characteristic , so probably complex.
I’d suggest measuring the speed and using a spread sheet to work out a formula or just use a look up table .
It’s probably good enough to make a look up table to what seems a linear response

Bass99:
Hello guys,

I'm controlling the speed of a 230vac fan motor using phase cutting in combination with zero cross detection. So far, so good. I can set a speed from 0% to 100%; 0% is a complete standstill and 100% full speed. The problem is that the speed control is not linear. When a set the speed to let's say 70%, the motor is almost running the same speed as 100%. I wonder if there is a formula to compensate for this behaviour or maybe a lookup table or something.

Any help would be appreciated.

Cheers,

Bas

This will always be true of fans such as you are using. They are made cheaply. What you are noting is at some speed, the fan just compresses the air in front and creates a vacuum behind the blade. If you used a similar fan in water, it would be called "cavitation". But in an air fan, you get "noise".

Paul

Bass99:
Hello guys,

I'm controlling the speed of a 230vac fan motor using phase cutting in combination with zero cross detection. So far, so good. I can set a speed from 0% to 100%; 0% is a complete standstill and 100% full speed. The problem is that the speed control is not linear. When a set the speed to let's say 70%, the motor is almost running the same speed as 100%. I wonder if there is a formula to compensate for this behaviour or maybe a lookup table or something.

Any help would be appreciated.

Cheers,

Bas

Beware, some ac motors cannot be speed controlled without risk of stall/over current/overheating and subsequent fire.

What motor?
What speed controll circuit?

Paul_KD7HB:
This will always be true of fans such as you are using. They are made cheaply. What you are noting is at some speed, the fan just compresses the air in front and creates a vacuum behind the blade. If you used a similar fan in water, it would be called "cavitation". But in an air fan, you get "noise".

Paul

You are assuming the motor is still connected to a fan, which might not be the case! Some motors and fans are
not cheaply made. The kind of stall you are talking about requires backpressure, which doesn't happen
with an open fan. Fan noise is another matter entirely.

Back pressure stalls and simple power control can lead to hysteresis in the response, BTW.

MarkT:
You are assuming the motor is still connected to a fan, which might not be the case! Some motors and fans are
not cheaply made. The kind of stall you are talking about requires backpressure, which doesn't happen
with an open fan. Fan noise is another matter entirely.

Back pressure stalls and simple power control can lead to hysteresis in the response, BTW.

The problem is in the design of the individual fan blades, themselves.

Paul

Hello,

What Arduino board are you using?

Thanks for the comments.

I forgot to say the "problem" also occurs when I use a light bulb. When I power the bulb from 0% to 100% you almost can't tell the difference between, lets say, 80% and 100%. I think for the most part this is caused due to the fase cutting angle. Since we are cutting a sine wave and not a square wave, the amount of energy that is passed thru per percent is not linear, see picture below for illustration:

If you imagine that every slice is 1 percent then the amount of energy per percent is different and is getting smaller and smaller if you come near the 100%.

So my solution would be make the time slice at the 50% smaller and at 100% bigger. Maybe with some inverse sine function or something, but I'm not sure.

The eye's perception of brightness is logarithmic, 80 to 100% is very small to the eye, which is used
to routinely dealing with many orders of magnitude brightness change, as when going outside into
sunshine.