Simplifying Representation of Uncertain Objects
A minimal realization of the transfer function matrix
has only 1 state, obvious from the decomposition
However, a “natural” construction, formed by
sys11 = ss(tf(2,[1 1])); sys12 = ss(tf(4,[1 1])); sys21 = ss(tf(3,[1 1])); sys22 = ss(tf(6,[1 1])); sys = [sys11 sys12;sys21 sys22] a = x1 x2 x3 x4 x1 -1 0 0 0 x2 0 -1 0 0 x3 0 0 -1 0 x4 0 0 0 -1 b = u1 u2 x1 2 0 x2 0 2 x3 2 0 x4 0 2 c = x1 x2 x3 x4 y1 1 2 0 0 y2 0 0 1.5 3 d = u1 u2 y1 0 0 y2 0 0 Continuous-time model
has four states, and is nonminimal.
In the same manner, the internal representation of uncertain objects built up from
uncertain elements can become nonminimal, depending on the sequence of operations in their
construction. The command simplify
employs ad-hoc simplification and
reduction schemes to reduce the complexity of the representation of uncertain objects. There
are three levels of simplification: off, basic and full. Each uncertain element has an
AutoSimplify
property whose value is either 'off'
,
'basic'
or 'full'
. The default value is
'basic'
.
After (nearly) every operation, the command simplify
is automatically
run on the uncertain object, cycling through all of the uncertain elements, and attempting to
simplify (without error) the representation of the effect of that uncertain object. The
AutoSimplify
property of each element dictates the types of computations
that are performed. In the 'off'
case, no simplification is even attempted.
In 'basic'
, fairly simple schemes to detect and eliminate nonminimal
representations are used. Finally, in 'full'
, numerical based methods
similar to truncated balanced realizations are used, with a very tight tolerance to minimize
error.
Effect of the Autosimplify
Property
Create an uncertain real parameter, view the AutoSimplify
property of
a
, and then create a 1-by-2 umat
, both of whose entries involve the uncertain parameter.
a = ureal('a',4); a.AutoSimplify ans = basic m1 = [a+4 6*a] UMAT: 1 Rows, 2 Columns a: real, nominal = 4, variability = [-1 1], 1 occurrence
Note that although the uncertain real parameter a appears in both (two) entries of the
matrix, the resulting uncertain matrix m1
only depends on “1
occurrence” of a
.
Set the AutoSimplify
property of a
to
'off'
(from 'basic'
). Recreate the 1-by-2 umat
. Now note that the resulting uncertain matrix m2
depends on “2 occurrences” of a
.
a.AutoSimplify = 'off'; m2 = [a+4 6*a] UMAT: 1 Rows, 2 Columns a: real, nominal = 4, variability = [-1 1], 2 occurrences
The 'basic'
level of autosimplification often detects (and
simplifies) duplication created by linear terms in the various entries. Higher order
(quadratic, bilinear, etc.) duplication is often not detected by the
'basic'
autosimplify level.
For example, reset the AutoSimplify
property of a to
'basic'
(from 'off'
). Create an uncertain real
parameter, and a 1-by-2 umat
, both of whose entries involve the
square of the uncertain parameter.
a.AutoSimplify = 'basic'; m3 = [a*(a+4) 6*a*a] UMAT: 1 Rows, 2 Columns a: real, nominal = 4, variability = [-1 1], 4 occurrences
Note that the resulting uncertain matrix m3
depends on “4
occurrences” of a
.
Set the AutoSimplify
property of a
to
'full'
(from 'basic'
). Recreate the 1-by-2 umat
. Now note that the resulting uncertain matrix m4 depends on “2
occurrences” of a
.
a.AutoSimplify = 'full'; m4 = [a*(a+4) 6*a*a] UMAT: 1 Rows, 2 Columns a: real, nominal = 4, variability = [-1 1], 2 occurrences
Although m4
has a less complex representation (2 occurrences of
a
rather than 4 as in m3
), some numerical variations
are seen when both uncertain objects are evaluated at (say) 0.
usubs(m3,'a',0) ans = 0 0 usubs(m4,'a',0) ans = 1.0e-015 * -0.4441 0
Small numerical differences are also noted at other evaluation points. The example below
shows the differences encountered evaluating at a
equal to 1.
usubs(m3,'a',1) ans = 5 6 usubs(m4,'a',1) ans = 5.0000 6.0000
Direct Use of simplify
The simplify
command can be used to override all uncertain element's
AutoSimplify
property. The first input to the
simplify
command is an uncertain object. The second input is the
desired reduction technique, which can either 'basic'
or
'full'
.
Again create an uncertain real parameter, and a 1-by-2 umat
, both of whose entries involve the square of the uncertain parameter. Set
the AutoSimplify
property of a
to
'basic'
.
a.AutoSimplify = 'basic'; m3 = [a*(a+4) 6*a*a] UMAT: 1 Rows, 2 Columns a: real, nominal = 4, variability = [-1 1], 4 occurrences
Note that the resulting uncertain matrix m3
depends on four
occurrences of a
.
The simplify
command can be used to perform a
'full'
reduction on the resulting umat
.
m4 = simplify(m3,'full') UMAT: 1 Rows, 2 Columns a: real, nominal = 4, variability = [-1 1], 2 occurrences
The resulting uncertain matrix m4
depends on only two occurrences of
a
after the reduction.