Operator-theoretic methods for prediction and control of nonlinear - - PowerPoint PPT Presentation

operator theoretic methods for prediction and control of
SMART_READER_LITE
LIVE PREVIEW

Operator-theoretic methods for prediction and control of nonlinear - - PowerPoint PPT Presentation

Operator-theoretic methods for prediction and control of nonlinear dynamical systems Milan Milan Kor Korda da Big picture Infinite-dimensional Lifting Approximation Linear object Difficult to handle Finite-dimensional Nonlinear object


slide-1
SLIDE 1

Operator-theoretic methods for prediction and control of nonlinear dynamical systems

Milan Milan Kor Korda da

slide-2
SLIDE 2

Milan Korda

Big picture

2

Approximation Lifting Linear object Infinite-dimensional

Difficult to handle

“Easy” to handle Finite-dimensional Nonlinear object Linear object

Difficult to handle

slide-3
SLIDE 3

Milan Korda

Big picture

3

Approximation Lifting Approximation of Matrix

Infinite-dimensional

  • perator

Nonlinear dynamics

x+ = f (x) Linear operator linear operator

slide-4
SLIDE 4

Milan Korda 4

Koopman operator

slide-5
SLIDE 5

Milan Korda

Koopman operator

5

K : g → g ◦ f g : X → C

slide-6
SLIDE 6

Milan Korda

Koopman operator

6

K : g → g ◦ f K(αg1 + βg2) = (αg1 + βg2) f = αg1 f + βg2 f = αKg1 + βKg2 Linearity g : X → C

slide-7
SLIDE 7

Milan Korda

Koopman operator

7

K : g → g ◦ f g : X → C

(1900 − 1981) [B. O. Koopman, 1931] [Mezić, Banaszuk, 2004]

slide-8
SLIDE 8

Milan Korda

Koopman operator

8

K : g → g ◦ f g : X → C Kφ = λφ ⇔ φ ◦ f = λφ Eigenfunctions

slide-9
SLIDE 9

Milan Korda

Koopman operator

9

K : g → g ◦ f g : X → C Kφ = λφ ⇔ φ ◦ f = λφ φ ◦ f k = λkφ Eigenfunctions

Linear coordinate

slide-10
SLIDE 10

Milan Korda

Koopman operator

10

φ ◦ f k = λkφ Eigenfunctions λ = 1 ⇒ {x : φ(x) = γ} invariant set

Chirikov standard map

slide-11
SLIDE 11

Milan Korda

Koopman operator

11

φ ◦ f k = λkφ Eigenfunctions |λ| ≤ 1 ⇒ {x : |φ|(x) ≤ γ} invariant set

Chirikov standard map

slide-12
SLIDE 12

Milan Korda

Koopman operator

12

φ ◦ f k = λkφ Eigenfunctions

(ω rational)

λ = eiω ⇒ {x : φ(x) = γ} periodic set

[Budisic et al. 2012]

Chirikov standard map

slide-13
SLIDE 13

Milan Korda

Koopman operator

13

φ ◦ f k = λkφ Eigenfunctions Isostables Isochrons Ergodic partition . . .

[Mauroy et al. 2013] Model reduction [Rowley et al. 2009]

slide-14
SLIDE 14

Milan Korda 14

Prediction

slide-15
SLIDE 15

Milan Korda

Prediction

15

HN = span{ψ1, . . . , ψN} g =

N

  • i=1

ciψi ∈ HN Invariant subspace

slide-16
SLIDE 16

Milan Korda

Prediction

16

C = [c1, . . . , cN] HN = span{ψ1, . . . , ψN} g =

N

  • i=1

ciψi ∈ HN g(xk) = CAkz0 Invariant subspace Linear predictor z0 = ψ(x0) =    ψ1(x0) . . . ψN(x0)   

slide-17
SLIDE 17

Milan Korda

Prediction

17

C = [c1, . . . , cN] HN = span{ψ1, . . . , ψN} g =

N

  • i=1

ciψi ∈ HN g(xk) = CAkz0 ψi’s eigenfunctions ⇒ A = diag(λ1, . . . , λN) Invariant subspace Linear predictor z0 = ψ(x0) =    ψ1(x0) . . . ψN(x0)   

slide-18
SLIDE 18

Milan Korda

Linear prediction

18

xk+1 xk zk zk+1

X Z

A f Linear Nonlinear

ψ

slide-19
SLIDE 19

Milan Korda 19

Approximation of the Koopman operator

slide-20
SLIDE 20

Milan Korda

Approximation

20

HN := span{ψ1, . . . , ψN} KN := PNK|HN

  • Construct
  • Analyze

KN : HN → HN Goal HN

KN PN K|HN

slide-21
SLIDE 21

Milan Korda

Extended dynamic mode decomposition

21

Koopman approximaton g = c⊤ψ LS problem min

