Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1)...

52
Ricardo de Castro Technische Universität München Lehrstuhl für Elektrische Antriebssysteme Model Predictive Control (MPC) Toolbox

Transcript of Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1)...

Page 1: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Ricardo de Castro

Technische Universität München

Lehrstuhl für Elektrische Antriebssysteme

Model Predictive Control (MPC) Toolbox

Page 2: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

• Introduction to MPC

• Motivation & Preliminaries

• Unconstrained MPC

• Analytical Solution

• Matlab Example: Double integrator

• Constrained MPC

• Solution via Optimization Toolbox

• Matlab Example: Double integrator with input constrains

• MPC Toolbox

• Command-line API

• Setup of prediction model, weights & constraints

• Computing optimal control & closed-loop simulation

• Matlab Examples:

• Double integrator with input & state constraints

• Aircraft pitch & altitude control

Agenda

Page 3: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

3

References

(Chap. 1 & 2)

Page 4: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

4

MPC: Why?

PlantController

controlinput

referencestates

Example: adaptive cruise control

• Control input: motor torque

• States: pos., vel., acc.,

• Reference: desired velocity

Sensors

Control System

Actuation Limits Safety Constraints

e.g. motor max. torque e.g.velocity/temperature/

pressure limits

constraint

Optimal ControlCost

e.g. minimize actuation

energy, control error, …

Page 5: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

5

MPC: A Soccer Analogy

t0= start time

tN = prediction horizon/window

p(t0)p(t1)

p(t2)

p(tN)…

run jump

t0 tN

Goal: predict actions of

Player 1 in order to hit ball

at time tN

Player 1 Player 2

Image source: http://fussballuebung.de/

p = position of the ball

1) Predict ball position

p(t1), p(t2), … p(tN)

2) Predict actions of player 1

Page 6: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Scalar, linear and discrete-time system:

Goal:

parameters defined by the designer:

6

MPC: Motivation Example

Page 7: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Solution:

1) Predict future states:

2) Compute control actions that optimize (predicted) future states:

7

MPC: Motivation Example

Questions addressed in this lecture:

• What if ?

• What if is a vector?

• What if the system has control constraints?

• What if the system has state constraints?

Effect of tuning weight :

Unconstrained MPC

(analytical solutions)

Constrained MPC

(numerical solutions)

Page 8: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Plant model: discrete-time, state-space & linear

8

MPC: Plant Model & Constraints

Plant

Input constraints:

Assumptions:• all states are measured or estimated ( )• scalar input ( )• regulation goal ( ) or tracking goal ( )

Output constraints:

Page 9: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Problem Formulation

9

Unconstrained MPC

B) prediction model

A) cost function

C) parameters

Goal:

Page 10: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

1.1) Group future control inputs and

predicted/future states into vectors

1.2) Compute

1.3) Express cost function as function of

10

Unconstrained MPC: Solution (I)1) Predict future states

Page 11: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

2.1) Substitute equality constraint into the

cost function

2.2) Minimum obtained by finding U that

yields zero gradient

11

Unconstrained MPC: Solution (II)2) Compute control actions that optimize (predicted) future states:

Analytical solution

Page 12: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Key idea:

- Extract first element of the optimal control vector

- At every time step i, apply optimal control law

12

Unconstrained MPC: Implementation

Unconstrained MPC = Linear state feedback

PlantController

Page 13: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

13

Unconstrained MPC: Closed-loop Response

Matlab Code

A = …; B=…; % plant model

Ts = …; % [s] sample time

n = size(A,2); % number of states

K = …; % feedback gain

% closed-loop system

A_CL = A+B*K;

B_CL = zeros(n,1);

C_CL = eye(n);

sys_CL = ss( A_CL, B_CL, C_CL,[],Ts);

[y,t,x] = initial(sys_CL , xp0, Tsim);

Plant

Setup model and feedback gain

Controller

Closed-loop system

Response of closed-loop system with

initial state (xp0) during Tsim seconds

Remark: ss(…), initial(…), zeros(..), eye(…), were already introduced in previous lectures

Page 14: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Consider the following discrete-time model of a mechanical system

14

Unconstrained MPC: Matlab Example

Goal: regulate position and velocity using unconstrained MPC

Write a Matlab script that:

a) computes prediction matrices , assuming

b) computes cost matrices

c) computes feedback gain

d) simulates closed-loop response for initial state and plot results

e) repeats d) with

Page 15: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Solution:

15

Unconstrained MPC: Example (II)

0 5 10 15-10

-5

0

5

10

x1

x2

0 5 10 15

k

-10

-5

0

5

10

0 10 20 30-5

0

5

10

x1

x2

0 10 20 30

k

-10

-5

0

5

10

Page 16: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Problem Formulation

16

Constrained MPC

B) prediction model

A) cost function

D) parameters

Goal:

