Refinement to Control Laws

When a desired solution has been found to the discrete equivalent an actual control law needs to be computed. The function findctrl(..) is designed to automate this refinement procedure. The controller found is of the form u=kx+g and is calculated based on the minimisation of a linear objective function. Currently two objective functions are implemented and it is possible to specify custom objective functions.

Getting a control law
%s is a prepared simplex with de being a discrete equivalent of s
%and findminsqinput is the objective function

%Find the control law for exiting through facet 2 with
ct=findctrl(s,de,2,@findminsqinput);

%extract the control law constants
k=ct.k;
g=ct.g;

Objective functions

Two objective functions are supplied with the toolbox

findminsqinput()

Finds a control law for the discrete equivalent while minimising J=sum u_i^Tu_i where u_i is the control input at vertex i. This effectivly minimises the input effort at any given point in time. Notice that this does not translate to minint u^Tu dt.

findbesteffortinput(s,de,outfacet)

Finds the best effort input in the sense that it tries to maximise the flow in the direction of the desired exit facet while minimising the flow in the direction of the uncontrollable facets.

For details on how to create custom objective functions in the [reference.htm