A∈RN×N K

  • i=1

∥ψ(x+

i ) − Aψ(xi)∥2 2

KN,Kg := c⊤AN,Kψ (xi)K

i=1

Data (x+

i )K i=1

x+

i

= f (xi) ψ = [ψ1, . . . , ψN]⊤ Basis functions

[Williams et al., 2015]

slide-22
SLIDE 22

Milan Korda

Convergence of EDMD

22

g = c⊤ψ KN,Kg := c⊤AN,Kψ

ˆ µK = empirical measure

Fact: KN,K = P ˆ

µK N K|HN

  • n x1, . . . , xK
slide-23
SLIDE 23

Milan Korda

Convergence of EDMD

23

g = c⊤ψ KN,Kg := c⊤AN,Kψ

ˆ µK = empirical measure

Fact: KN,K = P ˆ

µK N K|HN

  • n x1, . . . , xK

(iid or ergodic sampling from µ)

Fact: limK→∞ KN,K → KN = P µ

NK|HN

slide-24
SLIDE 24

Milan Korda

Convergence of EDMD

24

g = c⊤ψ KN,Kg := c⊤AN,Kψ

(iid or ergodic sampling from µ)

Fact: limK→∞ KN,K → KN = P µ

NK|HN

HN

KN K|HN

P µ

N

slide-25
SLIDE 25

Milan Korda

Convergence of EDMD

Theorem

  • span{ψi}∞

i=1 = H

  • K : H → H bounded

(Converge in strong operator topology)

H = L2(µ) limN→∞ KNg Kg = 0 for all g H

slide-26
SLIDE 26

Milan Korda

Convergence of EDMD

Theorem

As a result, any finite-horizon predictions converge!

Corollary

Under the same assumptions

  • span{ψi}∞

i=1 = H

  • K : H → H bounded

(Converge in strong operator topology)

H = L2(µ) limN→∞ KNg Kg = 0 for all g H For any Np N: limN→∞ supi∈{1,...,Np} Ki

Ng Kig = 0

slide-27
SLIDE 27

Milan Korda

Convergence of EDMD

Theorem

As a result, any finite-horizon predictions converge!

Corollary

Under the same assumptions

  • span{ψi}∞

i=1 = H

  • K : H → H bounded

(Converge in strong operator topology)

H = L2(µ) limN→∞ KNg Kg = 0 for all g H For any Np N: limN→∞ supi∈{1,...,Np} Ki

Ng Kig = 0

limN→∞

  • X |CAi

NψN g f i|2 dµ 0

slide-28
SLIDE 28

Milan Korda

Convergence of EDMD

Theorem

As a result, any finite-horizon predictions converge!

Corollary

Spectral convergence more delicate. See Under the same assumptions

Korda M. and Mezić I. On Convergence of Extended Dynamic Mode Decompo- sition to the Koopman Operator, Journal of Nonlinear Science, 2017

  • span{ψi}∞

i=1 = H

  • K : H → H bounded

(Converge in strong operator topology)

H = L2(µ) limN→∞ KNg Kg = 0 for all g H For any Np N: limN→∞ supi∈{1,...,Np} Ki

Ng Kig = 0

slide-29
SLIDE 29

Milan Korda 29

Control

(Joint work with Igor Mezić)

slide-30
SLIDE 30

Milan Korda

Predictor

30

x0 z0 = ψ(x0) ψ : Rn RN, N n x+ = f (x, u) z+ = g(z, u) ˆ x = h(z) x1, x2, . . . ˆ x1, ˆ x2, . . . u1, u2, . . .

slide-31
SLIDE 31

Milan Korda

Predictor

31

x0 z0 = ψ(x0) ψ : Rn RN, N n z+ = Az + Bu ˆ x = Cz x+ = f (x, u) x1, x2, . . . ˆ x1, ˆ x2, . . . u1, u2, . . .

slide-32
SLIDE 32

Milan Korda

Why linear predictors?

32

Can design controllers using linear methods u = κlift(z) = ⇒ u = κ(x) := κlift(ψ(x))

slide-33
SLIDE 33

Milan Korda

Why linear predictors?

33

  • Computation speed independent of the size of the lift N

u = κlift(z) Can design controllers using linear methods

  • Fast and effective for constrained linear systems
  • Optimization-based controller

= ⇒ u = κ(x) := κlift(ψ(x)) Especially suited for Model predictive control (MPC)

slide-34
SLIDE 34

Milan Korda 34

Designing the predictors

slide-35
SLIDE 35

Milan Korda

Koopman operator for controlled systems

35

x+ = f (x, u), x ∈ Rn, u ∈ Rm

slide-36
SLIDE 36

Milan Korda

Koopman operator for controlled systems

36

χ+ = F(χ) := f (x, u(0)) Su

  • x+ = f (x, u), x ∈ Rn, u ∈ Rm
  • Shift operator (Su)(i) = u(i + 1)
  • Extended state := (x, u) ∈ X := Rn × (Rm)

(ui)∞

i=0 =: u

Space of all control sequences

= ⇒

slide-37
SLIDE 37

Milan Korda

Koopman operator for controlled systems

37

χ+ = F(χ) := f (x, u(0)) Su

  • Koopman operator

x+ = f (x, u), x ∈ Rn, u ∈ Rm

  • Shift operator (Su)(i) = u(i + 1)
  • Extended state := (x, u) ∈ X := Rn × (Rm)

φ : X → R = ⇒

(ui)∞

i=0 =: u

Space of all control sequences

Kφ = φ F

slide-38
SLIDE 38

Milan Korda

Koopman operator for controlled systems

38

χ+ = F(χ) := f (x, u(0)) Su

  • x+ = f (x, u), x ∈ Rn, u ∈ Rm
  • Shift operator (Su)(i) = u(i + 1)
  • Extended state := (x, u) ∈ X := Rn × (Rm)

= ⇒ Other work [Brunton et al, 2016] [Proctor et al, 2016] [Williams et al, 2016] [Proctor et al, 2016]

(ui)∞

i=0 =: u

Space of all control sequences

slide-39
SLIDE 39

Milan Korda

Linear predictors from Koopman - EDMD

39

Data (χi)K

i=1

(χ+

i )K i=1

χ+

i = F(χi)

φ(χ) = [φ1(χ), . . . , φNφ(χ)]

min

A∈RNφ×Nφ K

  • i=1

∥φ(χ+

i ) − Aφ(χi)∥2 2

LS problem

slide-40
SLIDE 40

Milan Korda

Linear predictors from Koopman - EDMD

40

Data (χi)K

i=1

(χ+

i )K i=1

χ+

i = F(χi)

φ(χ) = [φ1(χ), . . . , φNφ(χ)]

min

A∈RNφ×Nφ K

  • i=1

∥φ(χ+

i ) − Aφ(χi)∥2 2

LS problem ⇒

linear operator

φi(x, u) = ψi(x) + Li(u) Predictor linear in u

slide-41
SLIDE 41

Milan Korda

Linear predictors from Koopman - EDMD

41

Data (χi)K

i=1

(χ+

i )K i=1

χ+

i = F(χi)

φ(χ) = [φ1(χ), . . . , φNφ(χ)]

min

A∈RNφ×Nφ K

  • i=1

∥φ(χ+

i ) − Aφ(χi)∥2 2

LS problem ⇒

linear operator

φi(x, u) = ψi(x) + Li(u) Predictor linear in u φ(x, u) = [ψ1(x), . . . , ψN(x), u(0)1, . . . , u(0)m]⊤

Without loss of generality

slide-42
SLIDE 42

Milan Korda

Linear predictors from Koopman - EDMD

42

Data (χi)K

i=1

(χ+

i )K i=1

χ+

i = F(χi)

φ(χ) = [φ1(χ), . . . , φNφ(χ)]

min

A∈RNφ×Nφ K

  • i=1

∥φ(χ+

i ) − Aφ(χi)∥2 2

LS problem ⇒

linear operator

φi(x, u) = ψi(x) + Li(u) Predictor linear in u φ(x, u) = [ψ1(x), . . . , ψN(x), u(0)1, . . . , u(0)m]⊤

Without loss of generality

min

A∈RN×N, B∈RN×m K

  • i=1

∥ψ(x+

i ) − Aψ(xi) − Bui(0)∥2 2

slide-43
SLIDE 43

Milan Korda

Algorithm summary

43

Data Lifting LS problem Solution min

A,B ∥Ylift − AXlift − BU∥F ,

min

C ∥X − CXlift∥F

[A, B] = Ylift[Xlift, U]†, C = XX†

lift

z+ = Az + Bu ˆ x = Cz z0 = ψ(x0) =    ψ1(x0) . . . ψN(x0)    X =

  • x1, . . . , xK
  • , Y =
  • x+

1 , . . . , x+ K

  • , U =
  • u1, . . . , uK
  • Xlift =
  • ψ(x1), . . . , ψ(xK)
  • , Ylift =
  • ψ(x+

1 ), . . . , ψ(x+ K )

slide-44
SLIDE 44

Milan Korda 44

MPC design

slide-45
SLIDE 45

Milan Korda

Koopman MPC

45

Nonlinear MPC x+ = f (x, u) κ(x) = {u⋆

0, u⋆ 1, . . . , u⋆ Np−1}

x parameter x0 = x minimize

ui,xi

Np−1

i=0

lx(xi) + u⊤

i Rui + r ⊤ui

subject to xi+1 = f (xi, ui), i = 0, . . . , Np − 1 cx(xi) + Cuui ≤ b, i = 0, . . . , Np − 1

slide-46
SLIDE 46

Milan Korda

Koopman MPC

46

x+ = f (x, u) κ(x) = {u⋆

0, u⋆ 1, . . . , u⋆ Np−1}

x minimize

ui,zi

Np−1

i=0

z⊤

i Qzi + u⊤ i Rui + q⊤zi + r ⊤ui

subject to zi+1 = Azi + Bui, i = 0, . . . , Np − 1 Ezi + Fui ≤ b, i = 0, . . . , Np − 1 parameter z0 = ψ(x) Koopman MPC Can handle nonlinear constraints and costs in a linear fashion

slide-47
SLIDE 47

Milan Korda

Koopman MPC

47

x+ = f (x, u) x minimize

U∈RmNp

U⊤HU⊤ + h⊤U + z⊤

0 GU

subject to LU + Mz0 ≤ c Dense-form Koopman MPC parameter z0 = ψ(x) κ(x) =    u⋆ . . . u⋆

Np−1

   Computation cost independent of the size of the lift!

slide-48
SLIDE 48

Milan Korda

Koopman MPC summary

48

minimize

U∈RmNp

U⊤HU⊤ + h⊤U + z⊤

0 GU

subject to LU + Mz0 ≤ c At each step k of closed-loop operation

  • Set z0 = ψ(xk)
  • Solve
  • Apply U

1:m to the system

slide-49
SLIDE 49

Milan Korda

Koopman MPC summary

49

minimize

U∈RmNp

U⊤HU⊤ + h⊤U + z⊤

0 GU

subject to LU + Mz0 ≤ c At each step k of closed-loop operation

  • Set z0 = ψ(xk)
  • Solve
  • Apply U

1:m to the system

Computation cost independent of the size of the lift Main benefits Can handle nonlinear constraints and costs in a linear fashion

slide-50
SLIDE 50

Milan Korda

Extensions

50

x+ = f (x, u) y = h(x) x+ = f (x, u, w)

  • Input-output systems
  • Systems with disturbances

Solution: Treat w as an additional input Solution: Use nonlinear functions of y and its time-delays as basis functions

slide-51
SLIDE 51

Milan Korda 51

Numerical examples

slide-52
SLIDE 52

Milan Korda

Numerical examples

52

Van der Pol oscillator

˙ x1 = 2x2

0.5 1 1.5 2 2.5 3

  • 1
  • 0.5

0.5 1

True Koopman Local at 0 Local at x0 Carleman

0.5 1 1.5 2 2.5 3

  • 1
  • 0.8
  • 0.6
  • 0.4
  • 0.2

0.2 0.4 0.6 0.8 1

True Koopman Local at 0 Local at x0 Carleman 0.5 1 1.5 2 2.5 3

  • 1
  • 0.8
  • 0.6
  • 0.4
  • 0.2

0.2 0.4 0.6 0.8 1

x1 x2 u

Lifting: state observable + 100 RBFs Data: 20 trajectories with 1000 samples each RK-4 discretization with 0.01 s sampling interval ˙ x2 = −0.8x1 + 2x2 − 10x2

1x2 + u

time time

slide-53
SLIDE 53

Milan Korda

0.5 1 1.5 2 2.5 3

  • 0.8
  • 0.6
  • 0.4
  • 0.2

0.2 0.4 0.6 0.8 1 1.2

True Koopman Local at 0 Local at x0 Carleman

Numerical examples

53

Van der Pol oscillator

˙ x1 = 2x2

0.5 1 1.5 2 2.5 3

  • 1
  • 0.8
  • 0.6
  • 0.4
  • 0.2

0.2 0.4 0.6 0.8 1

x1 x2 u

Lifting: state observable + 100 RBFs Data: 20 trajectories with 1000 samples each RK-4 discretization with 0.01 s sampling interval ˙ x2 = −0.8x1 + 2x2 − 10x2

1x2 + u

time time

0.5 1 1.5 2 2.5 3

  • 0.5

0.5 1 1.5

True Koopman Local at 0 Local at x0 Carleman

slide-54
SLIDE 54

Milan Korda

Numerical examples

54

Van der Pol oscillator

˙ x1 = 2x2 Lifting: state observable + 100 RBFs Data: 20 trajectories with 1000 samples each RK-4 discretization with 0.01 s sampling interval ˙ x2 = −0.8x1 + 2x2 − 10x2

1x2 + u

N 5 10 25 50 75 100 Average RMSE 66.5 % 44.9 % 47.0 % 38.7 % 30.6 % 24.4 % RMSE [%] = 100 · ∥xtrue − xpred∥ ∥xtrue∥

slide-55
SLIDE 55

Milan Korda

Numerical examples

55

Van der Pol oscillator

˙ x1 = 2x2 Lifting: state observable + 100 RBFs Data: 20 trajectories with 1000 samples each RK-4 discretization with 0.01 s sampling interval ˙ x2 = −0.8x1 + 2x2 − 10x2

