Nonlinear model predictive control using automatic differentiation
Although nonlinear model predictive control (NMPC) might be the best choice for a nonlinear plant, it is still not widely used. This is mainly due to the computational burden associated with solving online a set of nonlinear differential equations and a nonlinear dynamic optimization problem in real time. This thesis is concerned with strategies aimed at reducing the computational burden involved in different stages of the NMPC such as optimization problem, state estimation, and nonlinear model identification. A major part of the computational burden comes from function and derivative evaluations required in different parts of the NMPC algorithm. In this work, the problem is tackled using a recently introduced efficient tool, the automatic differentiation (AD). Using the AD tool, a function is evaluated together with all its partial derivative from the code defining the function with machine accuracy. A new NMPC algorithm based on nonlinear least square optimization is proposed. In a first–order method, the sensitivity equations are integrated using a linear formula while the AD tool is applied to get their values accurately. For higher order approximations, more terms of the Taylor expansion are used in the integration for which the AD is effectively used. As a result, the gradient of the cost function against control moves is accurately obtained so that the online nonlinear optimization can be efficiently solved. In many real control cases, the states are not measured and have to be estimated for each instance when a solution of the model equations is needed. A nonlinear extended version of the Kalman filter (EKF) is added to the NMPC algorithm for this purpose. The AD tool is used to calculate the required derivatives in the local linearization step of the filter automatically and accurately. Offset is another problem faced in NMPC. A new nonlinear integration is devised for this case to eliminate the offset from the output response. In this method, an integrated disturbance model is added to the process model input or output to correct the plant/model mismatch. The time response of the controller is also improved as a by–product. The proposed NMPC algorithm has been applied to an evaporation process and a two continuous stirred tank reactor (two–CSTR) process with satisfactory results to cope with large setpoint changes, unmeasured severe disturbances, and process/model mismatches. When the process equations are not known (black–box) or when these are too complicated to be used in the controller, modelling is needed to create an internal model for the controller. In this thesis, a continuous time recurrent neural network (CTRNN) in a state–space form is developed to be used in NMPC context. An efficient training algorithm for the proposed network is developed using AD tool. By automatically generating Taylor coefficients, the algorithm not only solves the differentiation equations of the network but also produces the sensitivity for the training problem. The same approach is also used to solve online the optimization problem of the NMPC. The proposed CTRNN and the predictive controller were tested on an evaporator and two–CSTR case studies. A comparison with other approaches shows that the new algorithm can considerably reduce network training time and improve solution accuracy. For a third case study, the ALSTOM gasifier, a NMPC via linearization algorithm is implemented to control the system. In this work a nonlinear state–space class Wiener model is used to identify the black–box model of the gasifier. A linear model of the plant at zero–load is adopted as a base model for prediction. Then, a feedforward neural network is created as the static gain for a particular output channel, fuel gas pressure, to compensate its strong nonlinear behavior observed in open–loop simulations. By linearizing the neural network at each sampling time, the static nonlinear gain provides certain adaptation to the linear base model. The AD tool is used here to linearize the neural network efficiently. Noticeable performance improvement is observed when compared with pure linear MPC. The controller was able to pass all tests specified in the benchmark problem at all load conditions.