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