ModelPredictiveController
ModelPredictiveController[sspec,cost,cons]
computes the model predictive controller for the system specification sspec that minimizes the cost function cost and satisfies the constraints cons.
ModelPredictiveController[…,"prop"]
returns the value of the property "prop".
Details and Options
- Model predictive control is also known as MPC.
- A model predictive controller is computed by minimizing a cost function of state and control input over a finite horizon while allowing for constraints on both inputs and states. These constraints are often important to guarantee that the controller can be implemented safely.
- The resulting controller has a simple piecewise affine form , where is the feedback control input and is the state of the system. These can easily be deployed in microcontrollers and used for fast processes.
- A regulator aims to maintain the system at an equilibrium position despite disturbances pushing it away. Typical examples include maintaining an inverted pendulum in its upright position or maintaining an aircraft in level flight.
- The MPC regulator is specified as the feedback that minimizes the cost subject to the system dynamics in sspec and constraints cons. The cost becomes small when both state and feedback control input become small.
-
1-norm, weighted integral absolute error (IAE) squared 2-norm, weighted integral squared error (ISE) or weighted "energy" -norm, weighted peak value - The cost is specified in the cost Association with the following keys:
-
η "Horizon" integer time horizon q "StateWeight" matrix cost on states r "InputWeight" matrix cost on inputs p "StateInputWeight" matrix cost on cross-coupled states and inputs m "Norm" 1, 2 or - A tracker aims to track reference signals despite disturbances . Typical examples include a cruise control system for a car or path tracking for a robot.
- The MPC tracker is specified as the feedback that minimizes a cost subject to the system dynamics in sspec and constraints cons. The cost becomes small when both predicted error and the incremental feedback control input become small.
-
1-norm, weighted integral absolute error (IAE) squared 2-norm, weighted integral squared error (ISE) or weighted "energy" -norm, weighted peak value - The terms in the cost function expressions are the following:
-
η "Horizon" integer time horizon qe "ErrorWeight" matrix cost on errors "InputIncrementWeight" matrix cost on input increments peΔ "ErrorInputIncrementWeight" matrix cost on cross coupled errors and input increments m "Norm" 1, 2 or - The constraints cons for both the regulator and tracker problems are formulated in terms of the state variables x, input variables u and output variables y. These can be defined using StateSpaceModel[{a,b,c,d},x,u,y,…].
- Constraints that hold for a particular time instant where :
-
xmin<=xi[k]<=xmax constraint on the value at time Δxmin<=xi[k2]-xi[k1]<=Δxmax constraint on the increment from time to time - Constraints that hold for all time instants k where :
-
xmin<=xi<=xmax constraint on the value for all k min<=α1.x1+…+αn.xn+β<=max constraint on a linear combination for all k xminxxmax constraint on all the values for all k - The weight matrices , and can be specified as follows:
-
q constant weights {q,…,q,q} {{q},qη} varying end weight {q,…,q,qη} {q0,q1,…,qη} varying weights {q0,q1,…,qη} - ModelPredictiveController works for discrete-time linear systems that can be specified using StateSpaceModel[…,SamplingPeriodτ].
- The system specification sspec can have the following forms:
-
StateSpaceModel[…] linear control input and linear state AffineStateSpaceModel[…] linear control input and nonlinear state NonlinearStateSpaceModel[…] nonlinear control input and nonlinear state SystemModel[…] general system model <… > detailed system specification given as an Association - The detailed system specification can have the following keys:
-
"InputModel" sys any one of the models "FeedbackInputs" All the feedback inputs uf "TrackedOutputs" None the tracked outputs yref - The feedback inputs can have the following forms:
-
{num1,…,numn} numbered inputs numi used by StateSpaceModel, AffineStateSpaceModel and NonlinearStateSpaceModel {name1,…,namen} named inputs namei used by SystemModel All uses all inputs - ModelPredictiveController returns a SystemsModelControllerData object cd that can be used to extract additional properties using the form cd["prop"].
- ModelPredictiveController[…,"prop"] can be used to directly get the value of cd["prop"].
- Closed-loop system properties:
-
"ClosedLoopPoles" poles of the linearized "ClosedLoopSystem" "ClosedLoopSystem" system csys {"ClosedLoopSystem", cspec} detailed control over the form of the closed-loop system "ControllerModel" model cm "FeedbackGains" gain matrix κ or its equivalent "FeedbackGainsModel" model gm "FeedbackRegions" regions from which the feedback is feasible "QuasiClosedLoopSystem" closed-loop assembled with "QuasiFeedbackGains" "QuasiFeedbackGains" feedback gains that depend only on initial values "QuasiFeedbackGainsModel" systems model of "QuasiFeedbackGains" "OptimalCost" optimal value of - Infinite horizon problem properties:
-
"MaximalLQRInvariantRegion" maximal region with LQR feedback gains "MaximalStabilizableRegion" maximal region that can be steered into "MinimalFiniteHorizon" minimal horizon at which states in enter - Basic design properties:
-
"Design" type of controller design "DesignModel" model used for the design "DesignModelSamplingMethod" sampling method used to obtain "DesignModel" "DesignModelSamplingPeriod" sampling period of "DesignModel" "Horizon" horizon η "Norm" 1-, squared 2-, or ∞-norm - Input model properties:
-
"FeedbackInputs" inputs uf of sys used for feedback "InputModel" input model sys "InputsCount" number of inputs u of sys "OpenLoopPoles" poles of "DesignModel" "OutputsCount" number of outputs y of sys "SamplingPeriod" sampling period of sys "StatesCount" number of states x of sys "TrackedOutputs" outputs yt of sys that are tracked
Examples
open allclose allBasic Examples (2)
Solve the infinite horizon regulator problem for a system with states {x1,x2} and control input u:
And the state and input constraints:
Compute the resulting MPC controller:
The regions with feasible feedback:
The simulation of the closed-loop system from different initial points in the feasible region:
Solve the finite horizon regulator problem for a system with states {x1,x2} and control input u:
And the state and input constraints:
Compute the resulting MPC controller:
The response of the closed-loop system to an input sequence:
The response of the quasi closed-loop system to an input sequence:
Scope (43)
Basic Uses (5)
Solve the regulator problem for a discrete-time system with states {x1,x2} and control input u:
Constrain the states and the control input :
The response of the closed-loop system:
The closed-loop system from above:
It consists of the input model, feedback gains and comparator:
Simulate the closed-loop system from a nonzero initial condition:
Start from a different initial condition:
A multiple-input system with inputs {u1,u2}:
The controller is a DiscreteInputOutputModel:
It is essentially a series of piecewise functions:
And has the two states as inputs:
A system with sampling period of 0.1:
Plot the response at the sampling instants:
Plot it as a function of time:
The controller data object from above:
Compute the controller effort by first obtaining the controller model and closed-loop system:
Norm (4)
Compute a controller that minimizes a 1-normed cost:
The controller is a DiscreteInputOutputModel:
It is a series of piecewise functions:
Compute a controller that minimizes a -normed cost:
The controller is a DiscreteInputOutputModel:
It is a series of piecewise functions:
Compute a controller that minimizes a squared 2-normed cost:
The controller is a DiscreteInputOutputModel:
It is a series of piecewise functions:
Compute a controller that minimizes a squared 2-normed cost for an infinite horizon:
The controller is a NonlinearStateSpaceModel:
And is a piecewise function of the states of the input model:
Tracking (4)
Solve the tracking problem for a discrete-time system with states {x1,x2} and control input u:
Compute the tracking controller:
The closed-loop system from above:
Its response to a nonconstant step-like reference signal:
The response does not exceed the upper limit of 5:
The response to a sinusoidal reference:
Compare the responses with different norms:
The controllers for the different norms:
The responses of the 1- and -norm are the same because it is a single input and single output system:
The error norms of the 2- and 1-norm responses:
Compare the norms for a multiple-output system:
The cost specifications for the different norms:
The difference between the responses of the 1- and -norm costs:
Plant Models (8)
The controller for a system specified as a StateSpaceModel:
A system specified as an AffineStateSpaceModel:
It is computed based on a linear approximation:
The feedback gains are the same:
A nonlinear system with nonzero operating points:
It is computed based on a linear approximation:
The nonzero operating points cause the gains to be different:
A controller for a system specified as a NonlinearStateSpaceModel:
A system specified as a continuous-time SystemModel:
The complete system specification includes the sampling as well:
The constraints specified in terms of formal variables:
The constraints can also sometimes be specified using the variable labels:
The feedback gains are the same:
A system with feedback and exogenous inputs:
The complete system specification:
The cost includes only the feedback input cost:
The constraints include only constraints on the feedback input:
The feedback gains model has the two states {x1,x2} as inputs and u1 as output:
A system with multiple outputs:
The complete system specification to track only the first output:
The cost includes only the error of the tracked output:
Only the first output is tracked:
A SystemModel with multiple inputs:
The feedback input specified using the variable names:
It is the first input of the linearized StateSpaceModel:
Constraints (5)
Properties (17)
The list of available properties can be computed from the controller data object:
A specific property can be computed directly:
A list of properties can also be computed:
It is a series of piecewise functions:
Which are affine in the states:
It can be used to compute the feedback gains model:
Obtain the feedback gains model directly:
It can be used to compute the controller model:
It is a sum of three piecewise functions:
They are the optimal costs at each instant:
Sort them from the smallest to the largest instant:
The optimal cost at each instant is piecewise quadratic:
The optimal cost for a 1-norm problem:
The optimal cost at each instant is piecewise linear:
The optimal cost for an -norm problem:
The optimal cost at each instant is piecewise linear:
The optimal cost for an -horizon problem:
The regions of interest in an -horizon problem:
The "MaximalLQRInvariantRegion" is contained within "MaximalStabilizableRegion":
"MaximalStabilizableRegion" is essentially the same as "FeedbackRegions":
"FeedbackRegions" is composed of multiple convex subregions:
"MaximalStabilizableRegion" is a single convex region:
The closed-loop poles of an -horizon problem is a piecewise function:
The closed-loop poles of a finite horizon problem is a series of piecewise functions:
That depend only on the initial state of the system:
The quasi feedback gains model:
It is computed from the quasi feedback gains:
It is computed from the quasi feedback gains model:
Obtain all the properties as an Association:
Or a Dataset:
Applications (2)
Design a controller to automate the administration of anesthesia in a patient: »
A model of the pharmacokinetic (PK) characteristics:
A model of the pharmacodynamic (PD) characteristics:
A model of the relationship between the Bispectral Index (BIS) and using the Hill equation:
A plot showing the nonlinear characteristics of the Hill equation:
The compartmental model with as input and as output:
A discrete-time approximation of the model:
Set up the cost to track the output:
Compute for fully awake and moderately but not deeply hypnotic BIS values:
Specify the constraint to prevent the patient from going into a deep hypnotic state:
Compute to achieve a BIS value of , which puts the patient in a moderate hypnotic state:
The plot of the automated process:
Design a controller to improve an isothermal continuous stirred-tank reactor process: »
A model of the system with states and inputs :
Compute a discrete-time approximation of the model:
The response of the open-loop system:
The response of the closed-loop system:
Properties & Relations (3)
LQRegulatorGains is a special case of the squared 2-norm, infinite horizon problem:
ModelPredictiveController with no constraints gives essentially the same result:
LQRegulatorGains does not take constraints into consideration:
ModelPredictiveController takes state and control constraints into consideration:
Consequently, LQRegulatorGains has only one set of feedback gains:
While the feedback gains of ModelPredictiveController are a piecewise function:
It also computes the region where the feedback is feasible:
Compute the bounds of the feasible region:
Simulate the LQR closed-loop system from , which is outside the feasible region:
The control constraint is violated:
The closed-loop system's response with the MPC controller from an unfeasible initial value :
The responses of the LQR and MPC closed-loop systems from a feasible initial value :
The controller response shows that the LQR controller again violates the control constraints:
An MPC controller is computed by solving multiple multiparametric optimization problems:
A function to compute the quadratic cost:
A function to assemble the constraints:
A function to assemble the variables:
Solve the optimization problems for the various instances:
ModelPredictiveController gives essentially the same result:
Text
Wolfram Research (2022), ModelPredictiveController, Wolfram Language function, https://reference.wolfram.com/language/ref/ModelPredictiveController.html.
CMS
Wolfram Language. 2022. "ModelPredictiveController." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ModelPredictiveController.html.
APA
Wolfram Language. (2022). ModelPredictiveController. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ModelPredictiveController.html