0% found this document useful (0 votes)
24 views

Control System Lab 7

Uploaded by

salah g
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)
24 views

Control System Lab 7

Uploaded by

salah g
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
You are on page 1/ 8

Frequency Response (Bode Plot)

Aim : To plot bode plot and determination of Wgc and Wpc.

1
2
Frequency Design Method for DC Motor
Speed Control
Drawing the original Bode plot
Adding proportional gain
Plotting the closed-loop response
Adding a lag controller

From the main problem, the dynamic equations and the open-loop transfer
function of DC Motor Speed are:

and the system schematic looks like:

For the original problem setup and the derivation of the above equations,
please refer to the Modeling a DC Motor page.

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

 Settling time less than 2 seconds


 Overshoot less than 5%
 Steady-state error less than 1%

Create a new m-file and type in the following commands (refer to the main
problem for the details of getting those commands).
J=0.01;
b=0.1;

3
K=0.01;
R=1;
L=0.5;
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)];

Drawing the original Bode plot


The main idea of frequency-based design is to use the Bode plot of the
open-loop transfer function to estimate the closed-loop response. Adding a
controller to the system changes the open-loop Bode plot, therefore
changing the closed-loop response. Let's first draw the Bode plot for the
original open-loop transfer function. Add the following code to the end of
your m-file, and then run it in the Matlab command window.

bode(num,den)

You should get the following Bode plot:

Adding proportional gain


From the bode plot above, we see that the phase margin can be greater than
about 60 degrees if w is less than 10 rad/sec. Let's add gain to the system so
the bandwidth frequency is 10 rad/sec, which will give us a phase margin of
about 60 degrees. To find the gain at 10 rad/sec, you can try to read it off the
Bode plot (it looks to be slightly more than -40 dB, or 0.01 in magnitude).
The bode command, invoked with left-hand arguments, can also be used to
give you the exact magnitude:

4
[mag,phase,w] = bode(num,den,10)
mag =

To have a gain of 1 at 10 rad/sec, multiply the numerator by 1/0.0139 or


approximately 72.
num = 70*num
and rerun your m-file. You should have the following Bode plot:

Plotting the closed-loop response


From the plot above we see that the phase margin is now quite large. Let's
see what the closed-loop response look like. Add a % in front of
the bode commands and add the following code to the end of your m-file:
[numc,denc]=cloop(num, den, -
t=0:0.01:10;
step(numc,denc,t)
You will see the following plot:

5
The settling time is fast enough, but the overshoot and the steady-state
error are too high. The overshoot can be reduced by reducing the gain a bit
to get a higher phase margin, but this would cause the steady-state error to
increase. A lag controller is probably needed.

Adding a lag controller


We can add a lag controller to reduce the steady-state error. At the same
time, we should try to reduce the overshoot by reducing the gain. Let's
reduce the gain to 50, and try a lag controller of

which should reduce the steady-state error by a factor of 1/0.01 = 100 (but
could increase the settling time). Go back and change your m-file so it looks
like the following:
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)];
num=50*K;

z=1;
p=0.1;
numa=[1 z];
dena=[1 p];
numb=conv(num,numa);
denb=conv(den,dena);

bode(numb,denb)
Rerun the file and you will get this plot:
6
The phase margin looks good. The steady-state error is predicted to be about
1/40dB or 1%, as desired. Close the loop and look at the step response. Add
the following lines of code to the end of you m-file and rerun.
[numc,denc]=cloop(numb, denb, -
t=0:0.01:10;
step(numc,denc,t)

Now you have a step response that meets the design requirements. The
steady-state error is less than 1%, the overshoot is about 5%, and the settling
time is about 2 seconds.

7
8

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy