EMinTimeController
Purpose
Explicit minimum-time MPC controller
Syntax
ctrl = EMinTimeController(model)
Description
Constructs the explicit form of a minimum-time MPC controller by
solving the following optimization problem parametrically:

where
represents the prediction model's
state-update equation,
is a given terminal set, and
and
denote, respectively, the state and input
constraints.
LTI, PWA, and MLD models are accepted for predictions.
State and input constraint sets
,
are
automatically created using the model's state and input
constraints (model.x.min, model.x.max,
model.u.min, model.u.max). The terminal set
is either taken from model.x.terminalSet
or, if the field is empty, by calling
model.stabizilingController() (for LTI systems only).
Once computed, explicit minimum-time controllers inherit the
behavior of the EMPCController class in terms of internal
structure, evaluation and post-processing. See "help
EMPCController" for more details.
Input Arguments
model |
Prediction model
Class: AbstractSystem
|
Output Arguments
ctrl |
Explicit minimum-time controller.
Class: EMinTimeController
|
Example(s)
Example
1
Create a 1D LTI systemsys = LTISystem('A', 1, 'B', 1, 'C', 1, 'D', 0)
LTISystem with 1 state, 1 input, 1 output
Define constraints and quadratic cost function with unity weights
sys.x.min = -1; sys.x.max = 1;
sys.u.min = -1; sys.u.max = 1;
sys.x.penalty = QuadFunction(1);
sys.u.penalty = QuadFunction(1);
Define a terminal set
and construct the explicit minimum-time controller
sys.x.with('terminalSet');
sys.x.terminalSet = Polyhedron('lb', -0.1, 'ub', 0.1);
ctrl = EMinTimeController(sys)
Using provided terminal state set...
Iterating...
New horizon: 1
mpt_plcp: 3 regions
New horizon: 2
mpt_plcp: 1 regions
Explicit minimum-time controller (horizon: 1, regions: 4, partitions: 2)
See Also
mintimecontrollerr, empccontroller
© 2003-2013 Michal Kvasnica: STU Bratislava, michal.kvasnica@stuba.sk