1x2 + u

RMSE [%] = 100 · ∥xtrue − xpred∥ ∥xtrue∥ x0 Average RMSE Koopman 24.4 % Local linearization at x0 2.83 · 103 % Local linearization at 0 912.5 % Carleman 5.08 · 1022 %

slide-56
SLIDE 56

Milan Korda

Numerical examples

56

Bilinear motor

Lifting: state observable + 100 RBFs Data: 20 trajectories with 1000 samples each RK-4 discretization with 0.01 s sampling interval ˙ x1 = −(Ra/La)x1 − (km/La)x2u + ua/La ˙ x2 = −(B/J)x2 + (km/J)x1u − τl/J Only x2 (= angular velocity) measured

0.2 0.4 0.6 0.8 1

  • 1
  • 0.5

0.5 1

True Koopman Local at x0

Prediction x2

time x0 = [0.887, 0.587]

slide-57
SLIDE 57

Milan Korda

Numerical examples

57

Bilinear motor

Lifting: state observable + 100 RBFs Data: 20 trajectories with 1000 samples each RK-4 discretization with 0.01 s sampling interval ˙ x1 = −(Ra/La)x1 − (km/La)x2u + ua/La ˙ x2 = −(B/J)x2 + (km/J)x1u − τl/J Only x2 (= angular velocity) measured

0.2 0.4 0.6 0.8 1

  • 1
  • 0.5

0.5

True Koopman Local at x0

x2

time

Prediction

x0 = [0.404, 0.126]

slide-58
SLIDE 58

Milan Korda

Numerical examples

58

Bilinear motor

Lifting: state observable + 100 RBFs Data: 20 trajectories with 1000 samples each RK-4 discretization with 0.01 s sampling interval ˙ x1 = −(Ra/La)x1 − (km/La)x2u + ua/La ˙ x2 = −(B/J)x2 + (km/J)x1u − τl/J Only x2 (= angular velocity) measured

Prediction

Koopman Local linearization at x0 Average RMSE 32.3 % 135.5 %

slide-59
SLIDE 59

Milan Korda

Numerical examples

59

Bilinear motor

Lifting: state observable + 100 RBFs Data: 20 trajectories with 1000 samples each RK-4 discretization with 0.01 s sampling interval ˙ x1 = −(Ra/La)x1 − (km/La)x2u + ua/La ˙ x2 = −(B/J)x2 + (km/J)x1u − τl/J Only x2 (= angular velocity) measured Tpred = 1 s Q = 1, R = 0.01

Feedback control

0.5 1 1.5 2 2.5 3

  • 0.6
  • 0.4
  • 0.2

0.2 0.4 0.6 K-MPC L-MPC Reference

time

x2

angular velocity

slide-60
SLIDE 60

Milan Korda

Numerical examples

60

Bilinear motor

Lifting: state observable + 100 RBFs Data: 20 trajectories with 1000 samples each RK-4 discretization with 0.01 s sampling interval ˙ x1 = −(Ra/La)x1 − (km/La)x2u + ua/La ˙ x2 = −(B/J)x2 + (km/J)x1u − τl/J Only x2 (= angular velocity) measured Tpred = 1 s Q = 1, R = 0.01

Feedback control

1 2 3

  • 1
  • 0.5

0.5 1

K-MPC L-MPC Constraints

time

u

control action

slide-61
SLIDE 61

Milan Korda

0.5 1 1.5 2 2.5 3

  • 0.4
  • 0.2

0.2 0.4 0.6

K-MPC L-MPC Reference Constraints

Numerical examples

61

Bilinear motor

Lifting: state observable + 100 RBFs Data: 20 trajectories with 1000 samples each RK-4 discretization with 0.01 s sampling interval ˙ x1 = −(Ra/La)x1 − (km/La)x2u + ua/La ˙ x2 = −(B/J)x2 + (km/J)x1u − τl/J

time

Only x2 (= angular velocity) measured

x2

Tpred = 1 s Q = 1, R = 0.01

Feedback control

angular velocity L-MPC infeasible

slide-62
SLIDE 62

Milan Korda

1 2 3 0.2 0.4 0.6 0.8 1

K-MPC L-MPC Constraint

Numerical examples

62

Bilinear motor

˙ x1 = −(Ra/La)x1 − (km/La)x2u + ua/La ˙ x2 = −(B/J)x2 + (km/J)x1u − τl/J

time

Lifting: state observable + 100 RBFs Data: 20 trajectories with 1000 samples each RK-4 discretization with 0.01 s sampling interval Only x2 (= angular velocity) measured

u

Feedback control

Tpred = 1 s Q = 1, R = 0.01 control action

slide-63
SLIDE 63

Milan Korda

Numerical examples

63

Bilinear motor

