Assignment 1 Continued…
4. The objective of this exercise is to deduce the effect of location of pole and zero on the time-
domain response of a system.
a. First-order systems: Consider 𝐺1 (𝑠) = 1/𝑠+ . Compare in terms of rise time and steady-state value
the step responses of this system for different values of p. Choose p = 0.5, 1, 2, and 10. (For purposes
of this experiment, assume the following definition of rise time: the time taken for the output to
reach 90% of the final steady-state value.) Based on this, where should one locate the pole if the
requirement is a fast response? Where should one locate the pole if the steady-state value of the
output is expected to be equal to the input value? Can one independently satisfy both
requirements?
% 4 a) First order system
clc;
clear all;
close all;
k=4;
% To consider an array of p values
p=[0.5,1,2,10];
% To print the various Transfer functions
Tf1=tf(1,[1,0.5])
Tf2=tf(1,[1,1])
Tf3=tf(1,[1,2])
Tf4=tf(1,[1,10])
% To find various rise time values
Tr=zeros(k);
for c=1:k
Tr(c)=2.3/p(c);
end
% The lower the rise time faster is the response
Min_Tr=min(Tr);
disp("Fastest response is shown at rise time");
M = Min_Tr(1)
% we consider the steady state value as 1 hence G(s)=1
%S=zeros(k);
for t=1:k
S(t)=1-p(t);
end
disp("The locations of poles must be:");
S
%Plots of each transfer functions
stepplot(Tf1)
stepplot(Tf2)
stepplot(Tf3)
stepplot(Tf4)
OUTPUT-
b. Second-order systems: Consider 𝐺2 (𝑠) = 10 𝑠/2+𝑎𝑠+10 . Compare in terms of rise time, the
settling time, the peak overshoot, and steady-state value the step responses of this system for
different values of a: Choose a = 0.1, 2.5, 5, 7.5, 10. (Use the definitions in the prescribed text-book.)
Ask questions similar to that in 4.a, and discuss the results.
%4 b) Second order system
clc;
clear all;
close all;
k1=5;
k2=5;
% values of a
a=[0.1,2.5,5,7.5,10];
% transfer functions
TF1=tf([10],[1,0.1,10])
TF2=tf([10],[1,2.5,10])
TF3=tf([10],[1,5,10])
TF4=tf([10],[1,7.5,10])
TF5=tf([10],[1,10,10])
% Damping ratio and natural frequency
% E - damping ratio = a/(2.Wn) and Wn=sqrt(10)
E=zeros(k1);
Wn= 3.162;
Wn1= 2*Wn;
for c=1:k1
E(c)=a(c)/Wn1;
end
% Computation of Wd
Wd1= zeros(k1);
theta= zeros(k1);
for c=1:k1
Wd1(c)=sqrt(1-E(c));
theta(c)= acos(E(c));
end
Wd=Wn*Wd1;
% Computation of theta, rise time, peak time, peak overshoot
% Computation of settling time
Tr= zeros(k2);
Tp= zeros(k2);
Mp= zeros(k2);
Ts= zeros(k2);
for c=1:k2
Tr(c)=(pi-theta(c))/Wd(c);
Tp(c)=pi/Wd(c);
Mp(c)=expm((-pi*E(c))/Wd1(c));
Ts(c)=4/(E(c)*Wn);
end
% 1) To check for faster response
% For faster response rise time should decrease
% Subsequent values for peak time, peak overshoot and settling time is
% taken
Min_Tr=min(Tr);
k=find(min(Tr));
disp("For the faster response")
disp("Rise Time:")
Min_Tr(1)
disp("Peak time:")
Tp(k)
disp("Peak overshoot:")
Mp(k)
disp("Settling time:")
Ts(k)
% 2) To get poles at steady state value
S1=0;
for c=1:k1
S2=2*Wn*E(c);
disp("The poles for a:");
a(c)
disp("is");
S1
S2
end
OUTPUT-
TF1 =
10
----------------
s^2 + 0.1 s + 10
Continuous-time transfer function.
TF2 =
10
----------------
s^2 + 2.5 s + 10
Continuous-time transfer function.
TF3 =
10
--------------
s^2 + 5 s + 10
Continuous-time transfer function.
TF4 =
10
----------------
s^2 + 7.5 s + 10
Continuous-time transfer function.
TF5 =
10
---------------
s^2 + 10 s + 10
Continuous-time transfer function.
For the faster response
Rise Time:
ans =
0.5058
Peak time:
ans =
1.0015
Peak overshoot:
ans =
0.9512
Settiling time:
ans =
80.0000
S1 =
The poles for a:
ans =
0.1000
is
S1 =
S2 =
0.1000
The poles for a:
ans =
2.5000
is
S1 =
0
S2 =
2.5000
The poles for a:
ans =
is
S1 =
S2 =
The poles for a:
ans =
7.5000
is
S1 =
S2 =
7.5000
The poles for a:
ans =
10
is
S1 =
S2 =
10
c. The effect of an additional pole: Consider 𝐺3 (𝑠) = 10/𝑠^2+2𝑠+10 in cascade with a first order
system 𝐺4 (𝑠) = 𝑝/𝑠+ . Repeat the experiment 4.b for different values of p. Choose p = 5, 10, 20. In
your discussions, include as well a comparison of these results with those obtained in 4.b.
% 4 c) Effect of adding a pole to a transfer function
% For p=5 and poles(steady state) are given by
g1=tf(10,[1 2 10]);
f1=tf(5,[1 5]);
h1=series(g1,f1);
display(h1)
stepinfo(h1)
disp("Poles at steady state value are")
s1=[0 -2 -5]
% For p=10 and poles(steady state) are given by
g2=tf(10,[1 2 10]);
f2=tf(5,[1 5]);
h2=series(g2,f2);
display(h2)
stepinfo(h2)
disp("Poles at steady state value are")
s2=[0 -2 -10]
% For p=20 and poles(steady state) are given by
g3=tf(10,[1 2 10]);
f3=tf(5,[1 5]);
h3=series(g3,f3);
display(h3)
stepinfo(h3)
disp("Poles at steady state value are")
s3=[0 -2 -20]
stepplot(h3)
Output
h1 =
50
-----------------------
s^3 + 7 s^2 + 20 s + 50
Continuous-time transfer function.
ans =
struct with fields:
RiseTime: 0.5131
TransientTime: 3.6966
SettlingTime: 3.6966
SettlingMin: 0.9006
SettlingMax: 1.2824
Overshoot: 28.2355
Undershoot: 0
Peak: 1.2824
PeakTime: 1.2710
Poles at steady state value are
s1 =
0 -2 -5
h2 =
50
-----------------------
s^3 + 7 s^2 + 20 s + 50
Continuous-time transfer function.
ans =
struct with fields:
RiseTime: 0.5131
TransientTime: 3.6966
SettlingTime: 3.6966
SettlingMin: 0.9006
SettlingMax: 1.2824
Overshoot: 28.2355
Undershoot: 0
Peak: 1.2824
PeakTime: 1.2710
Poles at steady state value are
s2 =
0 -2 -10
h3 =
50
-----------------------
s^3 + 7 s^2 + 20 s + 50
Continuous-time transfer function.
ans =
struct with fields:
RiseTime: 0.5131
TransientTime: 3.6966
SettlingTime: 3.6966
SettlingMin: 0.9006
SettlingMax: 1.2824
Overshoot: 28.2355
Undershoot: 0
Peak: 1.2824
PeakTime: 1.2710
Poles at steady state value are
s3 =
0 -2 -20
Inference-
Here if the pole is very far away from origin then the system responds faster whereas if the pole is
closer to origin then the system response to input is slower.
d. The effect of an additional zero: Consider 𝐺4 (𝑠) = 10( /𝑎 +1)/𝑠^2+2𝑠+10 . Repeat the experiment
4.b for different values of a. Choose a = 0.1, 1, 10, 100. In your discussion, include as well a
comparison of these results with those obtained in 4.b.
% 4d) Effect on the second order system due to addition of a zero
clc;
clear all;
close all;
% For a=0.1 and poles(steady state) are given by
g1=tf([10/0.1 10],[1 2 10]);
display(g1)
stepinfo(g1)
disp("Poles at steady state value are")
s1=[0 98]
% For a=1 and poles(steady state) are given by
g2=tf([10 10],[1 2 10]);
display(g2)
stepinfo(g2)
disp("Poles at steady state value are")
s2=[0 8]
% For a=10 and poles(steady state) are given by
g3=tf([10/10 10],[1 2 10]);
display(g3)
stepinfo(g3)
disp("Poles at steady state value are")
s3=[0 -1]
% For a=100 and poles(steady state) are given by
g4=tf([10/100 10],[1 2 10]);
display(g4)
stepinfo(g4)
disp("Poles at steady state value are")
s3=[0 -1.9]
stepplot(g2)
Output
g1 =
100 s + 10
--------------
s^2 + 2 s + 10
Continuous-time transfer function.
ans =
struct with fields:
RiseTime: 0.0084
TransientTime: 3.9626
SettlingTime: 7.0744
SettlingMin: -6.1753
SettlingMax: 21.4323
Overshoot: 2.0432e+03
Undershoot: 617.5283
Peak: 21.4323
PeakTime: 0.4145
Poles at steady state value are
s1 =
0 98
g2 =
10 s + 10
--------------
s^2 + 2 s + 10
Continuous-time transfer function.
ans =
struct with fields:
RiseTime: 0.0855
TransientTime: 4.0599
SettlingTime: 4.9646
SettlingMin: 0.3764
SettlingMax: 2.7745
Overshoot: 177.4549
Undershoot: 0
Peak: 2.7745
PeakTime: 0.5066
Poles at steady state value are
s2 =
0 8
g3 =
s + 10
--------------
s^2 + 2 s + 10
Continuous-time transfer function.
ans =
struct with fields:
RiseTime: 0.3934
TransientTime: 3.4405
SettlingTime: 3.4405
SettlingMin: 0.8700
SettlingMax: 1.3699
Overshoot: 36.9931
Undershoot: 0
Peak: 1.3699
PeakTime: 0.9210
Poles at steady state value are
s3 =
0 -1
g4 =
0.1 s + 10
--------------
s^2 + 2 s + 10
Continuous-time transfer function.
ans =
struct with fields:
RiseTime: 0.4247
TransientTime: 3.5259
SettlingTime: 3.5259
SettlingMin: 0.8769
SettlingMax: 1.3503
Overshoot: 35.0254
Undershoot: 0
Peak: 1.3503
PeakTime: 1.0592
Poles at steady state value are
s3 =
0 -1.9000
Inference
Due to the addition of a pole we observe that shape of the graph changes that is the peak overshoot
increases, peak time and rise time both decreases.