I'm working on a controller for ac induction motor and it's spec is given below. I could control the speed without any trouble at higher speeds like 2000 rpm and above. I'm using TRIAC phase angle control topology in the controller. But at lower RPM like below 1000 RPM but motor takes so much time to reach the set rpm which is not desired as it will add error to the set time period (a timer is there to run the motor @ set RPM for a set period). Also is there any problem if I don't increase the speed gradually.

Motor Spec

1/8hp ,230v/50Hz ,6000 RPM @ No load, I'm using a load of around 1KG

  • \$\begingroup\$ Please share a link to the motor's datasheet. \$\endgroup\$ Apr 8, 2013 at 6:31
  • 2
    \$\begingroup\$ Induction motors cannot be effectively controlled this way - induction motors run near-synchronous with the applied frequency. Changing the conduction phase angle just makes you motor run slower because you aren't supply the energy to drive the load and this could damge the motor. It's not a dc motor. AC induction motors need varaible frequency drives. \$\endgroup\$
    – Andy aka
    Apr 8, 2013 at 9:17
  • \$\begingroup\$ Do you mean that your speed at no load is 3000 RPM? That is what a typical 2 pole AC induction motor's no load speed would be at 50 Hz. \$\endgroup\$
    – Eric
    Apr 9, 2013 at 19:31

3 Answers 3


Assumption: Some mechanism exists to sense RPM, either through an encoder attached to the motor shaft, or via back-emf sensing.

An approach to achieve better results that what the question describes, for low RPM operation of a motor, is to use a PID controller algorithm thus:

  • Motor is provided maximum rated power at start-up, as specified in the motor datasheet
  • As the RPM sensed approaches the desired set-point, the power is systematically reduced my modifying the triac trigger phase
  • Once the RPM set-point is achieved, the PID controller continues to sustain that RPM by increasing or decreasing power to compensate for loading effects
  • If load drives the motor to stall, or beyond acceptable power ratings, the controller initiates a controlled fail-safe spin-down of the motor, and also triggers an alarm indication.

From the Wikipedia article linked above, this graph might help explain this process visually:

PID graph

Depending on the acceptability of overshoots (or not) and desired system behavior, the Proportional (P), Integral (I) and Derivative (D) values of the PID algorithm need to be tuned. The diagram above specifically covers tuning the I value: For absolutely no overshoot of RPM, but with greater time to reach set-point, the red line on the graph shows the preferred behavior, as achieved with a Ki = 0.5.

On the other hand, the black trace, with Ki = 2, achieves (and overshoots) the set-point fastest, and then over/undershoots the set-point in diminishing cycles till it settles down.

There exist excellent motor controller ICs which incorporate both back-EMF sensing (if applicable to your type of motor) and PID controlling, in one package.

Also, assuming the OP has limited experience in designing such systems, off-the-shelf PID controllers for motors are available for a variety of power ratings. These allow a set-point to be interactively set, along with tuning parameters or constraints.

There are also several projects by hobbyists out there, designing and implementing PID AC motor control using microcontrollers or microcontroller boards. For instance, see this YouTube video, for one such Arduino-based PID controller for AC motors.

Links to details are provided in the description text of that video.

  • \$\begingroup\$ Your answer is really helpful. But I think giving full power at the start up to the motor would be resulting in an overshoot problem before we could do any tuning further which is also not desirable. I'm sorry to say that I cannot give any datasheet for the motor as it is locally made and there exists no datasheet. Sensing is done by an encoder attached to the motor. could we able to fine tune the motor without any overshoot by giving full power and later reducing the power? \$\endgroup\$
    – raforanz
    Apr 8, 2013 at 6:58
  • \$\begingroup\$ @raforanz That's precisely what the PID control algorithm is all about: To start with full power, track the RPM, and reduce power systematically before the target RPM is reached, such that there is no overshoot, and also the target RPM is achieved in the least possible time. \$\endgroup\$ Apr 8, 2013 at 7:01
  • \$\begingroup\$ @raforanz Please read the PID Controller link in my answer, to understand more about PID. \$\endgroup\$ Apr 8, 2013 at 7:01
  • \$\begingroup\$ yes,I read it and what I have got is we cannot avoid overshoot problem without compromising on some other terms. \$\endgroup\$
    – raforanz
    Apr 8, 2013 at 7:12
  • \$\begingroup\$ @raforanz Yes, obviously - Any mechanical system has inertia to cope with, so it cannot be brought to an arbitrary state (the RPM set-point) instantaneously. The compromise is overshoot versus settling time, that's what PID parameter tuning is all about. \$\endgroup\$ Apr 8, 2013 at 7:29

As other people have mentioned, typically you change the speed of an AC induction motor by varying the frequency. However, what you are attempting to do is change the speed by varying the voltage. This is an acceptable method in some applications and with some types of induction motors. See the picture below (taken from Handbook of Electric Motors by Toliyat and Kilman, p. 734).

enter image description here

On the graph you can see the speed/torque curves for two different motors run at two different voltages. Motor A is a standard slip motor. As you can see, when you apply 70% of the voltage to this motor (while keeping the frequency the same), the speed will not change very much (point A' on the graph). With a higher slip motor, however, a change in voltage will cause a significant change in speed (compare points B, B', and B''; these represent nominal voltage, 70% voltage, and 40% voltage, respectively).

However, you can see that at 40% voltage on the high slip motor that the speed torque curve is starting to flatten out and that your operating point is near the bottom of the curve. By changing the voltage you are essentially changing the slip of your motor. One of the problems with this method of speed control is that at high slip, you will have high losses and thus your motor will get hotter. Because of this, this method of control isn't used very often and when it is used, care has to be taken to make sure the motor doesn't overheat.

It is not surprising that you are having issues at lower RPM's. 1000 RPM's is probably around where the peak torque for your motor and once you are operating below that point, the motor will probably be difficult to control, due to the way the load characteristic and the motor torque curve become almost parallel to each other. Whether this is what is happening for sure in your situation, I don't know since it depends on what your load characteristic and your motor speed/torque curves look like.


There are several ways to control a Induction Machine, the most common and "simple" way is to use \$V/F\$ curve. This manual of National Instruments is a good guide for implement this control mode.

Take a look at the \$V/F\$ curve: (from the NI manual)

enter image description here

And there's something wrong with your motor caracteristics:

\$Ns = 120*f/P\$

\$P = 120*f/Ns\$

\$P = 120*50/6000 = 1\;pole\$

  • \$\begingroup\$ This is the start of a good answer, but as the question seems not to be grounded in an understanding of what is required, it would be good to expand a bit on the basic idea involved, ie, that an AC waveform of variable frequency and amplitude must be synthesized by the drive (typically by pulse width modulation of power MOSFETs or IGBTs, switching a DC rail rectified from the fixed frequency AC feed). \$\endgroup\$ Apr 8, 2013 at 13:46

Not the answer you're looking for? Browse other questions tagged or ask your own question.