˙ x1 = −(Ra/La)x1 − (km/La)x2u + ua/La ˙ x2 = −(B/J)x2 + (km/J)x1u − τl/J Lifting: state observable + 100 RBFs Data: 20 trajectories with 1000 samples each RK-4 discretization with 0.01 s sampling interval Only x2 (= angular velocity) measured

Feedback control Average computation time = 6.83 ms

Tpred = 1 s Q = 1, R = 0.01 (Matlab + qpOASES, 2GHz i7)

slide-64
SLIDE 64

Milan Korda 64

Powergrid control

(Joint work with Yoshihiko Susuki)

slide-65
SLIDE 65

Milan Korda 10 8 9 6 7 4 5 3 2 1

Numerical examples

65

New England power grid ˙ δi = ωi

−GiiV 2

i − 10

  • j=1,j̸=i

ViVj{Gij cos(δi − δj) + Bij sin(δi − δj)} Hi πfb ˙ ωi = −Diωi + Pmi

slide-66
SLIDE 66

Milan Korda 10 8 9 6 7 4 5 3 2 1

Numerical examples

66

New England power grid ˙ δi = ωi

−GiiV 2

i − 10

  • j=1,j̸=i

ViVj{Gij cos(δi − δj) + Bij sin(δi − δj)}

F t = 0.67 s – fault occurs t = 1 s – faulted line removed

Hi πfb ˙ ωi = −Diωi + Pmi

Setup from [Susuki et al, 2011]

slide-67
SLIDE 67

Milan Korda

Numerical examples

67

New England power grid ˙ δi = ωi

−GiiV 2

i − 10

  • j=1,j̸=i

ViVj{Gij cos(δi − δj) + Bij sin(δi − δj)}

2 4 6 8 10

  • 5

5 10 15

G02 G03 G04 G05 G06 G07 G08 G09 G10

2 4 6 8 10

  • 1.5
  • 1
  • 0.5

0.5 1 1.5

G02 G03 G04 G05 G06 G07 G08 G09 G10

time [s] time [s]

∆f [Hz] δ [rad]

No control

Hi πfb ˙ ωi = −Diωi + Pmi

slide-68
SLIDE 68

Milan Korda

Numerical examples

68

New England power grid ˙ δi = ωi

−GiiV 2

i − 10

  • j=1,j̸=i

ViVj{Gij cos(δi − δj) + Bij sin(δi − δj)} Hi πfb ˙ ωi = −Diωi + Pmi

Control

Actuation: Cost:

i ω2 i – frequency deviation

  • Pred. horizon: 1 second

Sampling: 50 ms Pmi or Vi - mechanical power or generator voltage

slide-69
SLIDE 69

Milan Korda

2 4 6 8 10

  • 1
  • 0.8
  • 0.6
  • 0.4
  • 0.2

0.2 0.4 0.6 0.8 1

G02 G03 G04 G05 G06 G07 G08 G09 G10 Constraint

2 4 6 8 10

  • 5

5 10 15

G02 G03 G04 G05 G06 G07 G08 G09 G10

Numerical examples

69

New England power grid ˙ δi = ωi

−GiiV 2

i − 10

  • j=1,j̸=i

ViVj{Gij cos(δi − δj) + Bij sin(δi − δj)}

2 4 6 8 10

  • 1.5
  • 1
  • 0.5

0.5 1 1.5

G02 G03 G04 G05 G06 G07 G08 G09 G10

time [s] time [s]

u ∆f [Hz] δ [rad]

Hi πfb ˙ ωi = −Diωi + Pmi

slide-70
SLIDE 70

Milan Korda

Numerical examples – NE cascade

70

39 24 39 24 39 24 39 24 39 24 39 24 39

7 NE grid cascade ˙ δi = ωi

−GiiV 2

i − 10

  • j=1,j̸=i

ViVj{Gij cos(δi − δj) + Bij sin(δi − δj)} Hi πfb ˙ ωi = −Diωi + Pmi

Setup from [Susuki et al, 2012] t = 1 s – faulted line removed t = 0.87 s – fault occurs in grid #1 Each grid controlled separately

slide-71
SLIDE 71

Milan Korda

2 4 6 8 10 1 2 3 2 4 6 8 10 1 2 3 2 4 6 8 10 1 2 3 2 4 6 8 10 1 2 3 2 4 6 8 10 1 2 3 2 4 6 8 10 1 2 3 2 4 6 8 10 1 2 3 5 10 15 20 5 10 5 10 15 20 5 10 5 10 15 20 5 10 5 10 15 20 5 10 5 10 15 20 5 10 5 10 15 20 5 10 5 10 15 20 5 10

Numerical examples - NE cascade

71

δ [rad] ∆f [Hz] No control

time [s] time [s] # 1 # 2 # 3 # 4 # 5 # 6 # 7

slide-72
SLIDE 72

