Sei sulla pagina 1di 16

Course No.

: EEE 402
Course Title: Control System Laboratory

Group No.:02

Experiment no:05
Name of the Experiment:

Root Locus Design Method for DC Motor Position Control

Date of
Performance:12/0
4/2016
Date of
Submission:26/04/
2016

Name: Sadman Sarar


Student ID: 1106182
Department: EEE
Level:4 Term:1
Partner Students ID:
1106174,1106175
1106176,1106177
1106178,1106179
1106180,1106181

Objective:

The objective of this experiment was to design a DC Motor position controller using Root
Locus Method considering disturbance in the system and reduce the effect of the
disturbance to zero.
Root Locus:
The root locus of an (open loop) transfer H ( s ) function is a plot of the locations (locus)
of all possible closed loop poles with
proportional gain k and unity feedback:

Fig 1: Schematic Diagram of a closed loop control system

Fig 2: Schematic Diagram of a closed loop control system with disturbance


The closed loop transfer function is Y ( s )
KH ( s )
(s) 0
And thus the poles of the closed R1( s) KH
1 KH ( s )
loop system are values such that .
No matter what the pick k to be, the H ( s ) closed loop system must always have n
poles, where n is the number of poles
of .The root locus must have n branches,
each branch starts at a pole of and goes to a zero of . If has more poles than zeros, m<n

and we say that has zeros at infinity. In that case, the limit of as s tends to infinity, is
zero.

Design requirements:
If simulation was done with the reference r (t ) input by a unit step input, then the motor
speed output should have
Settling time less than 40 milliseconds
Overshoot less than 16%
No steady state error
No steady state error due to a disturbance
Motor Parameters:
1.
2.
3.
4.
5.
6.
7.
8.

Moment of inertia of the rotor (J) = 3.2284x10- 6 kg-m2/s2


Damping ratio of the mechanical system (b) = 3.5077x10- 6 Nms
Electromotive force constant (K = Ke = Kt) = 0.0274 Nm/Amp
Electric resistance (R) = 4
Electric inductance (L) = 2.75x10- 6 H
Input (V) = Source Voltage
Output () = position of shaft

The rotor and shaft are assumed to be rigid

Open Loop Response:

Matlab code:
clc;
clear all;
close all;
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];
step(num,den,0:0.001:0.2)

Outputs:

Proportional Control, Drawing Root Locus and Integral Control:

Matlab code:
clc;
clear all;
close all;
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];
sys=tf(num,den);
figure;step(sys,0:.001:0.3);
grid on;
title('stop response for open loop system');
xlabel('Time')
ylabel('Position')
kp=1.7;
closed_sys=feedback(sys*kp,1);
figure;step(closed_sys,0:.001:0.2);
grid on;
title('step response for Kp = 1.7');
xlabel('Time');
ylabel('position');
%%Disturbance response
dist_sys = closed_sys/kp;
figure;step(dist_sys,0:.001:0.2);
grid on;
%%RootLocus
figure;rlocus(sys);
sgrid(0.5,0);
axis([-400 100 -200 200]);
title('Root locus - P controller');
%%Integral Control
numcf = [1];
dencf=[1 0];
controller=tf(numcf,dencf);
I_sys=controller*sys;
figure;rlocus(I_sys);
sgrid(0.5,0);
axis([-400 100 -200 200]);
title('Root locus - I controller');

Outputs:
Step response for Kp=1.7

Step response:

Root Locus P controller:

Rool Locus I controller:

5. Proportional plus Integral Control:


Matlab code:
This is a partial code copied from a larger .m file.
%%Proportinal plus integral control
numcf = [1 20];
dencf=[1 0];
controller=tf(numcf,dencf);

I_sys=controller*sys;
figure;rlocus(I_sys);
sgrid(0.5,0);
axis([-400 100 -200 200]);
title('Root locus - P+I controller');

Output:

6. Proportional plus Integral plus Derivative Control:


Matlab code:
%% Proportional plus Integral plus Derivative Control
numcf = conv([1 60],[1 70]);
dencf=[1 0];
controller=tf(numcf,dencf);
PID_sys=controller*sys;
figure;rlocus(PID_sys,0:0.001:1);
sgrid(0.5,0);
axis([-400 100 -200 200]);
title('Root locus - PID controller');
Output:

7. Finding the gain using the rlocfind command:


Matlab code added:
[k poles] = rlocfind(PID_sys);
feedbk_sys = feedback(k*PID_sys,1);
figure;
subplot(211), step(feedbk_sys, 0:0.001:0.1);
grid on;
title('Step Response for Compensated System');
dist_sys = feedbk_sys/(k*controller);
subplot(212), step(dist_sys, 0:0.001:0.1);
grid on;
title('Step Response for Compensated System for Disturbance');
Selected point:
selected_point =
-1.3756e+02 + 1.9814e+01i

Outputs:

Appendix:
Matlab Code:
clc;
clear all;
close all;
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];
sys = tf(num,den);
numcf = conv([1 60],[1 70]);
dencf = [1 0];

controller = tf(numcf,dencf);
PID_sys = controller*sys;
rlocus(PID_sys,0:.001:1);
sgrid(.5,0);
axis([-400 100 -200 200]);
[k poles] = rlocfind(PID_sys);
feedbk_sys = feedback(k*PID_sys,1);
figure;
step(feedbk_sys,0:.001:1);
figure;
dis_sys = feedbk_sys/(k*controller);

step(dis_sys,0:.001:1);
Outputs:

Class task:
Root Locus with poles (-8) and zeros(-1, -5)

Root Locus with


zero=[-5 -10 -15 ];
pole=[10 20];

Root Locus with


zero=[];
pole=[10 20 30];

Root Locus with


zero=[10];
pole=[-10 -20];

Root Locus with


zero=[-10];
pole=[-10 -20 30];

Potrebbero piacerti anche