Functions Used to Determine Controllabilityiscontrollable
% ISCONTROLLABLE checks for controllability using normals to facets as % testvectors % % Usage [CONTROLLABLE,VEC]=ISCONTROLLABLE(S,BLOCKSET,FACET) % % S is the polytope % BLOCKSET is a blockable set of facets. If facet is contained in the % BLOCKSET no solution can be found. % FACET is the facet to be checked for controllability. FACET being in % BLOCKSET is contradictory and therefore returns false. % % CONTROLLABLE is a boolean, true if the facet is controllable. % VEC is the vector in R^N for which controllability was proven. % If there can be no fixed point in the simplex i.e. S.FPPOSSIBLE=FALSE then % VEC is empty % % Notice that if this function returns false it does not mean that no % control exists rendering the facet controllable, but only that one could % not be found using this method. % % Example: s=demosimplex(); s=preparepolytope(s); blockset=findblockable(s); facet=blockset(1); blockset=blockset(2:end); controllable=iscontrollable(s,blockset,facet); % See also ISBLOCKABLE and FINDCONTROLLABLE findcontrollable
% FINDCONTROLLABLE checks a blockset for controllable facets % % Usage [CSET,TVECS]=FINDCONTROLLABLE(S,BLOCKSET) % % S is the polytope % BLOKSET is a blockable facet set on s % % CSET is a vector of booleans, coresponding to blockset. e.g. BLOCKSET = % [4 5 7] and cSet=[0 1 0] means that facet 5 is controllable while 4 and 7 % are not. % TVECS is a cell array of vectors used to test controllability. % % Example: s=demosimplex(); s=preparepolytope(s); blockset=findblockable(s); cSet=findcontrollable(s,blockset); % See also ISCONTROLLABLE and FINDBLOCKABLE |