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 some of the currently implemented operations (see demo.py); the third uses pytope to plot a robust MPC trajectory (obtained with 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).
pytope is experimental, fragile, largely untested, and probably 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.