Kaska Kowalska, McMaster University

Application of Optimization to the Design of a Predictive Controller with Variable Time Switches

The Model Predictive Control (MPC) is a popular control strategy that uses a plant model in order to compute optimal control input and predict the plant’s future behaviour under the application of that input. The mathematical foundations of MPC are closely based on those found in optimal control theory. MPC often uses a linear model [latex]x’ = Ax + Bu,[/latex] where [latex]x[/latex] is the state vector and [latex]u[/latex] is the control input vector, (or a linearized model of [latex]x’ = f(x, u)[/latex]) in order to minimize a quadratic performance index, cost function, [latex]J.[/latex] The objective is to compute a sequence of control inputs that will minimize this cost function over a finite number of steps [latex]N[/latex] that define the prediction horizon. The optimization problem is defined as [latex]u^*_i = min(J_N(x_i, u_i))[/latex].

The cost function over the horizon length, [latex]J_N[/latex], is a summation defined by  [latex]J_N(x_0, u_0) = sum_{i=0}^Nl(x_i, u_i)[/latex] with [latex]l(x_i, u_i)[/latex] usually being a quadratic function of the form [latex]l(x_i, u_i) = x_i^T Q x_i + u_i^T R u_i[/latex] where [latex]Q[/latex] and [latex]R[/latex] are positive definite weighting matrices.
The optimization problem is solved iteratively at each step but only the first control input, [latex]u_0[/latex], from the solution sequence [latex][u_0, u_1, …, u_N][/latex] is applied to the plant. The state is then updated by one step and the optimization problem is solved again with the new initial conditions. This process continues until the end of the simulation time is reached.
We propose a generalization to MPC by moving away from the fixed spacing of the switching points to a variable spacing. Unlike MPC where the state, [latex]x[/latex], is predicted at discrete time points [latex]t_0, t_1,dots, t_N[/latex] such that [latex]t_{n+1} – t_n = h, n=0dots N[/latex] (ie. [latex]h[/latex] is a constant step size), the variable switching time contoller attempts to also optimize the time points at which the control input is applied. We are thus searching for a sequence of tuples of control inputs and switching times, [latex]S_N = [(t^*_0, u^*_0), (t^*_1, u^*_1), dots, (t^*_N, u^*_N)][/latex]. The new minimization problem is of the form: [latex]S_N = min(J_H(x, u))[/latex] We work in the continuous domain over the horizon length [latex]H[/latex] where [latex]N[/latex] is the number of switching points. Our cost function, [latex]J_H[/latex], is similarly defined although we use an integral [latex]J_H = int_0^Hl(x, u)dt.[/latex] We will discuss how the optimization problem is formulated, the methods used to solve the minimization problem, and we will present some examples.

Posted under: Applications, MOPTA sessions