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



MOR Wiki

Difference between revisions of "Building Model"

(init building)
 
m (infobox string)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{preliminary}} <!-- Do not remove -->
 
 
 
[[Category:benchmark]]
 
[[Category:benchmark]]
 
[[Category:SLICOT]]
 
[[Category:SLICOT]]
[[Category:Sparse]]
+
[[Category:linear]]
  +
[[Category:time invariant]]
  +
[[Category:first differential order]]
  +
[[Category:second differential order]]
 
[[Category:SISO]]
 
[[Category:SISO]]
   
  +
{{Infobox
'''This is a stub. Please expand.'''
 
  +
|Title = Building Model
  +
|Benchmark ID = buildingModel_n48m1q1
  +
|Category = slicot
  +
|System-Class = LTI-FOS
  +
|nstates = 48
  +
|ninputs = 1
  +
|noutputs = 1
  +
|nparameters = 0
  +
|components = A, B, C
  +
|License = NA
  +
|Creator = [[User:Himpe]]
  +
|Editor =
  +
* [[User:Himpe]]
  +
* [[User:Mlinaric]]
  +
|Zenodo-link = NA
  +
}}
   
 
==Description: Motion Problem in a Building==
 
==Description: Motion Problem in a Building==
   
This benchmark models the displacement of a multi-storey building for example during an Earthquake.
+
This benchmark models the displacement of a multi-story building for example during an Earthquake.
 
More details can be found in <ref name="antoulas01"/> and <ref name="chahlaoui02"/>, <ref name="chahlaoui05"/>.
 
More details can be found in <ref name="antoulas01"/> and <ref name="chahlaoui02"/>, <ref name="chahlaoui05"/>.
   
Line 20: Line 37:
   
 
This benchmark is part of the '''SLICOT Benchmark Examples for Model Reduction'''<ref name="chahlaoui05"/>.
 
This benchmark is part of the '''SLICOT Benchmark Examples for Model Reduction'''<ref name="chahlaoui05"/>.
 
   
 
==Data==
 
==Data==
   
The system matrices <math>A</math>, <math>B</math>, <math>C</math> are available from the [http://slicot.org/20-site/126-benchmark-examples-for-model-reduction SLICOT benchmarks] page: [http://slicot.org/objects/software/shared/bench-data/build.zip build.zip] and are stored as MATLAB [https://www.mathworks.com/help/matlab/import_export/mat-file-versions.html .mat] file.
+
The system matrices <math>A</math>, <math>B</math>, <math>C</math> are available from the [https://www.slicot.org/20-site/126-benchmark-examples-for-model-reduction SLICOT benchmarks] page: [https://www.slicot.org/objects/software/shared/bench-data/build.zip build.zip] and are stored as MATLAB [https://www.mathworks.com/help/matlab/import_export/mat-file-versions.html .mat] file.
   
  +
Here is [https://www.python.org Python] code for loading the matrices (<math>A</math> is stored as a sparse matrix that is mostly full and <math>C</math> is stored as an array of 8-bit unsigned integers):
  +
  +
:<syntaxhighlight lang="python">
  +
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.float64)
  +
</syntaxhighlight>
  +
  +
The <math>(A, B, C)</math> represents a second-order system
  +
  +
:<math>
  +
\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}
  +
</math>
  +
  +
as
  +
  +
:<math>
  +
\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}
  +
</math>
  +
  +
Here is [https://www.python.org Python] code for checking the structure and extracting the second-order matrices:
  +
  +
:<syntaxhighlight lang="python">
  +
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:]
  +
</syntaxhighlight>
   
 
==Dimensions==
 
==Dimensions==
  +
  +
===First differential order===
   
 
System structure:
 
System structure:
   
 
:<math>
 
:<math>
\begin{array}{rcl}
+
\begin{align}
\dot{x}(t) &=& Ax(t) + Bu(t) \\
+
\dot{x}(t) &= A x(t) + B u(t) \\
y(t) &=& Cx(t)
+
y(t) &= C x(t)
\end{array}
+
\end{align}
 
</math>
 
</math>
   
Line 44: Line 120:
 
<math>C \in \mathbb{R}^{1 \times 48}</math>.
 
<math>C \in \mathbb{R}^{1 \times 48}</math>.
   
  +
===Second differential order===
  +
  +
System structure:
  +
  +
:<math>
  +
\begin{align}
  +
\ddot{x}(t) + E \dot{x}(t) + K x(t) &= B u(t) \\
  +
y(t) &= C_v \dot{x}(t)
  +
\end{align}
  +
</math>
  +
  +
System dimensions:
  +
  +
<math>E, K \in \mathbb{R}^{24 \times 24}</math>,
  +
<math>B \in \mathbb{R}^{24 \times 1}</math>,
  +
<math>C_v \in \mathbb{R}^{1 \times 24}</math>.
   
 
==Citation==
 
==Citation==

Latest revision as of 11:26, 30 November 2023


Building Model
Background
Benchmark ID

buildingModel_n48m1q1

Category

slicot

System-Class

LTI-FOS

Parameters
nstates
48
ninputs

1

noutputs

1

nparameters

0

components

A, B, C

Copyright
License

NA

Creator

Christian Himpe

Editor
Location

NA


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.float64)

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.