You are on page 1of 52

TimeDomain Analysis of and

Design
of Control Systems

Prof. Bidyadhar Subudhi


Dept. of Electrical Engineering
National Institute of Technology Rourkela, India
bidyadhar@nitrkl.ac.in

Time Response

Example of transient &


steady-state responses

Usage of time responses

Typical test inputs

Steady state value for step test signal

TimeDomain Analysis of and Design


of Control Systems

Transient Response Specifications of a


Second Order System

SecondOrder Systems and


TransientResponseSpecifications
The response for a unit step input of an underdamped second order system

Rise Time

Peak Time

wrt time and letting this derivative equal zero. That is

It follows

Peak Time corresponds to one halfcycle of the


frequency damped oscillations

Maximum Overshoot
The maximum overshoot Mp occurs at the peak time
Thus from equation

Relationship between the maximum


percent overshoot

Settling Time Ts

Delay Time
We define the delay time by the following approximate formula:

Remarks on time-domain responses

Example

Example

Transient-response analysis
with MATLAB.

Introduction
The practical procedure for plotting time response
curves of systems higher than second-order is
through computer simulation.
In this part, computational approach to the
transient-response analysis with MATLAB is
presented through various examples.

Representation of a Linear System


A linear system can be represented either:

In state-variable form:
with the values of the matrices F, G, H and the constant J.

Or
By its transfer function:
Either in numerator-denominator polynomial form,
Or in pole-zero form
Or in partial expansion form

Example 1: Standard State-Variable


Form
Consider a linear system described by:

1
0
0
F
G

0 0.05
0.001
H 0 1

J 0

Unit-Step Response for a Control System


defined in State-Variable form
F = [0 1;0 -0.05];
G = [0;0.001];
H = [0 1];
J = 0;
step(F,G,H,J)

% defines state variable matrices

% generates plot of unit-step


response (with Time (sec) and
Amplitude labels on x- and y-axis
respectively, and Step response
title )
Note: time vector is automatically
determined when t is not explicitly
included in the step command.

50-Step Response for a system defined in


State-Variable form
F = [0 1;0 -0.05];
G = [0;0.001];
H = [0 1];
J = 0;
sys = ss(F, 50*G, H, J);
step(sys)

% defines state variable matrices

% defines system by its state-space


matrices
% generates plot of 50-step
response vs t
Note: State-variable form is also
called state-space form

Unit-Step Response on specific time interval


for a system defined in State-Variable form
F = [0 1;0 -0.05];
G = [0;0.001];
H = [0 1];
J = 0;
sys = ss(F, G, H, J);
t = 0:0.2:100;
y=step(sys,t);
plot(t,y)

% defines state variable matrices

% defines system by its state-space


matrices
% setup time vector ( dt = 0.2 sec)
% plots unit step response versus
time ranging from 0 to 100 sec
(with x- and y-labels)

Impulse Response for a system defined in


State-Variable form
F = [0 1;0 -0.05];
G = [0;0.001];
H = [0 1];
J = 0;
sys = ss(F, G, H, J);
impulse(sys)

% defines state variable matrices

% defines system by its state-space


matrices
% generates plot of impulse response
(with labels & title)
Note: an alternative use of impulse
command is:
impulse(F,G,H,J)

Example 2: Initial Conditions


Consider a linear system such as:
x 10 x 5 x

x(0) 2, x (0) 1
In state-variable form, it is described by:
1
0
0
F
G

10 5
0
H 1 0

J 0

x
X
x

2
X(t 0)
1

Initial Condition Response for a system


defined in State-Variable form
F = [0 1;-10 -5];
G = [0;0];
H = [1 0];
J = 0;
t = 0:0.5:3;
y=initial(F,G,H,J,[2;1],t);

plot(t,y)

% defines state variable


matrices

% set up time vector


% computes initial condition
response
% generates plot of response
Note: Initial conditions are
defined between [ ].

Example 3: Transfer function in


numerator-denominator form
Consider a linear system whose the transfer
function is:

N ( s)
G( s)
D( s )

Unit-Step Response for a system Transfer


Function defined in num/den polynomial form

25
G ( s) 2
s 4s 25
num = [0 0 25];
den = [1 4 25];
step(num,den)

% defines numerator
% defines denominator
% generates plot of unit-step
response (with labels and title)

50-Step Response for a system Transfer


Function defined in num/den polynomial form
Y( s )
1
G( s ) 2
X( s )
s 0.2s 1
1
50
50
1
Y( s ) 2
2
s 0.2s 1 s
s
0.2
s 1 s
Gnew ( s )

num = [0 0 50];
den = [1 0.2 1];
step(num,den)

unit step

% defines numerator
% defines denominator
% generates plot of 50-step
response (with labels and title)

Unit-Step Responses for system Transfer


Functions defined by
1
G( s) 2
, 0, 0.2, 0.4,,1
s 2s 1
t = 0:0.2:10;
zeta = [0 0.2 0.4 0.6 0.8 1];
for n = 1:6;
num = [0 0 1];
den = [1 2*zeta(n) 1];
[y(1:51,n),x, t] = step(num,den,t);
end
plot(t,y)

% setup time vector


% defines zeta,
numerator and
denominator

% generates 2-D plot of


the n unit-step
responses (on same
graph)

Unit-Step Responses for system Transfer


