Compute (skew-)$\mu$ lower bounds for mixed perturbations.
Description
This routine computes (skew-)$\mu$ lower bounds for an interconnection between a nominal LTI system $M(s)$ and a block-diagonal operator $\Delta(s)=diag\left(\Delta_1(s),\dots,\Delta_N(s)\right)$, where $\Delta_i(s)=\delta_iI_{n_i}$ ($\delta_i$ real or complex), or $\Delta_i(s)$ is a stable and proper real-rational unstructured transfer function. A power algorithm is run at each point of a frequency grid. The considered stability region can be bounded either by the imaginary axis or by a truncated sector.
This routine can also be used to solve a worst-case $\mathcal{H}_\infty$ performance problem, which is nothing but a specific skew-$\mu$ problem. A fictitious stable and proper real-rational unstructured transfer matrix $\Delta_c(s)$ is first added between the output $y$ and the input $e$, and its size is then minimized under the constraint that there exists a value of $\Delta(s)\in\mathcal{B}_{\bf\Delta}$ such that the interconnection between $M(s)$ and $diag(\Delta(s),\Delta_c(s))$ is unstable. An example is given at the bottom of this page. In this case, the output argument lbnd
is a lower bound on the worst-case $\mathcal{H}_\infty$ norm of the transfer matrix from $e$ to $y$.
Syntax
[lbnd,wc,pert,tab]=mulb_mixed(sys,blk{,options})
Input arguments
The first two input arguments are mandatory:
sys | LTI object describing the nominal system $M(s)$. It can also be a 2-D or 3-D numeric array corresponding to the frequency response of $M(s)$ on a grid. |
blk | Matrix defining the structure of the block-diagonal operator $\Delta(s)=diag\left(\Delta_1(s),...,\Delta_N(s)\right)$. Its first 2 columns must be defined as follows for all $i=1,...,N$:
A third column can be used to specify skew uncertainties:
If none, |
The third input argument options
is an optional structured variable with fields:
freq | Frequency interval $\Omega$ in rad/s on which the lower bound is to be computed. The default value is options.freq=[0 10*max(abs(eig(sys)))] . This parameter is ignored if sys is a numeric array. |
grid | Frequency grid in rad/s ($1\times m$ array). It can also be a negative integer -$m$, in which case a $m$-point grid is automatically generated from $\Omega$. The default value is options.grid=-50 . This parameter is ignored if sys is a numeric array. |
sector | Vector $[\alpha\ \xi]$ or $[\alpha\ \xi\ \omega_c]$ characterizing the considered truncated sector (see display_sector for a complete description). The default value is options.sector=[0 0] , which means that the left half plane is considered. This parameter is ignored if sys is a numeric array. |
target | The algorithm is interrupted if a lower bound is found which is greater than options.target . The default value is options.target=Inf . |
epsilon | A (skew-)$\mu$ lower bound $\tilde{\mu}$ is acceptable if a perturbation $\tilde{\Delta}$ of norm 1/$\tilde{\mu}$ and a frequency $\omega_c$ are found, which satisfy $|\mbox{det}(I-M(j\omega_c)\tilde{\Delta})|<\epsilon$, where $M(j\omega_c)$ is the frequency response of $M(s)$ at $j\omega_c$ (or at the corresponding point on the boundary of the truncated sector defined by options.sector ). The default value is options.epsilon=1e-8 . |
trace | Trace of execution. The default value is options.trace=1 . |
warn | Warnings display. The default value is options.warn=1 . |
power | Tuning parameters of the power algorithm (1x4 array). At each frequency:
The default value is |
refine | If nonzero, the initial frequency grid is refined near peak values of the (skew-)$\mu$ lower bound. The default value is options.refine=1 . This parameter is ignored if sys is a numeric array. |
Output arguments
lbnd | Best (skew-)$\mu$ lower bound on the considered frequency interval $\Omega$. |
wc | Frequency $\omega_c$ in rad/s for which lbnd has been computed. |
pert | Unless lbnd=0 , every perturbation $\tilde{\Delta}(s)$ whose frequency response $\tilde{\Delta}(\omega_c)$ at $j\omega_c$ (or at the corresponding point on the boundary of the truncated sector defined by options.sector ) is equal to pert satisfies $\mbox{det}(I-M(\omega_c)\tilde{\Delta}(\omega_c))\approx 0$, where $M(\omega_c)$ is the frequency response of $M(s)$. |
tab | Structured variable with fields:
|
Examples
1. Computation of a skew-$\mu$ lower bound
System with 10 states and 3 uncertainties. The second one is kept inside the unit ball:sys=rss(10,5,5)/100;
blk=[-2 0 1;-1 0 0;2 2 1];
options.sector=[0.1 0];
[lbnd,wc,pert]=mulb_mixed(sys,blk,options);lbnd display_sector(options.sector,lft(sys,pert));
One of the eigenvalues of the interconnection lies just outside the considered sector.abs(det(eye(5)-calc_freq_resp(sys,wc,options.sector)*pert))
The value of $\mbox{det}(I-M(\omega_c)\tilde{\Delta}(\omega_c))$ is almost equal to 0.
2. Computation of a lower bound on the worst-case $\mathcal{H}_\infty$ norm
System with 10 states and 2 uncertainties, which are both kept inside the unit ball. The third block of $\Delta(s)$ corresponds to the performance channel:blk=[-2 0 0;-1 0 0;2 2 1];
[lbnd,wc,tab]=mulb_mixed(sys,blk,options);lbnd
See also
mulb
mulb_1real
mulb_nreal
hinflb_real
gen_grid
display_sector
Reference
[1] | G. Ferreres and V. Fromion, "Robustness analysis using the $\nu$ tool", in Proceedings of the 35th IEEE Conference on Decision and Control, Kobe, Japan, December 1996, pp. 4566-4571. |