next up previous


The hyperion software1

Miaou project

The hyperion software is developed at Inria since 1994, first in the Safir team, now in the Miaou team. It is a Lisp interpreter written in C++, whose essential feature is to find a rational approximation of McMillan degree of a stable transfer function given by incomplete frequency measures.

The input of the hyperion software is a list of $n\times m$ files. In each file, there is the number of data points, plus for point, the frequency, the real part and the imaginary part of the function. This gives a certain number of functions fij, defined on some points. Interpolation by cubic splines gives a function defined fij on a interval.

Using an homographic transformation, we may consider this function as defined on a interval of the unit circle (rational and stable, considered as the transfer function of a discrete time system, with the same McMillan degree).

A first step is the analytic completion. For each fij, hyperion searches a function gij, which is analytic in the disc (i.e. stable), that approximates fij at best in the measurement interval, and is not too big outside. In fact, the L2 norm outside the interval is computed equal to M, which is given by the user. This first step can fail, in case where the system to identify is unstable, too noisy, or has lags, etc. It is however possible to identify lags, with two more parameters $\alpha$ and $\beta$. We make also the assumption that the system is strictly proper, that is, that the value at infinity is zero. If this is not the case, the user has to give this value, or use the Sobolev method, that depends on a parameter $\gamma$.

This first step is rather fast, but often has to be repeated a great number of times until finding a good value for M and the other parameters.

The second phase consists of finding a rational approximation of McMillan degree n of the matrix gij. The McMillan degree is the dimension of a minimal realisation of the system. This quantity must be given by the user. In general, hyperion starts by find a best approximation of degree one, then two, three, etc. It is possible to start the search at degree n using random initialisation, but this does not always work. It is possible to give an initial condition (via its the Schur parameters); such an initial condition may be obtained by a previous run of hyperion. If this initial condition is good, hyperion can find the best solution in less than a second, otherwise (depending on n, etc), it can take hours.

The rational algorithm of hyperion consists of minimising a function $\psi$ in a manifold of (complex) dimension np, where p is the number of inputs or outputs of the system. This manifold is not trivial, so that local charts are needed, and from time to time, another chart must be used. We use an heuristic that seems to work well in the case p=2, but has not been tested extensively in the case p>2 (the case p=1 is the easy case).

Since the manifold is not compact, the chart changing algorithm may fail if we are near the boundary of the manifold. One can prove that the minimum looked for is not on the boundary, but the trajectory defined by the integrator can reach it. In this case, the program fails, and tries another initial condition.

Moreover, the algorithm only finds a local minimum. It is not possible to say if what we found is the global minimum or not (theory says: if the function to identify is near enough to a rational function of degree n, there are no local minima). The idea is that, if we have the absolute minimum at order n-1, it is possible to modify it in order to get an initial condition at order n that gives a local minimum at order n. This scheme worked in all cases we tested. However, no warranty can be given. For instance, using a huge number of Fourier coefficients may produce numerical overflow when computing $\psi$ near the boundary (this is an unrecoverable error).

All parameters used for the analytic completion and the rational approximation can be put in a batch file, and passed to hyperion. In this way, the user never sees the Lisp interpreter of hyperion. One can find an example of use of the software in the Inria technical report 219 ``Identification d'un filtre hyperfréquences par approximation dans le domaine complexe'' (in french). The on-line help of hyperion gives the list of all parameters and a short description (in english) of their use.


next up previous
Jose Grimm
2000-04-03