LMI Constraints

There are a number of constraints arising from different requirements that needs to be computed as part of this algorithm:

  • The input, u, is inside the input polytope

  • The derivative dot{x} at the vertives v_i, i=1dots N is pointing in/outwards wrt. a facet.

  • All derivatives in the same direction.

Several of these LMIs require knowning the normal to a facet and this can be computed as the null-space of a basis for the co-dimensional 1 space containing the facet.
 label{eq:normal} n=nullleft( begin{bmatrix} v_2-v_1 & v_3-v_1 & ldots & v_N-v_1 end{bmatrix}right)

It is also important to know if the computed normal points inwards or outwards with respect to the polytope the facet is part of. This can be computed by knowing a point inside the polytope eg. a vertex that is not part of the facet in question.
 label{eq:outwards} s=-n^{T}(v_{inside}-v_1)

where s is negative if n is pointing inwards. The outwards pointing normal can then be computed as n_{out}=sn. The outward pointing normal for facet i will hereafter be denoted n_i.

Input inside the polytope

For the input, u, to be inside the polytope u must be inside each of the polytopes facets.

Computing a vector from a point on the facet to u and then finding that vectors inner product with the facets normal, n_i yields a scalar which sign determines if the point is on the inside or outside of the facet.
 label{eq:outside} n_i^Tleft(u-v_iright)<0

Derivatives pointing inwards

For the derivative to point inwards the inner product between the derivative and the outwards normal of the facet must be negative.
 label{eq:inwards} n_i^Tleft(Av_i+Bu+Cright)<0

All derivatives in the same direction

For all the derivatives to be in the same direction there must exist some vector d, such that.
 label{eq:fplmi} d^Tleft(Av_i+Bu_i+Cright)>0 , forall i

This is not an LMI as d and u are both variable, but for fixed d, or u the constraint can be tested. It is according to [Habets06a] possible to compute a set of LMIs testing this constraint, but it requires knowledge of the vertices of u_i. It might seem straigth forward to obtain the vertices as we know the input polytope, but the input at each vertice is further constrained by the requirement to block certain facets. There exists algorithms which should be able to compute these vertices, but they are not immidiatly accesible from matlab.

The toolbox uses both normals of all facets as testvectors, d, along with any user defined testvectors specified in the configuration structure.