Milan Korda

2 4 6 8 10 1 2 3 2 4 6 8 10 1 2 3 2 4 6 8 10 1 2 3 2 4 6 8 10 1 2 3 2 4 6 8 10 1 2 3 2 4 6 8 10 1 2 3 2 4 6 8 10 1 2 3 2 4 6 8 10

  • 0.4
  • 0.2

0.2 0.4 0.6 2 4 6 8 10

  • 0.4
  • 0.2

0.2 0.4 0.6 2 4 6 8 10

  • 0.4
  • 0.2

0.2 0.4 0.6 2 4 6 8 10

  • 0.4
  • 0.2

0.2 0.4 0.6 2 4 6 8 10

  • 0.4
  • 0.2

0.2 0.4 0.6 2 4 6 8 10

  • 0.4
  • 0.2

0.2 0.4 0.6 2 4 6 8 10

  • 0.4
  • 0.2

0.2 0.4 0.6

1 2 3 4 5 6 7 8 9 10

  • 1

1 1 2 3 4 5 6 7 8 9 10

  • 1

1 1 2 3 4 5 6 7 8 9 10

  • 1

1 1 2 3 4 5 6 7 8 9 10

  • 1

1 1 2 3 4 5 6 7 8 9 10

  • 1

1 1 2 3 4 5 6 7 8 9 10

  • 1

1 1 2 3 4 5 6 7 8 9 10

  • 1

1

Numerical examples - NE cascade

72

δ [rad] ∆f [Hz] u

time [s] time [s] time [s] # 1 # 2 # 3 # 4 # 5 # 6 # 7

slide-73
SLIDE 73

Milan Korda

Numerical examples – NE cascade

73

39 24 39 24 39 24 39 24 39 24 39 24 39

7 NE grid cascade ˙ δi = ωi

−GiiV 2

i − 10

  • j=1,j̸=i

ViVj{Gij cos(δi − δj) + Bij sin(δi − δj)} Hi πfb ˙ ωi = −Diωi + Pmi

Setup from [Susuki et al, 2012] t = 1 s – faulted line removed t = 0.87 s – fault occurs in grid #1 Only the grid where the fault occurred controlled

slide-74
SLIDE 74

Milan Korda

2 4 6 8 10 1 2 3 2 4 6 8 10 1 2 3 2 4 6 8 10 1 2 3 2 4 6 8 10 1 2 3 2 4 6 8 10 1 2 3 2 4 6 8 10 1 2 3 2 4 6 8 10 1 2 3 2 4 6 8 10

  • 0.4
  • 0.2

0.2 0.4 0.6 2 4 6 8 10

  • 0.4
  • 0.2

0.2 0.4 0.6 2 4 6 8 10

  • 0.4
  • 0.2

0.2 0.4 0.6 2 4 6 8 10

  • 0.4
  • 0.2

0.2 0.4 0.6 2 4 6 8 10

  • 0.4
  • 0.2

0.2 0.4 0.6 2 4 6 8 10

  • 0.4
  • 0.2

0.2 0.4 0.6 2 4 6 8 10

  • 0.4
  • 0.2

0.2 0.4 0.6

Numerical examples - NE cascade

74

δ [rad] ∆f [Hz]

time [s] time [s] # 1 # 2 # 3 # 4 # 5 # 6 # 7

slide-75
SLIDE 75

Milan Korda

2 4 6 8 10 0.2 0.4 0.6 0.8 2 4 6 8 10 0.2 0.4 0.6 0.8 2 4 6 8 10 0.2 0.4 0.6 0.8 2 4 6 8 10 0.2 0.4 0.6 0.8 2 4 6 8 10 0.2 0.4 0.6 0.8 2 4 6 8 10 0.2 0.4 0.6 0.8 2 4 6 8 10 0.2 0.4 0.6 0.8 2 4 6 8 10 0.1 0.2 2 4 6 8 10 0.1 0.2 2 4 6 8 10 0.1 0.2 2 4 6 8 10 0.1 0.2 2 4 6 8 10 0.1 0.2 2 4 6 8 10 0.1 0.2 2 4 6 8 10 0.1 0.2

Numerical examples - NE cascade

75

δ [rad] ∆f [Hz]

time [s] time [s] # 1 # 2 # 3 # 4 # 5 # 6 # 7

slide-76
SLIDE 76

Milan Korda

Numerical examples - NE cascade

76

1 2 3 4 5 6 7 8 9 10

  • 1
  • 0.8
  • 0.6
  • 0.4
  • 0.2

0.2 0.4 0.6 0.8 1

time [s] Control action of Grid #1

u

slide-77
SLIDE 77

Milan Korda

Numerical examples - NE cascade

77

(Matlab + qpOASES, 2GHz i7)

Computation time ≈ 10ms per grid

slide-78
SLIDE 78

Milan Korda 78

