Matlab: Adaptive MPC Design, Time-Varying MPC Design, Nonlinear MPC Design

漆雕令秋
2023-12-01

Matlab里的自适应mpc、(线性)时变MPC、非线性MPC有什么联系和区别?

看看帮助文档里Adaptive MPC Design

Adaptive MPC controllers adjust their prediction model at run time to compensate for nonlinear or time-varying plant characteristics. To implement adaptive MPC, first design a traditional model predictive controller for the nominal operating conditions of your control system, and then update the plant model and nominal conditions used by the MPC controller at run time. For more information, see Adaptive MPC. After updating, the plant model and nominal conditions remain constant over the prediction horizon.

If you can predict how the plant and nominal conditions vary in the future, you can use time-varying MPC to specify a model that changes over the prediction horizon. Such a linear time-varying model is useful when controlling periodic systems or nonlinear systems that are linearized around a time-varying nominal trajectory. For more information, see Time-Varying MPC.

Adaptive MPC

MPC control predicts future behavior using a linear-time-invariant (LTI) dynamic model. In practice, such predictions are never exact, and a key tuning objective is to make MPC insensitive to prediction errors. In many applications, this approach is sufficient for robust controller performance.

If the plant is strongly nonlinear or its characteristics vary dramatically with time, LTI prediction accuracy might degrade so much that MPC performance becomes unacceptable. Adaptive MPC can address this degradation by adapting the prediction model for changing operating conditions. As implemented in the Model Predictive Control Toolbox™ software, adaptive MPC uses a fixed model structure, but allows the models parameters to evolve with time. Ideally, whenever the controller requires a prediction (at the beginning of each control interval) it uses a model appropriate for the current conditions.

After you design an MPC controller for the average or most likely operating conditions of your control system, you can implement an adaptive MPC controller based on that design. For information about designing that initial controller, see Controller Creation.

At each control interval, the adaptive MPC controller updates the plant model and nominal conditions. Once updated, the model and conditions remain constant over the prediction horizon. If you can predict how the plant and nominal conditions vary in the future, you can use Time-Varying MPC to specify a model that changes over the prediction horizon.

An alternative option for controlling a nonlinear or time-varying plant is to use gain-scheduled MPC control. See Gain-Scheduled MPC.)

Time-Varying MPC:

To use time-varying MPC, specify arrays for the Plant and Nominal input arguments of mpcmoveAdaptive. For an example of time-varying MPC, see Time-Varying MPC Control of a Time-Varying Plant.

以及Nonlinear MPC Design: 

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.

For more information, see Nonlinear MPC.

另外,Matlab自带一个例子,针对一个线性时变系统跟踪问题,分别使用了以上3种MPC方法并进行了对比。因此可以参考它的代码实现。

 类似资料: