Performs a PWAS constrained approximation of an MPC controller




This function is a wrapper for functions LeastSquaresApprox, L1Approx, L2Approx and LInfApprox. A more detailed description can be found in the documentation of these functions. This function checks that the inputs are correct, starts the matlabpool for multithreading computing (if requested) and, based on the requested norm, calls one of the above mentioned functions.


[Cpwas, sigma] = pwasApproximation(Cpwa,linSys,constr,D,P,options)

Cpwa is a pwag object defining the optimal MPC control function to approximate.

linSys is a linearSystem object defining the system to be controlled. constr is a constraints object defining the constraints that the pwas approximated controller must satisfy.

D is the domain in which you want to obtain the approximation. The domain is represented as a matrix in the form $$\left[ \begin{array}{cccc} x_{min}^1 & x_{min}^2 & \ldots & x_{min}^{nx}\\ x_{max}^1 & x_{max}^2 & \ldots & x_{max}^{nx} \end{array} \right] $$

P is the simplicial partition you want to use for the pwas function. If the partition is uniform P is simply a vector containing the number of partitions for each dimension. If the partition is non-uniform, P is a cell array whose j-th entry contains the j-th components of the points in which you want to partition the domain. If you want a bidimensional domain to have partition vertices in [0.1 0], [0.1 1], [0.1 3], [1.2 0], [1.2 1], [1.2 3] you have to set P{1} = [0.1 1.2] and P{2} = [0 1 3].

options (optional field) is a structure with the following fields:

Cpwas is the pwas object defining the approximated control.

sigma is another pwas object defining the slack variable.



Copyright is with: