LFRT version 2.0: realization
LFR-object can be realized using the basic functions lfr and lfrs presented here. This page presents more advanced tools. The functions sym2lfr and symtreed are used for direct realization of symbolic objects, gmorton and symtreed for order reduction. Function gmortonThis function generalizes Morton's approach for realizing LFR-objects corresponding to an expansion. An SVD decomposition is applied to the coefficients of the expansion for order reduction (or approximation).
% sys = A0 + a^2 A1 + 1/(1+b) A2 A0 = rand(6,6); A1 = rand(6,6); A2 = rand(6,6); % LFR-object expression lfrs a b sys = gmorton({A0,A1,A2},[1 a^2 1/(1+b)]); % Same result with a symbolic expression syms a b sys = gmorton({A0,A1,A2},[1 a^2 1/(1+b)]);If the realized LFR-object is a state-space representation (coefficients of the form [A B;C D]) the corresponding transfer from inputs to outputs can be found using the function abcd2lfr. For approximation, invoke the function gmorton with a third argument which is a tolerance for the SVD decomposition.
Function sym2lfrThis function realizes directly symbolic expression as LFR-objects. There is no polynomial dependency restriction like with the function symtreed (see below).
syms a b c d Int
Msym = [1+a/d (c+Int)/(d+Int) ; a*b*c/d 3];
Mlfr = sym2lfr(Msym);
size(Mlfr)
LFR-object with 2 output(s), 2 input(s) and 2 state(s). (Int = 1/s)
Dimension of constant block in uncertainty matrix: 3
Uncertainty blocks (globally (8 x 8)):
Name Dims Type Real/Cplx Full/Scal Bounds
a 2x2 LTI r s [-1,1]
b 1x1 LTI r s [-1,1]
c 2x2 LTI r s [-1,1]
d 3x3 LTI r s [-1,1]
Concerning the "constant block", see the discussion relative
to the function lfrs.
Function symtreedThis function realizes polynomial expressions using the structured tree decomposition for lower order modelling. It can only be applied to polynomial expressions, however, rational expressions can be factorized so that symtreed can be applied to a combination of the numerator and denominator in polynomial form (see functions lf2lfr and rf2lfr).
syms a b c d Msym = [b*a^2*d^3 c^3*a+d^2; a*b^2*d^3 a*c*b ; d^2 a*b]; Mlfr1 = sym2lfr(Msym,-1); size(Mlfr1) LFR-object with 3 output(s), 2 input(s) and 0 state(s). Uncertainty blocks (globally (25 x 25)): Name Dims Type Real/Cplx Full/Scal Bounds a 6x6 LTI r s [-1,1] b 5x5 LTI r s [-1,1] c 4x4 LTI r s [-1,1] d 10x10 LTI r s [-1,1] Mlfr2 = symtreed(Msym); size(Mlfr2) LFR-object with 3 output(s), 2 input(s) and 0 state(s). Uncertainty blocks (globally (16 x 16)): <- reduced from 25 to 16 Name Dims Type Real/Cplx Full/Scal Bounds a 5x5 LTI r s [-1,1] b 3x3 LTI r s [-1,1] c 3x3 LTI r s [-1,1] d 5x5 LTI r s [-1,1]Note that for already factorized expression, e.g., X = (a+b+c)^10, sym2lfr leads to much lower order than symtreed which expands the expression before applying the structured tree decomposition.
|