IQClab also provides the option to perform LPV controller synthesis with full-block multipliers. This yields controllers that are gain-scheduled and depend on time varying parameters whose values are available via measurements or estimation algorithms.
Note: It is assumed that the user is acquainted with the LPV controller synthesis literature. The reader is referred to [7] and references therein for further information.
We consider the system interconnection shown in the following figure.
Here:
- is the generalized plant (i.e., it is assumed that the disturbance and performance weights are already incorporated in the plant)
- is the scheduling block, which depends on a time-varying parameter vector, which is further specified below
- is the to-be-designed LPV controller, where
- is the LTI part
- is the (nonlinear) scheduling function
- the in- and output channels are denoted by
- is the performance channel
- is the plant scheduling function
- is the controller scheduling channel
- is the control channel
Some characteristics of the algorithm are:
- The algorithms performs a synthesis with the aim to obtain a gain-scheduled controller,
- The block is a member of the uncertainty class ultv (see details here). This class is defined by LTV parametric uncertainties of the form
- , are some fixed matrices (having the same dimension as .
- is a piecewise continuous time-varying parameter vector that takes its values from the compact polytope
- is assumed to be star convex: .
- With the aim to trade-off computational complexity with performance, the algorithm allows to impose two different relaxation schemes:
- DG-scalings
- Convex Hull relaxation
- The algorithm imposes the following induced norm constraint on the performance channel :
Usage:
If feasible, the algorithms returns:
- The stabilizing controller with state space realization
- The (guaranteed) induced -gain on the performance channel of the closed-loop system .
The inputs should be provided as follows:
- The LTI plant is assumed to admit the following state space description
- and are the scheduling and disturbance inputs
- and are the scheduling and performance outputs
- is the control input
- is the measurement output
- is stabilizable and is detectable
- The scheduling block is an iqcdelta object, which must be compatible with the uncertainty class ultv (see details here).
- The plant input and output dimension data and must be specified as follows:
- The last input, options, is a structure with various options as summarized in the following table.
Options | Description |
options.subopt | If chosen larger than 1, the algorithm computes a suboptimal solution , while minimizing the norms on the LMI variables , , , . The default value is 1.05. |
options.condnr | If chosen larger than 1, the algorithm computes a suboptimal solution , while improving the conditioning number of the coupling condition
by maximizing . The default value is 1. |
options.Lyapext | With this option you can specify how the Lyapunov function matrix is constructed. The options are . The default value is 5. |
options.Multiplext | With this option you can specify how the extended multiplier matrix is constructed. The options are . The default value is 3. |
options.constants | options.constants= is a vector of (small) nonnegative constants, which perturb the LMIs as , . The constants are associated with the following LMI constraints – , perturb the coupling condition as
– perturbs the primal solvability condition as – perturbs the dual solvability condition as – and perturb the multipliers as
The default value is . |
options.bounds | In case options.subopt>1, the algorithms miminizes the bounds , , , . In case also the option options.bounds= is specified, one can scale the bounds on the LMI variables as , , , , while minimizing . The matrices are empty by default. |
options.gmax | This option specifies the maximum induced -gain bound on the performance channel . The default value is 1000. |
options.Parser | The option options.Parser specifies which parser is used: – options.Parser=’LMIlab’ – options.Parser=’Yalmip’ The default options is ‘LMIlab’. |
options.Solver | The option options.Solver specifies which solver is used when considering Yalmip as parser. See https://yalmip.github.io/ for further info. The default solver is ‘mincx’. |
options.FeasbRad | This option allows setting the feasibility radius of the optimization problem (see MATLAB → help → mincx for further details). The default value is 1e9. |
options.Terminate | This option can be used to change the LMI solver options (see MATLAB → help → mincx for further details). The default value is 0. |
options.RelAcc | This option can be used to change the LMI solver options (see MATLAB → help → mincx for further details). The default value is 1e-4. |