CH 4: Open Loop Discrete Time Systems
CH 4: Open Loop Discrete Time Systems
CH 4: Open Loop Discrete Time Systems
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>CH</strong> 4: <strong>Open</strong> <strong>Loop</strong> <strong>Discrete</strong> <strong>Time</strong> <strong>Systems</strong><br />
covered to this point<br />
• review of continuous systems<br />
• z-transforms<br />
• recovery of sampled data<br />
• discrete systems<br />
this chapter: derive analysis methods for open loop discrete sysems<br />
4.2: Relationshiip between E(z) & E * (s)<br />
• Z{e(k)} = E(z) = ∑ ∞ e ( k )z<br />
k = 0<br />
−k<br />
= e(0) + e(1)z -1 +e(2)z -2 …<br />
−nTs<br />
• L{e * (t) }= E * (s) = ∑ ∞ e(<br />
n ) ε e(0) + e(1)ε -Ts +e(2)ε -2Ts +…<br />
n=<br />
0<br />
• E(z) =<br />
*<br />
E ( s )<br />
ε − Ts<br />
= z<br />
• in this case, z-transform can be considered special case of Laplace transform<br />
• for analyzing discrete systems ! use z-transform instead of *transform<br />
example 4.1<br />
1<br />
E(s) =<br />
(s + 1)(s + 2)<br />
−T<br />
−2T<br />
z( ε − e )<br />
E( z ) =<br />
−T<br />
−2T<br />
( z − ε )( z − ε )<br />
sT −T<br />
−2T<br />
* ε ( ε − e )<br />
E ( s ) =<br />
sT −T<br />
sT −<br />
( ε − ε )( ε − ε<br />
2T<br />
)<br />
• E * (s) has infinite number of poles & zeros in the s-plane<br />
• E(z) has a 1zeroat z=0 and 2 poles at ε -2T and ε -T<br />
• analysis using pole-zero locations greatly simplified using z-transform<br />
determine E(z) =<br />
∑ residues of<br />
at poles of E( λ )<br />
1<br />
E( κ )<br />
−1<br />
1−<br />
z ε<br />
Tλ<br />
- useful for generating z-transform tables<br />
- tables can be applied to *transform<br />
1
4.3 Pulse Transfer Function<br />
- this section develops z-transform for output of open-loop sampled data systems<br />
- expression used to form closed loop system<br />
• plant transfer function: G p (s)<br />
−Ts<br />
1− ε<br />
• ZOH transfer function:<br />
s<br />
−Ts<br />
1− ε<br />
pulse transfer function, G(s) =<br />
s<br />
G p (s)<br />
1-ε -Ts<br />
T<br />
G<br />
E(s) E * (s) s<br />
p (s)<br />
C(s)<br />
G(s)<br />
T<br />
G(s)<br />
E(s) E * (s) C(s)<br />
C(s) = G(s)E * (s) (4-5)<br />
if c(t) is continuous at all sampling instants<br />
since E * 1<br />
(s) = ∑ ∞ E( s + jnw s ) for e(t) continuous at all sampling instants,<br />
T<br />
= −∞<br />
n<br />
we have C * (s) =<br />
1<br />
T<br />
∑ ∞<br />
n=<br />
−∞<br />
C( s<br />
+<br />
c( 0 )<br />
*<br />
jnws ) + = [G( s )E ( s )]<br />
2<br />
*<br />
and C * 1 ∞<br />
*<br />
(s) = ∑ G( s + jnw )E ( s +<br />
T n=−∞<br />
s jnws<br />
)<br />
because E * (s+jnw s ) =E * (s) ! C * ∞<br />
* 1<br />
(s) = E ( s ) ∑ G( s + jnws<br />
)<br />
T n=−∞<br />
and C * (s) =E * (s)G * (s) (4-8)<br />
and C(z) = E(z) G(z) (4-9)<br />
pulse transfer function: G(z) = C(z)/E(z)<br />
• TF between sampled input, e * (t) and output c(t) at sampling instants<br />
• doesn’t indicate nature of output c(t) between sampling instants<br />
• generally choose sampling frequency, w s such that response at sampling instants ~<br />
between sampling instants<br />
(4-8) (4-9) are general derivations: for any F * (s) = f 0 +f 1 ε -Ts +f 2 ε -2Ts<br />
if<br />
A(s) = B(s)F * (s)<br />
! A * (s) = B * (s)F * (s)<br />
! A(z) = B(z)F(z)<br />
deriving B(z) & F(z)<br />
B(z) = Z{B(s)}<br />
F(z)=<br />
F<br />
*<br />
(<br />
s )<br />
ε − Ts<br />
= z<br />
2
ie:<br />
1 − ε 1<br />
A(s) = = 1 − ε<br />
s( s + 1) s( s + 1)<br />
B(s) =<br />
F<br />
*<br />
A( z )<br />
1<br />
s( s<br />
( s ) = 1 − ε<br />
=<br />
( z<br />
−Ts<br />
→<br />
+ 1)<br />
−Ts<br />
z(1 − ε<br />
B( z )<br />
→<br />
−T<br />
− 1)( z − ε<br />
F( z ) = 1 − z<br />
)<br />
−T<br />
=<br />
( z<br />
−Ts<br />
z(1 − ε<br />
− 1)( z − ε<br />
−1<br />
−T<br />
z − 1 (1 − ε<br />
=<br />
) z ( z − ε<br />
)<br />
−T<br />
−T<br />
−T<br />
)<br />
)<br />
)<br />
1-ε -Ts<br />
T<br />
1/(s+1)<br />
E(s) E * (s) s<br />
C(s)<br />
ie: determine output C(z) if input, e(t) = unit step<br />
G( z )<br />
E( z )<br />
C( z )<br />
( z<br />
Ts<br />
1 − ε *<br />
*<br />
C(s) = E ( s ) = G( s )E ( s )<br />
s( s + 1)<br />
1 − ε<br />
=<br />
z − ε<br />
=<br />
−T<br />
−T<br />
z<br />
Z{u( t )} =<br />
z − 1<br />
=<br />
z( 1 − ε<br />
−T<br />
− 1)z − ε<br />
and c(nT) = 1-ε -nT<br />
)<br />
−T<br />
z z<br />
= −<br />
z − 1 z − ε<br />
−T<br />
c(kT)<br />
1<br />
0 T 2T 3T 4T 5T<br />
(i) z-transform analysis yields response only at sampling instants<br />
• output, c(kT) rises to final value of unity at sampling instants<br />
• nothing known about response between sampling instants<br />
• normally this information is needed ! find complete response by simulation<br />
(ii) if input, e(t) to sampler/ZOH is unit step, u(t), ! output of sampler/ZOH is also unit step<br />
• ZOH reconstructs sampled unit-step exactly<br />
• response of c(kT) is step response of continuous time system w/<br />
• G(s) = s/s+1<br />
• c(t) = 1-ε -T<br />
z-transform analysis in example is correct: given c(t) ! c(nT) = c(t)| t=nT<br />
converse is not true: c(t) ≠ c(nT)| nT=t<br />
3
(iii) often, Steady State (SS) Gain<br />
with constant input (dc gain) is important:<br />
input E(z) = z/z-1 (unit step)<br />
lim (<br />
steady state output: c ss (k) = z − 1)C( z )<br />
z→1<br />
lim (<br />
= z − 1)G( z )E( z )<br />
z→1<br />
z<br />
= lim ( z − 1) G( z ) = G(1)<br />
z − 1<br />
z→1<br />
dc gain = G(z)| z=1 =G(1)<br />
with constant input ! gain of sampler/ZOH =1<br />
dc gain of system also given by continuous analysis: dc gain = lim G ( s )<br />
thus dc gain = limG(<br />
z ) = lim G ( s )<br />
z→1 s→0<br />
can be used to check calculation of G(z)<br />
example<br />
−T<br />
1−<br />
ε<br />
limG( z ) = lim = 1<br />
−T<br />
z→1<br />
z→1<br />
z − ε<br />
lim G<br />
s→0<br />
p<br />
1<br />
( s ) = lim = 1<br />
s→0<br />
s + 1<br />
p<br />
s→0<br />
p<br />
4
<strong>Open</strong> <strong>Loop</strong> Transfer Functions with 2 plants : 3 cases<br />
(1) 2 plants, both with data holds<br />
C(s) = G 2 (s)A * (s)<br />
C(z) = G 2 (z)A(z)<br />
A(s) = G 1 (s)E * (s)<br />
A(z) = G 1 (z)E(z)<br />
E(s) E * (s) A(s) A * (s) C(s)<br />
G 1 (s)<br />
G 2 (s)<br />
T<br />
T<br />
! C(z) = G 2 (z)G 1 (z)E(z), total transfer function is product of pulse transfer functions<br />
(2) 2 plants, 1 st with data hold<br />
C(s) = G 1 (s) G 2 (s)E * (s)<br />
C(z) = Z{G 1 (s)G 2 (s)}E(z)<br />
C(z) = G 1 G 2 (z) E(z)<br />
E(s) E * (s) C(s)<br />
G 1 (s)<br />
G 2 (s)<br />
T<br />
G 1 G 2 (z) ≠ G 1 (z)G 2 (z)!<br />
• perform product in s-domain: G 1 (s)G 2 (s)<br />
• determine z-transform Z{G 1 (s)G 2 (s)}<br />
(3) 2 plants with intermediate data hold<br />
C(s) = G 2 (s)A * (s) = G 2 (s) G 1 E * (s)<br />
C(z) = G 2 (z)G 1 E(z)<br />
transfer function can’t be written:<br />
- cannot factor E(z) from G 1 E(z)<br />
- E(z) contains values of e(t) only at t=kT<br />
-signala(t) is a function of all previous values of e(t) (not just at sampling instants)<br />
generally:<br />
E(s) G 1 (s)<br />
A(s) A * (s) G 2 (s)<br />
C(s)<br />
T<br />
A(s) = G 1 (s)E(s) ! from convolution: a(t) = ∫ g ( t −τ<br />
)e( τ ) dτ<br />
• if a sampled-data system’s input applied directly to continuous part before sampling<br />
! Z{system’s output }can’t be expressed as function of the Z{system’s input}<br />
• not a significant issue in analysis & design<br />
t<br />
0<br />
1<br />
5
4.4 <strong>Open</strong> <strong>Loop</strong> System with Digital Filters<br />
- extend 4.3 for open loop systems that contain digital filters<br />
(1) A/D converts continuous signal e(t) into discrete sequence {e(kT)}<br />
(2) digital filter processes each e(kT) and generates output sequence {m(kT)}<br />
• solves linear difference equation w/ constant coefficients<br />
•<br />
M( z )<br />
transfer function represented by D(z) =<br />
E( z )<br />
then:<br />
M(z) = D(z)E(z)<br />
M * (s) = D * (s)E * (s) (by substiting z=ε sT )<br />
(3) D/A converts to continuous time signal m( t )<br />
• usually has output hold register that gives ZOH and<br />
−Ts<br />
1−<br />
ε *<br />
• M ( s ) = M ( s )<br />
s<br />
E(s) digital<br />
M(s) C(s)<br />
A/D filter D/A G p (s)<br />
e(t) e(kT) m(kT) m(t) c(t)<br />
Thus<br />
−Ts<br />
1−<br />
ε *<br />
(i) C(s) = G p(<br />
s )M ( s ) = G p(<br />
s ) M ( s )<br />
s<br />
−Ts<br />
1− ε<br />
*<br />
= G p(<br />
s ) D( z )| Ts E ( s )<br />
z=<br />
ε<br />
s<br />
⎡<br />
−Ts<br />
1 − ε ⎤<br />
(ii) C(z) = Z ⎢G<br />
p ( s ) ⎥D(<br />
z )| Ts E( z )<br />
z=<br />
ε<br />
⎣ s ⎦<br />
= G(z)D(z)E(z)<br />
• CPU (digital filter) processes each e(kT)<br />
• A/D - digital filter - D/A model only processes impulse function of weight e(kT)<br />
• complete model combines with ideal-sampler/ZOH for accurate model<br />
E(s) E(z) M(z) M(s) C(s)<br />
T D(z) 1-ε -Ts<br />
G p (s)<br />
e(t) e(kT) m(kT)<br />
s<br />
m(t) c(t)<br />
G(s)<br />
6
ie:<br />
if m(kT) = 2e(kT) - e(k-1)T then M(z) = (2 - z -1 )E(z)<br />
M(z) −1 2z − 1<br />
thus D(z) = = 2 − z =<br />
E(z)<br />
z<br />
1 z<br />
⎪⎧<br />
−Ts<br />
1 − ε 1 ⎪⎫<br />
⎧ 1<br />
if G p (s) = → then G(z) = Z<br />
=<br />
s + 1<br />
−T<br />
⎨<br />
⎬ Z ⎨ 1 − ε<br />
z − ε<br />
⎪⎩ s s + 1⎪⎭<br />
⎩s(<br />
s + 1)<br />
−T<br />
−T<br />
z − 1 ( 1 − ε )z 1 − ε<br />
G(z )=<br />
=<br />
z<br />
−T<br />
−T<br />
( z − 1)z − ε z − ε<br />
z<br />
if e(t) = u(t) then E(z) =<br />
z − 1<br />
and C(z) = D(z)G(z)E(z)<br />
⎛ −T<br />
⎛ 2z − 1⎞<br />
⎞⎛<br />
⎞<br />
C(z) = ⎜<br />
1 − ε<br />
⎟<br />
z<br />
⎜ ⎟<br />
⎜ ⎟<br />
−<br />
⎝ z<br />
T<br />
⎠⎝<br />
z − ε ⎠⎝<br />
z − 1 ⎠<br />
−Ts<br />
⎫<br />
⎬<br />
⎭<br />
−T<br />
C(z) (1 − ε )( 2z − 1) 1 − ε<br />
=<br />
=<br />
z<br />
−T<br />
z( z − 1)( z − ε ) z<br />
T<br />
+<br />
1<br />
+<br />
z − 1<br />
T<br />
ε − 2<br />
z − ε<br />
−T<br />
C( z ) = 1 − ε<br />
T<br />
+<br />
T<br />
z ( ε − 2 )z<br />
+<br />
z − 1<br />
−T<br />
z − ε<br />
recall that Z -1 {k i z -i } =<br />
⎧k i , n = i ⎫<br />
⎨ ⎬<br />
⎩0,<br />
n ≠ 0⎭<br />
! Z -1 {1-ε T } is non-zero only if n=0,<br />
for n=0! c(0) = 1-ε T +1+ ε T -2 = 0<br />
c(0) = lim C( z ) = 0<br />
z→∞<br />
* also by inspection since for C(z) order of numerator < order of denominator<br />
c(∞) = lim( z −1)C(<br />
z ) = 1<br />
z→1<br />
dc gain = D(z)|| z=1 G p (s)| s=0 = (2z-1)/z | z=1 1/(s+1) | s=0 =1<br />
if steady state input = constant value of unity! steady state output, c(∞) = dc gain⋅ input =1<br />
if e(t) = u(t) & M(z) = 2(1-z -1 )E(z) ! m(kT) = 2u(kT) – 2u(kT-T)<br />
7
4.5 Modified z-transform consider systems containing ideal time delays<br />
let a time function e(t) be delayed by ∆T, 0 < ∆≤1 ! e(t-∆T)u(t-∆T)<br />
delayed z- transform, E(z,∆):<br />
• E(z,∆) = Z{ e(t-∆T)u(t-∆T)} = Z{E(s)ε -∆Ts } = ∑ e(<br />
nT − ∆ T )z (4-25)<br />
∞<br />
n = 1<br />
• sampling instants are not delayed = 0, T, 2T, 3T, …<br />
−n<br />
example 4.5<br />
E( z, ∆ ), ∆ = 0.4, e(t) = ε<br />
∞<br />
∑ε<br />
n=<br />
1<br />
= ε<br />
= ε<br />
= ε<br />
-(anT -0.4T)<br />
-0.6-aT<br />
-0.6-aT<br />
-0.6-aT<br />
z<br />
z<br />
z<br />
−1<br />
−1<br />
−1<br />
z<br />
−n<br />
−aT<br />
−1<br />
−2aT<br />
−2<br />
[ 1+<br />
ε z + ε z + ...]<br />
∞<br />
∑ e<br />
n=<br />
0<br />
1−<br />
ε<br />
= ε<br />
−anT<br />
1<br />
−aT<br />
-0.6-aT<br />
z<br />
z<br />
−n<br />
−1<br />
-at<br />
z<br />
−1<br />
+ ε<br />
-0.6-aT<br />
ε<br />
=<br />
z − ε<br />
1.6-aT<br />
−aT<br />
z<br />
−2<br />
+ ...<br />
e(t), e(t-∆T)u(t-∆T)<br />
ε -0.6aT ε -2.6aT<br />
0.4T T 2T 3T<br />
E(z,m): modified z-transform is defined from delayed z-transform: replace∆ by 1-m<br />
E(z,m) = E(z,∆)| ∆=1-m =Z{E(s)ε -∆Ts })| ∆=1-m (4-27)<br />
E(z,m) =e(mT)z -1 + e((1+m)T)z -2 +e((2+m)T)z -3 +…<br />
m=1 ! no delay: E(z,1) = E(z) – e(0)<br />
m=0 ! delay = T: E(z,0) = z -1 E(z)<br />
*special tables used for modified z-transform<br />
property of modified z-transsform: Z m {e(t)} ! z-transform of e(t) time shifted by 1-m<br />
• theorms of E(z) f/ chapter 2 apply to E(z,m)<br />
shifting theorm: Z m {E(s)} = Z{ε -∆Ts E(s)}| ∆ =1-m<br />
for integer, k: Z m {ε -kTs E(s)} = z -k Z m {E(s)} =z -k E(z,m)<br />
example 4.6<br />
find Z<br />
m<br />
{ ε<br />
−t<br />
}<br />
E(z,m) = ε<br />
= ε<br />
= ε<br />
-mT<br />
-mT<br />
z<br />
z<br />
−1<br />
−1<br />
-mT<br />
z<br />
−T<br />
−1<br />
−2T<br />
−2<br />
[ 1+<br />
ε z + ε z + ...]<br />
∞<br />
∑ε<br />
n=<br />
0<br />
−1<br />
−nT<br />
+ ε<br />
z<br />
-(1+<br />
m)T<br />
−n<br />
= ε<br />
z<br />
-mT<br />
−2<br />
z<br />
+ ε<br />
−1<br />
-(2+<br />
m)T<br />
1−<br />
ε<br />
1<br />
−T<br />
z<br />
z<br />
−3<br />
−1<br />
+ ...<br />
=<br />
ε<br />
-mT<br />
z − ε<br />
−T<br />
8
4.6 <strong>Systems</strong> with time delays: Use Z m {}<br />
(1) determine pulse transfer function of discrete time systems w/ ideal time delays<br />
T<br />
G(s)<br />
E(s) E * ε -t 0s<br />
(s) C(s)<br />
• C(s) = G(s) ε<br />
−t0s<br />
• C(z) = Z{G(s) ε<br />
s E * (s)<br />
−t0s<br />
}E(z)<br />
• let t 0 = kT + ∆T, 0 < ∆≤1<br />
! C(z) =z -k Z{G(s)ε -∆Ts }E(z) = z -k G(z,m)E(z)| ∆=1-m<br />
(2) determine pulse transfer function where computation time cannot be neglected<br />
controller & compute time<br />
data hold & plant<br />
T D(z) ε -t 0s<br />
G(s)<br />
E(s) E * (s) C(s)<br />
• n th order digital controller solves difference equation every T seconds:<br />
! m(k) = b n e(k) + b n-1 e(k-1) + … + b 0 e(k-n) - a n-1 m(k) - a n-2 m(k-1)-…- a 0 m(k-n)<br />
• let t 0 be the computation time: input at t=T! ouput at t=T+t 0<br />
• model as digital controller without time delay followed by ideal time delay = t 0<br />
−t0s<br />
C(z) =Z{G(s) ε }D(z)E(z) (4.42)<br />
let t 0 =kT+∆T, 0 < ∆≤1! C(z) = z -k G(z,m)| m=1-∆ D(z)E(z) (4.44)<br />
9
− Ts<br />
1 − ε<br />
ie: t 0 =0.2T,G(s)=<br />
s( s + 1)<br />
G(z,m) = Z<br />
m<br />
-Ts<br />
⎪⎧<br />
1 - ε ⎪⎫<br />
⎨ ⎬ = ( 1 − z<br />
⎪⎩ s( s + 1) ⎪⎭<br />
0.2Ts<br />
z − 1 ⎪⎧<br />
ε ⎪⎫<br />
⎡ z − 1⎤<br />
( z − ε<br />
= Z⎨<br />
⎬ =<br />
z s( s 1) ⎢ z ⎥<br />
⎪⎩ + ⎪⎭ ⎣ ⎦ ( z<br />
⎡ z − 1⎤<br />
z − ε<br />
= ⎢<br />
z<br />
⎥<br />
⎣ ⎦<br />
−T<br />
( z<br />
− zε<br />
−1<br />
−0.8T<br />
− 1)( z − ε<br />
)Z<br />
−T<br />
m<br />
+ ε<br />
)<br />
⎧ 1 ⎫<br />
⎨ ⎬<br />
⎩s(<br />
s + 1) ⎭<br />
−0.8T<br />
−T<br />
) − ε<br />
−0.8T<br />
− 1)( z − ε<br />
( z − 1)<br />
−T<br />
)<br />
z<br />
C( z ) = G( z,m )E( z ) = G( z,m )<br />
z − 1<br />
z − ε<br />
=<br />
−T<br />
( z<br />
− zε<br />
−0.8T<br />
− 1)( z − ε<br />
+ ε<br />
−T<br />
−0.8T<br />
)<br />
• C(z) =(1-ε -0.8T )z -1 + (1 - ε -1.8T )z -2 + (1 -ε -2.8T )z -3 + … (power series)<br />
• with no delay: c(nT) =(1-ε -nT )<br />
• with delay = 0.2: c(nT)| n=n-0.2 = (1- ε -(n-0.2)T ), n≥ 1<br />
filter & compute time data hold & plant<br />
E(s)=1/s<br />
T=0.05s<br />
2z-1<br />
z<br />
ε -0.001s<br />
1-ε-Ts<br />
s<br />
1<br />
(s+1)<br />
C(s)<br />
ie: t o =1ms,T=50ms, since m=1-∆ then mT = T-∆T = (50ms-1ms ) = 49ms<br />
G(z,m) = Z<br />
m<br />
⎪⎧<br />
−Ts<br />
1 − ε ⎪⎫<br />
⎨ ⎬ =<br />
⎪⎩ s( s + 1) ⎪⎭<br />
z − 1<br />
Z<br />
z<br />
m<br />
⎧ 1 ⎫<br />
⎨ ⎬<br />
⎩s(<br />
s + 1) ⎭<br />
⎛ −0.049<br />
−0.049<br />
−0.05<br />
z − 1<br />
⎞<br />
⎜<br />
z( 1 − ε ) + ( ε − ε )<br />
=<br />
⎟<br />
z<br />
−0.05<br />
⎝ ( z − 1)( z − ε ) ⎠<br />
− ⎛ −0.049<br />
−<br />
z 1<br />
⎜<br />
z( 1 − ε ) + ( ε<br />
C(z) = G(z)D(z)E(z) =<br />
z<br />
−<br />
⎝ ( z − 1)( z − ε<br />
0.049<br />
0.05<br />
− ε<br />
)<br />
−0.05<br />
) ⎞<br />
⎟⎛<br />
2z − 1⎞⎛<br />
z ⎞<br />
⎜ ⎟⎜<br />
⎟<br />
⎠⎝<br />
z ⎠⎝<br />
z − 1⎠<br />
⎛<br />
⎜<br />
z( 1 − ε<br />
=<br />
⎝<br />
−0.049<br />
−0.049<br />
) + ( ε − ε<br />
−<br />
z( z − 1)( z − ε<br />
−0.05<br />
0.05<br />
)<br />
)( 2z − 1) ⎞<br />
⎟<br />
⎠<br />
10
4.7: Non-Synchronous Sampling<br />
system with multiple samplers that sample at the same rate but are not synchronized<br />
-outofphasebysomevalue,h<br />
- can use the modified z-transform to compensate for sampling phase difference<br />
4.8 State Variable Models (as opposed to transfer functions)<br />
x(k+1) = Ax(k) + Bu(k)<br />
y(k) = Cx(k) + Du(k)<br />
state vector = x(k)<br />
input vector = u(k)<br />
output vector = y(k)<br />
Transfer Function approach to obtain state variable model of open loop sampled data systems<br />
(1) draw simulation diagram from z-transform TF<br />
(2) assign state variables to output of each time delay<br />
(3) write state equations from simulation diagram<br />
E(s)<br />
T<br />
2z-1<br />
z<br />
1-ε -Ts<br />
s<br />
1<br />
s+1<br />
Y(s)<br />
D(z)<br />
G(s)<br />
ie:<br />
G( z )<br />
D( z )<br />
−Ts<br />
⎪⎧<br />
1 − ε ⎪⎫<br />
1 − ε<br />
= Z ⎨ ⎬ =<br />
⎪⎩ s( s + 1) ⎪⎭ z − ε<br />
2z − 1 −1<br />
= = 2 − z<br />
z<br />
−T<br />
−T<br />
= ( 1 − ε<br />
−T<br />
⎛ z<br />
) ⎜<br />
⎝ 1 − ε<br />
−1<br />
−T<br />
z<br />
−1<br />
⎞<br />
⎟<br />
⎠<br />
e(k)<br />
+<br />
+<br />
2<br />
1-ε -T<br />
z -1<br />
z -1 ε<br />
x 2 (k)<br />
-T<br />
x 1 (k) =y(k)<br />
x 1 (k) = [2e(k-1) – x 2 (k-1) ](1-ε -T )+ε -T x 1 (k-1)<br />
x 2 (k) = e(k-1)<br />
x 1 (k+1) =(2e(k)–x 2 (k) )(1-ε -T )+ε -T x 1 (k)<br />
x 2 (k+1) =e(k)<br />
⎡<br />
T<br />
T<br />
T<br />
ε −1+<br />
ε ⎤ ⎡2(<br />
1−<br />
ε ) ⎤<br />
x 1 (k+1) ⎢<br />
⎥x(<br />
k ) + ⎢ ⎥e(<br />
k )<br />
⎣ 0 0 ⎦ ⎣ 1 ⎦<br />
11
4.9 Review of Continuous State Variables<br />
2 main disadvantages of using transfer function to obtain state equations for discrete system<br />
(1) difficult to derive pulse transfer function for higher order systems<br />
(2) lose natural system states as state variables<br />
ie: motion of mass without friction:<br />
2<br />
d x( t )<br />
=<br />
2<br />
dt<br />
state variables: (natural, physical variables)<br />
v 1 (t) = x(t) (position)<br />
v 2 (t) = v& 1 ( t ) = x&<br />
1 (t ) (velocity)<br />
f ( t<br />
)<br />
(applied<br />
force)<br />
state equations<br />
⎡v'<br />
1 ( t)<br />
⎤ ⎡0<br />
⎢ =<br />
v'<br />
2 ( t)<br />
⎥ ⎢<br />
⎣ ⎦ ⎣0<br />
1⎤⎡v<br />
( t)<br />
⎤ 0<br />
1<br />
⎡ ⎤<br />
f ( t)<br />
0<br />
⎥⎢<br />
⎥ + ⎢<br />
v ( t)<br />
1<br />
⎥<br />
⎦<br />
⎣ 2<br />
⎦ ⎣ ⎦<br />
if system were part of sampled data system<br />
(i) choose position as a state in discrete-state model by letting position be system<br />
output<br />
(ii) if TF approach used for discrete-state modelling –choosingvelocity as 2 nd state<br />
would be difficult – state variables are outputs of delays<br />
12
Alternate Approach for Obtaining <strong>Discrete</strong> State Model<br />
- based on use of continuous state variables<br />
v& (t) = A c v(t) + B c u(t)<br />
y(t) = C c v(t) + D c u(t)<br />
• system states: v(t)<br />
• system inputs: u(t)<br />
• system outputs: y(t)<br />
• “ c ” used to indicate continuous matrices<br />
example 4.12<br />
M = mass, B = damping factor, K = spring constant<br />
&& y ( t ) + B y&<br />
( t ) + Ky ( t ) + B [ y&<br />
( t ) − y&<br />
( t )] = 0<br />
1<br />
&& y ( t ) + B [ y&<br />
( t ) − y&<br />
( t )] = u( t )<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
1<br />
2<br />
1<br />
2<br />
B 1<br />
B 2<br />
K<br />
M 1 =1<br />
M 2 =1<br />
y 1<br />
y 2<br />
state variables<br />
v (t) = y (t)<br />
1<br />
v (t) = y&<br />
(t)<br />
2<br />
v (t) = y<br />
3<br />
(t)<br />
v (t) = y&<br />
( t )<br />
4<br />
v&<br />
( t ) = v (t ) = y&<br />
( t )<br />
1<br />
v&<br />
( t ) = && y ( t ) = B y&<br />
( t ) − ( B + B<br />
2<br />
v&<br />
( t) = v (t ) = y&<br />
( t )<br />
3<br />
+ K )y&<br />
( t )<br />
v&<br />
( t ) = && y ( t ) = −B<br />
y&<br />
( t ) + B y&<br />
( t ) + u( t )<br />
4<br />
1<br />
1<br />
2<br />
2<br />
2<br />
4<br />
1<br />
2<br />
1<br />
2<br />
2<br />
2<br />
2<br />
2<br />
1<br />
2<br />
1<br />
2<br />
1<br />
u(t)<br />
force<br />
-(B 2 +B 1 ) -K<br />
s -1 s -1<br />
y” 1 (t) y’ 1 (t) y 1 (t)<br />
B 2 B 2<br />
u(t) 1 s -1 s -1<br />
y” 2 (t) y’ 2 (t) y 2 (t)<br />
-B 2<br />
⎡0<br />
⎢<br />
0<br />
v(t) & = ⎢<br />
⎢0<br />
⎢<br />
⎣0<br />
− ( B<br />
1<br />
1<br />
+ B<br />
0<br />
B<br />
2<br />
2<br />
+ K )<br />
0<br />
0<br />
0<br />
0<br />
0 ⎤ ⎡0⎤<br />
B<br />
⎥ ⎢<br />
0<br />
⎥<br />
2 ⎥v( t ) + ⎢ ⎥u( t )<br />
1 ⎥ ⎢0⎥<br />
⎥ ⎢ ⎥<br />
− B2<br />
⎦ ⎣1⎦<br />
⎡1<br />
y( t ) = ⎢<br />
⎣0<br />
0<br />
0<br />
0<br />
1<br />
0⎤<br />
⎥v( t )<br />
0⎦<br />
13
State Equations for Single Input-Output <strong>Systems</strong><br />
v& (t) = A c v(t) + B c u(t) (4-57)<br />
y(t) = C c v(t) + D c u(t)<br />
(1) Use Laplace Transform ! Solve for V(s)<br />
sV(s)- v(0) = A c V(s) + B c U(s) (4-58)<br />
Y(s) = C c V(s) + D c U(s)<br />
(sI-A c )V(s) = v(0) + B c U(s)<br />
V(s) = [sI-A c ] -1 v(0) + [sI-A c ] -1 B c U(s) (4-59)<br />
define Φ c (t) =L -1 {[sI-A c ] -1 } (4-60)<br />
t<br />
! v(t) = Φ c (t)v(0) + ∫ Φ c (t-τ) B c u(τ)dτ (4-61)<br />
0<br />
(2) Alternate derivation of Φ c (t) - useful when deriving discrete state model<br />
if Φ c (t) is assumed to be an infinite series:<br />
Φ c (t) = K 0 + K 1 t+K 2 t 2 + K 3 t 3 +… (4-62)<br />
K i are constant, nonsingular matrices<br />
by selecting u(t) = 0 and substituting (4-61) into (4-57) w/ Φ c (t) = ∑ ∞ i=0<br />
v(t) = ∑ ∞ i<br />
K<br />
i=0<br />
it v(0) = (K 0 + K 1 t+K 2 t 2 + K 3 t 3 + …)v(0)<br />
v’(t) = (K 1 +2K 2 t+3K 3 t 2 +4K 3 t 3 +…)v(0)<br />
K i t<br />
i<br />
and v'(t) = A c ∑ ∞ i=0<br />
K<br />
i<br />
it<br />
v(0) = A c K 0 t 0 +A c K 1 t 1 +A c K 2 t 2 + A c K 3 t 3 4 +…<br />
thus (K 1 +2K 2 t+3K 3 t 2 +4K 3 t 3 +…) = A c K 0 t 0 +A c K 1 t 1 +A c K 2 t 2 + A c K 3 t 3 4 +…<br />
without loss of generality, let K 0 =I,thenwehave<br />
K 1 =A c K 0 =A c<br />
K 2 =A c K 1 /2 = A 2 c K 0 /2= A 2 c /2<br />
K 3 =A c K 2 /3 = A 3 c K 0 /3! = A 3 c /3!<br />
=A c K i-1 /i = A i c K 0 /i! = A i c /i!<br />
K i<br />
without loss of generality, let K 0 =I,thenwehave<br />
i<br />
2<br />
3<br />
t<br />
2 t 3 t<br />
Φ c (t) = ∑ ∞ A i = I + A ct<br />
+ A c + A c ...<br />
c i!<br />
2! 3!<br />
+<br />
(4-63)<br />
i=<br />
0<br />
14
(3) state models of physical system when x’(t) appears in right sideofx’(t) and y(t)<br />
• x’(t)=-x(t)+u(t)–x’(t)<br />
• y(t) = x’(t)<br />
x’(t) appears in right side of both eqns !<br />
solve x’(t): x’(t) = -0.5x(t) + 0.5u(t)<br />
then y(t) = -0.5x(t) + 0.5u(t)<br />
u(t)<br />
+<br />
+<br />
x’(t)<br />
∫<br />
x(t)<br />
y(t)<br />
method for obtaining state equations in standard format for this type of system<br />
(i) redraw simulation diagram with integrator omitted<br />
(ii) write x’(t) and y(t) in terms of inputs (x(t) and u(t) in this case)<br />
(iii) redrawing with integrator omitted is not required<br />
x’(t)<br />
u(t) + +<br />
applying Mason’s Gain Formula:<br />
−1<br />
1<br />
x’(t) = x( t ) + u( t ) = -0.5x(t) + 0.5u(t)<br />
1+<br />
1 1+<br />
1<br />
−1<br />
1<br />
y(t) = x( t ) + u( t ) = -0.5x(t) + 0.5u(t)<br />
1+<br />
1 1+<br />
1<br />
x(t)<br />
y(t)<br />
method for obtaining state equations in standard format for algebraic loops<br />
algebraic loop: loop without integrator in figure<br />
x’(t) = A 1 x’(t) + A 2 x(t) + B 1 u(t)<br />
y(t) = C 1 x’(t) + C 2 x(t) + D 1 u(t)<br />
(i) solve 1 st equation: x’(t) = [I-A 1 ] -1 A 2 x(t) + [I-A 1 ] -1 B 1 u(t)<br />
(ii) substitute into 2 nd equation: y(t) = C 1 [I -A 1 ] -1 A 2<br />
+ C 2 ]x(t) + D 1 u(t)<br />
4.10 <strong>Discrete</strong> State Equations<br />
• determine discrete state equations of sampled data system from continuous state eqns<br />
• preserve natural system states<br />
consider state equations for continuous system<br />
v’(t) = A c v(t) + B c u(t) (4-64)<br />
y(t) = C c v(t) + D c u(t)<br />
t<br />
! solution is v(t) = Φ c (t)v(0) + ∫ Φ c (t-τ) B c u(τ)dτ (4-65)<br />
t 0<br />
i<br />
i ( t − t )<br />
( t − t )<br />
where Φ c (t-t 0 ) = ∑ ∞ 0<br />
2 0<br />
Ac = I + Ac<br />
( t − t0<br />
) + Ac<br />
+ ...<br />
i= 0 i!<br />
2!<br />
and t 0 is intial time<br />
2<br />
(4-66)<br />
15
<strong>Discrete</strong> State Model:<br />
• obtained by evaluating (4-65) at t 0 =kT and t=kT+T<br />
• during interval [kT ≤ t
(4) evaluate A and B either by<br />
(i) Laplace Transform (difficult)<br />
(ii) convergent power series:<br />
A = Φ c (t) = ∑<br />
∞ i<br />
i t<br />
Ac<br />
i=0<br />
i!<br />
T<br />
let τ = T-σ ! ∫<br />
0<br />
0<br />
Φ c (T-σ) dσ = ∫<br />
T<br />
T<br />
Φ c (τ)-dτ = ∫<br />
0<br />
Φ c (τ) dτ<br />
T ⎛<br />
2 3<br />
2 τ 3 τ ⎞<br />
= ∫ ⎜ I Acτ<br />
Ac<br />
Ac<br />
... ⎟<br />
+ + + + dτ<br />
! !<br />
0 ⎝<br />
2 3 ⎠<br />
⎛<br />
2 3 4<br />
T 2 T 3 T ⎞<br />
= ⎜<br />
⎟<br />
IT + Ac<br />
+ Ac<br />
+ Ac<br />
+ ...<br />
⎝ 2!<br />
3!<br />
4!<br />
⎠<br />
then B<br />
T<br />
= ∫ Φ c (T-σ) B c dσ<br />
0<br />
T<br />
= B c ∫ Φ c (τ) dτ<br />
0<br />
=<br />
⎛<br />
2 3 4<br />
T 2 T 3 T ⎞<br />
⎜<br />
⎟<br />
IT + Ac<br />
+ Ac<br />
+ Ac<br />
+ ...<br />
⎝ 2!<br />
3!<br />
4!<br />
⎠<br />
⎛ ∞ k+<br />
1<br />
k T ⎞<br />
= ⎜<br />
⎟<br />
∑ Ac<br />
⎝ k = 0 ( k + 1)!<br />
⎠<br />
B c<br />
B c<br />
for multiple input & outputs<br />
- D, D c are matrices<br />
- each input must be output of ZOH or errors can result, especially if inputs change rapidly<br />
17
example 4.13 :<br />
T = 0.1s<br />
10 Y( s )<br />
G p(<br />
s ) = → =<br />
s( s + 1)<br />
U( s ) ( s<br />
X ( s ) = Y( s ) = 10E(<br />
s )<br />
X<br />
1<br />
2<br />
( s ) = sX<br />
sX 2(<br />
s )<br />
U(s) = +<br />
10<br />
sX<br />
2<br />
1<br />
( s )<br />
X 2(<br />
s )<br />
10<br />
( s ) = 10U(<br />
s ) − X<br />
2<br />
( s )<br />
10E(<br />
s )<br />
2<br />
+<br />
s )E( s )<br />
M(s) U(s) Y(s)<br />
T 1-ε -Ts<br />
G p (s)<br />
m(t) s u(t) y(t)<br />
U(s) X 2 (s) X 1 (s) = Y(s)<br />
10 + s -1 s -1<br />
-<br />
⎡0<br />
x( & t ) = ⎢<br />
⎣0<br />
1 ⎤ ⎡ 0 ⎤<br />
⎥x( t ) +<br />
−<br />
⎢ ⎥u( t )<br />
1⎦<br />
⎣10⎦<br />
Φ ( t ) = L<br />
/ T<br />
0<br />
∫<br />
c<br />
A = Φ (T )|<br />
B =<br />
−1<br />
[ sI − A ]<br />
⎡τ<br />
Φ c(<br />
τ )dτ<br />
= ⎢<br />
⎣0<br />
c<br />
T = 0.<br />
1<br />
⎡1<br />
= ⎢<br />
⎣0<br />
/ T<br />
[ ∫ Φ ( τ )dτ<br />
]<br />
0<br />
c<br />
B<br />
⎡1<br />
−1<br />
−1<br />
⎢<br />
−1<br />
⎡s<br />
−1<br />
⎤ −1<br />
= L ⎢ ⎥ = L<br />
s<br />
⎢<br />
⎣0<br />
s + 1⎦<br />
⎢0<br />
⎢⎣<br />
T<br />
−τ<br />
+ ⎤ ⎡<br />
−T<br />
τ ε T T + ε −1⎤<br />
⎥ =<br />
−τ<br />
⎢<br />
−τ<br />
⎥<br />
− ε ⎦ ⎣0<br />
1−<br />
ε ⎦<br />
c<br />
c<br />
0.<br />
095⎤<br />
0.<br />
905<br />
⎥<br />
⎦<br />
⎡0.<br />
1<br />
= ⎢<br />
⎣ 0<br />
0<br />
0.<br />
005⎤⎡<br />
0 ⎤<br />
0.<br />
095<br />
⎥⎢<br />
⎥<br />
⎦⎣10⎦<br />
1 ⎤<br />
s( s + 1)<br />
⎥ ⎡1<br />
⎥ = ⎢<br />
1 ⎥ ⎣0<br />
s + 1 ⎥⎦<br />
−t<br />
1−<br />
ε ⎤<br />
−t<br />
⎥<br />
ε ⎦<br />
⎡x<br />
⎢<br />
⎣x<br />
1<br />
2<br />
(k + 1) ⎤ ⎡1<br />
⎥ =<br />
(k + 1)<br />
⎢<br />
⎦ ⎣0<br />
0.<br />
095⎤⎡x<br />
0.<br />
905<br />
⎥⎢<br />
⎦⎣x<br />
1<br />
2<br />
(k) ⎤ ⎡0.<br />
048⎤<br />
⎥ + ⎢ ⎥u( t )<br />
(k) ⎦ ⎣0.<br />
952⎦<br />
y(k) =<br />
x (k)<br />
⎢<br />
⎣x2(k)<br />
⎡ 1 ⎤<br />
[ 1 0] ⎥ ⎦<br />
can also use power series: 3 significant figures of accuracy requires 3terms<br />
m(k)<br />
0.048<br />
0.952 + T<br />
x 2 (k)<br />
0.095<br />
+<br />
T<br />
y(k)<br />
x 1 (k)<br />
0.905<br />
18
4.11 Practical Calculations by Computer<br />
• required for higher order systems.<br />
• preferred for lower order systems<br />
(1) Derive State Model for Analog Part of a System<br />
v’(t) = A c v(t) + B c u(t)<br />
y(t) = C c v(t) + D c u(t)<br />
(2) If Transfer Function of Analog Part of System Required, then determine<br />
sV(s) = A c V(s) + B c U(s)<br />
V(s) = [sI-A c ] -1 BU(s)<br />
Y(s) = C c V(s) + D c U(s)<br />
Y(s) = C c [sI-A c ] -1 BU(s) + D c U(s)<br />
Y(s) =[C c [sI-A c ] -1 B + D c ]U(s)<br />
then G p (s) = C c [sI-A c ] -1 B c + D c<br />
(3) Calculate <strong>Discrete</strong> Matrices of Analog Part of System from A c ,B c ,C c ,D c<br />
i<br />
i t<br />
t t<br />
A = Φ c (t) = ∑ ∞ 2 3<br />
Ac = I + Ac<br />
t + Ac<br />
+ Ac<br />
+ ...<br />
i= 0 i!<br />
2!<br />
3!<br />
⎛<br />
2 3 4<br />
T 2 T 3 T ⎞<br />
B = ⎜<br />
⎟<br />
IT + Ac<br />
+ Ac<br />
+ Ac<br />
+ ...<br />
B c<br />
⎝ 2!<br />
3!<br />
4!<br />
⎠<br />
C = C c<br />
D = D c<br />
(4) Calculate Pulse Transfer Function<br />
G(z) = C[zI-A] -1 B + D<br />
2<br />
3<br />
19