You are here

Routine make_square

Make all uncertainty blocks square.

Description

This routine transforms the interconnection of the figure below so that the block-diagonal operator $\Delta(s)$ is only composed of square blocks. For example, if the initial size of the ith block $\Delta_i(s)$ of $\Delta(s)$ is $n_i\times m_i$, then:

  • $m_i-n_i\ $ zero inputs are added to $M(s)$ if $m_i>n_i$,
  • $n_i-m_i\ $ zero outputs are added to $M(s)$ if $n_i>m_i$.

Syntax

[sys2,blk2]=make_square(sys,blk{,perfo})

Input arguments

sys LTI object describing $M(s)$. It can also be a 2-D or a 3-D numeric array corresponding to the frequency response of $M(s)$ on a grid.
blk Matrix defining the structure of the block-diagonal operator $\Delta(s)=diag\left(\Delta_1(s),...,\Delta_N(s)\right)$. Its first 2 columns must be defined as follows for all $i=1,...,N$:

  • blk(i,1:2)=[-ni 0] $\Rightarrow$ $\Delta_i(s)=\delta_iI_{n_i}$ with $\delta_i$ real,
  • blk(i,1:2)=[ni 0] $\Rightarrow$ $\Delta_i(s)=\delta_iI_{n_i}$ with $\delta_i$ complex,
  • blk(i,1:2)=[ni mi] $\Rightarrow$ $\Delta_i(s)$ is a $n_i\times m_i$ LTI system.
perfo If nonzero, the performance channel between e and y (if any) is also made square. This argument is optional and the default value is perfo=0.

Output arguments

The interconnection defined by sys2 and blk2 is equivalent to the one described by sys and blk from an input/output point of view, but $\Delta(s)$ is now only composed of square blocks.

Example

sys=rss(2,5,4);
blk=[-1 0;2 1];
[sys2,blk2]=make_square(sys,blk,0)

A zero output associated to the second block is added.
[sys2,blk2]=make_square(sys,blk,1)
Two zero inputs associated to the performance channel are added.