Replace `ureal`

atoms by summations of `ureal`

and `ucomplex`

(or `ultidyn`

)
atoms

MC = complexify(M,alpha) MC = complexify(M,alpha,'ultidyn')

The command `complexify`

replaces `ureal`

atoms
with sums of `ureal`

and `ucomplex`

atoms
using `usubs`

. Optionally, the sum can consist of
a `ureal`

and `ultidyn`

atom.

`complexify`

is used to improve the conditioning
of robust stability calculations (`robuststab`

) for
situations when there are predominantly `ureal`

uncertain
elements.

`MC = complexify(M,alpha)`

results in each `ureal`

atom
in `MC`

having the same `Name`

and `NominalValue`

as
the corresponding `ureal`

atom in M. If `Range`

is
the range of one `ureal`

atom from `M`

,
then the range of the corresponding ureal atom in `MC`

is

[`Range(1)+alpha*diff(Range)/2 Range(2)-alpha*diff(Range)/2`

]

The net effect is that the same real range is covered with a
real and complex uncertainty. The real parameter range is reduced
by equal amounts at each end, and `alpha`

represents
(in a relative sense) the reduction in the total range. The `ucomplex`

atom
will add this reduction in range back into `MC`

,
but as a ball with real and imaginary parts.

The `ucomplex`

atom has `NominalValue`

of
0, and `Radius`

equal to `alpha*diff(Range)`

.
Its name is the name of the original `ureal`

atom,
appended with the characters `'_cmpxfy'`

.

`MC = complexify(M,alpha,'ultidyn')`

is the
same, except that gain-bounded `ultidyn`

atoms are
used instead of `ucomplex`

atoms. The `ultidyn`

atom
has its `Bound`

equal to `alpha*diff(Range)`

.

Was this topic helpful?