C) input constraints

Page 17: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

17

Constrained MPC: Solution

1) Reformulate optimization problem using as decision variable

Remark: closed-form solution not easy to obtain due to inequality constraints

2) Compute using a numerical solver

Page 18: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

• Optimization Toolbox provides several functions to solve constrained optimization

problems

• For quadratic programming (QP) problems (i.e. quadratic cost and linear constraints)

one can use quadprog

• (simplified) API:

18

Constrained MPC: quadprog (I)

zOpt = quadprog(H,f,E,b)

Page 19: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

19

Constrained MPC: quadprog (II)

Constrained MPC Problem quadprog

Page 20: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

20

Constrained MPC: Receding Horizon Control

Algorithm

1) measure the state at time instant i ( )

2) update cost vector

3) compute optimal control

4) apply first element of to system

5) wait for the new sample time i+1

Source: F. Borrelli, A. Bemporad, M. Morari “Predictive Control for linear and hybrid systems “ (2014)

Idea: repeatedly solve MPC problem at each sample time in order to bring feedback action into the controller

Page 21: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

21

Constrained MPC: Receding Horizon Control

Idea: repeatedly solve MPC problem at each sample time in order to bring feedback action into the controller

time t0

p(0)p(1)

p(2)p(N)

time t1

prediction at

t0

p(0)

0

u

p(N) prediction

at t1

1 2 …

Predicted Optimal

Control

u*[0] u*[0]

Apply first

element

0

u

1 2 …

u*[0]

u*[0]

e.g. wind gust deviates ball from the trajectory predicted

at time t0; player 1 needs to re-adjust actions

Past

u*[N-1]

u*[N-1]

Future

Player 1 Player 2

Page 22: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

22

Constrained MPC: Closed-loop Simulation

Matlab Code

for i=1:Nsim-1

x0 = xp;

f = 2*(F*x0);

Uopt= quadprog(H,f,E,b);

up = U_opt(1);

xp = A*xp + B*up;

end

Algorithm

1) measure the state at time instant i

2) update cost vector

3) compute optimal control

4) apply first element of to system

A = …; B=…; % prediction model

H = …; f=…; % QP parameters (cost)

E = …; b=…; % QP parameters (constr.)

Nsim = 30; % simulation steps

xp = [10; 0]; % initial state

Setup MPC problem

Page 23: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Consider the following discrete-time model of a mechanical system

23

Constrained MPC: Example

Goal: regulate position and velocity using MPC

Write a Matlab script that

a) simulates closed-loop response of unconstrained MPC using quadprog

b) repeats a) with the input constraint

Page 24: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

24

Constrained MPC: Example (II)

0 5 10 15 20 25 30-10

-5

0

5

10

x1

x2

0 5 10 15 20 25 30

k

-10

-5

0

5

10

a) unconstrained MPC

0 5 10 15 20 25 30-5

0

5

10

x1

x2

0 5 10 15 20 25 30

k

-10

-5

0

5

10

b) constrained MPC

Page 25: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

MPC Toolbox

25

Page 26: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

MPC Toolbox: Key Ingredients

Page 27: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

27* Only a sub-set of the MPC Toolbox is considered (advanced features are not used in this introductory lecture)

MPC Toolbox: Overview

1) Setup prediction model

2) Setup MPC Object

3) Setup Weights and

Constraints

4) Compute Optimal Control

& Closed-loop Simulation

model=ss(...);

MPCobj = mpc(model,...); % create MPC controller

% create LTI prediction model

MPCobj.W.Input= … % modify MPC input weights

MPCobj.W.Output = …% modify MPC output weights

mpcmove(MPCobj,...) % computes MPC control action

Key Matlab Commands*

Page 28: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Discrete-time Prediction Model

28

MPC Toolbox: Setup Prediction Model (I)

plantDisc = ss(A,B,C,D,Ts);

% (A,B,C,D) = discrete-time SS model

% Ts = sample time [s]

% plantDisc = discrete-time state

space model

NOTE: MPC Toolbox assumes D=0

If D!=0 → create an auxiliary state with delayed output

MatlabMPC Problem Matlab Code

Page 29: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Discrete-time Prediction Model

29

MPC Toolbox: Setup Prediction Model (II)

MatlabMPC Problem

Continuous-time Prediction Model

Matlab Code

plantCont = ss(Ac,Bc,Cc,Dc);

% (Ac,Bc,Cc,Dc) = continuous-time SS

model

plantDisc = c2d(plantCont, Ts);

% plantCont = continuous-time SS model

% Ts = sample time [s]

% plantDisc = discrete-time SS model

Page 30: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

30

MPC Toolbox: Setup MPC Object

MatlabMPC Problem Matlab Code

MPCobj = mpc(plant, Ts, N, Nu);

% INPUTS

% plant= prediction model

% Ts = sample time

