0% found this document useful (0 votes)
144 views12 pages

Root Locus Design for DC Motor Control

The document describes an experiment to design a controller for a DC motor position control system using root locus analysis. It provides the transfer function model and design criteria. The root locus is plotted for the open-loop system. Dominant closed-loop poles are determined by adding lines for specified damping ratio. A proportional controller gain is selected to place the closed-loop poles in the desired region.

Uploaded by

Ehab AL-Hialy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
144 views12 pages

Root Locus Design for DC Motor Control

The document describes an experiment to design a controller for a DC motor position control system using root locus analysis. It provides the transfer function model and design criteria. The root locus is plotted for the open-loop system. Dominant closed-loop poles are determined by adding lines for specified damping ratio. A proportional controller gain is selected to place the closed-loop poles in the desired region.

Uploaded by

Ehab AL-Hialy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Experiment No.

Plotting Root Locus for DC Motor


Position Control

From the main problem, the dynamic equations in transfer function form
are the following:

and the system schematic looks like:

With a 1 rad/sec step reference, the design criteria are:

 Settling time less than 0.04 seconds


 Overshoot less than 16%
 No steady-state error to a reference
 No steady-state error due to a disturbance

Now let's design a controller using the root locus method.

Create a new m-file and type in the following commands (refer to main
problem for the details of getting those commands).
J=3.2284E-6;
b=3.5077E-6;
K=0.0274;
R=4;
L=2.75E-6;
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0];
motor=tf(num,den);

Drawing the open-loop root locus


The main idea of root locus design is to find the closed-loop response
from the open-loop root locus plot. Then by adding zeros and/or poles to
the original plant, the closed-loop response will be modified. Let's first
view the root locus for the plant. Add the following commands at the end
of your m-file.

rlocus(motor)
sgrid(.5,0)
sigrid(100)
The commands sgrid and sigrid are functions. Sgrid is a function in the
control systems tool box, but sigrid is not. You need to copy the sigrid.m
file to your directory. Click here to see how to copy sigrid.m into an m-
file. The variab in the sgrid command are the zeta term (0.5 corresponds
to a overshoot of 16%), and the wn term (no rise time criteria)
respectively. The variable in the sigrid command is the sigma term
(4/0.04 seconds = 100). Run the above m-file and you should get the root
locus plot below:
If you look at the axis scales on this plot, one open-loop pole is very far
to the left (further than -1x10^6). This pole does not affect the closed
loop dynamics unless very large gains are used, where the system
becomes unstable. We will ignore this pole by doing a model reduction.

Closed-Loop Poles

The root locus of an (open-loop) transfer function is a plot of


the locations (locus) of all possible closed-loop poles with
proportional gain K and unity feedback.

The closed-loop transfer function is:

(1)

and thus the poles of the closed-loop poles of the closed-loop


system are values of such that .

If we write , then this equation has the form:

(2)

(3)

Let = order of and = order of (the order of a polynomial is


the highest power of that appears in it).

We will consider all positive values of K. In the limit as , the


poles of the closed-loop system are or the poles of . In
the limit as , the poles of the closed-loop system are
or the zeros of .

No matter what we pick K to be, the closed-loop system must


always have poles, where is the number of poles of . The
root locus must have branches, each branch starts at a pole of
and goes to a zero of . If has more poles than zeros (as
is often the case), and we say that has zeros at infinity.
In this case, the limit of as is zero. The number of zeros
at infinity is , the number of poles minus the number of zeros,
and is the number of branches of the root locus that go to infinity
(asymptotes).

Since the root locus is actually the locations of all possible closed-
loop poles, from the root locus we can select a gain such that our
closed-loop system will perform the way we want. If any of the
selected poles are on the right half plane, the closed-loop system
will be unstable. The poles that are closest to the imaginary axis
have the greatest influence on the closed-loop response, so even
though the system has three or four poles, it may still act like a
second or even first order system depending on the location(s) of
the dominant pole(s).

Plotting the Root Locus of a Transfer Function

Consider an open-loop system which has a transfer function of

(4)

How do we design a feedback controller for the system by using


the root locus method? Say our design criteria are 5% overshoot
and 1 second rise time. Make a MATLAB file called rl.m. Enter
the transfer function, and the command to plot the root locus:
s = tf('s');

