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');