Data-based parameter refinement

IQClab now incorporates a novel method for data-driven refinement of parametric uncertainty descriptions, based on the approach presented in [28]. Specifically, for dynamical systems that admit a linear fractional representation involving LTI and LTV parametric uncertainties, the method leverages finite-horizon input–state or input–output data collected from the real system. The LMI/IQC-based approach iteratively tightens the bounds on time-invariant parametric uncertainties. These refined bounds enable a more accurate reassessment of the system’s robustness — since narrower uncertainty ranges directly improve robustness margins — and facilitate controller enhancement by allowing controllers to be resynthesized or recalibrated for improved performance.

The refinement can be performed by means of the function

    \[\mathrm{[Nrefined,RefinedBounds] = fRefine(N,sigs,params,opts)}\]

Here N is an LFT

    \[N(\Delta,\nabla)=\left(\begin{array}{cc}\Delta&0\\ 0&\nabla\end{array}\right)\star\left(\begin{array}{cccc}M_{zw}&M_{zp}&M_{zn}&M_{zr}\\ M_{qw}&M_{qp}&M_{qn}&M_{qr}\\M_{yw}&M_{yp}&M_{yn}&M_{yr}\end{array}\right)\]

where M is an LTI discrete time plant model that admits the realization

    \[\left(\begin{array}{c}x(t+1)\\z(t)\\q(t)\\y(t)\end{array}\right)=\left(\begin{array}{ccccc}A&B_{w}&B_{p}&B_{n}&B_{r}\\C_z&D_{zw}&D_{zp}&D_{zn}&D_{zr}\\ C_q&D_{qw}&D_{qp}&D_{qn}&D_{qr}\\C_y&D_{yw}&D_{yp}&D_{yn}&D_{yr}\end{array}\right)\left(\begin{array}{c}x(t)\\w(t)\\p(t)\\n(t)\\r(t)\end{array}\right)\]

and w(t)=\Delta z(t) and p(t)=\nabla q(t) for t\in\mathbb{N}_0. In addition, w\rightarrow z and p\rightarrow q denote the uncertainty channels, while n represents the noise process, r some known reference signal, and y the measurement output. Moreover, it is assumed that

  • \Delta is the uncertainty block consisting of LTI parametric uncertainties whose bounds are to be refined, and
  • \nabla is an (optional) LTV (or LTI) parametric uncertainty block whose bounds are NOT to be refined.

More precisely, \Delta is a diagonal matrix with (repeated) time invariant parametric uncertainties

    \[\Delta(\delta)=\mathrm{diag}\left(\delta_1I_{n_1},\cdots,\delta_vI_{n_\nu}\right)\]

with \delta_i\in[a_i,b_i], a_i\leq b_i, i\in\{1,\cdots,\nu\}. The aim of the algorithms is to find new tighter bounds a_i^*, b_i^*, a_i^*\leq b_i^* such that \delta_i\in[a_i^*,b_i^*]\subseteq[a_i,b_i]. On the other hand, \nabla is assumed to be an arbitrary time-varying uncertainty of the form

    \[\nabla(\alpha)=\sum_{j=1}^{\kappa}\alpha_jH_j=\alpha_iH_1+,\cdots,+\alpha_\kappa H_\kappa.\]

Here H_j, j\in\{1,\cdots,\kappa\}, are fixed matrices that have the same dimensions as \nabla being compatible with the signals p and q, while \alpha takes its values from the set \mathbf{\nabla}:=\mathrm{convex hull}(\nabla_1,\cdots,\nabla_\eta) with \nabla^1,\cdots,\nabla^\eta being the generator points.

The parameter refinement proceeds as follows:

  1. Define the uncertain plant N (being an LFT object defined by means of the tools available in the Robust Control Toolbox of MATLAB).
  2. Collect data from the real system and generate the structure \mathrm{sigs} containing the following signals:
    • \mathrm{sigs.r}: The input vector r=\col(r(1),\cdots,r(n)).
    • \mathrm{sigs.y}: The output vector y=\col(y(1),\cdots,y(n)) (only required for \mathrm{options.Case=}‘IOdata’ see details below).
    • \mathrm{sigs.x} The state vector x=\col(x(1),\cdots,x(n)) (only required for \mathrm{options.Case=}‘ISdata’ see details below).
    • \mathrm{sigs.n}: The maximum noise magnitude |n(t)|\leq sigs.n for all t\in\mathbb{N}_0.
  3. Provide the cell params=\{'\delta_1',\cdots,'\delta_n'\} that are to be refined. The order is not important and the remaining parameters in the uncertain plant N are treated as part of the LTV uncertainties \nabla.
  4. Specify the preferred options in the structure ‘opts’. The available options are summarized in the following table.
OptionsDescription
CaseSpecify the algorithm to be used. There are two options:

1.) ‘IOdata’ to refine the parameter bounds using input–output data corresponding to Theorem 2,3 of [28] (default).
2.) ‘ISdata’ to refine the parameter bounds using input–state data corresponding to Theorem 1 of [28].

Note: in case of option ‘ISdata’ it is assumed that the output equation of the LFT N is defined by y=x, hence, C_y=I and D_{yw}=0, D_{yp}=0, D_{yn}=0, D_{yr}=0.
nliftThe underlying algorithms solve the parameter refinement problem for each data point sequentially. However, it is possible to consider multiple data points as well by lifting the underlying system.

To do so, one can specify the lifting horizon \mathrm{nlift}\in\mathbb{N} (default is 1.). Note that increasing \mathrm{nlift} also increases the computational load.
DGstructSpecify the underlying structure of the DG-multiplier (more structure for faster computations at the cost of potential conservatism:
1.) ‘full’ for unstructured DG-multipliers.
2.) ‘struct’ (default) for structured DG-multipliers M_i=\left(\begin{array}{cccc}m_{i,00}&m_{i,01}&\cdots&m_{i,0l}\\m_{i,10}&M_{i,11}& & 0\\ \hdots & & \ddots & \\ m_{i,l0}&0 &&M_{i,ll}\end{array}\right).
3.) ‘diag’ for diagonal DG-multipliers.

See [28] and Remark 5 therein for further details.
SxThis is the initial state ellipsoidal shape (default is I). Note that this option only applied for \mathrm{options.Case}=‘IOdata’.
cxThis is the initial state ellipsoidal center (default is 0). Note that this option only applied for \mathrm{options.Case}=‘IOdata’.
ParserSelect the parser ‘LMIlab’ (default) or ‘Yalmip’.
SolverSelect the solver. This is ‘mincx’ in case if ‘LMIlab’ is selected as parser and any (installed) SPD solver supported by Yalmip (e.g., sdpt3).
RelAccThis specifies the solver’s relative accuracy (default is 10^{-3}). See ‘mincx’ for further details.
MaxNumIterThis specifies the solver’s maximum number of iterations (default is 500). See ‘mincx’ for further details.
FeasRadThis specifies the solver’s feasibility radius (default is 10^9). See ‘mincx’ for further details.
TerminateThis specifies the solver’s terminal condition (default is 100). See ‘mincx’ for further details.
epsThis perturbs all LMIs by a small \espilon (i.e., LMI_i>\eps I (default is 0).

As output, one obtains:

  1. The refined system (i.e., LFT) N_r with \delta_i\in[a_i^*,b_i^*]\subseteq[a_i,b_i], i\in\{1,\cdots,\nu\}.
  2. The cell ‘RefinedBounds’ with the computed bounds [a_i^*,b_i^*]\subseteq[a_i,b_i], i\in\{1,\cdots,\nu\} obtained after each iteration.

Demonstrating example

A demonstration of this function is found here.

previous page