R7003E - Automatic Control Module 4.1 digital...

28
R7003E - Automatic Control Module 4.1 digital control Damiano Varagnolo 1

Transcript of R7003E - Automatic Control Module 4.1 digital...

Page 1: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

R7003E - Automatic ControlModule 4.1

digital control

Damiano Varagnolo

1

Page 2: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Digital control

Continuous time

y(t) = b(s)a(s)u(t)

Discrete time

y(k) = b(z)a(z)u(k)

2

Page 3: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Alternative control design workflows

physics-based considerations system identification procedures

{ x = Ax +Bu

y = Cx{ x(k + 1) = Ax(k) +Bu(k)

y(k) = Cx(k)

continuous controller discrete controller

implementation

3

Page 4: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Alternative control design workflows

physics-based considerations system identification procedures

{ x = Ax +Bu

y = Cx{ x(k + 1) = Ax(k) +Bu(k)

y(k) = Cx(k)

continuous controller discrete controller

implementationdiscrete equivalent

3

Page 5: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Alternative control design workflows

physics-based considerations system identification procedures

{ x = Ax +Bu

y = Cx{ x(k + 1) = Ax(k) +Bu(k)

y(k) = Cx(k)

continuous controller discrete controller

implementationdiscrete design

3

Page 6: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

physics-based considerations system identification procedures

{ x = Ax +Bu

y = Cx{ x(k + 1) = Ax(k) +Bu(k)

y(k) = Cx(k)

continuous controller discrete controller

implementationdiscrete equivalent

aim: continuous controller ↦ discrete controller Ô⇒ we need a metric

4

Page 7: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Design using discrete equivalents – meaningful only for PIDs

continuous controller Cc(s)↦ discrete controller Cd(z)

Ô⇒ we need a metric find Cd(z) that best approximates Cc(s)

it will always be an approximation!

5

Page 8: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Design using discrete equivalents – meaningful only for PIDs

continuous controller Cc(s)↦ discrete controller Cd(z)

Ô⇒ we need a metric find Cd(z) that best approximates Cc(s)

it will always be an approximation!

5

Page 9: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Design using discrete equivalents – strategies

zero-order hold method

Tustin’s method

matched poles-zeros method

modified matched poles-zeros method

c2d in Matlab

6

Page 10: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Design using discrete equivalents – strategies

zero-order hold method

Tustin’s method

matched poles-zeros method

modified matched poles-zeros method

c2d in Matlab

6

Page 11: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Discrete design – workflow

physics-based considerations system identification procedures

{ x = Ax +Bu

y = Cx{ x(k + 1) = Ax(k) +Bu(k)

y(k) = Cx(k)

continuous controller discrete controller

implementationdiscrete design

7

Page 12: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Discrete design – first step: discretize (A, B, C, D)Aim:

{ x = Ax +Bu

y = Cx +Du↦ { x(k + 1) = Adx(k) +Bdu(k)

y(k) = Cdx(k) +Ddu(k)

Starting point = evolution of x(t) starting from t0:

x(t) = eA(t−t0)x(t0) + ∫t

t0eA(t−τ)Bu(τ)dτ

Sampling x(t) at k + 1 starting from k

(i.e., at t = k∆ +∆ starting from t0 = k∆):

x(k + 1) = eA∆x(k) + ∫k∆+∆

k∆eA(k∆+∆−τ)Bu(τ)dτ

8

Page 13: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Discrete design – first step: discretize (A, B, C, D)Aim:

{ x = Ax +Bu

y = Cx +Du↦ { x(k + 1) = Adx(k) +Bdu(k)

y(k) = Cdx(k) +Ddu(k)

Starting point = evolution of x(t) starting from t0:

x(t) = eA(t−t0)x(t0) + ∫t

t0eA(t−τ)Bu(τ)dτ

Sampling x(t) at k + 1 starting from k

(i.e., at t = k∆ +∆ starting from t0 = k∆):

x(k + 1) = eA∆x(k) + ∫k∆+∆

k∆eA(k∆+∆−τ)Bu(τ)dτ

8

Page 14: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Discrete design – first step: discretize (A, B, C, D)Aim:

{ x = Ax +Bu

y = Cx +Du↦ { x(k + 1) = Adx(k) +Bdu(k)

y(k) = Cdx(k) +Ddu(k)

Starting point = evolution of x(t) starting from t0:

x(t) = eA(t−t0)x(t0) + ∫t

t0eA(t−τ)Bu(τ)dτ

Sampling x(t) at k + 1 starting from k

(i.e., at t = k∆ +∆ starting from t0 = k∆):

x(k + 1) = eA∆x(k) + ∫k∆+∆

k∆eA(k∆+∆−τ)Bu(τ)dτ

8

Page 15: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Discrete design – towards the map

Important: this is an exact map!

x(t) = eA(t−t0)x(t0) + ∫t

t0eA(t−τ)Bu(τ)dτ

x(k + 1) = eA∆x(k) + ∫k∆+∆

k∆eA(k∆+∆−τ)Bu(τ)dτ

how do we discretize u(τ)?Assumption: u(⋅) is piecewise constant:

u(τ) = u(k) τ ∈ [k∆, k∆ +∆)9

Page 16: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Discrete design – towards the map

Important: this is an exact map!

x(t) = eA(t−t0)x(t0) + ∫t

t0eA(t−τ)Bu(τ)dτ

x(k + 1) = eA∆x(k) + ∫k∆+∆

k∆eA(k∆+∆−τ)Bu(τ)dτ

how do we discretize u(τ)?Assumption: u(⋅) is piecewise constant:

u(τ) = u(k) τ ∈ [k∆, k∆ +∆)9

Page 17: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Discrete design – towards the map

Important: this is an exact map!

x(t) = eA(t−t0)x(t0) + ∫t

t0eA(t−τ)Bu(τ)dτ

x(k + 1) = eA∆x(k) + ∫k∆+∆

k∆eA(k∆+∆−τ)Bu(τ)dτ

how do we discretize u(τ)?Assumption: u(⋅) is piecewise constant:

u(τ) = u(k) τ ∈ [k∆, k∆ +∆)9

Page 18: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Discrete design – towards the map

u(τ) = u(k) τ ∈ [k∆, k∆ +∆) implies

∫k∆+∆

k∆eA(k∆+∆−τ)Bu(τ)dτ

=

(∫k∆+∆

k∆eA(k∆+∆−τ)Bdτ)u(k)

=

(∫∆

0eAτ Bdτ)u(k)

10

Page 19: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Discrete design – the map

⎧⎪⎪⎪⎨⎪⎪⎪⎩

x(k + 1) = (eA∆)x(k) + (∫∆

0eAτ Bdτ)u(k)

y(k) = Cx(k) +Du(k)

Thus:Ad ∶= eA∆

Bd ∶= ∫∆

0eAτ Bdτ

Cd ∶= C

Dd ∶=D

c2d in Matlab

11

Page 20: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Discrete design – the map

⎧⎪⎪⎪⎨⎪⎪⎪⎩

x(k + 1) = (eA∆)x(k) + (∫∆

0eAτ Bdτ)u(k)

y(k) = Cx(k) +Du(k)

Thus:Ad ∶= eA∆

Bd ∶= ∫∆

0eAτ Bdτ

Cd ∶= C

Dd ∶=D

c2d in Matlab

11

Page 21: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Discrete design – the map

⎧⎪⎪⎪⎨⎪⎪⎪⎩

x(k + 1) = (eA∆)x(k) + (∫∆

0eAτ Bdτ)u(k)

y(k) = Cx(k) +Du(k)

Thus:Ad ∶= eA∆

Bd ∶= ∫∆

0eAτ Bdτ

Cd ∶= C

Dd ∶=D

c2d in Matlab

11

Page 22: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Discrete design – analogies with continuous time systems

Things that do not change:

controllability and observability indexes

structure of all the canonical forms

how to handle of the reference signals

second order approximations / LQR design strategies

acker and place

12

Page 23: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Discrete design – analogies with continuous time systems

Things that do not change:

controllability and observability indexes

structure of all the canonical forms

how to handle of the reference signals

second order approximations / LQR design strategies

acker and place

12

Page 24: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Discrete design – analogies with continuous time systems

Things that do not change:

controllability and observability indexes

structure of all the canonical forms

how to handle of the reference signals

second order approximations / LQR design strategies

acker and place

12

Page 25: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Discrete design – analogies with continuous time systems

Things that do not change:

controllability and observability indexes

structure of all the canonical forms

how to handle of the reference signals

second order approximations / LQR design strategies

acker and place

12

Page 26: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Discrete design – analogies with continuous time systems

Things that do not change:

controllability and observability indexes

structure of all the canonical forms

how to handle of the reference signals

second order approximations / LQR design strategies

acker and place

12

Page 27: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Discrete design – analogies with continuous time systems

Things that do not change:

controllability and observability indexes

structure of all the canonical forms

how to handle of the reference signals

second order approximations / LQR design strategies

acker and place

12

Page 28: R7003E - Automatic Control Module 4.1 digital controlstaff.damvar/Classes/R7003E-2017-LP2/M4.01-digital-c… · Module 4.1 digital control Damiano Varagnolo 1. Digital control Continuous

Discrete design – example:

tContinuousSystem = ss(A,B,C,D);fSamplingPeriod = 0.05;tDiscreteSystem = c2d(tContinuousSystem, fSamplingPeriod);[Ad,Bd,Cd,Dd] = ssdata(tDiscreteSystem);pc = [0.78 + 0.18*j; 0.78 - 0.18*j];po = [0.58 + 0.08*j; 0.58 - 0.08*j];K = acker(Ad,Bd,pc);L = (acker(Ad',Cd',po))';

13