Top Banner
Digital Implementation of discrete-time Controllers Silvano Balemi Lugano, academic year 2011-2012 1 / 178
179

Digital Implementation of discrete-time Controllers

Nov 05, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Digital Implementation of discrete-time Controllers

Digital Implementation of discrete-timeControllers

Silvano Balemi

Lugano, academic year 2011-2012

1 / 178

Page 2: Digital Implementation of discrete-time Controllers

Table of contents

Introduction

Mathematical background

Discrete-time signals

Systems

System properties

Sampled systems

Closed-loop systems

Quantization causes and effects

Remedies against quantization effects

Anti-wind-up measure

Sample rate selection

Implementation issues

2 / 178

Page 3: Digital Implementation of discrete-time Controllers

Miscellaneous

I Instructor:Silvano [email protected]/˜smtTel: +41 (0) 32 356 0554

I Schedule:16.3, 30.3, 20.4, 4.5, 1.6 and 15.6Exam on 1.6, Lab session on 15.6

I Tools:Matlab, Simulink and Control System Toolbox

3 / 178

Page 4: Digital Implementation of discrete-time Controllers

Bibliography

4 / 178

Page 5: Digital Implementation of discrete-time Controllers

Introduction

Mathematical background

Discrete-time signals

Systems

System properties

Sampled systems

Closed-loop systems

Quantization causes and effects

Remedies against quantization effects

Anti-wind-up measure

Sample rate selection

Implementation issues

5 / 178

Page 6: Digital Implementation of discrete-time Controllers

Motivation

I Increasing use of digital controllers (flexibility duringoperation, flexibility for modifications, more complexcontrollers realizable, lower price)

I Wide range of technical possibilities (very specific DSPs,programmable components)

I Collaboration in interdisciplinary teams

6 / 178

Page 7: Digital Implementation of discrete-time Controllers

What is this course?

I Not a course on control design

I Understand the issues connecting control design andembedded control systems

I Be able to communicate with control engineers

I Master the tools necessary to specify and design an embeddedcontrol system

7 / 178

Page 8: Digital Implementation of discrete-time Controllers

Introduction

Mathematical background

Discrete-time signals

Systems

System properties

Sampled systems

Closed-loop systems

Quantization causes and effects

Remedies against quantization effects

Anti-wind-up measure

Sample rate selection

Implementation issues

8 / 178

Page 9: Digital Implementation of discrete-time Controllers

Fourier decomposition of a periodic signalConsider periodic function f(t) with period T

−2 −1 0 1 2 30

0.2

0.4

0.6

0.8

1

t

f(t)

Then

f(t) =A0

2+

∞∑n=1

An cos(nωt) +

∞∑n=1

Bn sin(nωt)

where

An =2

T

∫ T

0f(t) cos(nωt)dt and Bn =

2

T

∫ T

0f(t) sin(nωt)dt

9 / 178

Page 10: Digital Implementation of discrete-time Controllers

Fourier decomposition complex representationPeriodic function f(t)

−2 −1 0 1 2 30

0.2

0.4

0.6

0.8

1

t

f(t)

Alternative representation

f(t) =∞∑−∞

Cnejnωt

where

Cn =1

T

∫ T2

−T2

f(t)e−jnωtdt =An − jBn

2

10 / 178

Page 11: Digital Implementation of discrete-time Controllers

Fourier transform of time-limited signals

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2 2.5 30

0.2

0.4

0.6

0.8

1

t

f(t)

Cn = 1T

∫ T2

−T2

f(t)e−jnωtdt = An−jBn2

= 1T

∫∞−∞ f(t)e−jnωtdt

for time-limited signals

11 / 178

Page 12: Digital Implementation of discrete-time Controllers

Fourier transform of aperiodic signalsLet T →∞ then Cn → 0.

0 10 20 30 40 50 60 70 80 90 1000

0.2

0.4

0.6

0.8

t

f(t)

Thus define F (n · ω) = Cn · T which gives

F (n · ω) =

∫ ∞−∞

f(t)e−jn·ωtdt =⇒ F (ω) =

∫ ∞−∞

f(t)e−jωtdt

with a variable substitution and

f(t) =1

∫ ∞−∞

F (ω)e−jωtdω =

∫ ∞−∞

F (2πf)e−j2πftdf

12 / 178

Page 13: Digital Implementation of discrete-time Controllers

Some Fourier transforms

f(t) F (ω)

δ(t) 1

1 2πδ(ω)

ejω0t 2πδ(ω − ω0)

cos(ω0t) π(δ(ω + ω0) + δ(ω − ω0))

sin(ω0t) jπ(δ(ω + ω0)− δ(ω − ω0))

1(t) πδ(ω) + 1jω

rect(t)2 sin ωτ

2

ω

sign(t) 2jω

e−r2

2σ2 σ√

2πe−σ2ω2

2

13 / 178

Page 14: Digital Implementation of discrete-time Controllers

Laplace transform

Assume f(t) = 0 for t < 0. Laplace transform of f(t) is defined by

F (s) =

∫ ∞0

f(t)e−stdt

Has frequency interpretation (see Fourier transform)

14 / 178

Page 15: Digital Implementation of discrete-time Controllers

Frequency representation: Bode diagramMagnitude 20 log(|F (ω)|) and phase arg(F (ω)) on logarithmicfrequency scale

−40

−30

−20

−10

0

10

20

30

40

Magnitude (

dB

)

10−1

100

101

−180

−135

−90

−45

0

Phase (

deg

)

Bode Diagram

Frequency (rad/sec)

15 / 178

Page 16: Digital Implementation of discrete-time Controllers

Some Laplace transforms

f(t) F (s)

δ(t) 1

1(t) 1s

t · 1(t) 1s2

tn · 1(t) n!sn+1

e−a·t · 1(t) 1s+a

sin(ω · t) · 1(t) ωs2+ω2

cos(ω · t) · 1(t) ss2+ω2

e−at · sin(ω · t) · 1(t) ω(s+a)2+ω2

e−at · cos(ω · t) · 1(t) s+a(s+a)2+ω2

16 / 178

Page 17: Digital Implementation of discrete-time Controllers

Properties of the Laplace transform

linearity L(αf1(t) + βf2(t)) = αF1(s) + βF2(s)

frequency delay L(e−atf(t)) = F (s+ a)

time delay L(f(t− T )) = e−sTF (s)

time scaling L(f(at)) = 1aF ( sa )

time derivative L(df(t)dt ) = sF (s)− f(0)

double time derivative L(d2f(t)dt2 ) = s2F (s)− sf(0)− f(0)

integration L(t∫0

f(τ)dτ

)= F (s)

s

initial value limt→0 f(t) = lims→∞ sF (s)

end value limt→∞ f(t) = lims→0 sF (s)

convolution in time f1(t) ∗ f2(t) = F1(s) · F2(s)

convolution in frequency f1(t) · f2(t) = 12πj · F1(s) ∗ F2(s)

17 / 178

Page 18: Digital Implementation of discrete-time Controllers

Laplace transform for the solution of ordinary differentialequations

Given

xn + an−1 · x(n−1) + . . . + a1 · x+ a0x = u(t)

1. Take u(t) = 0 and solve for initial conditions

2. Then set initial conditions

xn(0) = x(n−1)(0) = . . . = x(0) = x(0) = 0

and solve for input u(t)

18 / 178

Page 19: Digital Implementation of discrete-time Controllers

Solution of ODE with Laplace transform 1/3

Givendx

dt+ 3x = cos(3t) with x(0) = 1

1) Take u(t) = 0 and apply Laplace transform

L(dx

dt

)+ L(3x) = L(0)

sX(s)− x(0) + 3X(s) = 0

X(s) =1

s+ 3

x(t) = L−1(X(s)) = L−1

(1

s+ 3

)= e−3t

(Example by Piatti and Solder)

19 / 178

Page 20: Digital Implementation of discrete-time Controllers

Solution of ODE with Laplace transform 2/3

2) Take x(0) = 0 and apply Laplace transform

sX(s)− x(0)︸︷︷︸0

+3X(s) =s

s2 + 9

X(s) =1

(s+ 3)(s2 + 9)=

1

s+ 3

s

s2 + 9

Then

x(t) = L−1(X(s)) = L−1(

1s+3

ss2+9

)= L−1

(1s+3

)∗ L−1

(s

s2+9

)= e−3t ∗ cos(3t)

=cos(3t) + sin(3t)− e−3t

6

1+2) Complete solution

x(t) =cos(3t) + sin(3t) + 5e−3t

6

20 / 178

Page 21: Digital Implementation of discrete-time Controllers

Solution of ODE with Laplace transform 3/3

2) with unknown u(t)

sX(s)− x(0)︸︷︷︸0

+3X(s) = U(s)

X(s) =1

s+ 3U(s)

Then

x(t) = L−1(X(s)) = L−1(

1s+3U(s)

)= L−1

(1s+3

)∗ u(t) = e−3t ∗ u(t)

1+2) Complete solution

x(t) = e−3t + e−3t ∗ u(t)

21 / 178

Page 22: Digital Implementation of discrete-time Controllers

Introduction

Mathematical background

Discrete-time signals

Systems

System properties

Sampled systems

Closed-loop systems

Quantization causes and effects

Remedies against quantization effects

Anti-wind-up measure

Sample rate selection

Implementation issues

22 / 178

Page 23: Digital Implementation of discrete-time Controllers

Dirac impulse δ(t)

Time-limited impulse of unit integral value with width going to 0.

1/ε

- �

6

? -

ε

6

limε→0

-

1

-

6

t

6

Then:

f(a) =

∫ ∞−∞

f(t) · δ(t− a)dt

23 / 178

Page 24: Digital Implementation of discrete-time Controllers

Step response of a sampled system

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.05

0.1

0.15

0.2

0.25

0.3

0.35

Step Response

Time (sec)

Am

plit

ude

24 / 178

Page 25: Digital Implementation of discrete-time Controllers

Sample and Hold

?�

-�� -T

ZOH

-sample & hold

6

-66666

t

f?(t)

6

-����� 6

-

f

f fh

fh

f?t

fh(t)

t

f(t)

25 / 178

Page 26: Digital Implementation of discrete-time Controllers

Sampling

�� -T

f f??

�- f?(t) =

∞∑k=−∞

f(t) · δ(t− k · T )-?×f(t)

∞∑k=−∞

δ(t− k · T )

⇐⇒

Multiplication with a train of unit impulses(operation is linear but time-variant)

F ?(s) =

∫ ∞0

f?(t) ·e−st dt =

∫ ∞0

f(k · T ) ·∞∑k=0

δ(t− kT ) ·e−st dt

F ?(s) =

∞∑k=0

f(kT ) · e−skT

26 / 178

Page 27: Digital Implementation of discrete-time Controllers

Train of impulses and its Fourier expansion

∞∑k=−∞

δ(t− kT ) =

∞∑n=−∞

Cnej 2πnTt

with coefficients

Cn =1

T

∫ T/2

−T/2

( ∞∑k=−∞

δ(t− kT )

)ej

2πnTtdt

yields∞∑

k=−∞δ(t− kT ) =

1

T

∞∑n=−∞

ej2πnTt

27 / 178

Page 28: Digital Implementation of discrete-time Controllers

Sampled signal

F ?(s) =

∫ ∞0

f(t) ·∞∑k=0

δ(t− kT ) · e−st dt

=

∫ ∞0

f(t) · 1

T

∞∑n=−∞

ej2πnTt · e−st dt

=1

T

∞∑n=−∞

∫ ∞0

f(t) · ej2πnTt · e−st dt

=1

T

∞∑n=−∞

∫ ∞0

f(t) · e−(s−j 2πnT

)t dt

=1

T

∞∑n=−∞

F (s− j 2πnT

)

⇒ F ?(s) =1

T

∞∑n=−∞

F (s− jωsn) with ωs =2π

T

28 / 178

Page 29: Digital Implementation of discrete-time Controllers

Spectrum of a sample signal

−2 −1.5 −1 −0.5 0 0.5 1 1.5 20

0.2

0.4

0.6

0.8

1Spectrum of a signal

−2 −1.5 −1 −0.5 0 0.5 1 1.5 20

0.2

0.4

0.6

0.8

1Spectrum of a sampled signal

29 / 178

Page 30: Digital Implementation of discrete-time Controllers

Hold

Linear and time-invariant operation

T-

6

-

0t

1

T

1(t− T )

1(t)

0t

16

Impulse response of a Zero-order hold

zoh(t) = 1(t)− 1(t− T ) ⇒ ZOH(s) =1

s− 1

s· e−sT =

1− e−sT

s

30 / 178

Page 31: Digital Implementation of discrete-time Controllers

Z transform

Laplace transformation of the sample signal with z = esT

F (z) = F ?(s)|esT=z =

∞∑k=0

f(kT ) · z−k =

∞∑k=0

fk · z−k

where fk = f(t)|t=kT = f(kT ).

The z-transform correspond to the sequence

{fk} = {f0, f1, f2, . . . }

with the function F (z) = Z({fk})

31 / 178

Page 32: Digital Implementation of discrete-time Controllers

Relation between different transforms

?

�-��

T

-@@R��

@@

-�

-�

���

f(t)

F (s)

L

f ?(t)

t = kT

F ?(s) F (z)

{fk}

ZL

z = esT

Zs

ue

ue

6

?

32 / 178

Page 33: Digital Implementation of discrete-time Controllers

Examples of z-transforms

{fk} = {0, 1, 2, 1, 0, 0, 0, 0, 0, . . . }

F (z) = 0·z0+1·z−1+2·z−2+1·z−3 =1

z+

2

z2+

1

z3=z2 + 2 · z + 1

z3

{fk} = {1, 1, 1, 1, 1, . . . }

F (z) = 1 · z0 + 1 · z−1 + 1 · z−2 + 1 · z−3 + 1 · z−4 + . . .

F (z) =z

z − 1

{fk} = {0, T, 2T, 3T, . . . , kT, . . .}

F (z) = T · (0 · z0 + 1 · z−1 + 2 · z−2 + 3 · z−3 + 4 · z−4 + . . . )

z ·F (z)−F (z) = (z − 1) ·F (z) = T · (1 + z−1 + z−2 + z−3 + . . . )

F (z) = T · z

(z − 1)2

33 / 178

Page 34: Digital Implementation of discrete-time Controllers

Some transformations

f(t) F (s) F (z)

1(t)1

s

z

z − 1

t · 1(t) 1

s2T · z

(z − 1)2

e−at · 1(t) 1

s+ a

z

z − e−aT

tn · e−at · 1(t) n!

(s+ a)n+1(−1)n · dn

danz

z − e−aT

sin(ωt) · 1(t) ω

s2 + ω2

z · sin(ωT )z2 − 2 · z · cos(ωT ) + 1

cos(ωt) · 1(t) s

s2 + ω2

z · (z − cos(ωT ))

z2 − 2 · z · cos(ωT ) + 1

e−at · sin(ωt) · 1(t) ω

(s+ a)2 + ω2

z · e−aT · sin(ωT )z2 − 2 · z · e−aT · cos(ωT ) + e−2aT

e−at · cos(ωt) · 1(t) s+ a

(s+ a)2 + ω2

z · (z − e−aT · cos(ωT ))z2 − 2 · z · e−aT · cos(ωT ) + e−2aT

34 / 178

Page 35: Digital Implementation of discrete-time Controllers

Properties of the z-transform

Linearity Z (a · {fk}+ b · {gk}) = a · Z ({fk}) + b · Z ({gk})

Delay Z ({fk−m}) = z−m · Z ({fk}) per m ≥ 0

Anticipation Z ({fk+m}) = zm ·(Z ({fk})−

∑m−1i=0 fi · z−i

)Damping Z

({fk · e−akT }

)= F (z · eaT )

Difference Z({fk} − {fk−1}) = z−1z · Z({fk})

Convolution Z({fk ∗ gk}) = Z({∑k

i=0 fi · gk−i})

= F (z) ·G(z)

Initial value f0 = limz→∞

Z({fk}) = limz→∞

(f0 + f1 · z−1 + . . . )

End value limk→∞

fk = limz→1

z − 1

z· Z({fk}) = lim

z→1(z − 1) · Z({fk})

35 / 178

Page 36: Digital Implementation of discrete-time Controllers

z transform

From the Laplace transformationI Factorization

G(z) = Zs(G(s)) = Zs

(np∑n=1

R(pn) · 1

s− pn

)=

np∑n=1

R(pn)· z

z − epnT

with residuals R(pn) = N(s)dD(s)ds

∣∣∣∣s=pn

(single poles)

I Using “primitives”

G(s) =1

s+ a⇒ g(t) = k · e−at ⇒ G(z) = k

z

z − e−aT

36 / 178

Page 37: Digital Implementation of discrete-time Controllers

Inverse z- transform

1. Inverse transform via factorization

Z({bk}) = Z({1, b, b2, b3, . . . }) =z/b

z/b− 1=

z

z − b

F (z) =K1 · zz − p1

+K2 · zz − p2

+ . . . +Knp · zz − pnp

⇒ fk =

np∑i=0

Ki · pki

2. Inverse trasnform via recursion

F (z) =bn · zn + bn−1 · zn−1 + . . . + b0zn + an−1 · zn−1 + . . . + a0

=

∞∑k=0

fk · z−k

⇒ fk = f(kT ) = bn−k−an−1·fk−1−an−2·fk−2−. . .−a0·fk−n

37 / 178

Page 38: Digital Implementation of discrete-time Controllers

Introduction

Mathematical background

Discrete-time signals

Systems

System properties

Sampled systems

Closed-loop systems

Quantization causes and effects

Remedies against quantization effects

Anti-wind-up measure

Sample rate selection

Implementation issues

38 / 178

Page 39: Digital Implementation of discrete-time Controllers

Dynamic systems

Outputs of static system only depends on current inputs

- -yu

y = f(u)

Outputs of dynamic system also depends on history (state)

- -yu

y = f(x, x, u)

Variable derivatives and the relationships between variables lead todifferential equations

39 / 178

Page 40: Digital Implementation of discrete-time Controllers

Linear time-invariant systems

Linearity

f(αu1(t) + βu2(t)) = αf(u1(t)) + βf(u2(t))

Time-Invariance

y(t) = f(x(t), x(t), u(t))⇒ y(t+ t0) = f(x(t), x(t), u(t+ t0))

for same initial conditions x0 at t resp. t+ t0.

40 / 178

Page 41: Digital Implementation of discrete-time Controllers

Example: LCR circuit

? ?

-

l ? ?

C

iLiRiC

Ru uC

L

C · duCdt

= iC

L · diLdt

= uL

uc = R · iRiL = iR + iCu = uL + uC

C · duCdt

= − 1

R· uC + iL

L · diLdt

= −uC + u

2nd order system2 first-order differential equations

41 / 178

Page 42: Digital Implementation of discrete-time Controllers

Example: Mass and spring

-

DD��DD��DD��DD

-

dF (t)

k

M

x(t)

M · x+ d · x+ k · x = F

2nd order system1 second-order differential equation

42 / 178

Page 43: Digital Implementation of discrete-time Controllers

Example: Quarter car (Slide Prof. Savaresi)

�� �� �� �� �� �� �� �� �� �� �� �� �� ��

6

���� HH ��

6

6

m

body

wheel

zt

kt

zkd

M

zr

M · z = −M · g − d · (z − zt)− k · (z − zt)m · zt = −m · g + d · (z − zt) + k · (z − zt)

+kt · (zr − zt)

4th order system2 second-order differential equations

43 / 178

Page 44: Digital Implementation of discrete-time Controllers

Example: Magnetic suspension

M

i

uR,L

y

M · d2y

dt2= M · g − k · i

2(t)

y2(t)

u(t) = R · i(t) + L · di(t)dt

3rd order system1 first-order and 1 second-order differential equation

44 / 178

Page 45: Digital Implementation of discrete-time Controllers

Example: Thermal system

�����ZZ

ZZZ

����*

-Text Tint

C

ΦinΦout

Φout(t) =Tint(t)− Text(t)

1/(A · k)

C · dTint(t)

dt= Φin(t)− Φout(t)

⇓C · Tint +A · k · Tint = Φin +A · k · Text

1st order system1 first-order differential equation

45 / 178

Page 46: Digital Implementation of discrete-time Controllers

Example: Hydraulic system

� -

6

?

6

2R

h

2r

dh

dt= −C ·

√2 · g · h ·

( rR

)2

1st order system1 first-order non-linear differential equation

46 / 178

Page 47: Digital Implementation of discrete-time Controllers

1) Differential equation

One single n-th order differential equation

y(n) + . . . + a1 · y + a0 · y = bn · u(n) + . . . + b1 · u+ b0 · u

Example:-

DD��DD��DD��DD

-

dF (t)

k

M

x(t)

M · x(t) + d · x(t) + k · x(t) = F (t)

47 / 178

Page 48: Digital Implementation of discrete-time Controllers

1) Differential equation (cont)

set of n 1st order differential equations

Example:-

DD��DD��DD��DD

-

dF (t)

k

M

x(t)

x(t) = v(t)

M · v(t) + d · v(t) + k · x(t) = F (t)

48 / 178

Page 49: Digital Implementation of discrete-time Controllers

2) State-space representation

n first-order differential equations in vector form{x = f(x,u, t)y = g(x,u, t)

or for LTI systems

{x = A · x +B · uy = C · x +D · u

Example:-

DD��DD��DD��DD

-

dF (t)

k

M

x(t)

[x1

x2

]=

[0 1

− kM − d

M

]·[x1

x2

]+

[01M

]· F

y =[

1 0]·[x1

x2

]+[

0]· F

49 / 178

Page 50: Digital Implementation of discrete-time Controllers

3) Transfer function

Differential equation

y(n) + . . . + a1 · y + a0 · y = bn · u(n) + . . . + b1 · u+ b0 · u

Laplace transformation with zero initial conditions

sn ·Y + . . . +a1 · s ·Y +a0 ·Y = bn · sn ·U + . . . + b1 · s ·U + b0 ·U

⇒ Y (s)

U(s)=bn · sn + bn−1 · sn−1 + bn−2 · · ·n−2 + · · ·+ b1 · s+ b0sn + an−1 · sn−1 + an−2 · sn−2 + · · ·+ a1 · s+ a0

Example:

-

DD��DD��DD��DD

-

dF (t)

k

M

x(t)

G(s) =1M

s2 + dM s+ k

M

50 / 178

Page 51: Digital Implementation of discrete-time Controllers

4) Time-domain solution (here with distinct modes)

Differential equation

y(n) + . . . + a1 · y + a0 · y = bn · u(n) + . . . + b1 · u+ b0 · u

Time-domain solution

y(t) =

n∑i=1

hi · eλi·t︸ ︷︷ ︸f(t)

+

∫ ∞0

n∑i=1

ki · eλi·τ︸ ︷︷ ︸g(τ)

·u(t−τ)dτ = f(t)+g(t)∗u(t)

I (complex) parameters λ are often called “modes” of thesystem

I for complex modes αi · eλi·t+βi · eλi·t = ri · eσi·t · cos(ωit+ϕi)

I g(t) is the impulse response

I f(t) is the free response

51 / 178

Page 52: Digital Implementation of discrete-time Controllers

Summary of example: Mass and spring systemDifferential equation:

M · x(t) + d · x(t) + k · x(t) = F (t)

State-space representation: x =

[0 1

− kM − d

M

]· x +

[01M

]· F

y =[

1 0]· x +

[0]· F

Transfer function:

G(s) =1

Ms2 + ds+ k

Time-domain solution (ω=√

kM−( d

2M )2):

y(t) = e−d

2Mt[cos(ωt)+

d2Mω

sin(ωt), 1ω

sin(ωt)

]·[x0v0

]+

(e− d

2Mt

M·ω sin(ωt)

)∗u(t)

52 / 178

Page 53: Digital Implementation of discrete-time Controllers

Summary of descriptions for Linear Time-invariant SystemsDifferential equation:

y(n) + . . . + a1 · y + a0 · y = bn · u(n) + . . . + b1 · u+ b0 · u

