In this section it is demonstrated how to create an LTV parametric diagonally repeated and rate-bounded uncertainty block. To do so, suppose that this uncertainty has the following properties:

- name:
*‘delta’* - Uncertainty block consisting of two parametric uncertainties and
- bounds: ,
- rate- bounds: ,
- number of repetitions: 2 and 3 times for and respectively
- Input channels of connecting the uncertainty block: for and for the
- Outputs channels of connecting the uncertainty block: for and for

- This uncertainty can be created as follows:

delta = iqcdelta('delta','TimeInvTimeVar','TV','InputChannel',{[1:2],[3:5]},'OutputChannel',{[1:2],[3:5]},'Bounds',{[-1,1],[-1,1]},'RateBounds',{[-0.1,0.1],[-0.5,0.5]});

Alternatively, though in a bit more cumbersome way, you can also specify each block independently and then combine them with *blkdiag* as follows:

delta1 = iqcdelta('delta1','TimeInvTimeVar','TV','InputChannel',1:2,'OutputChannel',1:2,'Bounds',[-1,1],'RateBounds',[-0.1,0.1]); delta2 = iqcdelta('delta2','TimeInvTimeVar','TV','InputChannel',3:5,'OutputChannel',3:5,'Bounds',[-1,1],'RateBounds',[-0.5,0.5]); delta = blkdiag('delta',delta1,delta2);

In a next step, you have to assign an IQC-multiplier. The appropriate class for this is called *ultv_rb* (for details see here).

For this multiplier you have to choose the properties related to the basis function as well as the type of relaxation. For example, let us choose:

- Length: 3 (this corresponds to a McMillan degree of 2)
- Pole location: -1
- Relaxation type:
*‘DG’*

delta = iqcassign(delta,'ultv_rb','Length',3,'PoleLocation',-1,'RelaxationType','DG');