Home > mpt > solvers > mpt_mplp.m

# mpt_mplp

## PURPOSE

MPT_MPLP Explicitly solves the given linear program (LP)

## SYNOPSIS

function [Pn,Fi,Gi,activeConstraints,Phard,details]=mpt_mplp(Matrices,Options)

## DESCRIPTION

```MPT_MPLP Explicitly solves the given linear program (LP)

[Pn,Fi,Gi,activeConstraints,Phard,details]=mpt_mplp(Matrices,Options)

---------------------------------------------------------------------------
DESCRIPTION
---------------------------------------------------------------------------
Multiparametric linear programming

Solves the problem
V(x) = min H U + F x
U
s.t.   G U <= W + E x
bndA*x <= bndb

As a solution we get 'nR' regions
Pn(i)={x : H x <= K}

with the optimal control law
U = Fi{i} x + Gi{i}

and the corresponding cost function expression
V(x) = Bi{i} x + Ci{i}

---------------------------------------------------------------------------
INPUT
---------------------------------------------------------------------------
Matrices - a struct with all the parameters which are needed.
See description above for explanation.
Matrices.H=H;
Matrices.G=G;
Matrices.W=W;
Matrices.E=E;
Matrices.bndA=bndA;   Limits on exploration space, i.e. bndA*x<=bndb
Matrices.bndb=bndb;

Options.mplpver      - version of mpLP solver to use (3 is default)
Options.verbose      - level of verbosity
Options.lpsolver     - which LP solver to use (help mpt_solveLP)
Options.max_iter     - maximum number of iterations of the algorithm
Options.step_size    - length of step over a facet
Options.f_perturb    - Perturbation of the optimization direction
Options.nu           - How many elements to extract from the optimizer (to
deal with slacks)
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
---------------------------------------------------------------------------
Pn,Fi,Gi           - for region Pn(i).H*x <= Pn(i).K computed input is
U=Fi{i}*x+Gi{i}
activeConstraints  - Cell Array which stores the active constraints
of the optimizer in each region.
Phard              - Defines the feasible state space partition (i.e. union of
all regions) as Phard.H*x<=Phard.K
details            - a structure with the following fields:
nR      number of regions
Pn      polyhedral partition
Fi      control law
Gi      control law
BC      connection list
Bi      value function
Ci      value function
nHard   number of hard constraints
Phard   polytope given by hard constraints
nb      number of constraints for each region
LISTa   list of active constraints

## CROSS-REFERENCE INFORMATION

This function calls:
• length LENGTH Returns number of regions over which the explicit control law is defined
• end END Returns the last element in a given polytope array
• isfulldim ISFULLDIM Checks if a polytope is full dimensional
• length LENGTH Returns number of elements in a polytope array
• mpt_error MPT_ERROR Function called if MPT toolbox is not initialized
• mpt_mplp_ver1 MPT_MPLP Explicitly solves the given linear program (LP)
• mpt_mplp_ver2 MPT_MPLP Explicitly solves the given linear program (LP)
• mpt_mplp_ver3 MPT_MPLP Explicitly solves the given linear program (LP)
• mpt_mplp_ver4 MPT_MPLP Explicitly solves the given linear program (LP)
• mpt_mplp_ver5 MPT_MPLP Explicitly solves the given linear program (LP)
• mpt_mplp_ver6 MPT_MPLP Explicitly solves the given linear program (LP)
• mpt_mplp_ver7 MPT_MPLP Explicitly solves the given linear program (LP)
This function is called by:
• mpt_maxCtrlSet MPT_MAXCTRLSET Computes the maximal robust control invariant set C_inf
• mpt_optControlPWAold MPT_OPTCONTROLPWA Solves the CFTOC problem for a given PWA system
• mpt_iterative MPT_ITERATIVE Computes a time-optimal or low-complexity explicit controller for LTI systems
• mpt_iterativePWA MPT_ITERATIVEPWA Computes a time-optimal or low-complexity explicit controller for PWA systems
• mpt_mixedMinTime MPT_MIXEDMINTIME Computes minimum time controller for systems with discrete and continuous inputs
• mpt_optBoolCtrl MPT_OPTBOOLCTRL Computes optimal controller for systems with discrete inputs
• mpt_optControl MPT_OPTCONTROL Solves the CFTOC problem for a given LTI system
• mpt_optControlPWA MPT_OPTCONTROLPWA Solves the CFTOC problem for a given PWA system
• mpt_optInfControlPWA MPT_OPTINFCONTROLPWA Solves the infinite-time constrained optimal control problem for PWA systems
• mpt_optMixedCtrl MPT_OPTMIXEDCTRL Computes optimal controller for systems discrete and continuous inputs
• mpt_delaunay MPT_DELAUNAY Computes the delaunay triangulation of a polytope
• mpt_voronoi MPT_VORONOI Computes the voronoi diagram via mpLP

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