Periodic solver utilities
pslyapd
Solution of periodic discrete-time Lyapunov equations using periodic Schur decomposition.pslyapd2
Solution of a pair periodic discrete-time Lyapunov equations using a single periodic Schur decomposition.pslyapdkr
Solution of periodic discrete-time Lyapunov equations using Kronecker product expansions.psplyapd
Solution of positve periodic discrete-time Lyapunov equations.
PeriodicMatrixEquations.pslyapd
— Functionpslyapd(A, C; adj = true, stability_check = false) -> X
Solve the periodic discrete-time Lyapunov equation.
For the square n
-th order periodic matrices A(i)
, i = 1, ..., pa
and C(i)
, i = 1, ..., pc
of periods pa
and pc
, respectively, the periodic solution X(i)
, i = 1, ..., p
of period p = lcm(pa,pc)
of the periodic Lyapunov equation is computed:
A(i)'*X(i+1)*A(i) + C(i) = X(i), i = 1, ..., p for `adj = true`;
A(i)*X(i)*A(i)' + C(i) = X(i+1), i = 1, ..., p for `adj = false`.
The periodic matrices A
and C
are stored in the n×n×pa
and n×n×pc
3-dimensional arrays A
and C
, respectively, and X
results as a n×n×p
3-dimensional array.
Alternatively, the periodic matrices A
and C
can be stored in the pa
- and pc
-dimensional vectors of matrices A
and C
, respectively, and X
results as a p
-dimensional vector of matrices.
If stability_check = true
, the stability of characteristic multipliers of A
is checked and an error is issued if any characteristic multiplier has modulus equal to or larger than one.
The periodic discrete analog of the Bartels-Stewart method based on the periodic Schur form of the periodic matrix A
is employed [1].
Reference:
[1] A. Varga. Periodic Lyapunov equations: some applications and new algorithms. Int. J. Control, vol, 67, pp, 69-87, 1997.
PeriodicMatrixEquations.pslyapd2
— Functionpslyapd2(A, C, E; stability_check = false) -> (X, Y)
Solve a pair of periodic discrete-time Lyapunov equations.
For the square n
-th order periodic matrices A(i)
, i = 1, ..., pa
, C(i)
, i = 1, ..., pc
, and E(i)
, i = 1, ..., pe
of periods pa
, pc
and pe
, respectively, the periodic solutions X(i)
, i = 1, ..., p
and Y(i)
, i = 1, ..., p
of period p = lcm(pa,pc,pe)
of the periodic Lyapunov equations are computed:
A(i)*X(i)*A(i)' + C(i) = X(i+1), i = 1, ..., p ,
A(i)'*Y(i+1)*A(i) + E(i) = Y(i), i = 1, ..., p .
The periodic matrices A
, C
and E
are stored in the n×n×pa
, n×n×pc
and n×n×pe
3-dimensional arrays A
, C
and E
, respectively, and X
and Y
result as n×n×p
3-dimensional arrays.
Alternatively, the periodic matrices A
, C
and E
can be stored in the pa
-, pc
- and pe
-dimensional vectors of matrices A
, C
and E
, respectively, and X
and Y
result as p
-dimensional vectors of matrices.
If stability_check = true
, the stability of characteristic multipliers of A
is checked and an error is issued if any characteristic multiplier has modulus equal to or larger than one.
The periodic discrete analog of the Bartels-Stewart method based on the periodic Schur form of the periodic matrix A
is employed [1].
Reference:
[1] A. Varga. Periodic Lyapunov equations: some applications and new algorithms. Int. J. Control, vol, 67, pp, 69-87, 1997.
PeriodicMatrixEquations.pslyapdkr
— Function pslyapdkr(A, C; adj = true) -> X
Solve the periodic discrete-time Lyapunov matrix equation
A'σXA + C = X, if adj = true,
or
A*X*A' + C = σX, if adj = false,
where σ
is the forward shift operator σX(i) = X(i+1)
. The periodic matrix A
must not have characteristic multipliers on the unit circle. The periodic matrices A
and C
are either stored as 3-dimensional arrays or as as vectors of matrices.
The Kronecker product expansion of equations is employed and therefore this function is not recommended for large order matrices or large periods.
PeriodicMatrixEquations.psplyapd
— Function psplyapd(A, C; adj = true, rtol = ϵ^(3/4)) -> U
Compute the upper triangular factor U
of the solution X = U'U
of the periodic discrete-time Lyapunov matrix equation
A'σXA + C'C = X, if adj = true,
or of the solution X = UU'
of the periodic discrete-time Lyapunov matrix equation
AXA' + CC' = σX, if adj = false,
where σ
is the forward shift operator σX(i) = X(i+1)
. The periodic matrix A
must be stable, i.e., have all characteristic multipliers with moduli less than one.
The periodic matrices A
and C
are either stored as 3-dimensional arrays or as as vectors of matrices.
The iterative method (Algorithm 5) of [1] and its dual version are employed.
Reference:
[1] A. Varga, "Periodic Lyapunov equations: some applications and new algorithms", Int. J. Control, vol. 67, pp. 69-87, 1997.