% N = prediction horizon

% Nu = control horizon (1<=Nu<=N)

% OUTPUT

% MPCobj = MPC controller object

Page 31: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

31

MPC Toolbox: Setup Weights (I)

MPCobj=mpc(…);

Field Description Symbol Size Default value

MPCobj.W.Output Output weight over prediction horizon

(1-to-N) by ny array

ones(1,nu)

MPCobj.W.Input Input weights over prediction horizon

(1-to-N) by nu array

zeros(1,nu)

MPCobj.W.InputRate Weight of Input incrementsover prediction horizon

(1-to-N) by nu array

0.1*ones(1,nu)

Remark: only diagonal elements of weight matrices are

specified in the MPC controller object

Constant Weights Time-varying weights

nu=number of control inputs, ny=number of outputs

Cost Function:

Page 32: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

32

MPC Toolbox: Setup Weights (II)

MPC Problem Matlab Code

c = 10;

MPCobj.W.Input=c;

d = 5;

MPCobj.W.InputRate=d;

Scalar input (nu=1), constant weights

2D output (ny=2), constant weights

q = [1 2];

MPCobj.W.Output = q;

2D output (ny=2), time-varying weights (N=3)

MPCobj.W.Output = [1 2;

1 1;

1 0.1];

Page 33: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

33

MPC Toolbox: Setup Output Constraints

MPCobj=mpc(…);

Field Description Symbol Default value

MPCobj.OV(i).Min Lower-bound of output i -Inf

MPCobj.OV(i).Max Upper-bound of output i +Inf

example, ny=3

Matlab Code

MPCobj.OV(1).Min = -1;

MPCobj.OV(1).Max = 1;

MPCobj.OV(3).Min = 0;

MPCobj.OV(3).Max = 2;

Output Constraints (vector) Output Constraints (elementwise)

MPC Problem

Page 34: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

34

MPC Toolbox: Setup Input Constraints

MPCobj=mpc(…);

Field Description Symbol Default value

MPCobj.MV(i).Min Lower bound of control i -Inf

MPCobj.MV(i).Max Upper bound of control i +Inf

MPCobj.MV(i).RateMin Lower rate-limit bound of control i -Inf

MPCobj.MV(i).RateMax Upper rate-limit bound of control i +Inf

Matlab Code

MPCobj.MV(1).Min = -10;

MPCobj.MV(1).Max = 10;

MPCobj.MV(1).RateMin = -100;

MPCobj.MV(1).RateMax = 100;

example, nu=1

MPC Problem

Input Constraints (vector) Input Constraints (elementwise)

Page 35: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

35

MPC Toolbox: Compute Optimal Control

uOpt = mpcmove(MPCobj, MPCstate, ym, r);

% INPUTS

% MPCobj = MPC controller object

% MPCstate = current MPC controller state

% ym = [1 by ny] current output measurement

% r = [(1-to-N)by ny] reference value over prediction

horizon

% OUTPUT

% uOpt = optimal control action (u*[0])

2) Computational of MPC‘s optimal control action

1) Definition of MPC controller state

Field Description Symbol

MPCstate.plant Current state of the plant

MPCstate.LastMove Control input used in the last control interval

MPCstate=mpcstate(MPCobj);

• mpcmove also updates MPCstate.plant with expected state after application of u*[0]

• if r is a [1 by ny] row vector constant reference used throughout the prediction

Notes:

Page 36: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

MPCstate = mpcstate(MPCobj);

MPCstate.Plant = [5, 0];

r = [0,0];

Nsim = 30;

for i=1:Nsim

y=C* MPCstate.Plant;

u(i)=mpcmove(MPCobj, MPCstate,y,r)

end

stairs(u);

36

MPC Toolbox: Closed-loop Simulation

Matlab Code

Create and initialize MPC

controller state at

Example with scalar input (nu=1) and 2D output (ny=2) using mpcmove(.)

Compute output

1) Compute optimal control action

2) Computes next state after

application of optimal control action

& update MPCstate.Plant

plot optimal control actions with stairstep graph

Page 37: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Consider the following discrete-time model of a mechanical system

37

MPC Toolbox: Matlab Example

Goal: regulate position and velocity

Write a Matlab script that:

a) creates a discrete-time, state-space prediction model

b) constructs a MPC object with

c) simulates closed-loop response during 30s with and plots

results

d) repeats c) with the following velocity constraint

Page 38: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

38

MPC Toolbox: Example (II)

0 10 20 30-5

0

5

10

x1

x2

0 10 20 30

Time

-1

-0.5

0

0.5

1

c) results with input constraints

0 10 20 30-5

0

5

10

x1

x2

0 10 20 30

Time

-1

-0.5

0

0.5

1

d) results with input & state constraints

Page 39: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Simulation of closed-loop response of MPC with sim(.)

39