sys = (s + 7)/(s*(s + 5)*(s + 15)*(s


+ 20));

rlocus(sys)

axis([-22 3 -15 15])

Choosing a Value of K from the Root Locus

The plot above shows all possible closed-loop pole locations for a
pure proportional controller. Obviously not all of those closed-loop
poles will satisfy our design criteria, To determine what part of the
locus is acceptable, we can use the command sgrid(Zeta,Wn)
to plot lines of constant damping ratio and natural frequency. Its
two arguments are the damping ratio ( ) and natural frequency ( )
[these may be vectors if you want to look at a range of acceptable
values]. In our problem, we need an overshoot less than 5%
(which means a damping ratio of greater than 0.7) and a rise time
of 1 second (which means a natural frequency greater than 1.8).
Enter the following in the MATLAB command window:

Zeta = 0.7;

Wn = 1.8;

sgrid(Zeta,Wn)

On the plot above, the two dotted lines at about a 45 degree angle
indicate pole locations with = 0.7; in between these lines, the
poles will have > 0.7 and outside of the lines < 0.7. The
semicircle indicates pole locations with a natural frequency =
1.8; inside the circle, < 1.8 and outside the circle > 1.8.
Going back to our problem, to make the overshoot less than 5%,
the poles have to be in between the two white dotted lines, and to
make the rise time shorter than 1 second, the poles have to be
outside of the white dotted semicircle. So now we know only the
part of the locus outside of the semicircle and in betwen the two
lines are acceptable. All the poles in this location are in the left-half
plane, so the closed-loop system will be stable.

From the plot above we see that there is part of the root locus
inside the desired region. So in this case, we need only a
proportional controller to move the poles to the desired region. You
can use the rlocfind command in MATLAB to choose the
desired poles on the locus:

[k,poles] = rlocfind(sys)

Click on the plot the point where you want the closed-loop pole to
be. You may want to select the points indicated in the plot below to
satisfy the design criteria.
Note that since the root locus may have more than one branch,
when you select a pole, you may want to find out where the other
pole (poles) are. Remember they will affect the response too. From
the plot above, we see that all the poles selected (all the "+" signs)
are at reasonable positions. We can go ahead and use the chosen
K as our proportional controller.

Closed-Loop Response

In order to find the step response, you need to know the closed-
loop transfer function. You could compute this using the rules of
block diagrams, or let MATLAB do it for you (there is no need to
enter a value for K if the rlocfind command was used):
K = 350;

sys_cl = feedback(K*sys,1)

sys_cl =

350 s + 2450

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

s^4 + 40 s^3 + 475 s^2 + 1850 s +


2450

Continuous-time transfer function.

The two arguments to the function feedback are the numerator


and denominator of the open-loop system. You need to include the
proportional gain that you have chosen. Unity feedback is
assumed.

If you have a non-unity feedback situation, look at the help file for
the MATLAB function feedback, which can find the closed-loop
transfer function with a gain in the feedback loop.

Check out the step response of your closed-loop system:

step(sys_cl)
As we expected, this response has an overshoot less than 5% and
a rise time less than 1 second.

Assignment

1- Derive the transfer function for the control system in the following
figure and plot the root locus for open-loop and closed-loop
transfer function.
2- Determine the locations of dominant closed loop poles when the
damping ratio equal 0.5. Compute the value of K at the dominant
closed-loop pole.
Assume the following numerical values for system constants:

r = angular displacement of reference input shaft, radians

c = angular displacement of the output shaft, radians

θ = angular displacement of the motor shaft, radians

k1 = gain of the potentiometer error detector = 24/π volt/rad

kp = amplifier gain = 10 volt/volt

ea = applied armature voltage, volt

eb = back emf, volt

Ra = armature resistance, ohms

La = armature winding inductance = negligible

ia = armature winding current, ampers

kb = back emf constant = 0.055 volt-ec/rad

k = motor torque constatnt = 0.00006 [Link]/amp

Jm = moment of inertia of the motor = 0.00001 [Link].sec2

fm = viscous friction coefficient of the motor = negligible

JL = moment of inertia of the load = 0.0044 [Link].sec2

fL = viscous friction coefficient of the load = 0.04 [Link]/rad/sec

n = gear ratio N1/N1 = 1/10

Note:

J = J m + n2 J L

f = f m + n 2 fL

You might also like