Note: This content is accessible to all versions of every browser. However, this browser does not seem to support current Web standards, preventing the display of our site's design details.
MPT 2.0 Testing Release
MPT 2.0TR (Testing Release) is the first step on our road to
MPT2, the next generation of the Multi-Parametric Toolbox.
A lot of work has been done in the previous 3 months on almost all fields - the new version
provides brand new functionality (complexity reduction,
reachability computation, solution
of MPC problems for LTI systems with binary/integer inputs, solvers for MILP/MIQP problems,...) and
extends existing functionality mainly in terms of
numerical robustness and
runtime efficiency. The final version of MPT 2.0
will be released on February 1, 2005.
Please note this version is still under development. It may contain bugs which we will be happy to fix if you report them to our support centre. Download13-Dec-2004: MPT 2.0 Testing Release zip package (3.95 MB) New major features
Complexity reduction
Complexity of explicit solutions was always an important issue. There are two levels of complexity
involved in multi-parametric solutions to optimal control problems:
Runtime complexity is important while computing the solution, while the second level is vital for
on-line implementation of explicit controllers in real life. Clearly, the higher the number of regions,
the longer it takes to identify a proper control law, and also the more memory is needed to store all
necessary regions along with associated control laws. Therefore there is a clear need of
simple controllers in terms of number of regions. Although this can be achived by applying one of
the low-complexity schemes MPT offers, these controllers do not guarantee optimal performance.
If the controller is required to provided optimal control action, complexity can only be reduced by
post-processing. MPT2 now allows to achieve this goal by
simplifying the resulting controller while maintaining the same ammount of performance the original
controller gives. This is achived by merging regions which have the same control law into larger chunks.
Two levels of simplifications can be used:
Optimal merging gives least number of regions one could possible get, while greedy merging is based on
a randomized procedure which checks which regions can be merged. Differences between these two methods
are in runtime and complexity of the simplified solutions. Greedy merging is much faster, but optimal
merging gives you the least number of regions one can possibly get. So the choice is up to you. Give the
function a try by calling
simple_controller = mpt_simplify(ctrlStruct)
Consult
help mpt_simplify for how to switch from greedy merging (which is used by default) to
optimal merging.
Efficiency of algorithms
Big progress has been achieved in improving runtime efficiency of (almost all) algorihtms provided by MPT.
First, a brand new technique for computing solutions to Constrained Finite-Time Optimal Control (CFTOC) problems for
Piecewise-Affine (PWA) systems is now available. This algorithm, developed by
Miroslav Baric et al.,
is based on a Dynamic Programming approach with Piecewise-Affine cost-to-go expressions. As can be seen from the
table below, this algorithm is faster by a factor of 2-20 (depends on a problem) than the original
implementation of CFTOC algorithm. Secondly, all MPT code has been masively optimized for runtime speed, which gives the
new version an additional edge over the old release.
Computation of reachable sets
Reachable sets can now be computed using
mpt_reachSets. Sets can be calculated
either for an autonomous system usingsets = mpt_reachSets(sysStruct, X0, N) or for an explicit controller sets = mpt_reachSets(ctrlStruct, X0, N) For more information discuss Improved numerical Robustness
It is a known fact that different solvers tend to give slightly different solutions in some tricky cases.
MPT2 therefore introduces extensive error checking while solving certain
linear and quadratic programs in order to avoid any problems resulting from a buggy behavior of external
solvers. If a problem is detected, the given LP (QP) will be automatically solved again with a different
solver in order to get a feasible solution. Our tests have shown that this rescue procedure often
helps to obtain a solution in cases where the old release failed.
Support for many solvers
MPT2 comes with an extended support for LP, QP, MILP and MIQP solvers. Besides
the already supported solvers (CPLEX, NAG, CDD, GLPK, QSopt), we have added support for
XPress, Mosek, OOQP and bintprog. Depending on the problem you are solving,
fastest and most reliable solvers will be choosed automatically. If one solver fails to give a proper solution due
to numerical problems, another available solver will be tried automatically as described in the
numerical robustness section.
|