Model Predictive Control

Similar documents
Linear Parameter Varying and Time-Varying Model Predictive Control

Optimal control and estimation

Course on Model Predictive Control Part II Linear MPC design

PROPORTIONAL-Integral-Derivative (PID) controllers

Nonlinear Model Predictive Control Tools (NMPC Tools)

Integral action in state feedback control

Online Model Predictive Torque Control for Permanent Magnet Synchronous Motors

Direct Methods. Moritz Diehl. Optimization in Engineering Center (OPTEC) and Electrical Engineering Department (ESAT) K.U.

Overview of Models for Automated Process Control

Optimizing Economic Performance using Model Predictive Control

arxiv: v1 [cs.sy] 2 Oct 2018

Model Predictive Control New tools for design and evaluation

4F3 - Predictive Control

ECE Introduction to Artificial Neural Network and Fuzzy Systems

Lecture 7: Optimal Smoothing

Robust Model Predictive Control for Autonomous Vehicle/Self-Driving Cars

State estimation and the Kalman filter

How to simulate in Simulink: DAE, DAE-EKF, MPC & MHE

Pole placement control: state space and polynomial approaches Lecture 2

Numerical Optimal Control Overview. Moritz Diehl

Online monitoring of MPC disturbance models using closed-loop data

Outline. Linear regulation and state estimation (LQR and LQE) Linear differential equations. Discrete time linear difference equations

1. Type your solutions. This homework is mainly a programming assignment.

Nonlinear State Estimation! Extended Kalman Filters!

Theory in Model Predictive Control :" Constraint Satisfaction and Stability!

Industrial Model Predictive Control

MATH4406 (Control Theory) Unit 6: The Linear Quadratic Regulator (LQR) and Model Predictive Control (MPC) Prepared by Yoni Nazarathy, Artem

Stochastic and Adaptive Optimal Control

Principles of Optimal Control Spring 2008

Outline. 1 Linear Quadratic Problem. 2 Constraints. 3 Dynamic Programming Solution. 4 The Infinite Horizon LQ Problem.

COMPUTATIONAL DELAY IN NONLINEAR MODEL PREDICTIVE CONTROL. Rolf Findeisen Frank Allgöwer

Linear System Theory. Wonhee Kim Lecture 1. March 7, 2018

10/8/2015. Control Design. Pole-placement by state-space methods. Process to be controlled. State controller

Control Systems Lab - SC4070 Control techniques

Multiobjective optimization for automatic tuning of robust Model Based Predictive Controllers

Linear Discrete-time State Space Realization of a Modified Quadruple Tank System with State Estimation using Kalman Filter

Stochastic Optimal Control!

Differential Equation Types. Moritz Diehl

Every real system has uncertainties, which include system parametric uncertainties, unmodeled dynamics

NONLINEAR MODEL PREDICTIVE CONTROL USING AUTOMATIC DIFFERENTIATION

Process Modelling, Identification, and Control

ROBUST CONSTRAINED ESTIMATION VIA UNSCENTED TRANSFORMATION. Pramod Vachhani a, Shankar Narasimhan b and Raghunathan Rengaswamy a 1

NEW DEVELOPMENTS IN PREDICTIVE CONTROL FOR NONLINEAR SYSTEMS

Systems and Control Theory Lecture Notes. Laura Giarré

NONLINEAR MODEL PREDICTIVE CONTROL VIA FEASIBILITY-PERTURBED SEQUENTIAL QUADRATIC PROGRAMMING

ROBUST STABLE NONLINEAR CONTROL AND DESIGN OF A CSTR IN A LARGE OPERATING RANGE. Johannes Gerhard, Martin Mönnigmann, Wolfgang Marquardt

ALADIN An Algorithm for Distributed Non-Convex Optimization and Control

Control Systems I. Lecture 2: Modeling. Suggested Readings: Åström & Murray Ch. 2-3, Guzzella Ch Emilio Frazzoli

Subject: Optimal Control Assignment-1 (Related to Lecture notes 1-10)

