iqc_bode

Purpose

Visualize critical frequencies of IQC stability and performance analysis.

Synopsis

iqc_bode
iqc_bode(a)
iqc_bode(a,b)

Description

This function displays basic frequency-domain inequalities of IQC-analysis, with the best possible parameters selected by a previously run optimization engine. Remember that an IQC performance analysis problem can be re-formulated as the following mathematical problem: given two time-invariant quadratic forms \(\sigma_{0}(u)\) and \(\bar{\sigma}_{x}(u)\) (where \(\bar{\sigma}_{x}(u)\) depends linearly on a parameter x ranging over a convex cone X), find x such that \(\sigma_{0}(u)-\bar{\sigma}_{x}(u) \geq 0\) for all \(u \in \textbf{L}_{2}\). Here \(\sigma_{0}\) defines a performance objective, and \(\sigma_{x}(u) \geq 0\), \(x \in X\), defines a set of valid IQC describing the system under investigation. Since

$$ \sigma_{0}-\bar{\sigma}_{x}(u)=\int_{0}^{\infty} \tilde{u}(\omega)^{*}\Pi(\omega)\tilde{u}(\omega)d\omega,$$

where \(\tilde{u}\) denotes the Fourier transform of \(u\), condition \(\sigma_{0}(u)-\bar{\sigma}_{x}(u) \geq 0\) is equivalent to \(\Pi(\omega) \geq 0\) being a non-negative Hermitian matrix for all \(\omega\). Function iqc_bode plots the eigenvalues of matrix \(\Pi\) as functions of frequency.

All eigenvalues should be non-negative (otherwise something’s wrong), and the points s at which the plot is close to zero are expected to be the frequencies at which the additional IQC, if needed, should have the fastest variation of their weights.

The default frequency range is set automatically. In case it is not satisfactory, using iqc_bode with one argument a sets the frequency range to [0, a]. Using two arguments a, b sets the frequency range to [a, b]. The vertical range of the plot is defined by the dynamical range of the smallest eigenvalue.

Since iqc_bode uses the optimal weights, a solver function, such as iqc_gain_tbx, must be run successfully (i.e. resulting in a feasible set of LMI's) before iqc_bode.

Example

In the simple robustness analysis script

>> abst_init_iqc

>> f=signal;

>> w=signal;

>> y=tf([1 1 7],[1 3.1 3.1 9])*w+f;

>> w==iqc_ltigain(y,[10]);

>> iqc_gain_tbx(f,y)

>> iqc_bode

function iqc_ltigain is an IQC Toolbox description of constant gain uncertainty. Its second parameter a is a vector of multiplier poles. For a = 10, the L2 gain bound produced by iqc_gain_tbx is about 17.8. The plot produced by iqc bode is shown on the Figure 1.

Figure 1: An output of iqc_bode

frequency \(\omega = 1.8\) is critical in the analysis of this system. (The other zero of the plot occurs approximately at \(\omega = 10\), which appears to be the consequence of selecting a = 10.) Indeed, 1.8 is approximately the resonance frequency of the nominal system. Changing a to a = [1.810] yields a much better upper bound of the L2 gain (approximately 11.1).

See also

iqc_value