Title: Chapter 3: Dynamic Response
1Chapter 3 Dynamic Response
- Part C Transient-response analysis with MATLAB.
2Introduction
- 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.
3Representation 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
4Example 1 Standard State-Variable Form
- Consider a linear system described by
5Unit-Step Response for a Control System defined
in State-Variable form
- 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.
- F 0 10 -0.05
- G 00.001
- H 0 1
- J 0
- step(F,G,H,J)
650-Step Response for a system defined in
State-Variable form
- F 0 10 -0.05
- G 00.001
- H 0 1
- J 0
- sys ss(F, 50G, 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
7Unit-Step Response on specific time interval for
a system defined in State-Variable form
- F 0 10 -0.05
- G 00.001
- H 0 1
- J 0
- sys ss(F, G, H, J)
- t 00.2100
- ystep(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)
8Impulse Response for a system defined in
State-Variable form
- F 0 10 -0.05
- G 00.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)
9Example 2 Initial Conditions
- Consider a linear system such as
- In state-variable form, it is described by
10Initial Condition Response for a system defined
in State-Variable form
- F 0 1-10 -5
- G 00
- H 1 0
- J 0
- t 00.53
- yinitial(F,G,H,J,21,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
.
11Example 3 Transfer function in
numerator-denominator form
- Consider a linear system whose the transfer
function is
12Unit-Step Response for a system Transfer Function
defined in num/den polynomial form
- 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)
1350-Step Response for a system Transfer Function
defined in num/den polynomial form
- num 0 0 50
- den 1 0.2 1
- step(num,den)
- defines numerator
- defines denominator
- generates plot of 50-step response (with labels
and title)
14Unit-Step Responses for system Transfer Functions
defined by
- t 00.210
- zeta 0 0.2 0.4 0.6 0.8 1
- for n 16
- num 0 0 1
- den 1 2zeta(n) 1
- y(151,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)
15Unit-Step Responses for system Transfer Functions
defined by
- t 00.210
- zeta 0 0.2 0.4 0.6 0.8 1
- for n 16
- num 0 0 1
- den 1 2zeta(n) 1
- y(151,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)
16Unit Step Response for a 3rd order system defined
by its Transfer Function
- 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)
17Impulse Response for a system Transfer Function
defined in num/den polynomial form
- num 0 0 1
- den 1 0.2 1
- systf(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)
18Alternative approach to obtain Impulse Response
- num 0 1 0
- den 1 0.2 1
- step(num,den)
- defines numerator of sG(s)
- defines denominator
- generates plot of impulse response (with x- and
y-labels)
19Example 4 Transfer function in standard 2nd
order system
- Consider a standard second order system
natural undamped frequency
damping ratio
20MATLAB Description of Standard Second Order System
- w0 5
- damping_ratio 0.4
- num0,den ord2(w0,damping_ratio)
- num 52num0
- printsys(num,den,s)
- defines natural undamped frequency
- defines damping ratio
- defines numerator
- prints num/den as a ratio of s-polynomials
- num/den
21Example 5 Transfer function in pole-zero form
- Consider a linear system whose the transfer
function is
22Unit-Step Response for a system Transfer Function
defined in pole-zero form
- 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
23Example 6 Transfer function in Partial Expansion
Form
- Consider a linear system whose the transfer
function is
24Unit-Step Response for a system Transfer Function
defined in partial expansion form
- 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)
25Convertion
- Transfer function
- In num-den polynomial form
- In zero-pole form
- In partial expansion form
num,den ss2tf(F,G,H,J)
z,p,ktf2zp(num,den)
r,p,Kresidue(num,den)
z,p,k ss2zp(F,G,H,J)
26Convertion
- Transfer function
- In num-den polynomial form
- In zero-pole form
- In partial expansion form
F,G,H,J tf2ss(num,den)
num,denzp2tf(z,p,k)
num,denresidue(r,p,K)
F,G,H,J zp2ss(z,p,k)
27Cosmetic
- Title, grid, labels, text on graphical screen,
- symbols,
28Title, Grid Labels on the graphical screen
- title (Step-response)
- grid
- sys
- t 00.2100
- y step(sys,t)
- plot (t,y)
- xlabel(t (sec))
- ylabel(response)
- writes the title Step-response
- draws a grid between ticks
- defines system by
- 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.
29Writing 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 x3.4,
y-0.06. - writes ? at x4.1, y1.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.
30Use of Symbols in graph
- num 0 0 25
- den 1 6 25
- t 00.55
- 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.
31Use of Symbols in graph (contd)
- num 0 0 25
- den 1 6 25
- t 00.55
- 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
32Additional Convenient MATLAB Commands
- Computing roots using MATLAB
- Plotting pole(s) and zero(s) in the s-plane using
MATLAB - Plotting Step-response versus a parameter range
- Obtaining rise time, peak time, maximum overshoot
and settling time using MATLAB
33Computing Roots
- pol 1 4 3 2 1 4 4
- roots(pol)
- ans
- -3.2644
- -0.6046 0.9935i
- -0.6046 - 0.9935i
- 0.6797 0.7488i
- 0.6797 - 0.7488i
- -0.8858
34Stability Analysis by Computing Roots
- den 1 5 11 23 28 12
- roots(den)
- ans
- -3.0000
- 0.0000 2.0000i
- 0.0000 - 2.0000i
- -1.0000 0.0000i
- -1.0000 - 0.0000i
2 poles are in the RHP
35Plotting Poles and Zero in the s-domain
poles as crosses
- num0 2 1
- den 2 3 2
- zmap(num,den)
zero as circle
36Step-Response versus a Parameter Range
- xlabel('Time (sec)')
- ylabel('Amplitude')
- Title('Step-Response
- versus K parameter')
- grid
- text(7.1,3.8,'K6.5')
- text(7.5,3.15,'7')
- text(7.15,2.65,'7.5')
- text(7.1,2.3,'8')
- text(6.65,1.37,'10')
- text(6.4,0.75,'12.5')
- t00.110
- K6.5 7 7.5 8 10 12.5
- for n16
- numK(n) K(n)
- den1 5 K(n)-6 K(n)
- y(1101,n),x,tstep(num,den,t)
- end
- plot(t,y)
37(No Transcript)
38(No Transcript)
39Reminder Rise Time
- The rise time is the time required for the
response to rise from 0 to 100 of its final
value.
1
t
d
0.5
0
t
Note for overdamped systems, the 10 to 90
rise time is commonly used.
r
40Computing Rise Time using MATLAB
- num 0 0 25
- den1 6 25
- t00.0015
- y,x,tstep(num,den,t)
- r1
- while y(r) lt1.0001
- rr1
- end
- rise_time(r-1)0.001
No
41Reminder Peak Time
- The peak time is the time required for the
response to reach the first peak of the overshoot.
t
p
1
t
d
0.5
0
t
r
42Computing Peak Time using MATLAB
- num 0 0 25
- den1 6 25
- t00.0015
- y,x,tstep(num,den,t)
- ymax,tpmax(y)
- peak_time(tp-1)0.001
No
43Reminder Maximum Overshoot
- The maximum overshoot is the relative maximum
peak value of the response curve measured from
the final value.
t
p
M
p
1
t
d
0.5
0
t
r
Note the maximum overshoot directly indicates
the relative stability of the system.
44Computing Maximum Overshoot using MATLAB
- num 0 0 25
- den1 6 25
- t00.0015
- y,x,tstep(num,den,t)
- ymax,tpmax(y)
- peak_time(tp-1)0.001
- max_overshootymax-1
- peak_time
- 0.7850
- max_overshoot
- 0.0948
45Reminder Settling Time
- The settling time is the time required for the
response curve to reach and stay within a range
about 1 or 2 of the final steady-state value.
t
p
M
p
1
1
t
d
0.5
0
t
t
r
s
Note t is the time it takes the system
transients to decay.
s
46Computing Settling Time using MATLAB(based on
/-2)
- num 0 0 25
- den1 6 25
- t00.0015
- y,x,tstep(num,den,t)
- s5001
- while y(s)gt0.98 y(s)lt1.02
- ss-1
- end
- settling_time(s-1)0.001
47- Results given by MATLAB are
- rise_time 0.5540 peak_time
0.7850, - max_overshoot 0.0948,
settling_time 1.1880