In this section it is demonstrated how to create a dynamic full-block LTI uncertainty block. To do so, suppose that this uncertainty has the following properties:
- name: ‘delta’
- size:
- norm-bound: 1
- number of repetitions: 2
- Input channels of connecting the uncertainty block: for the first block and for the second block
- Outputs channels of connecting the uncertainty block: for the first block and for the second block
This uncertainty can be created as follows:
delta = iqcdelta('delta','StaticDynamic','D', 'Structure','FB','InputChannel',[1,2;3,4],'OutputChannel',[1:3;4:6],'NormBounds',1);
Alternatively, though in a more cumbersome way, you can also specify each block independently and then combine them with blkdiag as follows:
delta1 = iqcdelta('delta1','StaticDynamic','D','Structure', 'FB','InputChannel',[1,2],'OutputChannel',[1:3],'NormBounds',1); delta2 = iqcdelta('delta1','StaticDynamic','D','Structure', 'FB','InputChannel',[3,4],'OutputChannel',[4:6],'NormBounds',1); delta = blkdiag('delta',delta1,delta2);
In a next step, you have to assign an IQC-multiplier. The appropriate class for this is called ultid (for details see here).
Now suppose you want the basis function have the following properties:
- Length: 3 (this corresponds to a McMillan degree of 2)
- Pole location: -1
This can be specified as:
delta = iqcassign(delta,'ultid','Length',2, 'PoleLocation',-1);