(→Data) |
|||
| Line 68: | Line 68: | ||
<div class="thumbinner" style="width:540px;text-align:left;"> |
<div class="thumbinner" style="width:540px;text-align:left;"> |
||
| − | < |
+ | <syntaxhighlight lang="matlab"> |
function [E,A,B,C,f] = msd(N) |
function [E,A,B,C,f] = msd(N) |
||
| Line 83: | Line 83: | ||
f = @(x,kn) [z;-kn*( (H'*x(N+1:end)).^3 - (H*x(N+1:end)).^3)]; |
f = @(x,kn) [z;-kn*( (H'*x(N+1:end)).^3 - (H*x(N+1:end)).^3)]; |
||
end |
end |
||
| + | </syntaxhighlight> |
||
| − | </source> |
||
</div> |
</div> |
||
| − | |||
==Dimensions== |
==Dimensions== |
||
Latest revision as of 18:26, 23 January 2026
Note: This page has not been verified by our editors.
Description: Mass-Spring-Damper System
This benchmark is a generalization of the nonlinear mass-spring-damper system presented in [1], which is concerned with modeling the a mechanical systems consisting of chained masses, linear and nonlinear springs, and dampers. The underlying mathematical model is a second order system: \[ \begin{align} M \ddot{x}(t) + D \dot{x}(t) + K x(t) + f(x(t)) &= B u(t), \\ y(t) &= C x(t). \end{align} \]
First Order Representation
The second order system can be represented as a first order system as follows:
\[ \begin{align} \begin{pmatrix} 1 & 0 \\ 0 & M \end{pmatrix} \begin{pmatrix} \dot{p} \\ \dot{v} \end{pmatrix} &= \begin{pmatrix} 0 & 1 \\ K & D \end{pmatrix} \begin{pmatrix} p \\ v \end{pmatrix} + \begin{pmatrix} 0 \\ f_p(p) \end{pmatrix} + \begin{pmatrix} 0 \\ B_v \end{pmatrix} \\ y &= \begin{pmatrix} C_p & 0 \end{pmatrix} \begin{pmatrix} p \\ v \end{pmatrix} \end{align} \]
with the components:
\[ M = m \begin{pmatrix} 1 \\ & \ddots \end{pmatrix}, \quad K_0 = k_l \begin{pmatrix} -2 & 1 \\ 1 & -2 & \ddots \\ & \ddots & \ddots \end{pmatrix}, \quad D = d \begin{pmatrix} -2 & 1 \\ 1 & -2 & \ddots \\ & \ddots & \ddots \end{pmatrix}, \quad B_v = \begin{pmatrix} 0 \\ \vdots \\ 0 \\ 1 \end{pmatrix}, \quad C_p = \begin{pmatrix} 0 & \dots & 0 & 1 \end{pmatrix}, \]
and the nonlinear term:
\[ f_p(p) = -k_n \Big( \begin{pmatrix} 1 & -1 \\ & \ddots & \ddots \end{pmatrix} p \Big)^3 -k_n \Big( \begin{pmatrix} 1 \\ -1 & \ddots \\ & \ddots \end{pmatrix} p \Big)^3 \]
and thus yielding the classic first order components:
\[ E = \begin{pmatrix} 1 & 0 \\ 0 & M \end{pmatrix}, \quad A = \begin{pmatrix} 0 & 1 \\ K & D \end{pmatrix}, \quad B = \begin{pmatrix} 0 \\ B_v \end{pmatrix}, \quad C = \begin{pmatrix} C_p & 0 \end{pmatrix}. \]
The parameters for the mass \(m\), linear spring constant \(k_l\), nonlinear spring constant \(k_n\), and damping \(d\) are chosen in [1] as \(m=1\), \(k_l=1\), \(k_n=2\), and \(d=1\).
Data
The following Matlab code assembles the above described \(E\), \(A\), \(B\) and \(C\) parameter dependent matrices and the function \(f\) for a given number of subsystems \(N\).
function [E,A,B,C,f] = msd(N)
U = speye(N); % Sparse unit matrix
T = gallery('tridiag',N,-1,2,-1); % Sparse tridiagonal matrix
H = gallery('tridiag',N,-1,1,0); % Sparse transport matrix
Z = sparse(N,N); % Sparse all zero matrix
z = sparse(N,1); % Sparse all zero vector
E = @(m) [U,Z;Z,m*U]; % Handle to parametric E matrix
A = @(kl,d) [Z,U;kl*T,d*T]; % Handle to parametric A matrix
B = sparse(2*N,1,1,2*N,1);
C = sparse(N,1,1,2*N,1);
f = @(x,kn) [z;-kn*( (H'*x(N+1:end)).^3 - (H*x(N+1:end)).^3)];
end
Dimensions
System structure:
\[ \begin{array}{rcl} E(m) \dot{x}(t) &=& A(k_l,d)x(t) + f(x(t);k_n) + Bu(t) \\ y(t) &=& Cx(t) \end{array} \]
System dimensions\[E \in \mathbb{R}^{2N \times 2N}\], \(A \in \mathbb{R}^{2N \times 2N}\), \(B \in \mathbb{R}^{2N \times 1}\), \(C \in \mathbb{R}^{1 \times 2N}\).
Citation
To cite this benchmark, use the following references:
- For the benchmark itself and its data:
- The MORwiki Community, Mass-Spring-Damper System. MORwiki - Model Order Reduction Wiki, 2018. http://modelreduction.org/index.php/Mass-Spring-Damper
@MISC{morwiki_msd,
author = {{The MORwiki Community}},
title = {Mass-Spring-Damper System},
howpublished = {hosted at {MORwiki} -- Model Order Reduction Wiki},
url = {https://modelreduction.org/morwiki/Mass-Spring-Damper},
year = 2018
}
- For the background on the benchmark:
@INPROCEEDINGS{morKawS15,
title = {Model Reduction by Generalized Differential Balancing},
author = {Y. Kawano and J.M.A. Scherpen},
booktitle = {Mathematical Control Theory I: Nonlinear and Hybrid Control Systems},
series = {Lecture Notes in Control and Information Sciences},
volume = {461},
pages = {349--362},
year = {2015},
doi = {10.1007/978-3-319-20988-3}
}
References
- ↑ 1.0 1.1 Y. Kawano and J.M.A. Scherpen, Model Reduction by Generalized Differential Balancing, In: Mathematical Control Theory I: Nonlinear and Hybrid Control Systems, Lecture Notes in Control and Information Sciences 461: 349--362, 2015.