KOM 3781 Discrete-Time Control Systems: Veysel Gazi
KOM 3781 Discrete-Time Control Systems: Veysel Gazi
Veysel Gazi
Lecture 2: Discrete-Time
Systems and the z-Transform
Outline
• Example
• Approximation of derivatives and the integral
• Discrete-Time Systems
• Transform Methods
• Properties of the z-Transform
• Finding z-Transforms
• Solution of Difference Equations
• The Inverse z-Transform
Example
r + e u y
Gc(s) G(s)
Reference Error Control Output
input - input
H(s)
H(s) s+3
Gc ( s ) = 5
U ( s ) = Gc ( s ) E ( s ) s+6
s+3
U (s) = 5 E ( s ) ( s + 6)U ( s) = 5( s + 3) E ( s)
s+6
• The s in Laplace (frequency) domain corresponds to
derivative in time domain
d d d
s u (t ) + 6u (t ) = 5 e(t ) + 15e(t )
dt dt dt
• Assume that the initial conditions (of controller) are zero.
Approximation of the first derivative
y T Backward difference
y(k-1)
approximation of the 1st
derivative (T => sampling period):
y(k)
dy y (k ) − y (k − 1)
k–1 k t =
dt T
(average slope)
u (k ) − u (k − 1) e(k ) − e(k − 1)
+ 6u (k ) = 5 + 15e(k )
T T
1
u (k ) = ( u (k − 1) + (5 + 15T )e(k ) − 5e(k − 1) )
(1 + 6T )
H(s)
H(s)
2
U ( s ) = Gc ( s ) E ( s ) Gc ( s ) =
s
• The 1/s in Laplace (frequency) domain corresponds to
integral in time domain
2 1
U (s) = E ( s)
s s
t
u (t ) = 2 e( )d
0
error y(k)
y
y(k-1) A1(k)
Δ A(k)
A(k-1)
y(k-1)×T
T t
k-1 k
y (k ) − y (k − 1) Area of the
A1 (k ) = T
2 trapezoid – area
y (k ) + y (k − 1) between two
A(k ) y (k − 1) T + A1 (k ) = T samples.
2
Approximation of the integral
(Trapezoidal rule)
The integral (area in yellow) between two
samples may be approximated by various
methods. Δ A(k)
error y(k)
y
y(k-1) A1(k)
Δ A(k)
A(k-1)
y(k-1)×T
T t
k-1 k
y (k ) + y (k − 1)
A(k ) = A(k − 1) + A(k ) A(k − 1) + T
2
Approximation of the total area up to step k.
Example (cont’d)
t
u (t ) = 2 e( )d
0
e(k ) + e(k − 1)
u (k ) = u (k − 1) + 2T = u (k − 1) + T (e(k ) + e(k − 1))
2
• Once again, the current control input u(k) can be
calculated as a function of the previous input u(k-1) and
the current and previous errors e(k) and e(k-1).
• Can easily be implemented on a digital computer.
• Other, more complicated controllers may be designed
similarly.
• Contains simple (adition/subtraction,
multiplication/division operations.
Approximation of the first derivative
T Backward difference
y y(k-1) approximation of the 1st
derivative (T => sampling period):
y(k) dy y (k ) − y (k − 1)
= yk
k–1 k t dt T
(average slope - backward)
T Forward difference
y y(k+1) approximation of the 1st
derivative (T => sampling period):
y(k) dy y (k + 1) − y (k )
= yk
k k+1 t dt T
(average slope – forward)
Approximation of the second derivative
The backward difference approximation of the 2nd
derivative is
y (k ) − y (k − 1) y (k − 1) − y (k − 2)
−
d y yk − yk −1
2
T T
=
dt 2 T T
(average change in
y (k ) − 2 y (k − 1) + y (k − 2) slope - backward)
= 2
y k
T2
T3
T3
• The backward difference approximations are more
suitable since they are based on past values (and not
future values).
• Central difference approximations (not shown) are also
possible.
Approximation of the derivative
• Note that the coefficients in
the derivative are similar to
those in the binomial
expansion!
Approximation of the
Rectangular rule – left side. total area up to step k+1.
Approximation of the integral
(Rectangular rule – right side)
The integral (area in yellow) between two
samples may be approximated by various
methods.
Assume that x(k+1) holds (i.e.,
the function is constant) for
the preceding interval.
Approximation of the
Rectangular rule – right side. total area up to step k+1.
Approximation of the integral
(Trapezoidal rule)
The integral (area in yellow) between two
samples may be approximated by various
methods. Δ A(k)
error y(k)
y
y(k-1) A1(k)
Δ A(k)
A(k-1)
y(k-1)×T
T t
k-1 k
y (k ) + y (k − 1)
A(k ) = A(k − 1) + A(k ) A(k − 1) + T
2
Approximation of the total area up to step k.
Discrete-Time Systems
r+ e A/D u y
Computer D/A Plant
-
Sensor
e(k)
(k-2)T kT (k+1)T k
(k-1)T
Discrete-Time Systems
e(k)
(k-2)T kT (k+1)T k
(k-1)T
1
( x)
k =0
k
=1 x + x x + x x +
2 3 4 5
=
1 x
;( for x 1)
k
1
= −
k =0 2z
1 z z 1 −1
= = = ;( for z 1)
1 z + 1 z + 0.5 2
1+
2z 2
1
From: ( x) k = 1 x + x 2 x3 + x 4 x 5 + = ;( for x 1)
k =0 1 x
Example Transforms
1, k 0
The z-transform of the step function: u (k ) =
0 k 0
1
u (k ) = 0 u (k ) z = 0 z = 1 + z + z + = -1
−k −k -1 -2
1− z
z
= ( for z −1 1)
z −1
Uz =
z/(z - 1)
Example Transforms
The z-transform of u(t) = a t
[a t ] = ? ( sampled form is : u (t )t = kT = a kT )
U ( z ) = 0 u (kT ) z = 0 a z = 0 (a z )
−k kT −k T −1 k
= 1+ a z + (a z )
−1 −1 2 1 z
T T
+ = T −1
= ( for aT z −1 1)
1− a z z − aT
Uz =
z/(z - a^T)
Example Transforms
Find the z-transform of u(t) = e–at : u(kT) = e–akT
U ( z ) = 0 u (k ) z = 0 e − akT z − k
−k
= 0 (e )
− aT −1 k
z
= 1 + (e − aT z −1 ) + (e − aT z −1 ) 2 +
1 z − aT −1
= − aT −1
= − aT
( for e z 1)
1− e z z −e
Uz =
z/(z - 1/e^(T*a))
Example Transforms
t , t 0
The z-transform of ramp function: u (t ) =
0, t 0
U ( z ) = 0 u (k ) z = 0 kTz = T 0 kz − k
−k −k
= T ( z −1 + 2 z −2 + 3 z −3 + 4 z −4 + ) kT , k 0
u (k ) =
z −1 Tz 0, k 0
=T = ( for z −1 1)
(1 − z −1 ) 2 ( z − 1) 2
Uz =
(T*z)/(z - 1)^2
Useful Identity
1
( x)
k =0
k
=1 x + x x + x x +
2 3 4 5
=
1 x
;( for x 1)
d
k
k =0
k ( x) = ( x) ( x) =
k
dx k =0
= ( x)(0 1 + 2 x 3 x 2 + 4 x 3 5 x 4 + )
d 1 x
= ( x) = ;( for x 1)
dx 1 x (1 x) 2
Proof: e1 (k ) e2 (k ) = e1 (k ) e2 (k ) z − k
0
= e1 (k ) z − k e2 (k ) z − k
0
= e1 (k ) z − k e2 (k ) z − k = E1 ( z ) E2 ( z )
0 0
Properties of the z-Transform
Consider e(k) = 0 for k < 0, with corresponding transform E(z).
e( k − n ) = z − n E ( z )
Proof:
equals zero
e ( k − n ) = e ( − n ) z 0
+ e ( − n + 1) z −1
+
+ e(0) z − n + e(1) z − n −1 +
= z − n e(0) + e(1) z −1 + = z − n E ( z )
Example
Real Translation (time delay) 1 z
e − akT = =
Let x(t) = e-at , x(kT) = e-akT 1 − e − aT z −1 z − e − aT
from : e( k − n ) = z − n E ( z )
Properties of the z-Transform
for: x(k ) = X ( z )
Complex Translation
e akT x(k ) = X ( ze − aT )
lim E ( z ) = e(0)
z →
Example
Find the initial value, if it exists, for
(1 − e −T ) z −1 (1 − e −T )
X ( z) = =
−1 −T −1
(1 − z )(1 − e z ) (1 − z −1 )( z − e −T )
(1 − e −T ) (1 − e −T )
x(0) = lim X ( z ) = lim − − = =0
z → z → (1 − z )( z − e
1 T
) (1)()
Properties of the z-Transform
Final Value Theorem
lim e(k ) = lim( z − 1) E ( z ) (if the limit exists)
k → z →1
Proof:
e(k ) = E ( z ) = e(k ) z − k
k =0
e ( k − 1) = z E ( −1
z ) = e ( k − 1)
k =0
z −k
e( k ) z
k =0
−k
− e(k − 1) z − k = (1 − z −1 ) E ( z )
k =0
−k
lim e(k ) z − e(k − 1) z = [e(0) − e(−1)] + [e(1) − e(0)] +
−k
=
z →1
k =0 k =0
e() = lim e(k ) = lim(1 − z −1 ) E ( z ) = lim( z − 1) E ( z )
k → z →1 z →1
Example
Find the final value of u(k), if it exists, for
T z z +1
U ( z) =
2 z − 0.5 z − 1
T z ( z + 1) T z ( z + 1)
lim u (k ) = lim( z − 1) = lim = 2T
k → z →1
2 z − 0.5 ( z − 1) z →1
2 ( z − 0.5)
Finding z-Transforms
z z
1 = e − akT =
z −1 z − e − aT
Find z-transform of
f (t ) = 1 − e − t f (kT ) = 1 − e − kT
−T
z z z (1 − e )
F ( z) = [1 − e − kT ] = [1] − [e − kT ] = − =
z − 1 z − e −T ( z − 1)( z − e −T )
Finding z-Transforms
z
The z-transform of sin(ωt): e akT =
z − e aT
sin(t ), t 0 e jt = cos(t ) + j sin(t )
u (t ) =
0, t 0 e − jt = cos(t ) − j sin(t )
sin(t ) =
2j
( e −e )
1 jt − jt
u (k ) = (
1 j kT
2j
e − e − j kT ) , k 0
U ( z ) = 0 u (k ) z
−k
=
1
2j
( 0 e
j kT
z −k
− 0 e − j kT z − k =
)
1
jT − jT
1 z z z (e − e )
= jT − − jT = 2 j 2 jT − jT
2 j z −e z −e z − z (e + e ) + 1
z sin(T )
= 2
z − 2 z cos(T ) + 1
Finding z-Transforms
The z-transform of cos(ωt): e akT =
z
z − e aT
cos(t ), t 0 e jt = cos(t ) + j sin(t )
u (t ) =
0, t 0 e − jt = cos(t ) − j sin(t )
u (k ) = ( e + e − j kT ) , k 0
1 j kT
cos(t ) = ( e jt + e − jt )
1
2 2
U ( z ) = 0 u (k ) z − k =
1
2
( 0
e j kT − k
z + 0 e
− j kT − k
z = )
1 2 z − z (e + e )
jT − jT
1 z z 2
= jT + − jT = 2 2 jT − jT
2 z −e z −e z − z (e + e ) + 1
z 2 − z cos(T )
= 2
z − 2 z cos(T ) + 1
Calculating the z-Transform from
the Laplace Transform
Example: Given below G(s), find corresponding G(z) for T=0.1:
s 2 + 4s + 3 s 2 + 4s + 3 0.375 0.25 0.375 Expressed as
G (s) = 3 = = + +
s + 6s + 8s s ( s + 2)( s + 4)
2
s s+2 s+4 partial fractions
Laplace Time z-
Substitute corresponding Transform Function Transform
z-Transforms 1 z
e − at
s+a z − e − aT
1 z
z z z 1(t )
G ( z ) = 0.375 + 0.25 + 0.375 s z −1
z −1 z − e −2T z − e −4T
z z z
= 0.375 + 0.25 + 0.375
z −1 z − 0.8187 z − 0.6703
z 3 − 1.658 z 2 + 0.6804 z
= 3 Express as ratio of two polynomials
z − 2.489 z 2 + 2.038 z − 0.5488
z-Transform Example – MATLAB
s 2 + 4s + 3
T=0.1; G (s) = 3
num=[1 4 3]; s + 6 s 2 + 8s
den=[1 6 8 0]; % no repeated poles allowed
n=length(den);
Gs=tf(num,den)
[r,p,k]=residue(num,den); % Get poles & residues
for i=1:1:n-1
pz(i)=exp(p(i)*T) % find poles in z-plane
end
[numzz,denz]=residue(r,pz,k) % substitute z-plane poles
numz=conv(numzz,[1 0]) % multiply by z
Gz=tf(numz,denz,T) % display G(z)
Transfer function:
s^2 + 4 s + 3
-----------------
s^3 + 6 s^2 + 8 s
Transfer function:
z^3 - 1.658 z^2 + 0.6804 z
----------------------------------
z^3 - 2.489 z^2 + 2.038 z - 0.5488
Properties of the z-Transform
z-Transforms of Common Functions
Solution of Difference Equations
Using z-Transform
Example: Second order system e(k) u(k)
DTS
1 − 0.5 z −1 z ( z − 0.5)
U ( z) = −1 −2
E ( z ) = E( z)
1 + 1.2 z + 0.35 z z + 1.2 z + 0.35
2
Long division:
U ( z ) = ( z 3 − 0.5 z 2 ) ( z 3 + 0.2 z 2 − 0.85 z − 0.35) = 1 − 0.70 z −1 + 0.99 z −2 −
U ( z ) = 0 u (k ) z − k
1
u(k) 0.99
0
k
-0.443
-0.70
MATLAB® residuez command: [r,p,k]=residuez(b,a)
[b,a] = residuez(r,p,k)
z 3 − 0.5 z 2
U ( z) = 3
z + 0.2 z 2 − 0.85 z − 0.35
>> [r,p,k]=residuez([1 -0.5 0 0],[1 0.2 -0.85 -0.35])
r =
0.1961
2.4706
-1.6667 0.1961z 2.4706 z 1.6667 z
p = U ( z) = + −
1.0000 z −1 z + 0.7 z + 0.5
-0.7000
-0.5000
k =
0
Uz =
z^3 - 0.5 z^2 + 2.5e-05 z
-----------------------------
z^3 + 0.2 z^2 - 0.85 z - 0.35
Inverse z-Transform
z 2 ( z − 0.5)
Check answer using MATLAB (ztrans) U ( z) =
( z − 1)( z + 0.7)( z + 0.5)
u (k ) = 0.1961 + 2.4706(−0.7) k − 1.6667(−0.5) k
syms k z
uk=0.1961+2.4706*(-0.7)^k-1.6667*(-0.5)^k;
Uz=ztrans(uk);
pretty(simplify(Uz))
2
z (200000 z - 99994 z + 5)
----------------------------------
10000 (2 z + 1) (10 z + 7) (z - 1)
z ( z − 0.5) z k
(no pole
First find: M ( z ) z k −1 =
( z − 1)( z + 0.7)( z + 0.5) at z = 0)
The residue at z = 1 is
z ( z − 0.5) z k
res M ( z ) z k −1 = ( z − 1) M ( z ) z k −1 =
z =a z =1 ( z + 0.7)( z + 0.5) z =1
1(0.5)(1k )
= = 1/ 5.1 = 0.196
1.7 *1.5
Inverse z-Transform
z 2 ( z − 0.5)
M ( z) =
The residue at z = −0.7 is ( z − 1)( z + 0.7)( z + 0.5)
z ( z − 0.5) z k
res M ( z ) z k −1 = ( z − a ) M ( z ) z k −1 =
z =a z =a ( z − 1)( z + 0.5) z =−0.7
−0.7(−0.7 − 0.5)(−0.7) k
= = 2.471(−0.7) k
(−0.7 − 1)(−0.7 + 0.5)
e(k ) = −1 + 2k −1 , k 0
e(0) = 0
Inverse z-Transform
1
E( z) =
Using MATLAB ( z − 1)( z − 2)
syms k z
Ez=1/((z-1)*(z-2));
ek=iztrans(Ez,k);
pretty(ek)
ek =
k
2 kroneckerDelta(k, 0)
-- + -------------------- - 1
2 2
e(0) = 0
k −1 The same result
e(k ) = −1 + 2 , k 0
Inverse z-Transform
Case 2: E ( z ) z k −1 has repeated poles at z = a
Example
z
E( z) =
( z − 1) 2
then q −1
1 d
e( k ) =
q −1
( z − a ) q
E ( z ) z k −1
(q − 1)! dz z =a
1 d 2−1 z k −1
= 2 −1
( z − 1) 2
z
(2 − 1)! dz ( z − 1) 2
z =1
d k
= ( z ) = k z k −1 = k
dz z =1
z =1
Inverse z-Transform
Case 2: Using MATLAB
z
Example E( z) =
( z − 1) 2
syms k z
Ez=z/(z-1)^2;
ek=iztrans(Ez,k)
ek =
k
Discrete Convolution
E1 ( z ) E2 ( z ) E( z) E ( z ) = E1 ( z ) E2 ( z )
Expanding
E ( z ) = [e1 (0) + e1 (1) z −1 + e1 (2) z −2 + ] [e2 (0) + e2 (1) z −1 + e2 (2) z −2 + ]
Group by powers of z
E ( z ) = e1 (0)e2 (0) + [(e1 (0)e2 (1) + e1 (1)e2 (0))]z −1 +
[e1 (0)e2 (2) + e1 (1)e2 (1) + e1 (2)e2 (0)]z −2 +
= e(0) + e(1) z −1 + e(2) z −2 +
k k
e(k ) = e1 (n)e2 (k − n) = e1 (k − n)e2 (n)
n =0 n =0
e k 1
E1 z E2 z e1 k e2 k
z
E2 ( z ) = e2 (k ) = {1,1,1, }
z −1
Discrete Convolution
k
e1 (0) = 1.0
e(k ) = e1 (k − n)e2 (n)
n =0 e1 (1) = −1.70
e1 (2) = 1.69
For k = 3
3
e1 (3) = −1.433
e(3) = e1 (3 − n)e2 (n) e2 (n) = 1.0
n =0