# Nonlinear MPC Design

Design model predictive controllers with nonlinear prediction models, costs, and constraints

As in traditional linear MPC, nonlinear MPC calculates control actions at each control interval, using a combination of model-based prediction and constrained optimization. The key differences are:

• The prediction model can be nonlinear and include time-varying parameters

• The equality and inequality constraints can be nonlinear

• The scalar cost function to be minimized can be a nonquadratic (linear or nonlinear) function of the decision variables.

By default, nonlinear MPC controllers solve a nonlinear programming problem using the `fmincon` function, which requires Optimization Toolbox™ software. If you do not have Optimization Toolbox software you can specify your own custom nonlinear solver.

## Functions

 `nlmpc` Nonlinear model predictive controller `nlmpcmove` Compute optimal control action for nonlinear MPC controller `nlmpcmoveopt` Option set for `nlmpcmove` function `validateFcns` Examine prediction model and custom functions of `nlmpc` object for potential problems `convertToMPC` Convert `nlmpc` object into one or more `mpc` objects `createParameterBus` Create Simulink bus object and configure Bus Creator block for passing model parameters to Nonlinear MPC Controller block

## Blocks

 Nonlinear MPC Controller Simulate nonlinear model predictive controllers

## Topics

### Nonlinear MPC Basics

Nonlinear MPC

Nonlinear model predictive controllers control plants using nonlinear prediction models, cost functions, or constraints.

Specify Prediction Model for Nonlinear MPC

To define a prediction model for a nonlinear MPC controller, specify the state and output functions.

Specify Cost Function for Nonlinear MPC

Nonlinear MPC controllers support generic cost functions, such as a combination of linear or nonlinear functions of the system states, inputs, and outputs.

Specify Constraints for Nonlinear MPC

You can specify custom linear and nonlinear constraints for your nonlinear MPC controller in addition to standard linear MPC constraints.

Configure Optimization Solver for Nonlinear MPC

By default, nonlinear MPC controllers optimize their control move using the `fmincon` function from the Optimization Toolbox. You can also specify your own custom nonlinear solver.

Trajectory Optimization and Control of Flying Robot Using Nonlinear MPC

You can use nonlinear MPC for both optimal trajectory planning and closed-loop control applications.

### Feedback Control

Nonlinear Model Predictive Control of an Exothermic Chemical Reactor

Control a nonlinear plant as it transitions between operating points.

Swing-up Control of a Pendulum Using Nonlinear Model Predictive Control

Achieve swing-up and balancing control of an inverted pendulum on a cart using a nonlinear model predictive controller.

Nonlinear and Gain-Scheduled MPC Control of an Ethylene Oxidation Plant

You can generate one or more linear MPC controllers from a nonlinear MPC controller and use these controllers for gain-scheduled control applications.

Optimization and Control of a Fed-Batch Reactor Using Nonlinear MPC

Simulate nonlinear MPC controller as adaptive and time-varying MPC controller, and compare performance.

### Optimal Planning

Optimizing Tuberculosis Treatment Using Nonlinear MPC with a Custom Solver

You can use nonlinear MPC controllers for optimal planning applications that require a nonlinear model with nonlinear costs or constraints.

### Economic MPC

Economic MPC

Economic model predictive controllers optimize control actions to satisfy generic economic or performance cost functions.

Economic MPC Control of Ethylene Oxide Production

Maximize production of an ethylene oxide plant for profit using a nonlinear cost function and nonlinear constraints.