State-space representation:{x = A · x +B · uy = C · x +D · u

Transfer function:

Y (s)

U(s)=bn · sn + bn−1 · sn−1 + bn−2 · sn−2 + · · ·+ b1 · s+ b0sn + an−1 · sn−1 + an−2 · sn−2 + · · ·+ a1 · s+ a0

Time-domain solution:

y(t) = C · Φ(t) · x0 + g(t) ∗ u(t) = f(t) + g(t) ∗ u(t)

where x0 is initial state and Φ(t) = L−1((s · I −A)−1)

53 / 178

Page 54: Digital Implementation of discrete-time Controllers

Equivalence of representations

differentialequation

� -

-

?

6

?���

���

���

���

����*HHH

HHHHHH

HHHHHHj

transferfunction

time-domaintrajectory

statespace

y(t)G(s)

54 / 178

Page 55: Digital Implementation of discrete-time Controllers

Examples of representation change

{x(t) = A·x(t) +B ·u(t)y(t) = C ·x(t) +D ·u(t)

⇒{s ·X(s) = A·X(s) +B ·U(s)

Y(s) = C ·X(s) +D·U(s)

⇒ Transfer function:

Y (s) = (C · (s · I −A)−1 ·B +D︸ ︷︷ ︸G(s)

) · U(s)

⇒ Time-domain solution:

y(t) = L−1(C · (sI −A)−1· x0 + (C · (sI −A)−1·B +D) · U(s)

)= C · L−1

((sI −A)−1

)· x0 + L−1 (G(s) · U(s))

= C · Φ(t) · x0︸ ︷︷ ︸f(t)

+ (C · Φ(t) ·B +D · δ(t))︸ ︷︷ ︸g(t)

∗u(t)

55 / 178

Page 56: Digital Implementation of discrete-time Controllers

Introduction

Mathematical background

Discrete-time signals

Systems

System properties

Sampled systems

Closed-loop systems

Quantization causes and effects

Remedies against quantization effects

Anti-wind-up measure

Sample rate selection

Implementation issues

56 / 178

Page 57: Digital Implementation of discrete-time Controllers

Trajectory and equilibrium

Trajectory:

x = f(x(t), u(t)) = A · x(t) +B · u(t)

x(t) = tr(x0, u(t)) = Φ(t) · x0 + (Φ(t) ·B)︸ ︷︷ ︸gx(t)

∗u(t)

Equilibrium point as a static trajectory:

I Solutions of 0 = f(x, u)

I For linear systems0 = f(x, u) = A · x+B · u⇒ x = −A−1 ·B · u when A is full rank.

57 / 178

Page 58: Digital Implementation of discrete-time Controllers

Stable trajectory (figure by Prof. Rocco)

0 1 2 3 4 5 6 7 8 9 10−1

0

1

2

3

4

5

6

δε

perturbedmotion

nominalmotion

x0

‖x0 − x0‖ < δ(ε) → ‖x(t)− x(t)‖ < ε ∀t > 0

Trajectory with perturbed initial state remains “close” to nominaltrajectory.

58 / 178

Page 59: Digital Implementation of discrete-time Controllers

Asymptotically stable trajectory (figure by Prof. Rocco)

0 1 2 3 4 5 6 7 8 9 10−1

0

1

2

3

4

5

6

δε

perturbedmotion

nominalmotion

x0

limt→∞‖x(t)− x(t)‖ = 0 ∀ x0 | ‖x0 − x0‖ < δ(ε)

Trajectory with perturbed initial state converges to nominaltrajectory.

59 / 178

Page 60: Digital Implementation of discrete-time Controllers

Asymptotically stable trajectory (figure by Prof. Rocco)

0 1 2 3 4 5 6 7 8 9 10−1

0

1

2

3

4

5

6

δε

perturbedmotion

nominalmotion

x0

limt→∞‖x(t)− x(t)‖ = 0 ∀ x0 | ‖x0 − x0‖ < δ(ε)

Trajectory with perturbed initial state converges to nominaltrajectory.

60 / 178

Page 61: Digital Implementation of discrete-time Controllers

Unstable trajectory (figure by Prof. Rocco)

0 1 2 3 4 5 6 7 8 9 10−1

0

1

2

3

4

5

6

δε

perturbedmotion

nominalmotion

x0

Trajectory diverges from nominal one even for the smallestperturbation of the initial state.

61 / 178

Page 62: Digital Implementation of discrete-time Controllers

Example: equilibrium point (figure by Prof. Rocco)

Stability analysis can be applied to equilibrium point(equilibrium point is static trajectory)

Point x2 stable, x3 unstable

62 / 178

Page 63: Digital Implementation of discrete-time Controllers

Stability analysis

Recall, from trajectory

x(t) = Φ(t) · x(0)︸ ︷︷ ︸free response

+ gx(t) ∗ u(t)︸ ︷︷ ︸forced response

Both Φ(t) and gx(t) = Φ(t) ·B are of the form

Ki · tn · eλ·t if λi is realKi · tn · eσ·t · cos(ωi · t+ ϕi) if λi = σi + j · ωi is complex

63 / 178

Page 64: Digital Implementation of discrete-time Controllers

System stability: Role of λ

I From trajectory:stability is determined if exponentials terms decay, i.e. σ ≤ 0(real part of λ is non-positive)Note: limt→∞ t

n · eσ·t = 0 for all negative σNote: σ < 0 is necessary in presence of pole multiplicity

I From transfer function:λ are the roots of denominator, i.e. solutions of d(s) = 0

I From state-space representation:λ are the eigenvalues of A, i.e. solutions of |λ · I −A| = 0

64 / 178

Page 65: Digital Implementation of discrete-time Controllers

Stability analyis

I System with impulse response g(t) = cos(10 · t) is stable

I System with free response f(t) = et · cos(3 · t) is unstable

I System with transfer function G(s) = 1s+1 is asymptotically

stable

I System with state-space representation 1 1 10 −2 0

1 0 0

is unstable (one eigenvalue is 1, the other -2)

65 / 178

Page 66: Digital Implementation of discrete-time Controllers

Stability of LTI systems: poles

−10 −8 −6 −4 −2 0 2 4 6 8 10

−10

−8

−6

−4

−2

0

2

4

6

8

10 0.160.340.50.64

0.76

0.86

0.94

0.985

0.160.340.50.64

0.76

0.86

0.94

0.985

2

4

6

8

10

2

4

6

8

10

Root Locus

Real Axis

Imagin

ary

Axis

66 / 178

Page 67: Digital Implementation of discrete-time Controllers

Introduction

Mathematical background

Discrete-time signals

Systems

System properties

Sampled systems

Closed-loop systems

Quantization causes and effects

Remedies against quantization effects

Anti-wind-up measure

Sample rate selection

Implementation issues

67 / 178

Page 68: Digital Implementation of discrete-time Controllers

System with digital controller

- -

6

-

-controller

digital

A/D

D/A continuousprocess

digital part analog part

u y

1. Sample

2. (Digitalization)

3. Hold

68 / 178

Page 69: Digital Implementation of discrete-time Controllers

Discrete-time transfer function from time domain

Y (z)?

�-�� �� -��u

T

u?

U(z)G(s)

y

T

y?

?

No transfer function between u and y but between u∗ and y∗.

Y ∗(s) = G∗(s) · U∗(s)

i.e.Y (z) = G(z) · U(z)

Two different proofs: in time domain and in frequency domain.

69 / 178

Page 70: Digital Implementation of discrete-time Controllers

Time-domain proof of discrete-time transfer function

Y ?(s) =

∫ ∞0

y?(t) · e−st dt =

∫ ∞0

(∫ ∞0

g(t− τ) · u?(τ) dτ

)?· e−st dt

Y ?(s) =

∫ ∞0

∞∑k=0

(∫ ∞0

g(t− τ) ·∞∑m=0

u(τ) · δ(τ −mT ) dτ

)·δ(t− kT )·e−st dt

Y ?(s) =

∞∑k=0

∞∑m=0

(∫ ∞0

g(kT − τ) · u(τ) · δ(τ −mT ) dτ

)· e−skT

Y ?(s) =

∞∑m=0

∞∑k=0

g(kT −mT ) · u(mT ) · e−skT

and with variable substitution l = k −m

Y ?(s) =

( ∞∑l=0

g(lT ) · e−slT)·

( ∞∑m=0

u(mT ) · e−smT)

= G?(s) · U?(s)

70 / 178

Page 71: Digital Implementation of discrete-time Controllers

Frequency-domain proof of discrete-time transfer function

Y ?(s) = (G(s) · U?(s))? =1

T

∞∑n=−∞

(G(s− jnωs) · U?(s− jnωs))

but because

U?(s) =1

T

∞∑k=−∞

(U(s− jkωs)

then

U?(s− jnωs) =1

T

∞∑k=−∞

(U(s− jnωs − jkωs)

With the variable change m = n+ k

U?(s−jnωs) =1

T

∞∑m−n=−∞

U(s−jmωs) =1

T

∞∑m=−∞

U(s−jmωs) = U?(s)

Finally

Y ?(s) =

(1

T

∞∑n=−∞

G(s− jnωs)

)· U?(s) = G?(s) · U?(s)

71 / 178

Page 72: Digital Implementation of discrete-time Controllers

Transfer function with ZOH

?

�-�� - �� -��

?

�u

U(z)T

1− e−sT

sG(s)

GZOH(z)

y

T

y?

Y (z)

u?

Gzoh(z) = Z

L−1(1− e−Ts) · G(s)

s︸ ︷︷ ︸Gs(s)

∣∣∣∣∣∣∣∣t=kT

= Z

(L−1 (Gs(s))

∣∣t=kT

− L−1(e−Ts ·Gs(s)

)∣∣t=kT

)= Z (gs(t)|t=kT − gs(t− T )|t=kT )

= Z (gs(kT )− gs(kT − T ))

Gzoh(z) = Gs(z)− z−1 ·Gs(z) =z − 1

z·Gs(z) =

z − 1

z· Zs

(G(s)

s

)72 / 178

Page 73: Digital Implementation of discrete-time Controllers

Transfer function with ZOH: Example

G(s) =s− 1

s+ 1⇒

GZOH(z) =z − 1

z· Zs

(G(s)

s

)=

z − 1

z· Zs

(s− 1

s · (s+ 1)

)=

z − 1

z· Zs

(2

s+ 1− 1

s

)=

z − 1

z·(Zs(

2

s+ 1

)−Zs

(1

s

))=

z − 1

z·(

2z

z − e−T− z

z − 1

)=

2(z − 1)

z − e−T− 1

GZOH(z) =z − 2 + e−T

z − e−T

73 / 178

Page 74: Digital Implementation of discrete-time Controllers

Discrete-time state-space representation

{x = A · x+B · uy = C · x+D · u

u constant during sampling period (u(t) = u(0), 0 ≤ t < T )

x(t) = Φ(t)·x(0)+(Φ(t)·B)∗u(t) = Φ(t)·x(0)+

(∫ t

τ=0Φ(t)·B dt

)︸ ︷︷ ︸

Γ(t)

·u(0)

Φ(T ) = L−1((s · I −A)−1

)∣∣t=T

Γ(T ) = L−1

((s · I −A)−1 ·B · 1

s

)∣∣∣∣t=T

⇒{xk+1 = Φ(T ) · xk + Γ(T ) · ukyk = C · xk +D · uk

74 / 178

Page 75: Digital Implementation of discrete-time Controllers

Summary of descriptions for discrete-time LTI SystemsDifference equation:

yk+n+ . . . +a1 · yk+1 +a0 · yk = bn ·uk+n+ . . . + b1 ·uk+1 + b0 ·uk

State-space representation:{xk+1 = Φ · xk + Γ · ukyk = C · xk +D · uk

Transfer function:

Y (z)

U(z)=bn · zn + bn−1 · zn−1 + bn−2 · zn−2 + · · ·+ b1 · z + b0zn + an−1 · zn−1 + an−2 · zn−2 + · · ·+ a1 · z + a0

Time-domain solution:

{yk} = C · {Φk} · x0︸ ︷︷ ︸{fk}

+ {C · Φk−1 · Γ +D · δ(k)}︸ ︷︷ ︸{gk}

∗{uk}

75 / 178

Page 76: Digital Implementation of discrete-time Controllers

Stability of discrete-time LTI systems: poles

s =⇒ z = es·T

−10 −8 −6 −4 −2 0 2 4 6 8 10

−10

−8

−6

−4

−2

0

2

4

6

8

10 0.160.340.50.64

0.76

0.86

0.94

0.985

0.160.340.50.64

0.76

0.86

0.94

0.985

2

4

6

8

10

2

4

6

8

10

Root Locus

Real Axis

Imagin

ary

Axis

−1.5 −1 −0.5 0 0.5 1 1.5−1.5

−1

−0.5

0

0.5

1

1.5

0.1π/T

0.2π/T

0.3π/T

0.4π/T0.5π/T

0.6π/T

0.7π/T

0.8π/T

0.9π/T

π/T

0.1π/T

0.2π/T

0.3π/T

0.4π/T0.5π/T

0.6π/T

0.7π/T

0.8π/T

0.9π/T

π/T

0.10.2

0.30.40.50.60.70.80.9

Root Locus

Real Axis

Imagin

ary

Axis

76 / 178

Page 77: Digital Implementation of discrete-time Controllers

Pole positions and step responses

−1 0 1−1

0

1

0 10 200

10

20

p=1

(sec)

−1 0 1−1

0

1

0 10 200

5

p=.8

(sec)

−1 0 1−1

0

1

0 10 200

0.5

1

p=−.8

(sec)

−1 0 1−1

0

1

0 10 200

1

2

p=.5

(sec)

−1 0 1−1

0

1

0 10 200

0.5

1

p=−.5

(sec)

−1 0 1−1

0

1

0 10 200

2

4

p=1+/−j

(sec)

−1 0 1−1

0

1

0 10 20−1

0

1

p=−1+/−j

(sec)

−1 0 1−1

0

1

0 10 200

0.5

1

p=+/−j

(sec)

−1 0 1−1

0

1

0 10 200

0.5

1

p=0

(sec)

−1 0 1−1

0

1

0 10 200

0.5

1

p=−1

(sec)

77 / 178

Page 78: Digital Implementation of discrete-time Controllers

Introduction

Mathematical background

Discrete-time signals

Systems

System properties

Sampled systems

Closed-loop systems

Quantization causes and effects

Remedies against quantization effects

Anti-wind-up measure

Sample rate selection

Implementation issues

78 / 178

Page 79: Digital Implementation of discrete-time Controllers

Control problem

controller processue yr

Given plant G(s), find controller Gc(s) such that closed-loopsystem with transfer function

Gcl(s) =Gc(s) ·G(s)

1 +Gc(s) ·G(s)

satisfies behavior specification

79 / 178

Page 80: Digital Implementation of discrete-time Controllers

Mathematical model of closed-loop sampled system

- -

6

-

-controller

digital

A/D

D/A continuousprocess

digital part analog part

u y

e -e?

E(z)+−

r?

�?

- -- -

QQ

ZOH

y?

u?G(s)

yG?c(s)

Y (z)

T

80 / 178

Page 81: Digital Implementation of discrete-time Controllers

Analysis of mathematical model of sampled systems

d -e?

E(z)+−

r?

�?

- -- -

QQ

ZOH

y?

u?G(s)

yG?c(s)

Y (z)

T

?

�?

�d - - �� --6

�� G(s)y-

processprogrammodel

D/A convmodel

T

y?

conv A/Dmodel

Y (z)ZOHG?c(s)

e?

E(z)

u?

+T

r?

model

Gc(z) =E(z)

U(z)Gcl(z) =

Y (z)

R(z)=

Gc(z) ·G(z)

1 +Gc(z) ·G(z)

81 / 178

Page 82: Digital Implementation of discrete-time Controllers

Stability of closed-loop system: example

U(z)- ##

T

y?

Y (z)

y-

u?

?

�Gc(z)

�?

?

�e -

HHH

6

-��

T

1− e−sT

sG(s)

−+T

r?

y?

G(s) =10

s+ 1⇒ GZOH(z) = 10 · 1− e−T

z − e−TWith Gc(z) = 1 then

Gcl(z) =Gc(z) ·Gzoh(z)

1 +Gc(z) ·Gzoh(z)= 10 · 1− e−T

z − (11 · e−T − 10)

Pole of Gcl(z) is (11 · e−T − 10): it is inside of the unit circle only if

0 < T < log ( 119

)

82 / 178

Page 83: Digital Implementation of discrete-time Controllers

Control implementation: an example

Consider

Gc(z) =E(z)

U(z)=

z + 3

z2 + z + 1

Then

(z2 + z + 1) · U(z) = (z + 3) · E(z)

(1 + z−1 + z−2) · U(z) = (z−1 + 3 · z−2) · E(z)

U(z) + z−1 · U(z) + z−2 · U(z) = z−1 · E(z) + 3 · z−2 · E(z)

{uk}+ {uk−1}+ {uk−2} = {ek−1}+ 3 · {ek−2}

uk + uk−1 + uk−2 = ek−1 + 3 · ek−2

and finally

uk = −uk−1 − uk−2 + ek−1 + 3 · ek−2

83 / 178

Page 84: Digital Implementation of discrete-time Controllers

C-code controller implementation: example

ek 1=0; ek 2=0; uk 1=0; uk 2=0;

while TRUE

{yk=read yk();

ek=yrefk-yk;

uk=-uk 1-uk 2+ek 1+3*ek 2;

write(uk);

uk 2=uk 1; uk 1=uk;

ek 2=ek 1; ek 1=ek;

}

ek 1=0; ek 2=0; uk 1=0; uk 2=0;

while TRUE

{uk=-uk 1-uk 2+ek 1+3*ek 2;

yk=read yk();

write(uk);

ek=yrefk-yk;

uk 2=uk 1; uk 1=uk;

ek 2=ek 1; ek 1=ek;

}

Minimize control delay!

84 / 178

Page 85: Digital Implementation of discrete-time Controllers

C-code controller implementation: example

ek 1=0; ek 2=0; uk 1=0; uk 2=0;

while TRUE

{yk=read yk();

ek=yrefk-yk;

uk=-uk 1-uk 2+ek 1+3*ek 2;

write(uk);

uk 2=uk 1; uk 1=uk;

ek 2=ek 1; ek 1=ek;

}

ek 1=0; ek 2=0; uk 1=0; uk 2=0;

while TRUE

{uk=-uk 1-uk 2+ek 1+3*ek 2;

yk=read yk();

write(uk);

ek=yrefk-yk;

uk 2=uk 1; uk 1=uk;

ek 2=ek 1; ek 1=ek;

}

Minimize control delay!

84 / 178

Page 86: Digital Implementation of discrete-time Controllers

Control design

I Controller designed in continuous-time domain and thentransformed to discrete-time domain

I Controller designed in discrete-time domain

85 / 178

Page 87: Digital Implementation of discrete-time Controllers

Discrete-time approximation of PID controllers

Gc(s) = P +I

s+D · s

I Approximated transfer function Gc(z) = P + I · T ·zz−1 +D · z−1T ·z

uk = uk−1 + (P + I · T +DT

) · ek − (P + 2 ·DT

) · ek−1 +DT·ek−2

I Approximation with explicit integral termxk = xk−1 + I · T · ek

uk = P · ek + xk +D

T· (ek − ek−1)

86 / 178

Page 88: Digital Implementation of discrete-time Controllers

Discrete-time approximation with frequency prewarping

Trasformations z = 2+T ·ω2−T ·ω and ω = 2

Tz−1z+1

G(s)-

c2d(...,′zoh′)GZOH(z)

-d2c(...,′tustin′)

G(w)-

Gc(w)-

c2d(...,′tustin′)Gc(z)

Stretching of frequency band [−ωs, ωs] onto whole s-plane

87 / 178

Page 89: Digital Implementation of discrete-time Controllers

Frequency prewarping: example

1. G(s) = 1s

2. Gzoh(z) = T(z−1)

3. Gzoh(w) = T( 2+Tw2−Tw−1)

= T (2−Tw)(2+Tw)−(2−Tw) = T (2−Tw)

2Tw = 2−Tw2w

Gc(w) = KP , pole at −b

4. Gcl(w) = Gc(w)·Gzoh(w)1+Gc(w)·Gzoh(w) =

KP2−Tw2w

1+KP2−Tw2w

= KP (2−Tw)2w+KP (2−Tw)

5. 2KP2−KP ·T = b ⇒ 2KP = 2 · b− b ·KP · T ⇒ KP = 2·b

2+b·T

6. Gc(w) = 2·b2+b·T ⇒ Gc(z) = 2·b

2+b·T

88 / 178

Page 90: Digital Implementation of discrete-time Controllers

Frequency prewarping: example

I Discrete-time Euler approximation

I Discrete-time Tustin approximation

I Discrete-time design

89 / 178

Page 91: Digital Implementation of discrete-time Controllers

Controller design with polynomial controller

Given Plant

GZOH(z) =N(z)

D(z)=bn · zn + bn−1 · zn−1 + bn−2 · zn−2 + · · ·+ b1 · z + b0zn + an−1 · zn−1 + an−2 · zn−2 + · · ·+ a1 · z + a0

Assume controller of the form

Gc(z) =NC(z)

DC(z)=bm · zm + bm−1 · zm−1 + bm−2 · zm−2 + · · ·+ b1 · z + b0zm + am−1 · zm−1 + am−2 · zm−2 + · · ·+ a1 · z + a0

Then

Gcl(z) =Gc(z) ·GZOH(z)

1 +Gc(z) ·GZOH(z)=

NC(z) ·N(z)

NC(z) ·N(z) +DC(z) ·D(z)

If n+m ≤ 2 ·m+ 1 (i.e. m ≥ n− 1) the we can place all poles ofthe closed-loop system.

90 / 178

Page 92: Digital Implementation of discrete-time Controllers

Pole assignment: state-feedback controller

If system satifies a property called controllability

cc -

6- -- -?-

6-

-

z−1 CΓ+

+xk yk

+

+rk+ −

K

D

uk

State feedback with uk = rk −K · xk yields{xk+1 = Φ·xk + Γ·uk = (Φ− Γ·K)·xk + Γ·rkyk = C ·xk +D ·uk = (C −D ·K)·xk +D·rk

Any chosen set of closed-loop poles can be obtained throughappropriate matrix K.

91 / 178

Page 93: Digital Implementation of discrete-time Controllers

Observer/Estimator

If system satifies a property called observability

d d-

6- -

���-

-

-?d6

xk - �z−1 C+

L

D+

+

towards controller

yk+−

ykxk+1uk

Output error feedback with L yields state error system

(ex)k+1 = (Φ− L · C) · (ex)k

Any chosen set of poles for the error system can be obtainedthrough appropriate matrix L.

92 / 178

Page 94: Digital Implementation of discrete-time Controllers

Closed-loop system with discrete-time observer

Φ

d

d d d

d -

6

- - -? -

-

-

-

-

-

6

-

���

-?-

-

6

-

1z CΓ

++

xk yk+

+

Φ

D

uk

C+

+

L

D

+

+

yk+−

yk

+

K

rk

xkxk+1

uk

1z

d

93 / 178

Page 95: Digital Implementation of discrete-time Controllers

State-feedback controller with static error compensartion

d dd- --6

-

6- -- -?-

6

d T

z − 1-

-

−+rk −Ke z−1 CΓ

++

xk yk+

+

Φ

K

D

uk

−+

Controller forextended system Φext =

[Φ 0

−C · T 1

]Γext =

−D · T

]

94 / 178

Page 96: Digital Implementation of discrete-time Controllers

Discrete-time controllers: design or approximations?

GZOH(z)

continuous-time

Gc(s)discrete-time approximation

discrete-time modelling

discrete-timedesign

Gc(z)

G(w)

G(s)

Gc(w)

design

����������9

-

-

?

XXXXXXXXXXz?

?

95 / 178

Page 97: Digital Implementation of discrete-time Controllers

Introduction

Mathematical background

Discrete-time signals

Systems

System properties

Sampled systems

Closed-loop systems

Quantization causes and effects

Remedies against quantization effects

Anti-wind-up measure

Sample rate selection

Implementation issues

96 / 178

Page 98: Digital Implementation of discrete-time Controllers

Sources of quantization errors

I Arithmetic operations

I Coefficient quantization

I Converter resolution

97 / 178

Page 99: Digital Implementation of discrete-time Controllers

Fixed-point arithmetic

N =

n−1∑j=−m

bj · 2j = (bn−1 . . . b0.b−1b−2 . . . b−m)2 with bj ∈ {0, 1}

Example

1101.0102 = 1·23+1·22+0·21+1·20+0·2−1+1·2−2+1·2−3 = 13.625

C + 1 bit normalized representation with fictitious binary point

98 / 178

Page 100: Digital Implementation of discrete-time Controllers

Q-Format representation

General representation with I bits for integer part (QI), F bits forfractional part (QF ) and additional bit for sign

L = QI +QF + 1

C+1 bit normalized representation is Q0.C

Example: Consider the 4-bit representation Q0.3 (one sign bit and3 bits for the fractional part).

0.875 = .111Q0.3 0.5 = .100Q0.3

.111Q0.3 × .100Q0.3 = .011Q0.3 = 0.375

(Note: 0.875× 0.5 = 0.4375)

99 / 178

Page 101: Digital Implementation of discrete-time Controllers

Representation of signed numbers in fixed-point arithmetic

C + 1 bit normalized representation: word length C

I signed magnitude: number positive if b0 = 0, otherwisenegative

N = (−1)b0 ·∑C

i=1 bi · 2−i 0.75 = 0.112, −0.75 = 1.112

I one’s complement: complement of bits if negative

N = −b0·(2−C−1)+∑C

i=1 bi·2−i 0.75 = 0.112, −0.75 = 1.002

I two’s complement: complement bits and add 1 to LSB

N = −b0 +∑C

i=1 bi · 2−i 0.75 = 0.112, −0.75 = 1.012

Two’s complement is most popular(simpler computing architectures)

100 / 178

Page 102: Digital Implementation of discrete-time Controllers

Fixed-point arithmetic quantizazion error

Truncation error

a) signed magnitude and one’s complement

−2−C < e ≤ 0, x ≥ 00 ≤ e < 2−C , x < 0

b) two’s complement

−2−C < e ≤ 0

Rounding error

c) signed magnitude, one’s complement andtwo’s complement

−2−C

2 ≤ e < 2−C

2

101 / 178

Page 103: Digital Implementation of discrete-time Controllers

Quantization in fixed-point arithmetic operations

Quantization in operation

I multiplication: quantization introduced

I addition: no quantization introduced

→ Attention to overflow with addition(no overflow with multiplication in C + 1 normalizedrepresentation)

102 / 178

Page 104: Digital Implementation of discrete-time Controllers

Floating-point arithmetic

Mantissa M and exponent E are fixed-point numbers

N = M × 2E

Mantissa has normalized representation (0.5 ≤M < 1)

exponent

. . .. . .

sign bitsign bit

mantissa

? ?

� -� -

Example IEEE 754 single precision format: mantissa 23+1 bits,exponent 7+1 bits

103 / 178

Page 105: Digital Implementation of discrete-time Controllers

Floating-point arithmetic quantizazion errorError is relative: only M is quantized (no quantization in E)

Q(x) = (1 + er) · x

Truncation error

a) signed magnitude and one’s complement

−2 · 2−C < er ≤ 0

b) two’s complement

−2 · 2−C < er ≤ 0, x ≥ 00 ≤ er < 2 · 2−C , x < 0

Rounding error

c) signed magnitude, one’s complement and two’s complement

−2−C ≤ er ≤ 2−C

104 / 178

Page 106: Digital Implementation of discrete-time Controllers

Quantization in floating-point arithmetic operations

Quantization in operation

I multiplication: quantization through rounding or truncation ofmantissa M

M1 · 2E1 ·M2 · 2E2 = (M1 ·M2) · 2(E1+E2)

I addition: quantization through rounding or truncation ofmantissa M

M1 ·2E1 +M2 ·2E2 = M1 ·2E1 +M2

2E1−E2︸ ︷︷ ︸M ′2

·2E1 = (M1+M ′2)·2E1

M2 is shifted to the right by E1 − E2 bits (E1 > E2)

→ Attention to overflow with addition

105 / 178

Page 107: Digital Implementation of discrete-time Controllers

Roundoff of parameters: Choice of representation

Pole p = 0.995 ⇒ 0.5% error(almost LSB of 8 bits leads to instability)

Alternative representation:

Pole p = 1− 0.005 ⇒ Low accuracy needed

106 / 178

Page 108: Digital Implementation of discrete-time Controllers

Roundoff of parameters

Consider fourth-order transfer function [?]

H(z) =z3 + 1.584z2 + 1.2769z + 0.5642

z4 + 2.689z3 + 3.3774z2 + 2.3823z + 0.6942

Two complex poles at 0.4965± j · 0.8663.Quantization with 3 fractional bits (Q0.3)

H(z) =z3 + 1.5z2 + 1.25z + 0.5

z4 + 2.625z3 + 3.375z2 + 2.375z + 0.625

leads to two poles at 1.08!

107 / 178

Page 109: Digital Implementation of discrete-time Controllers

Roundoff of parameters: SensitivityConsider characteristic polynomial P (pj , αk) = 0

P (pj + δpj , αk + δαk) = 0 ≈ P (pj , αk)︸ ︷︷ ︸0

+∂P

∂z

∣∣∣∣z=pj

· δpj +∂P

∂αk· δαk

0 ≈ ∂P

∂z

∣∣∣∣z=pj

· δpj +∂P

∂αk· δαk

Then the following holds:

δpj ≈ −∂P/∂αk∂P/∂z

∣∣∣∣z=pj

· δαk

Example: for characteristic polynomial

P (z, αk) =∏nl=1(z− pl) = P (z, αk) = zn +α1 · zn−1 + . . . +αn

⇒ δpj = −pn−kj∏

l 6=j(pj − pl)· δαk (most sensitive parameter?)

108 / 178

Page 110: Digital Implementation of discrete-time Controllers

Good representations of controller “filters”

Parallel (or modal) realization

e

-

-

-

- -

6

?

1st or 2nd

order

...

order

order

1st or 2nd

1st or 2nd

Serial realization

order order- -- -1st or 2nd

order

1st or 2nd 1st or 2nd

109 / 178

Page 111: Digital Implementation of discrete-time Controllers

Good representations (2)

First order subsystem Second order subsystem

H1(z) = 1+β1·z−1

1−α1·z−1 H2(z) = 1+β1·z−1+β2·z−2

1−α1·z−1−α2·z−2

z

1

beta1alpha1

y(k)u(k)

z

1

z

1

beta1alpha1

beta2alpha2

y(k)u(k)

110 / 178

Page 112: Digital Implementation of discrete-time Controllers

A/D converter quantization

?

?

+

T

xq(k)x(k)x(t)

�� - -?

�� - -

T

e(k)

xq(k)x(t) x(k)

+ e

6-

Assume noise is uniformly distributed over quantization interval

I Rounding with step q = 2−nbits : E(e2) = q2

12

I Truncation with step q = 2−nbits : E(e2) = q2

3

111 / 178

Page 113: Digital Implementation of discrete-time Controllers

A/D Signal-to-noise ratio

Input sequence x with zero mean, with unity level as a 3σ event(range=[-1,1], σ = 1

3)

E(x2) =

(1

3

)2

=1

9

The signal-to-noise ratio is given by

(S/N)dB = 10 · log10

σ(x)

σ(e)

leading to the minimal number of bits of the A/D converter withrounding quantization:

nbits ≥(S/N)dB + log10(3

4)

log10(4)

112 / 178

Page 114: Digital Implementation of discrete-time Controllers

Limit cycles and dither

Example from [?].

xk+1 = α · xk, α < 1⇓

xk+1 = Q(α · xk), α < 1

α · k · q︸︷︷︸x

≥ k · q − q/2

⇓k · q ≥ 1

2q

1−α

-?

-

?

-

-

...............................................................................................................

...................................................

6

?

� -

� -

6

................................................................................................

?

6

6

............................................................................................................................................................

6

?����������������

α·x

k ·q

k ·q − q/2α·k ·q

x3, x4, . . .

x2

x1

slope 1/αx

q

α · x1α · x2

113 / 178

Page 115: Digital Implementation of discrete-time Controllers

Limit cycles and dither (2)

a1 = −1.78, a2 = 0.9

I oscillation with amplitude δy = 12

q1−α . For q = 0.1 amplitude

δy = 0.5 (5 times quantization)

I high frequency signal (dither) of amplitude 3q beforequantization

114 / 178

Page 116: Digital Implementation of discrete-time Controllers

Limit cycles and dither (3)

0 20 40 60 80 100 120 140−4

−2

0

2

4

6q=0 and q=0.1 showing limit cycle (no dither)

0 20 40 60 80 100 120 140−4

−2

0

2

4

6q=0 and q=0.1 showing reduced limit cycle for dither=4q

115 / 178

Page 117: Digital Implementation of discrete-time Controllers

Propagation of quantization errors

c- -����

-- -����

?-u y =⇒ u yε

-+

xqxx xq

x = xq + ε

Y (z) = H(z) · U(z)−Hq(z) · E(z, x)

Hq(z) is tf from quantization error to output. Error at output is

∆Y (z) = Y (z)− Y (z) = Hq(z) · E(z, x)

and in the time domain

δyn =n∑k=0

hqk · εn−k(x).

116 / 178

Page 118: Digital Implementation of discrete-time Controllers

Worst-case quantization error

|δyn| =

∣∣∣∣∣∞∑k=0

hqkεn−k

∣∣∣∣∣ ≤∞∑k=0

∣∣hqkεn−k∣∣ =

∞∑k=0

∣∣hqk∣∣ |εn−k| ≤ ∞∑k=0

∣∣hqk∣∣·q2|δyn| ≤

q

2·∞∑k=0

∣∣hqk∣∣ ∀n

117 / 178

Page 119: Digital Implementation of discrete-time Controllers

Worst-case quantization error (2)

Multiple sources

|δyn| ≤m∑j=0

qj2·∞∑k=0

∣∣∣hqk,j∣∣∣ ∀n

Example:

Hq(z) =1

z − α⇒ |δyn| ≤

q

2· 1

1− |α|∀n

118 / 178

Page 120: Digital Implementation of discrete-time Controllers

Steady-state quantization error

δy∞ = limn→∞

δyn = limn→∞

∞∑k=0

hqkεn−k(x) =

∞∑k=0

hqkε∞

|δy∞| =

∣∣∣∣∣∞∑k=0

hqk

∣∣∣∣∣ · ε∞ ≤∣∣∣∣∣∞∑k=0

hqk

∣∣∣∣∣ · q2 = |Hq(1)| · q2

119 / 178

Page 121: Digital Implementation of discrete-time Controllers

Steady-state quantization error

0 5 10 15 20 25 30−2

0

2

convolution between e and h for t=10s

0 5 10 15 20 25 30−2

0

2convolution between e and h for t=20s

0 5 10 15 20 25 30−2

0

2

convolution between e and h for t=30s

120 / 178

Page 122: Digital Implementation of discrete-time Controllers

Steady state quantization error (2)

Multiple sources

|δy∞| ≤m∑j=0

qj2·∣∣∣Hq

j (1)∣∣∣

Example:

Hq(z) =1

z − α⇒ |δy∞| ≤

q

2· 1

1− α

121 / 178

Page 123: Digital Implementation of discrete-time Controllers

Stochastic quantization error estimate

Consider uniformly distributed error − q2 ≤ ε ≤

q2 . Approximate ε

with white noise w (same zero mean and variance σ2 = q2/12).

Rw(k) =

q2

12k = 0

0 k 6= 0

Then

σ2δyn =

q2

12·∞∑k=0

(hq(k))2

122 / 178

Page 124: Digital Implementation of discrete-time Controllers

Stochastic quantization error estimate

Multiple sources

σ2δyn =

m∑j=0

q2j

12·∞∑k=0

(hqj(k))2

Example:

Hq(z) =1

z − α⇒ σδyn = q ·

√1

12(1− α2)

123 / 178

Page 125: Digital Implementation of discrete-time Controllers

Stochastic quantization error estimate: proof 1Remind that the spectrum of a signal s is

Ss(z) = Z(Rs(k))

and thatSδy(z) = Hq(z)Hq(z−1)Sw(z)

then

Rδy = Z−1(Sδy(z)) = Z−1(Hq(z)Hq(z−1)Sw(z))

If s is white noise then

Sw(z) = Z(Rw) = Z

( ∞∑k=−∞

Rw(k)z−k

)= Rw(0) =

q2

12

Rδy = Z−1(Hq(z)Hq(z−1))q2

12⇒ σ2

δy = Rδy(0)

124 / 178

Page 126: Digital Implementation of discrete-time Controllers

Stochastic quantization error estimate: proof 2

E(δy2n(k)) = E

(k∑

m=0

hq(m) · w(k −m)

(k∑

n=0

hq(n) · w(k − n)

)=

∑km=0

∑kn=0 h

q(m) · hq(n) · E (w(k − n) · w(k −m))

ButE(w(k −m) · w(k − n)) = E(w2) · δ(m− n)

Then

E(δy2n(k)) = E(w2) ·

k∑m=0

(hq(m))2

and for k approaching infinity

σ2δyn =

q2

12·∞∑m=0

(hq(m))2

125 / 178

Page 127: Digital Implementation of discrete-time Controllers

Comparison between different quantization error measures

z + 1

z2 − 2z cosα+ r2, r = 0.9 (from [?])

0 50 100 1500

2

4

6

8

10

12Fig. 10.5 2nd order Bound x, steady state + and rms error o

alpha

norm

aliz

ed q

uantization e

rror

126 / 178

Page 128: Digital Implementation of discrete-time Controllers

Introduction

Mathematical background

Discrete-time signals

Systems

System properties

Sampled systems

Closed-loop systems

Quantization causes and effects

Remedies against quantization effects

Anti-wind-up measure

Sample rate selection

Implementation issues

127 / 178

Page 129: Digital Implementation of discrete-time Controllers

The δ operator

Consider known shift operator q defined by

q xk := xk+1

The sampling-time dependent δT operator is defined as

δT :=q− 1

T

which gives

δT xk =xk+1 − xk

T

Note:

limT→0

δT xk =d

dtx(t)

∣∣∣∣t=k·T

128 / 178

Page 130: Digital Implementation of discrete-time Controllers

The δ transform

Transform can be introduced with corresponding complex variableγ defined as

γ =z − 1

T

Region of converge:

s z γ

1 2/T 1/T

Note that poles close to 1 in z become close to 0 in γ.

129 / 178

Page 131: Digital Implementation of discrete-time Controllers

Implementation with state-space form

Consider standard state-space representation{qxk = Φ · xk + Γ · ukyk = C · xk +D · uk

New state-space representation with δT operator is{δTxk = ΦδT · xk + ΓδT · ukyk = C · xk +D · uk

where ΦδT = Φ−IT and ΓδT = Γ

T

130 / 178

Page 132: Digital Implementation of discrete-time Controllers

Next-state expression in state-space form

The next state expressed in function of previous state is{xk+1 = xk + T · ΦδT · xk +T · ΓδT · ukyk = C · xk +D · uk

or {xk+1 = xk + (Φ− I) · xk +Γ · ukyk = C · xk +D · uk

⇒ New matrix Φ− Ieigenvalues at λ− 1 for each eigenvalue λ of Φ.

131 / 178

Page 133: Digital Implementation of discrete-time Controllers

Implementation with transfer function

Given controller transfer function C(z), replace z with

z = T · γ + 1

to obtain C(γ).

Implement new “delay” element γ−1 as follows

e-- -γ−1 ⇔ z−1T--

6

-

132 / 178

Page 134: Digital Implementation of discrete-time Controllers

Implementation exampleGiven is the transfer function

C(z) =z

z − a

Then new transfer function

C(γ) =(γ · T + 1)

(γ · T + 1)− a=

γ + 1T

γ + 1−aT

with pole is at γ = a−1T .

-

cc

-6

-

c

z−1

T

1T

a−1T

a−1T

6-

a

z−1

c c-

6-

γ−1

1T

c

-

6-

-

6-

��-

??�-

?

??

133 / 178

Page 135: Digital Implementation of discrete-time Controllers

Feedback of quantization noise

Filter quantization error, and feedb it back in front of quantizer.Noise distribution in frequency can be altered (very useful inacoustics)

+

Filter−

134 / 178

Page 136: Digital Implementation of discrete-time Controllers

Scaling of variables

Many techniques exist. In the simplest case of a linear algorithm, anode can be scaled by

I multiplying all incoming values by K

I dividing the outgooing value by K

The node value will be increased by K

135 / 178

Page 137: Digital Implementation of discrete-time Controllers

Introduction

Mathematical background

Discrete-time signals

Systems

System properties

Sampled systems

Closed-loop systems

Quantization causes and effects

Remedies against quantization effects

Anti-wind-up measure

Sample rate selection

Implementation issues

136 / 178

Page 138: Digital Implementation of discrete-time Controllers

The wind-up phenomenon

Saturated actuated (limited actuation voltage, limited flow, etc.)leads to output overshoot.

0 0.01 0.02 0.03 0.04 0.050

50

100

150

200

250

300

350

400

450

500

actuation

none

saturation

AWup measure

0 0.01 0.02 0.03 0.04 0.050

50

100

150

200

250

300

350

400

450

500

output

none

saturation

AWup measure

Cases: without saturation, with saturation and with saturationtogether with anti-wind-up measure

137 / 178

Page 139: Digital Implementation of discrete-time Controllers

PID controller with anti-wind-up measure inspired fromanalog solution

Integral value is “counter-integrated” in presence of saturation

u

1

Saturation

Kaw

Kd

Kp

Discrete−timederivator

z−1

ts.z

Discrete−TimeIntegrator

K Ts

z−1Ki

e

1

138 / 178

Page 140: Digital Implementation of discrete-time Controllers

Anti-wind-up trough saturated feedback and FIR filterimplementation

All signals bounded in solution with FIR filter in feedbackN(z) and D(z) are numerator and denominator polynomials in z−1

u

2

u

1

Saturation

Saturation

N(z)

D(z)

1−D(z)

1

N(z)

1e

2

e

1

139 / 178

Page 141: Digital Implementation of discrete-time Controllers

Anti-wind-up trough saturated feedback for state-feedbackcontrollers

All signals bounded in solution with FIR filter in feedback

u

1

Saturation 1

Ny(z)

11−D(z)

1

Nr(z)

1

y

2

ref

1

140 / 178

Page 142: Digital Implementation of discrete-time Controllers

Anti-wind-up with FIR filter and low-pass filter

If anti-wind-up measure is too fast (actuation jumps from boundto bound), slow down wind-up dynamics with low-pass filter F (z)

F (z) is polynomial in z−1 with well stable poles (no further energystored) Case F (z) = 1 corresponds to case without low-pass filter.

Same idea can be applied to state-feedback controllerimplementation

u

1

F(z)−D(z)

F(z)

N(z)

F(z) e

1

141 / 178

Page 143: Digital Implementation of discrete-time Controllers

Introduction

Mathematical background

Discrete-time signals

Systems

System properties

Sampled systems

Closed-loop systems

Quantization causes and effects

Remedies against quantization effects

Anti-wind-up measure

Sample rate selection

Implementation issues

142 / 178

Page 144: Digital Implementation of discrete-time Controllers

Fast/slow sampling?

High frequency

I Better performance

I cost of design-to-costavoided

Low frequency

I lower cost components

I more time for complexalgorithms

Lowest frequency that meets specifications!

143 / 178

Page 145: Digital Implementation of discrete-time Controllers

Frequency glossary

ωs : Sampling frequency

ωb : Closed-loop bandwidth

ωr : Open-loop resonance frequency

−40

−20

0

20

40

Magnitude (

dB

)

10−1

100

101

−180

−135

−90

−45

0

Phase (

deg)

Bode Diagram

Frequency (rad/sec)

ωr

ωb

ωs

144 / 178

Page 146: Digital Implementation of discrete-time Controllers

Sampling theorem’s limits

d -e?

E(z)+−

r?

�?

- -- -

QQ

ZOH

y?

u?G(s)

yG?c(s)

Y (z)

T

Reconstruction of time-domain signals from r? → y?

ωsωb

> 2

Condition on CLOSED-LOOP bandwidth!

145 / 178

Page 147: Digital Implementation of discrete-time Controllers

Sampling theorem’s limits

Open-loop frequencies may be higher than sampling frequency (apriori knowledge)!

Cost:

I Higher error sensitivities if ωsωr< 2

I Accuracy of high-frequency dynamics function of samplingfrequency

146 / 178

Page 148: Digital Implementation of discrete-time Controllers

SmoothnessDepending on application (human involvement, mechanical stress)

6 ≤ ωsωb≤ 40

0 2 4 6 8−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

OU

TP

UT

S

Wb*t (rad)

11.3 (a) Ws/Wb = 4

−−o−− X1

−−x−− X2

−−−−− U/4

0 2 4 6 8−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

OU

TP

UT

S

Wb*t (rad)

11.3 (b) Ws/Wb = 8

−−o−− X1

−−x−− X2

−−−−− U/4

0 2 4 6 8−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

OU

TP

UT

S

Wb*t (rad)

11.3 (c) Ws/Wb = 20

−−o−− X1

−−x−− X2

−−−−− U/4

0 2 4 6 8−0.4

−0.2

0

0.2

0.4

0.6

0.8

1O

UT

PU

TS

Wb*t (rad)

11.3 (d) Ws/Wb = 40

−−o−− X1

−−x−− X2

−−−−− U/4

147 / 178

Page 149: Digital Implementation of discrete-time Controllers

Delay

For humans, delay < 10% of rise time

⇒ ωsωb

> 20

Example: ωb = 1rad/sRise time 3s

Sampling time 0.3sfs = 3.3Hz, ωs = rad/s

0 2 4 6 8−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

OU

TP

UT

S

Wb*t (rad)

11.3 (a) Ws/Wb = 4

−−o−− X1

−−x−− X2

−−−−− U/4

0 2 4 6 8−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

OU

TP

UT

S

Wb*t (rad)

11.3 (b) Ws/Wb = 8

−−o−− X1

−−x−− X2

−−−−− U/4

0 2 4 6 8−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

OU

TP

UT

S

Wb*t (rad)

11.3 (c) Ws/Wb = 20

−−o−− X1

−−x−− X2

−−−−− U/4

0 2 4 6 8−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

OU

TP

UT

S

Wb*t (rad)

11.3 (d) Ws/Wb = 40

−−o−− X1

−−x−− X2

−−−−− U/4

148 / 178

Page 150: Digital Implementation of discrete-time Controllers

Sensitivity wrt random plant disturbances

Sometime “the” critierion for sample rate selection

Degrading wrtcontinuous-time system

Example:

100

101

102

1

1.2

1.4

1.6

1.8

2

2.2

2.4

2.6

2.8

3Fig. 11.5

SAMPLING MULTIPLE, Ws/Wb

DIS

CR

ET

E/C

ON

TIN

UO

US

R

MS

⇒ ωsωb

> 20

149 / 178

Page 151: Digital Implementation of discrete-time Controllers

Disturbance sensitivity with observer and quantization

Quantization worsens disturbance sensitivity

Degrading wrtcontinuous-time system

Same example:

100

101

102

1

1.2

1.4

1.6

1.8

2

2.2

2.4

2.6

2.8

3Fig. 11.6

Sampling multiple, Ws/Wb

Dis

cre

te/c

ontin

uo

us

RM

S

−−−−−−−−− no quantization

−x−−x−−x− 9 bit word size

−*−−*−−*− 8 bit word size

−o−−o−−o− 7 bit word size

⇒ ωsωb

> 20

150 / 178

Page 152: Digital Implementation of discrete-time Controllers

Disturbance sensitivity with resonances frequency higherthan sampling frequency

Resonance frequency increases noise level

Same example:given ωr

ωb> 6

100

101

102

1

1.2

1.4

1.6

1.8

2

2.2

2.4

2.6

2.8

3Fig. 11.7

DIS

CR

ET

E/C

ON

TIN

UO

US

R

MS

Plant damping

−o−−o− zeta = 0

−*−−*− zeta=0.02

SAMPLING MULTIPLE, Ws/Wb2ω

rωr

ωr/2

⇒ ωsωr

> 2

151 / 178

Page 153: Digital Implementation of discrete-time Controllers

Sensitivity to parameter variations

Separation principle for matched systemsConsider whole system with plant and controller/observer[xk+1

xk+1

]=

Φcl︷ ︸︸ ︷[Φ −Γ ·K

L · C Φ− L · C − Γ ·K

]·[xkxk

]+

[ΓΓ

]· uk

yk+1 = C · xk

Then characteristic polyonmial |zI − Φcl| = 0 gives∣∣∣∣ z · I − Φ Γ ·K−L · C z · I − Φ + L · C + Γ ·K

∣∣∣∣ = 0

⇓|z · I − Φ + Γ ·K| |z · I − Φ + L · C| = 0

proving the separation principle.

152 / 178

Page 154: Digital Implementation of discrete-time Controllers

Sensitivity to unprecisely known process parameters

Assume model used for controller and observer design is

(Φ,Γ, C,D) 6= (Φ, Γ, C, D)

Then ∣∣∣∣ z · I − Φ Γ ·K−L · C z · I − Φ + L · C + Γ ·K

∣∣∣∣ = 0

⇓|z · I − Φ + Γ ·K|

∣∣∣z · I − Φ + L · C∣∣∣ 6= 0

for at least some designed controller and observer poles

153 / 178

Page 155: Digital Implementation of discrete-time Controllers

Sensitivity to parameter variationsExample: aircraft with fuselage bendingPlant: λ = −2± j13.5 and bending mode with ξ = 0.01 andωr = 25 rad/s.Objective: rigid body motion: s = −16± j10 (notch for bendingmode)

Robust methods

improvements with higher f

154 / 178

Page 156: Digital Implementation of discrete-time Controllers

Measurement noise and antialiasing filters

Same example: 1Hz fundamental +60Hz noise sampled at 28Hz

0 0.5 1 1.5 2−1.5

−1

−0.5

0

0.5

1

1.5Fig. 11.12, (a) signal + noise

time (sec)0 0.5 1 1.5 2

−1.5

−1

−0.5

0

0.5

1

1.5(c) prefiltered (a)

time (sec)

0 0.5 1 1.5 2−1.5

−1

−0.5

0

0.5

1

1.5(b) 28 Hz sampled (a)

time (sec)0 0.5 1 1.5 2

−1.5

−1

−0.5

0

0.5

1

1.5(d) 28 Hz sampled (c)

time (sec)

155 / 178

Page 157: Digital Implementation of discrete-time Controllers

Measurement noise and antialiasing filtersSame example: use of 1st order filter ωp

100

101

102

103

1

1.2

1.4

1.6

1.8

2

2.2

2.4

2.6

2.8

3Fig. 11.13

SAMPLING MULTIPLE, Ws/Wb

DIS

CR

ET

E/C

ON

TIN

UO

US

R

MS

−o−−−−o− Wp/Wb = 20

−*−−−−*− Wp/Wb = 10

−+−−−−+− Wp/Wb = 5

−x−−−−x− Wp/Wb = 2

⇒ ωsωb

= 25 for 20% degrading

156 / 178

Page 158: Digital Implementation of discrete-time Controllers

Noise and prefilters

Example of second order system with noise (homework!)

0 10 20 30 40 50 60 70 80 90 100

0

0.5

1no n

ois

e

0 10 20 30 40 50 60 70 80 90 100

0

0.5

1

nois

e

0 10 20 30 40 50 60 70 80 90 100

0

0.5

1

w. filter

0 10 20 30 40 50 60 70 80 90 100

0

0.5

1

syste

m+

filter

157 / 178

Page 159: Digital Implementation of discrete-time Controllers

Measurement noise and antialiasing filters: Conclusions

ue -e?

E(z)+−

r?

�?

- - - -

6

QQ

u?Gc(z) G(s) Filter

y

T

YF (z)

ZOH

y?F

-

1. Prefilter useful (if bandwidth of noise is close to closed-loopbandwidth)

2. Place prefilter before the A/D conversion (analog filter!)

3. Prefilter bandwidth close to closed-loop bandwidthωpωb≈ 2

4. Include prefilter in plant model before controller design

158 / 178

Page 160: Digital Implementation of discrete-time Controllers

Multirate sampling

159 / 178

Page 161: Digital Implementation of discrete-time Controllers

Multirate sampling: Small and large cart with spring andforces on the two carts

Same computation power(9Hz+71Hz MR vs. 40Hz SR)

Noise on small cart Noise on large chart

160 / 178

Page 162: Digital Implementation of discrete-time Controllers

Introduction

Mathematical background

Discrete-time signals

Systems

System properties

Sampled systems

Closed-loop systems

Quantization causes and effects

Remedies against quantization effects

Anti-wind-up measure

Sample rate selection

Implementation issues

161 / 178

Page 163: Digital Implementation of discrete-time Controllers

Control Hardware

I Power speed x word length x instruction power

I ALU (all basic operations) + MAC (multipl.+addition)

I Instruction set (fixed/floating point arithmetics, dedicatedinstruction set)

I benchmarksI whetstone: fortran floating pointI dhrystone: integer processesI SPEC

I Addressing: direct, indirect, immediate, relative, circular, ...

I I/O: lines vs. I/O space

I EDC: parity on data, on data/addresses (CD), data and HWredundancy, correction, watch-dogs

I Interrupts: from inputs, from A/D converters, ...

I ROM, RAM, PROM, EPROM, EEPROM.

162 / 178

Page 164: Digital Implementation of discrete-time Controllers

Requirements on DSP/DSC

Parameter Processor type

General Signal ControlSpeed Slow to fast Fast FastMAC Seldom Always AlwaysInstruction length RISC to complex Simple, math Simple, mathWord length Small to large Medium to large Medium to largeMemory size Small to large Small to medium SmallAddressing mode Many complex Simple & circular SimpleI/O Separate, large Integral, small Integral, smallEDC None to parity None, parity, ECC None to ECC

163 / 178

Page 165: Digital Implementation of discrete-time Controllers

Typical architectures

I Harvard architecture:I separate data and program memoryI separate program address bus (PAB) and program data bus

(PDB)I separate data address bus (XAB) and data bus (XDB)I high pin count

I Extended Harvard architecture:I Multiple data buses (X/Y)

I Modified Harvard architecture:I Common program and data buses

164 / 178

Page 166: Digital Implementation of discrete-time Controllers

Example: Extended Harvard Architecture

I Data bus and program data bus

I Address bus and program address bus

Freescale DSP56K

165 / 178

Page 167: Digital Implementation of discrete-time Controllers

Example: Amba buses

I AHB(Advanced High Performance Bus)I Connect between high-performance system modules

I ASB(Advanced System Bus)I Subset of AHB

I APB(Advanced Peripheral Bus)I Simple interface for low-performance peripherals

166 / 178

Page 168: Digital Implementation of discrete-time Controllers

Example: Multiplier Accumulator/Logic Unitc (MAC)

167 / 178

Page 169: Digital Implementation of discrete-time Controllers

Addressing mode

LD R, #5430 Immediate (load #5430 in register)

LD R, $500F Direct (load value in 500F)

LD R, ($500F) Indirect (load value in address found in 500F)

LD R, $500F, M2 Relative indexed

LD R, $500F, M2+ Relative

168 / 178

Page 170: Digital Implementation of discrete-time Controllers

Floating points versus fixed point

Floating point

I Dynamic range

I Development time

Fixed point

I Speed

I Simple implementation

I Less storage

I Less consumption

I Product cost

I Simple error analysis

(Consult spry061.pdf of TI)

169 / 178

Page 171: Digital Implementation of discrete-time Controllers

Interfaces

I ADC, DAC

I Digital I/Os

I PWM I/O

I SV PWM I/O

I Encoders (QUAD)

I sin/cos interfaces

170 / 178

Page 172: Digital Implementation of discrete-time Controllers

Converters

I Resolution

I Range

I Slew rate at output (D/A)

I Conversion time (A/D), settling time (D/A)

I Code, offset

I Linearity, repeatability

I Conversion signal

I Digital interface

171 / 178

Page 173: Digital Implementation of discrete-time Controllers

Sample and holds

I Capacitance value: trade-off between bandwidth ↓, samplingaccuracy ↓, droop (drift) ↑ and noise ↑

I 20mV at 10Mhz can mean 4 out of 12 bits of noise! (aliasing)

172 / 178

Page 174: Digital Implementation of discrete-time Controllers

Digital I/O and PWM outputs

I Calibration

I Control signals

I Power electronics control

I Vector control

{iSα = iaiSβ = 1√

3ia + 2√

3ib

{iSd = iSα cos θ + iSβ sin θiSa = −iSα sin θ + iSβ cos θ

173 / 178

Page 175: Digital Implementation of discrete-time Controllers

Vector control

174 / 178

Page 176: Digital Implementation of discrete-time Controllers

Encoders, sin/cos interfaces

175 / 178

Page 177: Digital Implementation of discrete-time Controllers

Software tasks

I Signalling

I Monitoring

I Error detection + correction

I Redundancy

I Safety functions

I Calibration

I Self-test at start-up

Total code =7× control code

Control code uses25% of T

176 / 178

Page 178: Digital Implementation of discrete-time Controllers

SW development tools

I Assembler/Linker

I Simulator

I Emulator

I Compiler

I Integrated SW development environment

I Various tools

177 / 178

Page 179: Digital Implementation of discrete-time Controllers

Design tools

I Design of controller and simulation of its behavior

I Test of C-code for controller in simulation environment

I Generation of header files for different designs

fid=fopen(’headerfile.h’,’w’);

fprintf(fid,’#define PAR1 %d\n’,PAR1);fprintf(fid,’#define PAR2 %d\n’,PAR2);...

fprintf(fid,’#define PARN %d\n’,PARN);fclose(fid);

I Automatic code generation

178 / 178