MPC Toolbox: Closed-loop Simulation (II)

[y,t,u]=sim(MPCobj,T,r, simOptions)

% INPUTS

% T = Number of simulation steps,

% r = [(1-to-T)by ny] reference value over simulation steps

% simOptions = mpcsimopt object with simulation settings

% OUTPUT

% y = [T by ny] = controlled plant outputs

% t = [T by 1] = time sequence

% u = [T by nu] = control inputs by the MPC controller

simOptions = mpcsimopt(MPCobj)% MPCobj = MPC controller object

% simOptions = MPC simulation options object

simOptions.PlantInitialState = x0; % initial plant state

Matlab Code

Page 40: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Consider the linearized model of an aircraft at altitude of 5000m and speed of 128.2 m/s:

where

actuation constraints:

Example: Cessna Citation Aircraft

Source: Maciejowski (Example 2.7)Image source: wikipedia.org

Goal: regulate pitch angle and altitude

Page 41: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Consider the linearized model of an aircraft at altitude of 5000m and speed of 128.2 m/s:

Write a Matlab script that:

Example: Cessna Citation Aircraft (II)

a) creates a discrete-time, state-space prediction model

(sample time =0.25s)

b) constructs a MPC object with

c) simulates closed-loop response during 10s with

and plot results

d) repeats c) with

e) [optional] repeats c) with an altitude setpoint of 5100 m,

Page 42: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Example: Cessna Citation Aircraft (III)

Page 43: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

• Introduction to MPC

• Advanced control method to handle

constraints & provide optimal performance

• Unconstrained MPC: analytical solution

• MPC with input constraints

• Solution via Optimization Toolbox

• MPC with input&state constraints

• Solution via MPC Toolbox

• Setup of prediction model, weights & constraints

• Computing optimal control & closed-loop

simulation

• Examples

• Double integrator

• Aircraft

Summary

Matlab API

operations with matrices,ss(), initial()

QP Solver: quadprog()

Create MPC object: mpc()

Modify MPC Settings:Mpcobj.W.Input = …Mpcobj.MV(1).min = …

Closed-loop simulationmpcmove(), sim()

Page 44: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

44Adapted from Control Tutorials for MATLAB and Simulink (CTMS)

Homework: Velocity control of a DC Motor

Consider the following model of a DC-motor

State-space model Control input:

States:

Parameters:

Page 45: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

45

Homework: Velocity control of a DC Motor (II)

a) creates a discrete-time, state-space prediction model for the

DC-motor (sample time =0.05s, )

b) Simulate closed-loop response with MPC toolbox, reference output and

c) plot states and control input

d) add the following constraints to the MPC:

and plot closed-loop response

Consider the following model of a DC-motor,

Page 46: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Scalar, linear and discrete-time system:

Goal:

46

To Probe further…

Questions addressed in this lecture:

• What if ?

• What if is a vector?

• What if the system has constraints?

Advanced topics & Applications:

• What if plant model and/or cost function are nonlinear? Nonlinear MPC…

• What if plant model != prediction model? Robust MPC …

• What if plant model is stochastic? Stochastic MPC …

• What if I want to run MPC in an embedded system? Real-time numerical optimization…

• Where can I apply MPC? Automotive, Power Electronics, UAVs, Buildings…

• ….

Unconstrained MPC (analytical solutions)

Constrained MPC (numerical solutions)

Recall motivation example:

To probe further: S. V. Raković, W. S. Levine (Ed.) Handbook of Model Predictive Control, 2019

Page 47: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Optional Topic:

MPC Toolbox in Simulink

47

Page 48: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

48

MPC Toolbox in Simulink

Plant

Controller

MPC Toolbox

(Simulink Library)Closed-Loop Simulation

Page 49: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

49

MPC Toolbox in Simulink (II)

design/adapt

MPC settings

via GUI

Page 50: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

50

MPC Toolbox in Simulink (III)

MPC response

to step reference

Page 51: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

Consider the following discrete-time model of a mechanical system

51

MPC Toolbox: Simulink Example

a) Write a Matlab script that creates

a) discrete-time, state-space prediction model

b) MPC object with (and default weights/constraints)

b) Simulate the closed-loop response of the system in Simulink

• Simulation duration: 30s

• Initial state:

• Reference value:

c) Using MPC Designer GUI

1. add input constraint and simulate closed-loop response

2. change the MPC weights

and simulate closed-loop response

Page 52: Model Predictive Control (MPC) ToolboxConstrained MPC: Receding Horizon Control Algorithm 1) measurethe state at time instant i( ) 2) update cost vector 3) computeoptimal control 4)

52

MPC Toolbox: Simulink Example (II)

Default settings (b)Default Settings

+ input constraints (c1)

time time time

Custom Settings

+ input constraints (c2)

u u

u

x1 x1 x1

x2 x2 x2