Polpac: MATLAB Toolbox for Computing with Polynomial Matrices
Introduction
Polynomial matrices play an important role in control theory. They are used
in the design of multi-variable linear control systems in the frequency domain,
but also in the design of robust controllers of multi-variable non-linear control
systems.
As versions of MATLAB older than Version 5 were not equipped to dealing directly
with such data structures, I decided in the late eighties, to develop a version of
a polynomial matrix toolbox for MATLAB based on regular matrices. To this end,
polynomial matricas had to be mapped onto regular matrices.
I decided to offer my class on
Numerical Methods for Control during one year as a project-oriented
class. In that year, the class was attended by 15 students. I subdivided the
students into five groups. The Polpac Toolbox was developed jointly by my
students and myself as part of that class.
A major goal of Polpac was to be able to observe and understand the error
propagation during the execution of algorithms. To this end, all of the
Polpac routines were coded in three variants that differed in the way, in which
the polynomials were represented. In mode 1, polynomials are represented
through their coefficients. In mode 2, they are being captured by
storing their zeros, whereas in mode 3, each polynomial is represented
by a set of supporting values.
MATLAB offers today data structures that would drastically simplify such a
development. Algorithms, coded by making use of these data structures, would also
be much easier to read and maintain. However, I never took the time to rewrite
the Polpac Toolbox from scratch making use of these new features.
For this reason, the Polpac Toolbox is still based on Version 4 of MATLAB. The
functions can be called without any problems also from newer versions of
MATLAB. However, the proper maintenance of the library is problematic.
Historical Development
- The error propagation of numerical algorithms based on polynomial
matrices had already been analyzed in the early eighties by
Magnus Rimvall and myself in a number of semester and diploma
projects at ETH Zurich. In those days, our interest fell on
representation by means of supporting values. This representation
enabled us to introduce redundancy that could be exploited in
minimizing the error amplification during continued polynomial
matrix operations. One student showed that it is numerically best
to choose the supporting values equidistantly spaced along the unit
circle of the complex plane.
- In 1988, I developed a first version of a Polpac toolbox together with my
students of the class on
Numerical Methods for Control. The software was developed in CTRL-C,
a predecessor of today's widely distributed MATLAB software.
- In 1991,
Sung-Do Chi developed a new representation by supporting values
in the frequency domain that exhibited promising numerical properties [1].
- In 1997, the Polpac toolbox was ported from CTRL-C to Version 4 of MATLAB. This
is the version of the software that is being made available through this web page.
(
)
Most Important Publications
- Cellier, F.E., and S.D. Chi (1991),
Numerical Properties of Trajectory Representations of Polynomial
Matrices,
Proc. CADCS'91, Computer-Aided Design in Control Systems,
Swansea, Wales, U.K., pp.173-177.
Deutsche Version
Homepage
Last modified: July 8, 2005 -- © François Cellier