Functions defined by
1
G( s) 2
, 0, 0.2, 0.4,,1
s 2s 1
t = 0:0.2:10;
zeta = [0 0.2 0.4 0.6 0.8 1];
for n = 1:6;
num = [0 0 1];
den = [1 2*zeta(n) 1];
[y(1:51,n),x, t] = step(num,den,t);
end
mesh(t,zeta,y)

% setup time vector


% defines zeta,
numerator and
denominator

% generates 3-D plot of


the n unit-step
responses (on same
graph)

Unit Step Response for a 3rd order system


defined by its Transfer Function
1
1
G(s) 2
3 2
s s 1 s s s s

num = [0 0 0 1];
den = [1 1 1 0];
step(num,den)

% defines numerator
% defines denominator
% generates plot of unit-step
response (with x- and y-labels)

Impulse Response for a system Transfer


Function defined in num/den polynomial form

1
G( s) 2
s 0.2s 1
num = [0 0 1];
den = [1 0.2 1];
sys=tf(num,den);
impulse(sys)

% defines numerator
% defines denominator
% defines system by its transfer
function
% generates plot of impulse response
Note: an alternative use of impulse
command is:
impulse(num,den)

Alternative approach to obtain Impulse


Response
Y( s )
1
G( s ) 2
X( s )
s 0.2s 1
1
s
1
Y( s ) 2
1 2
s 0.2s 1
s
0.2
s 1 s

Gnew ( s )

num = [0 1 0];
den = [1 0.2 1];
step(num,den)

unit step

% defines numerator of sG(s)


% defines denominator
% generates plot of impulse
response (with x- and y-labels)

Example 4: Transfer function in standard


2nd order system
Consider a standard second order system:

G( s ) 2
2
s 2 0 s 0
2
0

damping
ratio

natural
undamped
frequency

MATLAB Description of Standard Second


Order System
w0 = 5;
damping_ratio = 0.4;

[num0,den] = ord2(w0,damping_ratio);
num = 5^2*num0;
printsys(num,den,s)

% defines natural
undamped frequency
% defines damping ratio
% defines numerator
% prints num/den as a
ratio of s-polynomials
num/den =

25
s 2 4s 25

Example 5: Transfer function in polezero form


Consider a linear system whose the transfer
function is:

( s z1 )(s z2 ) ( s zm )
G( s)
( s p1 )(s p2 ) ( s pn )

Unit-Step Response for a system Transfer


Function defined in pole-zero form
( s 2)( s 4)
G( s) 2
( s s)( s 3)
num = conv([1 2],[1 4]);
den = conv([1 1 0],[1 3]);

step(num,den)

% defines zero ratios


% defines pole ratios
% plots unit-step response

Example 6: Transfer function in Partial


Expansion Form
Consider a linear system whose the transfer
function is:

Kn
K1
K2
G( s)

s p1 s p2
s pn

Unit-Step Response for a system Transfer


Function defined in partial expansion form
8 3 3 2 1/ 6
G( s)

s
s 1 s 3
r = [8/3 -3/2 -1/6];
p = [0 -1 -3];
K = [] ;
[num,den] = residue(r,p,K)
step(num,den)

% defines residues
% defines poles
% define additive constant
% convert partial expansion
form to polynomial form
% plots unit-step response
Note: to see ratio use
printsys(num,den,s)

Convertion
Transfer function:

[num,den] = ss2tf(F,G,H,J)
In num-den polynomial
form
[z,p,k]=tf2zp(num,den)
[z,p,k] = ss2zp(F,G,H,J)
In zero-pole form

In partial expansion form

[r,p,K]=residue(num,den)

State-variable form

Convertion
Transfer function:

[F,G,H,J] = tf2ss(num,den)
In num-den polynomial
form
[num,den]=zp2tf(z,p,k)
[F,G,H,J] = zp2ss(z,p,k)
In zero-pole form

In partial expansion form

[num,den]=residue(r,p,K)

State-variable form

Cosmetic

Title, grid, labels, text on graphical screen,


symbols,

Title, Grid & Labels on the graphical screen


title (Step-response);
grid;

% writes the title Step-response


% draws a grid between ticks

sys = ;

% defines system by

t = 0:0.2:100;
y = step(sys,t);
plot (t,y);
xlabel(t (sec));
ylabel(response)

% setup time vector ( dt = 0.2 sec)


% computes step response
% plots step response
% writes label t (sec) on x-axis.
% writes label response on y-axis.

Writing Text on the Graphical Screen


text(3.4, -0.06, Y111);
text(4.1,1.86,\zeta);
gtext(blabla)

% writes Y111 beginning at the


coordinates x=3.4, y=-0.06.
% writes at x=4.1, y=1.86
% waits until the cursor is
positioned (using the mouse) at
the desired position in the screen
and then writes on the plot at the
cursors location the text
enclosed in simple quotes.
Note: any number of gtext
command can be used in a plot.

Use of Symbols in graph

25
G ( s) 2
s 6s 25
num = [0 0 25];
den = [1 6 25];
t = 0:0.5:5;
y = step(num,den,t);
plot(t,y,o,t,1,-);

% defines numerator
% defines denominator
% defines time vector
% computes unit-step response
% plot of unit step response y and
unit step input 1 using oooo and
---- symbols respectively.

Use of Symbols in graph (contd)

25
G ( s) 2
s 6s 25
num = [0 0 25];
den = [1 6 25];
t = 0:0.5:5;
y = step(num,den,t);
plot(t,y,x,t,y,-);

% defines numerator
% defines denominator
% defines time vector
% computes step response
% plot of unit step response y
using -x-x-x-x- symbols