Home > mpt > extras > control > mpt_optInfControl.m

# mpt_optInfControl

## PURPOSE

MPT_OPTINFCONTROL Solves the infinite-time constrained optimal control problem for LTI systems

## SYNOPSIS

function ctrlStruct=mpt_optInfControl(sysStruct,probStruct,Options)

## DESCRIPTION

MPT_OPTINFCONTROL Solves the infinite-time constrained optimal control problem for LTI systems

ctrlStruct=mpt_optInfControl(sysStruct,probStruct,Options)

---------------------------------------------------------------------------
DESCRIPTION
---------------------------------------------------------------------------
Explicitly solves the problem...

min_{u(0),...} [sum_{i=0}^infty   x(i)'Qx(i) + u(i)'Ru(i)]
subject to  u(i)  \in U   for i=0,1,....
x(i)  \in X   for i=1,2,....

The resulting input sequence is still of finite dimension. As soon as the
state enters a region of the state space where the Riccati LQR feedback law
satisfies the system constraints for all time, no further inputs are computed.
This script combines multiparametric-programming techniques with reachability
analysis.

---------------------------------------------------------------------------
INPUT
---------------------------------------------------------------------------
sysStruct            - System structure in the sysStruct format
probStruct           - Problem structure in the probStruct format

See the MPT Manual for additional details on the structure format or
consult one of the example systems (e.g. Double_Integator) which were
provided with this package.

Options.verbose      - level of verbosity
Options.lpsolver     - which LP solver to use (help mpt_solveLP)
Options.qpsolver     - which QP solver to use (help mpt_solveQP)
Options.step_size    - length of step over a facet
Options.maxHorizon   - The maximum horizon which is used for computations;
Leave empty to obtain the whole set.
Options.debug_level
Due to numerical problems tiny regions are sometimes difficult to
calculate, i.e. are not identified at all. This may create "gaps"
in the computed control law. For the exploration, these will be
jumped over and the exploration in the state space will continue.
"debug_level" can have three values:

0: No debug done
1: A tolerance is given to find gap in the region partition,
small empty regions inside the region partition will be discarded.
Note that this is generally not a problem, since the feedback law
is continuous and can therefore be interpolated easily.
Correction to the calculation of the outer hull.
2: Zero tolerance to find gap in the region partition, empty regions
if they exist, will be detected, i.e. the user will be notified.
Correction to the calculation of the outer hull.

Note: If Options is missing or some of the fields are not defined, the default
values from mptOptions will be used

---------------------------------------------------------------------------
OUTPUT
---------------------------------------------------------------------------
ctrlStruct    - controller structure with the following fields:
Pn,Fi,Gi    - for region Pn(i).H*x <= Pn.K(i) computed input is U=Fi{i}*x+Gi{i}
Ai,Bi,Ci    - cost associated to each region (x'Aix + x'Bi + Ci)
Pfinal      - Defines the feasible state space partition (i.e. union of
all regions) as Phard.H*x<=Phard.K
dynamics    - dynamics active in region Pn(i)
regionHorizon      - Vector containing the number of steps required for each
region to reach the control invariant set.
(i.e. dimension of the associated input sequence)
activeConstraints  - Cell Array which stores the active constraints
of the optimizer in each region.

---------------------------------------------------------------------------
LITERATURE
---------------------------------------------------------------------------

"Computation of the Constrained Infinite Time Linear Quadratic Regulator",
P. Grieder, F. Borrelli, F. Torrisi, M. Morari; In the proceedings of the
American Control Conference (ACC) 2003, Denver, Colorado

see also MPT_CONTROL, MPT_OPTCONTROL, MPT_ITERATIVE, MPT_ITERATIVEPWA

## CROSS-REFERENCE INFORMATION

This function calls:
• length LENGTH Returns number of regions over which the explicit control law is defined
• chebyball CHEBYBALL Computes center and radius of the largest ball inscribed in a polytope
• double DOUBLE Function used to access internal properties of the given polytope
• end END Returns the last element in a given polytope array
• envelope ENVELOPE Computes envelope of n polytopes
• facetcircle FACETCIRCLE Returns largest circle inside facet 'ind' of polytope P
• isfulldim ISFULLDIM Checks if a polytope is full dimensional
• isinside ISINSIDE Checks if a given point lies in the interior of a given polytope
• length LENGTH Returns number of elements in a polytope array
• nconstr NCONSTR Returns number of constraints that form an H-representation of a polytope
• polytope POLYTOPE Default constructor for the POLYTOPE object
• size SIZE Returns size of the given polytope object
• mpt_getReachSubset MPT_GETREACHSUBSET Computes a subset of P which enters Pfin
• mpt_infset MPT_INFSET Calculates the maximal positively invariant set for an LTI system
• mpt_dlqr MPT_DLQR Linear-quadratic regulator design for discrete-time systems.
• mpt_error MPT_ERROR Function called if MPT toolbox is not initialized
• mpt_evalSystem MPT_EVALSYSTEM Extracts data from sysStruct and probStruct structures
• mpt_getFullRankSubset MPT_GETFULLRANKSUBSET Removes rows from matrix Gt until it has full row rank
• mpt_iscombequal MPT_ISCOMBEQUAL Are two vectors combinatorially equal
• mpt_isnoise MPT_ISNOISE Checks if noise object is not empty
• mpt_statusbar Status bar function
• mpt_verifyProbStruct MPT_VERIFYPROBSTRUCT Verifies the probStruct structure
• mpt_verifySysStruct MPT_VERIFYSYSSTRUCT Verifies the sysStruct structure
• mpt_constructMatrices MPT_CONSTRUCTMATRICES Constructs matrices for the finite time constrained optimal control problem
• mpt_solveQP MPT_SOLVEQP Interface to various QP solvers
This function is called by:
• mpt_control MPT_CONTROL Main control routine. Computes explicit controller for a given problem

Generated on Thu 30-Mar-2006 10:26:47 by m2html © 2003