remove preliminary and stub warnings |
Edit categories, add Python code, add second-order structure |
||
| Line 1: | Line 1: | ||
[[Category:benchmark]] | [[Category:benchmark]] | ||
[[Category:SLICOT]] | [[Category:SLICOT]] | ||
[[Category: | [[Category:linear]] | ||
[[Category:time invariant]] | |||
[[Category:first differential order]] | |||
[[Category:second differential order]] | |||
[[Category:SISO]] | [[Category:SISO]] | ||
| Line 14: | Line 17: | ||
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== | ||
| Line 20: | Line 22: | ||
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/beam.zip beam.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 [http://slicot.org/20-site/126-benchmark-examples-for-model-reduction SLICOT benchmarks] page: [http://slicot.org/objects/software/shared/bench-data/beam.zip beam.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('beam.mat') | |||
A = mat['A'].toarray() | |||
B = mat['B'] | |||
C = mat['C'].astype(np.float_) | |||
</syntaxhighlight> | |||
The <math>(A, B, C)</math> represents a second-order system | |||
:<math> | |||
\begin{align} | |||
\ddot{q}(t) + E_{so} \dot{q}(t) + a K_{so} q(t) &= a B_{so} u(t), \\ | |||
y(t) &= C_{so} q(t), | |||
\end{align} | |||
</math> | |||
as | |||
:<math> | |||
\begin{align} | |||
A &= | |||
\begin{pmatrix} | |||
0 & a I \\ | |||
-K_{so} & -E_{so} | |||
\end{pmatrix}, \\ | |||
B &= | |||
\begin{pmatrix} | |||
0 \\ | |||
B_{so} | |||
\end{pmatrix}, \\ | |||
C &= | |||
\begin{pmatrix} | |||
C_{so} & 0 | |||
\end{pmatrix}, | |||
\end{align} | |||
</math> | |||
where <math>a \approx 21.3896</math>. | |||
Here is [https://www.python.org Python] code for checking the structure and extracting the second-order matrices: | |||
:<syntaxhighlight lang="python"> | |||
n = 348 | |||
n2 = n // 2 | |||
assert np.all(A[:n2, :n2] == 0) | |||
assert np.all(A[:n2, n2:] == A[0, n2] * np.eye(n2)) | |||
assert np.all(B[:n2] == 0) | |||
assert np.all(C[:, :n2] == 0) | |||
a = A[0, n2] | |||
Eso = -A[n2:, n2:] | |||
Kso = -a * A[n2:, :n2] | |||
Bso = a * B[n2:] | |||
Cso = C[:, :n2] | |||
</syntaxhighlight> | |||
==Dimensions== | ==Dimensions== | ||
===First differential order=== | |||
System structure: | System structure: | ||
:<math> | :<math> | ||
\begin{ | \begin{align} | ||
\dot{x}(t) &= | \dot{x}(t) &= A x(t) + B u(t) \\ | ||
y(t) &= | y(t) &= C x(t) | ||
\end{ | \end{align} | ||
</math> | </math> | ||
| Line 38: | Line 103: | ||
<math>C \in \mathbb{R}^{1 \times 348}</math>. | <math>C \in \mathbb{R}^{1 \times 348}</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_p \dot{x}(t) | |||
\end{align} | |||
</math> | |||
System dimensions: | |||
<math>E, K \in \mathbb{R}^{174 \times 174}</math>, | |||
<math>B \in \mathbb{R}^{174 \times 1}</math>, | |||
<math>C_p \in \mathbb{R}^{1 \times 174}</math>. | |||
==Citation== | ==Citation== | ||
Revision as of 12:42, 30 August 2023
Description: Clamped Beam Model
This benchmark models a cantilever beam, which is a beam clamped on one end. More details can be found in [1] and [2], [3].
For larger beam-type benchmarks see the linear 1d beam and electrostatic beam benchmarks.
Origin
This benchmark is part of the SLICOT Benchmark Examples for Model Reduction[3].
Data
The system matrices , , are available from the SLICOT benchmarks page: beam.zip and are stored as MATLAB .mat file.
Here is Python code for loading the matrices ( is stored as a sparse matrix that is mostly full and is stored as an array of 8-bit unsigned integers):
import numpy as np from scipy.io import loadmat mat = loadmat('beam.mat') A = mat['A'].toarray() B = mat['B'] C = mat['C'].astype(np.float_)
The represents a second-order system
as
where .
Here is Python code for checking the structure and extracting the second-order matrices:
n = 348 n2 = n // 2 assert np.all(A[:n2, :n2] == 0) assert np.all(A[:n2, n2:] == A[0, n2] * np.eye(n2)) assert np.all(B[:n2] == 0) assert np.all(C[:, :n2] == 0) a = A[0, n2] Eso = -A[n2:, n2:] Kso = -a * A[n2:, :n2] Bso = a * B[n2:] Cso = C[:, :n2]
Dimensions
First differential order
System structure:
System dimensions:
, , .
Second differential order
System structure:
System dimensions:
, , .
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_beam,
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
- ↑ 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.
- ↑ 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.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.