LFRT version 2.0: approximations



It is often quite easy to guess a good approximation of a given LFR-object, for example from engineering knowledge or by using order reduction tools. This page shows how to use order reduction tools for approximation (reduclfr). Then, it is shown how to evaluate precisely the approximation errors (udistlfr) so that additional parameters can be defined for modelling these approximation errors (bnds2lfr).


Function reduclfr

The following academic example will be considered (note the small terms that will be removed after approximation).

lfrs a b c
S1 = [3+0.001*a^5-b*c a^4*c;a*b*c^3+2 a^2-0.001*b*c^3+1];
size(S1)

LFR-object with 2 output(s), 2 input(s) and 0 state(s).
Uncertainty blocks (globally (23 x 23)):
 Name  Dims  Type   Real/Cplx   Full/Scal      Bounds
 a     12x12 LTI       r           s           [-1,1]
 b     3x3   LTI       r           s           [-1,1]
 c     8x8   LTI       r           s           [-1,1]

The function reduclfr is used for automatic approximation. This function searches the best tolerance argument of the order reduction algorithms implemented in the functions minlfr or minlfr1. The second argument of reduclfr defines the expected maximum amount of approximation error, the third argument 'a' means that we consider absolute error.

S2 = reduclfr(S1,0.01,'a');

Initial size :23
Dichotomy:16>16>16>16>12>12>12>12>12>12>12>12>12>2>12>
End because order "oscillations"

size(S2)

LFR-object with 2 output(s), 2 input(s) and 0 state(s).
Uncertainty blocks (globally (12 x 12)):
 Name  Dims  Type   Real/Cplx   Full/Scal      Bounds
 a     6x6   LTI       r           s           [-1,1]
 b     2x2   LTI       r           s           [-1,1]
 c     4x4   LTI       r           s           [-1,1]

TOP


Function udistlfr

The 3rd and 4th output arguments of udistlfr give element-wise outer-bounds of approximation errors.

[distu,dist2,mindiff,maxdiff] = udistlfr(S1,S2);

Diff. entries (1,1) -> Percent:      100
Diff. entries (1,2) -> No uncertainties
Diff. entries (2,1) -> No uncertainties
Diff. entries (2,2) -> Percent:      100

disp(mindiff);

   -0.0012         0
         0   -0.0012


disp(maxdiff);

    0.0012         0
         0    0.0012

TOP


Function bnds2lfr

It remains to replace the approximation errors by additional normalized real parameters.

syserr = bnds2lfr('s_',mindiff,maxdiff);
S3 = S2 + syserr;

size(S3)

LFR-object with 2 output(s), 2 input(s) and 0 state(s).
Uncertainty blocks (globally (14 x 14)):
 Name  Dims  Type   Real/Cplx   Full/Scal      Bounds
 a     6x6   LTI       r           s           [-1,1]
 b     2x2   LTI       r           s           [-1,1]
 c     4x4   LTI       r           s           [-1,1]
 s_1_1 1x1   LTI       r           s           [-0.0012252,0.0012252]
 s_2_2 1x1   LTI       r           s           [-0.0012221,0.0012221]
In conclusion, S1 was reduced from order 23 to 14. Two additional parameters s_1_1 and s_2_2 represent the approximation error in order to offer a guarantee that worst cases are not missed if µ-analysis is applied to S3.

TOP