Scilab Function
Last update : 13/1/2005

lft - linear fractional transformation

### Calling Sequence

  `[P1]=LFT(P,K)`
  `[P1]=LFT(P,r,K)`
  `[P1,r1]=LFT(P,r,Ps,rs)`

### Parameters

- `P`: linear system (`syslin` list), the ``augmented'' plant, implicitly partitioned into four blocks (two input ports and two output ports).
- `K`: linear system (`syslin` list), the controller (possibly an ordinary gain).
- `r`: 1x2 row vector, dimension of `P22`
- `Ps` : linear system (`syslin` list), implicitly partitioned into four blocks (two input ports and two output ports).
- `rs` : 1x2 row vector, dimension of `Ps22`

### Description

Linear fractional transform between two standard plants `P` and `Ps` in state space form or in transfer form (`syslin` lists).

`r= size(P22) rs=size(P22s)`

`LFT(P,r, K)` is the linear fractional transform between `P` and a controller `K` (`K` may be a gain or a controller in state space form or in transfer form);

`LFT(P,K)` is `LFT(P,r,K)` with `r`=size of `K` transpose;

`P1= P11+P12*K* (I-P22*K)^-1 *P21`

`[P1,r1]=LFT(P,r,Ps,rs)` returns the generalized (2 ports) lft of `P` and `Ps`.

`P1` is the pair two-port interconnected plant and the partition of `P1` into 4 blocks in given by `r1` which is the dimension of the `22` block of `P1`.

`P` and `R` can be PSSDs i.e. may admit a polynomial `D` matrix.

### Examples

    s=poly(0,'s');
    P=[1/s, 1/(s+1); 1/(s+2),2/s]; K= 1/(s-1);
    lft(P,K)
    lft(P,[1,1],K)
    P(1,1)+P(1,2)*K*inv(1-P(2,2)*K)*P(2,1)   //Numerically dangerous!
    ss2tf(lft(tf2ss(P),tf2ss(K)))
    lft(P,-1)
    f=[0,0;0,1];w=P/.f; w(1,1)
    //Improper plant (PID control)
    W=[1,1;1,1/(s^2+0.1*s)];K=1+1/s+s
    lft(W,[1,1],K); ss2tf(lft(tf2ss(W),[1,1],tf2ss(K)))

### See Also

`sensi`, `augment`, `feedback`, `sysdiag`,