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!



MOR Wiki
Revision as of 17:37, 29 August 2023 by Mlinaric (talk | contribs) (Edit categories, replace source tags)


Description: Motion Problem in a Building

This benchmark models the displacement of a multi-story building for example during an Earthquake. More details can be found in [1] and [2], [3].

Earthquake Model

Origin

This benchmark is part of the SLICOT Benchmark Examples for Model Reduction[3].

Data

The system matrices \(A\), \(B\), \(C\) are available from the SLICOT benchmarks page: build.zip and are stored as MATLAB .mat file.

Here is Python code for loading the matrices (\(A\) is stored as a sparse matrix that is mostly full and \(C\) is stored as an array of 8-bit unsigned integers):

import numpy as np
from scipy.io import loadmat

mat = loadmat('build.mat')
A = mat['A'].toarray()
B = mat['B']
C = mat['C'].astype(np.float_)

The \((A, B, C)\) represents a second-order system

\[ \begin{align} \ddot{q}(t) + E_{so} \dot{q}(t) + K_{so} q(t) &= B_{so} u(t), \\ y(t) &= C_{so} \dot{q}(t), \end{align} \]

as

\[ \begin{align} A &= \begin{pmatrix} 0 & I \\ -K_{so} & -E_{so} \end{pmatrix}, \\ B &= \begin{pmatrix} 0 \\ B_{so} \end{pmatrix}, \\ C &= \begin{pmatrix} 0 & C_{so} \end{pmatrix} \end{align} \]

Here is Python code for checking the structure and extracting the second-order matrices:

n = 48
n2 = n // 2

assert np.all(A[:n2, :n2] == 0)
assert np.all(A[:n2, n2:] == np.eye(n2))
assert np.all(B[:n2] == 0)
assert np.all(C[:, :n2] == 0)

Eso = -A[n2:, n2:]
Kso = -A[n2:, :n2]
Bso = B[n2:]
Cso = C[:, n2:]

Dimensions

First differential order

System structure:

\[ \begin{align} \dot{x}(t) &= A x(t) + B u(t) \\ y(t) &= C x(t) \end{align} \]

System dimensions\[A \in \mathbb{R}^{48 \times 48}\], \(B \in \mathbb{R}^{48 \times 1}\), \(C \in \mathbb{R}^{1 \times 48}\).

Second differential order

System structure:

\[ \begin{align} \ddot{x}(t) + E \dot{x}(t) + K x(t) &= B u(t) \\ y(t) &= C_v \dot{x}(t) \end{align} \]

System dimensions\[E, K \in \mathbb{R}^{24 \times 24}\], \(B \in \mathbb{R}^{24 \times 1}\), \(C_v \in \mathbb{R}^{1 \times 24}\).

Citation

To cite this benchmark, use the following references:

  • For the benchmark itself and its data:
Niconet e.V., SLICOT - Subroutine Library in Systems and Control Theory, http://www.slicot.org
@MANUAL{slicot_build,
 title =        {{SLICOT} - Subroutine Library in Systems and Control Theory},
 organization = {Niconet e.V.}
 address =      {\url{http://www.slicot.org}},
 key =          {SLICOT}
}
  • For the background on the benchmark:
@ARTICLE{morAntSG01,
 author =       {A.C. Antoulas, D.C. Sorensen and S. Gugercin},
 title =        {A survey of model reduction methods for large-scale systems},
 journal =      {Contemporary Mathematics},
 volume =       {280},
 pages =        {193--219},
 year =         {2001},
 doi =          {10.1090/conm/280}
}

References

  1. A.C. Antoulas, D.C. Sorensen and S. Gugercin. A survey of model reduction methods for large-scale systems. Contemporary Mathematics, 280: 193--219, 2001.
  2. Y. Chahlaoui, P. Van Dooren, A collection of Benchmark examples for model reduction of linear time invariant dynamical systems, Working Note 2002-2: 2002.
  3. 3.0 3.1 Y. Chahlaoui, P. Van Dooren, Benchmark Examples for Model Reduction of Linear Time-Invariant Dynamical Systems, Dimension Reduction of Large-Scale Systems, Lecture Notes in Computational Science and Engineering, vol 45: 379--392, 2005.