minus

Purpose

Pontryagin/Minkowski difference for union of polyhedra

Syntax

U - W
U.minus(W)

Description

Computation of Pontryagin or Minkowski difference for the union of polyhedra in the same dimension. The algorithm for efficiently computing the Minkowski difference between a union of polytopes and a polytope is based on a talk by S. Rakovic and D. Mayne entitled Constrained Control Computations It was the keynote addressed at the GBT Meeting, London, November, 2002. The algorithm proceeds in the following way:
  1. Compute the convex hull of the union.
  2. Compute the Minkowski difference of each of the polyhedron from the convex hull.
  3. Compute the set difference between the convex hull and the union.
  4. Compute the set difference between the Minkowski difference for each polyhedron and the set obtained in the previous step.
The result is a non-overlapping union of the polyhedra.

Input Arguments

U

Union of polyhedra in the same dimension.

Class: PolyUnion

W

Polyhedron to be summed with the union that is in the same dimension as the union.

Class: Polyhedron

Example(s)

Example 1

Create three polyhedra that form bounded union.
 P(1) = Polyhedron('V',[-5 0;-4 0;-5 5;-4 5]); 

 P(2) = Polyhedron('V',[-4 1;-1 1.5;-4 4;-1 2.5]); 

 P(3) = Polyhedron('V',[-1 0; -1 4]); 

 U = PolyUnion('Set',P,'bounded',true) 
PolyUnion in the dimension 2 with 3 polyhedra.
Properties of the union: 
  Bounded: 1
Functions : none
Compute Minkowski difference for full-dimensional and bounded polyhedron ../../../../../../fig/mpt/modules/geometry/unions/@PolyUnion/minus1.png.
 W = Polyhedron('lb',[-0.1, -0.2],'ub',[0.1, 0.2]); 

 Uw = U - W 
PolyUnion in the dimension 2 with 5 polyhedra.
Properties of the union: 
  Overlaps: 0
  Bounded: 1
Functions : none
Plot the new union Uw
 U.plot('color','lightblue'), hold on, Uw.plot 

../../../../../../fig/mpt/modules/geometry/unions/@PolyUnion/minus_img_1.png

Compute Minkowski addition for low-dimensional and bounded polyhedron ../../../../../../fig/mpt/modules/geometry/unions/@PolyUnion/minus2.png.
 S = Polyhedron('lb',[-0.1, 0],'ub',[0.1, 0]); 

 Us = U - S 
PolyUnion in the dimension 2 with 5 polyhedra.
Properties of the union: 
  Overlaps: 0
  Bounded: 1
  FullDim: 1
Functions : none
Plot the new union Us
 U.plot('color','lightgreen'), hold on, Us.plot 

../../../../../../fig/mpt/modules/geometry/unions/@PolyUnion/minus_img_2.png

See Also

convexhull, plus


© 2010-2013 Martin Herceg: ETH Zurich, herceg@control.ee.ethz.ch

© 2005 Mario Vasak: FER Zagreb , mario.vasak@fer.hr

© 2003-2013 Michal Kvasnica: STU Bratislava, michal.kvasnica@stuba.sk

© 2003-2005 Pascal Grieder: ETH Zurich , grieder@control.ee.ethz.ch

© 2003 Mato Baotic: ETH Zurich , baotic@control.ee.ethz.ch