PDE control

(Joint work with Hassan Arbabi)

slide-79
SLIDE 79

Milan Korda

Numerical examples

79

Burgers’ equation

∂y ∂t − ν ∂2y ∂x2 + y ∂y ∂x = u(t, x) y(x, 0) = y0(x), periodic boundary

Setup from [Peitz, Klus 2017 ]

slide-80
SLIDE 80

Milan Korda

0.2 0.4 0.6 0.8 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0.2 0.4 0.6 0.8 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Numerical examples

80

Burgers’ equation

∂y ∂t − ν ∂2y ∂x2 + y ∂y ∂x = u(t, x) y(x, 0) = y0(x), periodic boundary

u(t, x) = u1(t)v1(x) + u2(t)v2(x) Setup from [Peitz, Klus 2017 ] v1(x) v2(x)

slide-81
SLIDE 81

Milan Korda

Numerical examples

81

Burgers’ equation

∂y ∂t − ν ∂2y ∂x2 + y ∂y ∂x = u(t, x) y(x, 0) = y0(x), periodic boundary

u(t, x) = u1(t)v1(x) + u2(t)v2(x)

Tracking piecewise-constant reference

|u1(t)| ≤ 0.1 , |u2(t)| ≤ 0.1

slide-82
SLIDE 82

Milan Korda

Numerical examples

82

Burgers’ equation

∂y ∂t − ν ∂2y ∂x2 + y ∂y ∂x = u(t, x) y(x, 0) = y0(x), periodic boundary

time y(t, x) x u(t, x) = u1(t)v1(x) + u2(t)v2(x) |u1(t)| ≤ 0.1 , |u2(t)| ≤ 0.1

slide-83
SLIDE 83

Milan Korda

Numerical examples

83

Burgers’ equation

∂y ∂t − ν ∂2y ∂x2 + y ∂y ∂x = u(t, x) y(x, 0) = y0(x), periodic boundary

u(t, x) = u1(t)v1(x) + u2(t)v2(x)

2 4 6 8 10 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

Flow Mean Reference

time |u1(t)| ≤ 0.1 , |u2(t)| ≤ 0.1

slide-84
SLIDE 84

Milan Korda

Numerical examples

84

Burgers’ equation

∂y ∂t − ν ∂2y ∂x2 + y ∂y ∂x = u(t, x) y(x, 0) = y0(x), periodic boundary

u(t, x) = u1(t)v1(x) + u2(t)v2(x)

2 4 6 8 10

  • 0.15
  • 0.1
  • 0.05

0.05 0.1 0.15

u1 u2

time |u1(t)| ≤ 0.1 , |u2(t)| ≤ 0.1

slide-85
SLIDE 85

Milan Korda

Numerical examples

85

Burgers’ equation

∂y ∂t − ν ∂2y ∂x2 + y ∂y ∂x = u(t, x) y(x, 0) = y0(x), periodic boundary

Tracking time-varying reference

slide-86
SLIDE 86

Milan Korda

Numerical examples

86

Burgers’ equation

∂y ∂t − ν ∂2y ∂x2 + y ∂y ∂x = u(t, x) y(x, 0) = y0(x), periodic boundary

u(t, x) = u1(t)v1(x) + u2(t)v2(x) |u1(t)| ≤ 1 , |u2(t)| ≤ 1 time y(t, x) x

slide-87
SLIDE 87

Milan Korda

Numerical examples

87

Burgers’ equation

∂y ∂t − ν ∂2y ∂x2 + y ∂y ∂x = u(t, x) y(x, 0) = y0(x), periodic boundary

1 2 3 4 5

  • 0.1
  • 0.08
  • 0.06
  • 0.04
  • 0.02

0.02 0.04 0.06 0.08 0.1

u1 u2

u(t, x) = u1(t)v1(x) + u2(t)v2(x) |u1(t)| ≤ 1 , |u2(t)| ≤ 1 time Control input

slide-88
SLIDE 88

Milan Korda

Numerical examples

88

Burgers’ equation

∂y ∂t − ν ∂2y ∂x2 + y ∂y ∂x = u(t, x) y(x, 0) = y0(x), periodic boundary

u(t, x) = u1(t)v1(x) + u2(t)v2(x) |u1(t)| ≤ 1 , |u2(t)| ≤ 1 Computation time ≈ 2ms

(Matlab + qpOASES, 2GHz i7)

slide-89
SLIDE 89

Milan Korda

Open problems

89

  • Accuracy of the predictors for finite N
  • Choice of observables
  • Guarantees on the controllers (stability, optimality)
  • Control for other classes of predictors (bilinear)

arXiv preprint:

Korda M. and Mezić I. Linear predictors for nonlinear dynamical systems: Koop- man operator meets model predictive control, arXiv, 2017

slide-90
SLIDE 90

Milan Korda

Question time

90

Thank you