CHAPTER 2 CONTINUOUS STIRRED TANK REACTOR PROCESS DESCRIPTION

MODEL PREDICTIVE CONTROL FUNDAMENTALS

Model Predictive Control Design for Nonlinear Process Control Reactor Case Study: CSTR (Continuous Stirred Tank Reactor)

ESC794: Special Topics: Model Predictive Control

State Estimation using Moving Horizon Estimation and Particle Filtering

Efficient Numerical Methods for Nonlinear MPC and Moving Horizon Estimation

Quis custodiet ipsos custodes?

D(s) G(s) A control system design definition

Dynamic Model Predictive Control

A tutorial overview on theory and design of offset-free MPC algorithms

An Introduction to Model-based Predictive Control (MPC) by

LQ and Model Predictive Control (MPC) of a tank process

Time-Invariant Linear Quadratic Regulators!

A FAST, EASILY TUNED, SISO, MODEL PREDICTIVE CONTROLLER. Gabriele Pannocchia,1 Nabil Laachi James B. Rawlings

State Estimation of Linear and Nonlinear Dynamic Systems

Control System Design

Fast model predictive control based on linear input/output models and bounded-variable least squares

Application of Autocovariance Least-Squares Methods to Laboratory Data

L06. LINEAR KALMAN FILTERS. NA568 Mobile Robotics: Methods & Algorithms

sc Control Systems Design Q.1, Sem.1, Ac. Yr. 2010/11

Closed-loop Behavior of Nonlinear Model Predictive Control

Discrete-time linear systems

H-Infinity Controller Design for a Continuous Stirred Tank Reactor

FINITE HORIZON ROBUST MODEL PREDICTIVE CONTROL USING LINEAR MATRIX INEQUALITIES. Danlei Chu, Tongwen Chen, Horacio J. Marquez

I. D. Landau, A. Karimi: A Course on Adaptive Control Adaptive Control. Part 9: Adaptive Control with Multiple Models and Switching

Wannabe-MPC for Large Systems Based on Multiple Iterative PI Controllers

Hot-Starting NLP Solvers

ANFIS Gain Scheduled Johnson s Algorithm based State Feedback Control of CSTR

Model Predictive Control For Interactive Thermal Process

Identification of a Chemical Process for Fault Detection Application

Adaptive Robust Control

Introduction to System Identification and Adaptive Control

Moving Horizon Filter for Monotonic Trends

FAULT-TOLERANT CONTROL OF CHEMICAL PROCESS SYSTEMS USING COMMUNICATION NETWORKS. Nael H. El-Farra, Adiwinata Gani & Panagiotis D.

MIMO Identification and Controller design for Distillation Column

Learning Model Predictive Control for Iterative Tasks: A Computationally Efficient Approach for Linear System

Course on Model Predictive Control Part III Stability and robustness

CONTROL OF DIGITAL SYSTEMS

DYNAMIC MATRIX CONTROL

Numerical Methods for Embedded Optimization and Optimal Control. Exercises

Application of Modified Multi Model Predictive Control Algorithm to Fluid Catalytic Cracking Unit

Lecture 4: Numerical Solution of SDEs, Itô Taylor Series, Gaussian Process Approximations

MPC for tracking periodic reference signals

The simplified model now consists only of Eq. 5. Degrees of freedom for the simplified model: 2-1

ECE7850 Lecture 9. Model Predictive Control: Computational Aspects

Fall 線性系統 Linear Systems. Chapter 08 State Feedback & State Estimators (SISO) Feng-Li Lian. NTU-EE Sep07 Jan08

Fast Model Predictive Control with Soft Constraints

Part II: Model Predictive Control

arxiv: v2 [math.oc] 29 Aug 2012

YOULA KUČERA PARAMETRISATION IN SELF TUNING LQ CONTROL OF A CHEMICAL REACTOR

Pipeline Liquid Control using Nonlinear MPC and OLGA

Transcription:

