Robust Control Toolbox | ![]() ![]() |
Compute an upper bound on the structured singular value via the Osborne method.
Syntax
Description
osborne
computes a block-diagonal scaling that minimizes the Frobenius norm of a p by q matrix a
. The maximum singular value of the scaled matrix is returned as mu
; it is a scalar upper bound on the Structured Singular Value (SSV) of the matrix a
.
Also returned are the diagonally scaled matrix ascaled
and the logarithm of the Osborne diagonal scaling logd
.
The optional input k
records the uncertainty block sizes with default value
k = ones(p, 2). The variable k
can be an n by 1 or n by 2 matrix whose rows are the uncertainty block sizes for which the SSV is to be evaluated. If only the first column of k is given then each individual uncertainty block is taken to be square, as if k(:, 1) = k(:, 2).
Algorithm
The Osborne iteration algorithm is as follows:
a
according to its pre-determined uncertainty
block size k
.
% Initialize D scaling D = eye(n); for i = 1 : n while abs(D(i) - 1) < 1.e - 6 offrow(i) = sum(norm(off-diagonal terms of ith row)); offcol(i) = sum(norm(off-diagonal terms of ith column)); D(i) = offrow (i)/o f f col(i); F(i, :) = F(i, :)/D(i); F(:, i) = F(:, i * D(i); end end
Limitations
The Osborne algorithm is ill-posed when the matrix F is reducible [1]; as sometimes is the case when some of the matrix' entries are zero. This problem is solved in osborne
by slightly perturbing the zero entries, to create a nearby irreducible matrix.
Examples
Following are some simple examples of problems involving the difficult reducible case that are easily handled by the Robust Control Toolbox implementation of the osborne
command:
% A reducible case as compared to sigma A = eye(10); A(1,10) = 100000; [mu,Ascaled,logd] = osborne(A); mu % Display answer mu % Another reducible case as compared to sigma A = eye(8); A(1,3) = 100000; A(4,8) = 500000; [mu,Ascaled,logd] = osborne(A); mu % Display answer mu
See Also
muopt
, psv
, perron
, ssv
, sigma
References
[1] E. E. Osborne, "On Preconditioning of Matrices," J. of Assoc. of Computing Machinery, vol. 7, pp. 338-345, March, 1960.
![]() | ohkapp, ohklmr | perron, psv | ![]() |