Polytope operations --- limited functionality
Package with a limited set of operations for polytopes, zonotopes, and invariant sets.
The currently implemented features include
- constructing polytopes from inequalities (halfspace representation), vertices, and upper and lower bounds,
- linear mapping (multiplying a matrix M and a polytope P: M P),
- the Minkowski sum and Pontryagin difference of polytopes,
- the intersection of polytopes, and
- simple plotting.
The figures below are generated with pytope. The first two illustrate the currently implemented operations (see demo.py); the third uses pytope to plot a robust MPC trajectory (implemented in CasADi, combining Figures 1 and 2 from Mayne et al. (2005)) (with a rough approximation of the disturbance sequence); the fourth shows an outer ε-approximation of a minimal robust positively invariant (or MRPI) set (computed with pytope), reproducing the example from Raković et al. (2005).
Most of pytope is experimental, fragile, largely untested, and buggy.
Figure: Illustration of various polytope operations.
Figure: The Minkowski sum of two polytopes.
Figure: Robust MPC trajectory from Mayne et al. (2005), combining Figures 1 and 2.
Figure: Outer ε-approximation of a minimal robust positively invariant (MRPI) set – a reproduction of the example in Raković et al. (2005).
- Mayne, D.Q., Seron, M.M., & Raković, S.V. (2005). Robust model predictive control of constrained linear systems with bounded disturbances. Automatica, 41(2), 219–224.
- Raković, S.V., Kerrigan, E.C., Kouramas, K.I., & Mayne, D.Q. (2005). Invariant approximations of the minimal robust positively invariant set. IEEE Transactions on Automatic Control, 50(3), 406–410.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.