Model Predictive Control Linear time-varying and nonlinear MPC Alberto Bemporad http://cse.lab.imtlucca.it/~bemporad 2018 A. Bemporad - "Model Predictive Control" 1/30

Course structure Linear model predictive control (MPC) Linear time-varying and nonlinear MPC MPC computations: quadratic programming (QP), explicit MPC Hybrid MPC Stochastic MPC Data-driven MPC MATLAB Toolboxes: MPC Toolbox (linear/explicit/parameter-varying MPC) Hybrid Toolbox (explicit MPC, hybrid systems) Course page: http://cse.lab.imtlucca.it/~bemporad/mpc_course.html 2018 A. Bemporad - "Model Predictive Control" 2/30

Linear Time-Varying Model Predictive Control

LPV models Linear Parameter-Varying (LPV) model { x k+1 = A(p(t))x k + B(p(t))u k + B v (p(t))v k y k = C(p(t))x k + D v (p(t))v k that depends on a vector p(t) of parameters The weights in the quadratic performance index can also be LPV The resulting optimization problem is still a QP ] 1 min z 2 z H(p(t))z + F (p(t)) z s.t. [ x(t) r(t) u(t 1) G(p(t))z W (p(t)) + S(p(t)) [ x(t) ] r(t) u(t 1) The QP matrices must be constructed online, contrarily to the LTI case 2018 A. Bemporad - "Model Predictive Control" 3/30

Linearizing a nonlinear model: LPV case An LPV model can be obtained by linearizing the nonlinear model { ẋ c (t) = f(x c (t), u c (t), p c (t)) y c (t) = g(x c (t), p c (t)) p c R np = a vector of exogenous signals (e.g., ambient conditions) At time t, consider nominal values x c, ū c, p c and linearize ẋ c (t) f (x c (t) x c ) + f (u c (t) ū c ) x xc,ū }{{ c, p } c u xc,ū }{{ c, p } c A c B c [ ] f [ + f( x c, ū c, p c ) pc(t) p ] c p 1 xc,ū c, p c }{{} B vc Convert (A c, [B c B vc ]) to discrete-time and get prediction model (A, [B B v ]) Same thing for the output equation, to get matrices C and D v 2018 A. Bemporad - "Model Predictive Control" 4/30

LTV models Linear Time-Varying (LTV) model { x k+1 = A k (t)x k + B k (t)u k y k = C k (t)x k At each time t the model can also change over the prediction horizon k The measured disturbance is embedded in the model The resulting optimization problem is still a QP min z 1 2 z H(t)z + s.t. [ x(t) r(t) u(t 1) G(t)z W (t) + S(t) ] F (t) z [ x(t) ] r(t) u(t 1) As for LPV-MPC, the QP matrices must be constructed online 2018 A. Bemporad - "Model Predictive Control" 5/30

Linearizing a nonlinear model: LTV case LPV/LTV models can be obtained by linearizing nonlinear models { ẋ c (t) = f(x c (t), u c (t), p c (t)) y c (t) = g(x c (t), p c (t)) At time t, consider nominal trajectories U = {ū c (t), ū c (t + T s ),..., ū c (t + (N 1)T s )} (example: U = shifted previous optimal sequence or input ref. trajectory) P = { p c (t), p c (t + T s ),..., p c (t + (N 1)T s )} (no preview: p c(t + k) p c(t)) Integrate the model and get nominal state/output trajectories X = { x c (t), x c (t + T s ),..., x c (t + (N 1)T s )} Y = {ȳ c (t), ȳ c (t + T s ),..., ȳ c (t + (N 1)T s )} Examples: x c (t) = current x c (t); x c (t) = equilibrium; x c (t) = reference 2018 A. Bemporad - "Model Predictive Control" 6/30

Linearizing a nonlinear model: LTV case While integrating, also compute the sensitivities A k (t) = x c(t + (k + 1)T s ) x c (t + kt s ) B k (t) = x c(t + (k + 1)T s ) ū c (t + kt s ) C k (t) = ȳ c(t + kt s ) x c (t + kt s ) Approximate the NL model as the LTV model x k+1 {}}{ x c (k + 1) x c (k + 1) = A k (t) x k { }} { { }} { (x c (k) x c (k)) +B k (t) (u c (k) ū c (k)) y k = C k (t) (x c (k) x c (k)) }{{} y c (k) ȳ c (k) }{{} x k u k 2018 A. Bemporad - "Model Predictive Control" 7/30

LTV-MPC example Process model is LTV d 3 y dt 3 + y 3d2 dt 2 + 2dy + (6 + sin(5t))y = 5du dt dt + ( ( )) 5 5 + 2 cos 2 t u LTI-MPC cannot track the setpoint, LPV-MPC tries to catch-up with time-varying model, LTV-MPC has preview on future model values (See demo TimeVaryingMPCControlOfATimeVaryingLinearSystemExample in MPC Toolbox) 2018 A. Bemporad - "Model Predictive Control" 8/30

LTV-MPC example Define LTV model Models = tf; ct = 1; for t = 0:0.1:10 Models(:,:,ct) = tf([5 5+2*cos(2.5*t)],[1 3 2 6+sin(5*t)]); ct = ct + 1; end Ts = 0.1; % sampling time Models = ss(c2d(models,ts)); Design MPC controller sys = ss(c2d(tf([5 5],[1 3 2 6]),Ts)); % average model time p = 3; % prediction horizon m = 3; % control horizon mpcobj = mpc(sys,ts,p,m); mpcobj.mv = struct('min',-2,'max',2); % input constraints mpcobj.weights = struct('mv',0,'mvrate',0.01,'output',1); 2018 A. Bemporad - "Model Predictive Control" 9/30

LTV-MPC example Simulate LTV system with LTI-MPC controller for ct = 1:(Tstop/Ts+1) real_plant = Models(:,:,ct); % Get the current plant y = real_plant.c*x; u = mpcmove(mpcobj,xmpc,y,1); % Apply LTI MPC x = real_plant.a*x + real_plant.b*u; end Simulate LTV system with LPV-MPC controller for ct = 1:(Tstop/Ts+1) real_plant = Models(:,:,ct); % Get the current plant y = real_plant.c*x; u = mpcmoveadaptive(mpcobj,xmpc,real_plant,nominal,y,1); x = real_plant.a*x + real_plant.b*u; end 2018 A. Bemporad - "Model Predictive Control" 10/30

LTV-MPC example t Simulate LTV system with LTV-MPC controller for ct = 1:(Tstop/Ts+1) real_plant = Models(:,:,ct); % Get the current plant y = real_plant.c*x; u = mpcmoveadaptive(mpcobj,xmpc,models(:,:,ct:ct+p),nominals,y,1); x = real_plant.a*x + real_plant.b*u; end Simulate in Simulink A B C Clock Zero-Order Hold t D U Y X DX Time Varying Predictive Model model mo ref Adaptive MPC mv y u Time-Varying Plant ysim To Workspace1 mpc_timevarying.mdl 1 Reference Adaptive MPC Controller usim To Workspace 2018 A. Bemporad - "Model Predictive Control" 11/30

LTV-MPC example Simulink block need to provide 3D array of future models mpc_timevarying.mdl 2018 A. Bemporad - "Model Predictive Control" 12/30

Example: LPV-MPC of a nonlinear CSTR system MPC control of a diabatic continuous stirred tank reactor (CSTR) Process model is nonlinear dc A dt dt dt = F V (C Af C A ) C A k 0 e E RT = F V (T f T ) + UA ρc (T j T ) H C A k 0 e E RT pv ρc p T : temperature inside the reactor [K] (state) C A : concentration of the reagent in the reactor [kgmol/m 3 ] (state) T j : jacket temperature [K] (input) T f : feedstream temperature [K] (measured disturbance) F Tf T A B C Af : feedstream concentration [kgmol/m 3 ] (measured disturbance) Objective: manipulate T j to regulate C A on desired setpoint CAf Tj CA >> edit ampccstr_linearization (MPC Toolbox) 2018 A. Bemporad - "Model Predictive Control" 13/30

Example: LPV-MPC of a nonlinear CSTR system Process model >> mpc_cstr_plant 1 CAi 2 Ti 3 Tc Feed Concentration Reactor Temperature Feed Temperature Reactor Concentration Coolant Temperature CSTR 1 T 2 CA % Create operating point specification. plant_mdl = 'mpc_cstr_plant'; op = operspec(plant_mdl); op.inputs(1).u = 10; % Feed concentration known @initial condition op.inputs(1).known = true; op.inputs(2).u = 298.15; % Feed concentration known @initial condition op.inputs(2).known = true; op.inputs(3).u = 298.15; % Coolant temperature known @initial condition op.inputs(3).known = true; x0 = [op_report.states(1).x;op_report.states(2).x]; y0 = [op_report.outputs(1).y;op_report.outputs(2).y]; u0 = [op_report.inputs(1).u;op_report.inputs(2).u;op_report.inputs(3).u]; % Obtain linear plant model at the initial condition. sys = linearize(plant_mdl, op_point); sys = sys(:,2:3); % First plant input CAi dropped because not used by MPC 2018 A. Bemporad - "Model Predictive Control" 14/30

Example: LPV-MPC of a nonlinear CSTR system MPC design % Discretize the plant model Ts = 0.5; % hours plant = c2d(sys,ts); % Design MPC Controller % Specify signal types used in MPC plant.inputgroup.measureddisturbances = 1; plant.inputgroup.manipulatedvariables = 2; plant.outputgroup.measured = 1; plant.outputgroup.unmeasured = 2; plant.inputname = 'Ti','Tc'; plant.outputname = 'T','CA'; % Create MPC controller with default prediction and control horizons mpcobj = mpc(plant); % Set nominal values in the controller mpcobj.model.nominal = struct('x', x0, 'U', u0(2:3), 'Y', y0, 'DX', [0 0]); 2018 A. Bemporad - "Model Predictive Control" 15/30

Example: LPV-MPC of a nonlinear CSTR system MPC design (cont d) % Set scale factors because plant input and output signals have different % orders of magnitude Uscale = [30 50]; Yscale = [50 10]; mpcobj.dv(1).scalefactor = Uscale(1); mpcobj.mv(1).scalefactor = Uscale(2); mpcobj.ov(1).scalefactor = Yscale(1); mpcobj.ov(2).scalefactor = Yscale(2); % Let reactor temperature T float (i.e. with no setpoint tracking error % penalty), because the objective is to control reactor concentration CA % and only one manipulated variable (coolant temperature Tc) is available. mpcobj.weights.ov = [0 1]; % Due to the physical constraint of coolant jacket, Tc rate of change is % bounded by degrees per minute. mpcobj.mv.ratemin = -2; mpcobj.mv.ratemax = 2; 2018 A. Bemporad - "Model Predictive Control" 16/30

Example: LPV-MPC of a nonlinear CSTR system Simulink diagram 3 Measurement Noise u0(1) u0(2) Disturbance 3 CAi Ti Tc plant model CSTR T CA Reactor Feed 3 3 Temperature 3 2 2 2 u0(1) 2 [2x2] A T A [2x2] [2x2] B B [2x2] [2x2] C CA C [2x2] [2x2] D D [2x2] 8{24} [2x1] CAi U U [2x1] [2x1] Y Y [2x1] Ti [2x1] X X [2x1] [2x1] DX DX [2x1] Tc [2x1] poles Poles [2x1] Successive Linearizer Pole 3 Concentration 3 Estimated True Selector 3 Coolant 3 mv est.state Adaptive MPC model mo ref md Adaptive MPC Controller 8{24} 2 2 0 CA Reference linearize + discretize Reference Copyright 1990-2014 The MathWorks, Inc. LPV-MPC >> edit ampc_cstr_linearization 2018 A. Bemporad - "Model Predictive Control" 17/30

Example: LPV-MPC of a nonlinear CSTR system Closed-loop results 2018 A. Bemporad - "Model Predictive Control" 18/30

Example: LTI-MPC of a nonlinear CSTR system Closed-loop results with LTI-MPC, same tuning Noise 3 3 u0(1) CAi CAi T Reactor u0(2) Ti Ti Tc CA Feed 3 3 Temperature Disturbance CSTR Coolant mo 0 LTI-MPC mv MPC 2 ref md 2 CA Reference MPC Controller Reference 2 2 Concentration True Copyright 1990-2014 The MathWorks, Inc. 2018 A. Bemporad - "Model Predictive Control" 19/30

Example: LTI-MPC of a nonlinear CSTR system Closed-loop results 2018 A. Bemporad - "Model Predictive Control" 20/30

LTV Kalman filter Process model = LTV model with noise x(k + 1) = A(k)x(k) + B(k)u(k)+G(k)ξ(k) y(k) = C(k)x(k) + ζ(k) ξ(k) R q = zero-mean white process noise with covariance Q(k) 0 ζ(k) R p = zero-mean white measurement noise with covariance R(k) 0 measurement update: time update: M(k) = P (k k 1)C(k) [C(k)P (k k 1)C(k) + R(k)] 1 ˆx(k k) = ˆx(k k 1) + M(k) (y(k) C(k)ˆx(k k 1)) P (k k) = (I M(k)C(k))P (k k 1) ˆx(k + 1 k) = Aˆx(k k) + Bu(k) P (k + 1 k) = A(k)P (k k)a(k) + G(k)Q(k)G(k) 2018 A. Bemporad - "Model Predictive Control" 21/30

Extended Kalman filter Process model = nonlinear model with noise measurement update: time update: x(k + 1) = f(x(k), u(k), ξ(k)) y(k) = g(x(k), u(k)) + ζ(k) C(k) = g x (ˆx k k 1, u(k)) M(k) = P (k k 1)C(k) [C(k)P (k k 1)C(k) + R(k)] 1 ˆx(k k) = ˆx(k k 1) + M(k) (y(k) g(ˆx(k k 1), u(k))) P (k k) = (I M(k)C(k))P (k k 1) ˆx(k + 1 k) = f(ˆx(k k), u(k)) A(k) = f x (ˆx k k, u(k), E[ξ(k)]), G(k) = f ξ (ˆx k k, u(k), E[ξ(k)]) P (k + 1 k) = A(k)P (k k)a(k) + G(k)Q(k)G(k) 2018 A. Bemporad - "Model Predictive Control" 22/30

Nonlinear Model Predictive Control

Nonlinear MPC (Mayne, Rawlings, Diehl, 2017) Nonlinear prediction model {xk+1 = f(xk, uk) Nonlinear constraints h(x k, u k ) 0 y k = g(x k, u k ) N 1 Nonlinear performance index min l N (x N ) + l(x k, u k ) k=0 Optimization problem: nonlinear programming problem (NLP) min z F (z, x(t)) s.t. G(z, x(t)) 0 H(z, x(t)) = 0 z = u 0. u N 1 x 1. x N 2018 A. Bemporad - "Model Predictive Control" 23/30

Nonlinear optimization (Nocedal, Wright, 2006) (Nonconvex) NLP is harder to solve than QP Convergence to a global optimum may not be guaranteed Several NLP solvers exist (such as Sequential Quadratic Programming (SQP)) NL-MPC is not used in practice so often, except for dealing with strong dynamical nonlinearities and slow processes (such as chemical processes) 2018 A. Bemporad - "Model Predictive Control" 24/30

Fast nonlinear MPC (Lopez-Negrete, D Amato, Biegler, Kumar, 2013) Fast MPC: exploit sensitivity analysis to compensate for the computational delay caused by solving the NLP Key idea: pre-solve the NLP between time t 1 and t based on the predicted state x (t) = f(x(t 1), u(t 1)) in background Get u (t) and the sensitivities u x within sample interval [(t 1)T s, tt s ) At time t, get x(t) and compute u(t) = u (t) + u x (x(t) x (t)) Note that still one NLP must be solved within the sample interval 2018 A. Bemporad - "Model Predictive Control" 25/30

From LTV-MPC to NL-MPC Key idea: Solve a sequence of LTV-MPC problems at the same time t Given the current state x(t) and reference {r(t + k), u r (t + k)}, initial guess U 0 = {u 0 0,..., u 0 N 1 } and corresponding state trajectory X 0 = {x 0 0,..., x 0 N } A good initial guess U 0, X 0 is the previous (shifted) optimal solution At a generic iteration i, linearize the NL model around U i, X i : { xk+1 = f(x k, u k ) A i = f(xi 0, u i 0) x, B i = f(xi 0, u i 0) u y k = g(x k, u k ), C i = g(xi 0, u i 0), D i = g(xi 0, u i 0) x u 2018 A. Bemporad - "Model Predictive Control" 26/30

Nonlinear MPC For h = 0 to h max 1 do: 1. Simulate from x(t) with inputs U h, parameter sequence P and get state trajectory X h and output trajectory Y h 2. Linearize around (X h, U h, P ) and discretize in time with sample time T s 3. Let U h+1 be the solution of the QP problem corresponding to LTV-MPC 4. Find optimal step size α h (0, 1]; 5. Set U h+1 = (1 α h )U h + α h U h+1; Return solution U hmax The method above is a Gauss-Newton method to solve the NL-MPC problem Special case: just solve one iteration with α = 1 (a.k.a. Real-Time Iteration) (Diehl, Bock, Schloder, Findeisen, Nagy, Allgower, 2002) 2018 A. Bemporad - "Model Predictive Control" 27/30

Nonlinear MPC (Gros, Zanon, Quirynen, Bemporad, Diehl, 2016) Example x1 10 5 0-5 4 2 Linear MPC RTI Fully converged 2 4 6 8 10 12 14 16 18 20 Linear MPC RTI Fully converged x1 4 3 2 1 0-1 0 5 10 4 x2 0-2 2 4 6 8 10 12 14 16 18 20 x2 3 2 1 u1 0.2 0-0.2-0.4 Linear MPC RTI Converged 0-1 0 5 10 2 4 6 8 10 12 14 16 18 20 0.2 time 0 Fig. 7. Illustration of the RTI solution vs. the linear MPC solutions at the discrete time instant i = 2, with state noise. -0.2 2018 A. Bemporad - "Model Predictive Control" 28/30 u1-0.4

Learning nonlinear models for MPC (Masti, Bemporad, CDC 2018) Idea: use autoencoders and artificial neural networks to learn a nonlinear state-space model of desired order from input/output data output map dead-beat observer state map O k = [y k... y k m] (Hinton, Salakhutdinov, 2006) I k = [y k... y k n a+1 u k... u k n b +1] 2018 A. Bemporad - "Model Predictive Control" 29/30

Learning nonlinear models for MPC - An example (Masti, Bemporad, CDC 2018) System generating the data = nonlinear 2-tank benchmark x 1(k + 1) = x 1(k) k 1 x1(k) + k 2(u(k) + w(k)) x 2(k + 1) = x 2(k) + k 3 x1(k) k 4 x2(k) y(k) = x 2(k) + v(k) www.mathworks.com LTV MPC Model is totally unknown to learning algorithm The performance achieved with the derivative-based controller suggests that an LTV-MPC formulation might also works well. We also assess its robustness using a model achieving 61% BFR in open loop Artificial neural network (ANN): 3 hidden layers 60 exponential linear unit (ELU) neurons For given number of model parameters, autoencoder approach is superior to NNARX Jacobians directly obtained from ANN structure for Kalman filtering & MPC problem construction Computation time per step: ~40ms LTV-MPC results ODYS CONFIDEN 2018 A. Bemporad - "Model Predictive Control" 30/30