Structural Stability of Multidimensional Discrete Linear Systems

Problem Definition

A multidimensional discrete linear system defined by a multivariate rational transfer function \(G\) is said to be structurally stable if the denominator \(D\) of \(G\) has no zeros in the complex unit polydisc \(\mathbb{U}^n\): \(\mathbb{U}^n = \prod_{k=1}^{n} \{z_k \in \mathbb{C} \, | \, |z_k| \leq 1\}.\)

Reformulation of the Problem

Using results from DeCarlo (1977), the stability condition can be checked through the following conditions:

  • Each univariate polynomial \(D(z_k,1,\dots,1)\) must have no roots in \(|z_k| \leq 1\) for all \(k = 1, \dots, n\).

  • The multivariate polynomial \(D(z_1,\dots,z_n)\) must have no roots on the torus \(|z_1| = \dots = |z_n| = 1\).

The first condition can be checked using signed subresultant (Sturm-Habicht) sequences. The second condition is transformed into a real algebraic problem using a Möbius change of variables: \((z_k = \frac{x_k - i}{x_k + i},\) leading to a system \(\{\mathcal{R} = 0, \mathcal{I} = 0\}\) with real polynomials \(\mathcal{R}, \mathcal{I} \in \mathbb{R}[x_1, \dots, x_n]\).

Parametric Case

When \(D\) depends on parameters \(U_1, \dots, U_l\), the goal is to determine for which parameter values the system remains structurally stable. The approach follows:

  1. Compute the Discriminant Variety (DV)

    • The discriminant variety \(DV\) of the system \(\{\mathcal{R} = 0, \mathcal{I} = 0\}\) with respect to the parameter space projection is computed.

  2. Construct a Cylindrical Algebraic Decomposition (CAD)

    • A CAD of \(\mathbb{R}^l\) adapted to \(DV\) is computed.

    • Cells of maximal dimension are identified.

  3. Sample and Solve

    • A rational sample point is selected in each cell.

    • The polynomial system is solved at each sample point to determine stability.

  4. Lienard-Chipart Criterion

    • Additional stability conditions are derived for the univariate polynomials \(D(z_1,1)\) and \(D(1,z_2)\) using the Lienard-Chipart criterion.

Implementation in PACE.jl

To implement this method in PACE.jl:

  • DiscriminantVariety.jl computes the discriminant variety.

  • lienard_chipart() provides additional stability conditions.

  • PACE.jl functions are used for sampling in CAD cells.

  • RationalUnivariateRepresentation.jl and RS.jl solve polynomial systems.

  • Nemo.jl is used for polynomial manipulations.

The full implementation is wrapped in the function stability_parametric().

Info

This page is generated from a Pluto notebook. The notebook can be download from here, and to run it you need to have installed PaceControl.jl and the rest of the required packages locally and to activate your default Julia environement with 'using Pkg; Pkg.activate()'.

begin
    import Pkg
    Pkg.activate();
    using PaceControl, MPFI, Nemo, AbstractAlgebra
    
end

Example of transfer function depending on two parameters

begin
    Rc, (z1,z2,u1, u2) = polynomial_ring(Nemo.ComplexField(), ["z1", "z2", "u1", "u2"])
    
    D = u2*z1*z2 - u1*z2 - u2*z1 + z1*z2 - z1 + 1
end
z1*z2*u2 + z1*z2 - 1.0000000000000000000*z1*u2 - 1.0000000000000000000*z1 - 1.0000000000000000000*z2*u1 + 1
stable, unstable = stability_parametric(D)
(Any[Rational{BigInt}[0, -1]], Any[Rational{BigInt}[-7//2, -11//4], Rational{BigInt}[-7//2, -1], Rational{BigInt}[-7//2, 3//4], Rational{BigInt}[-2, -2], Rational{BigInt}[-2, -1], Rational{BigInt}[-2, 0], Rational{BigInt}[0, -2], Rational{BigInt}[0, 0], Rational{BigInt}[3//2, -11//4], Rational{BigInt}[3//2, -1], Rational{BigInt}[3//2, 3//4]])
stable 
1-element Vector{Any}:
 Rational{BigInt}[0, -1]
unstable 
11-element Vector{Any}:
 Rational{BigInt}[-7//2, -11//4]
 Rational{BigInt}[-7//2, -1]
 Rational{BigInt}[-7//2, 3//4]
 Rational{BigInt}[-2, -2]
 Rational{BigInt}[-2, -1]
 Rational{BigInt}[-2, 0]
 Rational{BigInt}[0, -2]
 Rational{BigInt}[0, 0]
 Rational{BigInt}[3//2, -11//4]
 Rational{BigInt}[3//2, -1]
 Rational{BigInt}[3//2, 3//4]