Anonymous
×
Create a new article
Write your page title here:
We currently have 106 articles on MOR Wiki. Type your article name above or click on one of the titles below and start writing!




Description

This procedural benchmark generates an all-pass SISO system based on [1]. For an all-pass system, the transfer function has the property g(s)g(s)=σ2, σ>0, or (equivalently) the controllability and observability Gramians are quasi inverse to each other: WCWO=σI, which means this system has a single Hankel singular value of multiplicity of the system's order. The system matrices are constructed based on the scheme:

A=(a1,1α1α10α2α20αN1αN10),B=(b100),C=(s1b100),D=s1σ.

We choose s1{1,1} to be s11, as this makes the system state-space-anti-symmetric. Furthermore, b1=1 and σ=1, which makes a1,1=b122σ=12.

Data

This benchmark is procedural and the state dimensions can be chosen. Use the following MATLAB code to generate a random system as described above:

function [A,B,C,D] = allpass(n)
% allpass (all-pass system)
% by Christian Himpe, 2020
% released under BSD 2-Clause License
%*

    A = gallery('tridiag',n,-1,0,1);
    A(1,1) = -0.5;
    B = sparse(1,1,1,n,1);
    C = -B';
    D = 1;
end

The function call requires one argument; the number of states n. The return value consists of four matrices; the system matrix A, the input matrix B, the output matrix C, and the feed-through matrix D.

[A,B,C,D] = allpass(n);

An equivalent Python code is

from scipy.sparse import diags, lil_matrix

def allpass(n):
    A = diags([-1, 0, 1], offsets=[-1, 0, 1], shape=(n, n), format='lil')
    A[0, 0] = -0.5
    A = A.tocsc()
    B = lil_matrix((n, 1))
    B[0, 0] = 1
    B = B.tocsc()
    C = -B.T
    D = 1
    return A, B, C, D

Dimensions

x˙(t)=Ax(t)+Bu(t)y(t)=Cx(t)+Du(t)

System dimensions:

An×n, Bn×1, C1×n, D.

Citation

To cite this benchmark, use the following references:

  • For the benchmark itself and its data:
The MORwiki Community, All-Pass System. MORwiki - Model Order Reduction Wiki, 2020. http://modelreduction.org/index.php/All_pass_system
@MISC{morwiki_allpass,
  author =       {{The MORwiki Community}},
  title =        {All-Pass System},
  howpublished = {{MORwiki} -- Model Order Reduction Wiki},
  url =          {https://modelreduction.org/morwiki/index.php/All_pass_system},
  year =         {2020}
}

References