digital-brain/content/zettels/mass_spring_damper_systems.md

178 lines
6.8 KiB
Markdown
Raw Normal View History

2020-10-25 08:50:31 +01:00
+++
title = "Mass Spring Damper Systems"
draft = false
+++
Tags
:
2020-10-26 16:00:34 +01:00
2023-01-24 13:28:46 +01:00
## One Degree of Freedom {#one-degree-of-freedom}
### Model and equation of motion {#model-and-equation-of-motion}
2020-10-26 16:00:34 +01:00
2022-03-15 16:40:48 +01:00
Let's consider Figure [1](#figure--fig:mass-spring-damper-system) where:
2020-10-26 16:00:34 +01:00
- \\(m\\) is the mass in [kg]
2023-01-10 15:23:00 +01:00
- \\(k\\) is the spring stiffness in [N/m]
2020-10-26 16:00:34 +01:00
- \\(c\\) is the damping coefficient in [N/(m/s)]
- \\(F\\) is the actuator force in [N]
- \\(F\_d\\) is external force applied to the mass in [N]
- \\(w\\) is ground motion
- \\(x\\) is the absolute mass motion
2022-03-15 16:40:48 +01:00
<a id="figure--fig:mass-spring-damper-system"></a>
2020-10-26 16:00:34 +01:00
2022-03-15 16:40:48 +01:00
{{< figure src="/ox-hugo/mass_spring_damper_system.png" caption="<span class=\"figure-number\">Figure 1: </span>Mass Spring Damper System" >}}
2020-10-26 16:00:34 +01:00
2023-01-24 13:28:46 +01:00
Transmissibility:
2020-10-26 16:00:34 +01:00
\begin{equation}
2023-01-24 13:28:46 +01:00
\frac{x}{w}(s) = \frac{c s + k}{m s^2 + c s + k} = \frac{2 \xi \frac{s}{\omega\_0} + 1}{\frac{s^2}{\omega\_0^2} + 2 \xi \frac{s}{\omega\_0} + 1}
2020-10-26 16:00:34 +01:00
\end{equation}
2023-01-24 13:28:46 +01:00
Compliance:
2020-10-26 16:00:34 +01:00
\begin{equation}
2023-01-24 13:28:46 +01:00
\frac{x}{F}(s) = \frac{x}{F\_d}(s) = \frac{1}{m s^2 + c s + k} = \frac{1/k}{\frac{s^2}{\omega\_0^2} + 2 \xi \frac{s}{\omega\_0} + 1}
2020-10-26 16:00:34 +01:00
\end{equation}
with:
2023-01-24 13:28:46 +01:00
- \\(\omega\_0 = \sqrt{k/m}\\) the natural frequency in [rad/s]
- \\(\xi = \frac{1}{2} \frac{c}{\sqrt{km}}\\) the damping ratio [unit-less]
2020-10-26 16:00:34 +01:00
2023-01-10 15:23:00 +01:00
2023-01-24 13:28:46 +01:00
### Matlab model {#matlab-model}
2023-01-10 15:23:00 +01:00
```matlab
%% Mechanical properties
m = 1; % Mobile mass [kg]
k = 1e6; % stiffness [N/m]
2023-01-24 13:28:46 +01:00
xi = 0.1; % Modal Damping
2023-01-10 15:23:00 +01:00
c = 2*xi*sqrt(k*m);
```
```matlab
2023-01-24 13:28:46 +01:00
%% Compliance: Transfer function from F [N] to x [m]
Gf = 1/(m*s^2 + c*s + k);
%% Transmissibility: Transfer function from w [m] to x [m]
Gw = (c*s + k)/(m*s^2 + c*s + k);
2023-01-10 15:23:00 +01:00
```
2023-01-24 13:28:46 +01:00
<a id="figure--fig:mass-spring-damper-1dof-compliance"></a>
{{< figure src="/ox-hugo/mass_spring_damper_1dof_compliance.png" caption="<span class=\"figure-number\">Figure 2: </span>1dof Mass spring damper system - Compliance" >}}
<a id="figure--fig:mass-spring-damper-1dof-transmissibility"></a>
{{< figure src="/ox-hugo/mass_spring_damper_1dof_transmissibility.png" caption="<span class=\"figure-number\">Figure 1: </span>1dof Mass spring damper system - Transmissibility" >}}
## Two Degrees of Freedom {#two-degrees-of-freedom}
2023-01-10 15:23:00 +01:00
2023-01-24 13:28:46 +01:00
### Model and equation of motion {#model-and-equation-of-motion}
Consider the two degrees of freedom mass spring damper system of Figure [1](#figure--fig:mass-spring-damper-2dof).
<a id="figure--fig:mass-spring-damper-2dof"></a>
{{< figure src="/ox-hugo/mass_spring_damper_2dof.png" caption="<span class=\"figure-number\">Figure 1: </span>2 DoF Mass Spring Damper system" >}}
We can write the Newton's second law of motion to the two masses:
\begin{align}
m\_2 s^2 x\_2 &= F\_2 + (k\_2 + c\_2 s) (x\_1 - x\_2) \\\\
m\_1 s^2 x\_1 &= F\_1 + (k\_1 + c\_1 s) (x\_0 - x\_1) + (k\_2 + c\_2 s) (x\_2 - x\_1)
\end{align}
The goal is to have \\(x\_1\\) and \\(x\_2\\) as a function of \\(F\_1\\), \\(F\_2\\) and \\(x\_0\\).
When, we have:
\begin{equation}
\boxed{x\_1 = \frac{(m\_2 s^2 + c\_2 s + k\_2) F\_1 + (k\_1 + c\_1 s) (m\_2 s^2 + c\_2 s + k\_2) x\_0 + (k\_2 + c\_2 s) F\_2}{(m\_1 s^2 + c\_1 s + k\_1)(m\_2 s^2 + c\_2 s + k\_2) + m\_2 s^2 (c\_2 s + k\_2)}}
\end{equation}
2020-10-26 16:00:34 +01:00
\begin{equation}
2023-01-24 13:28:46 +01:00
\boxed{x\_2 = \frac{(c\_2s + k\_2)F\_1 + (c\_2s + k\_2)(k\_1 + c\_1 s) x\_0 + (m\_1 s^2 + c\_1 s + k\_1 + c\_2 s + k\_2) F\_2}{(m\_1 s^2 + c\_1 s + k\_1)(m\_2 s^2 + c\_2 s + k\_2) + m\_2 s^2 (c\_2 s + k\_2)}}
2020-10-26 16:00:34 +01:00
\end{equation}
2023-01-24 13:28:46 +01:00
We can see that the effects of \\(x\_0\\) and \\(F\_1\\) are related with a factor \\((c\_1 s + k\_1)\\).
2020-10-26 16:00:34 +01:00
2023-01-24 13:28:46 +01:00
If we are interested by \\(x\_2-x\_1\\):
2020-10-26 16:00:34 +01:00
\begin{equation}
2023-01-24 13:28:46 +01:00
(x\_2 - x1) = \frac{- m\_2 s^2 F\_1 - (m\_2 s^2)(k\_1 + c\_1 s) x\_0 + (m\_1 s^2 + c\_1 s + k\_1) F\_2}{(m\_1 s^2 + c\_1 s + k\_1)(m\_2 s^2 + c\_2 s + k\_2) + m\_2 s^2 (c\_2 s + k\_2)}
2020-10-26 16:00:34 +01:00
\end{equation}
2022-03-15 16:40:48 +01:00
2023-01-24 13:28:46 +01:00
| | x1 | x2 | x2-x1 |
|----|-----------------------------|----------------------------|--------------------|
| x0 | (c1s + k1)(m2s2 + c2s + k2) | (c1s + k1)(c2s + k2) | - m2s2\*(k1 + c1s) |
| F1 | m2s2 + c2s + k2 | c2s + k2 | - m2s2 |
| F2 | c2s + k2 | m1s2 + c1s + k1 + c2s + k2 | m1s2 + c1s + k1 |
### Matlab model {#matlab-model}
```matlab
%% Values for the 2dof Mass-Spring-Damper system
m1 = 5e2; % [kg]
k1 = 2e6; % [N/m]
c1 = 2*0.01*sqrt(m1*k1); % [N/(m/s)]
m2 = 10; % [kg]
k2 = 1e6; % [N/m]
c2 = 2*0.01*sqrt(m2*k2); % [N/(m/s)]
```
```matlab
%% Transfer functions
G_x0_to_x1 = (c1*s + k1)*(m2*s^2 + c2*s + k2)/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
G_F1_to_x1 = (m2*s^2 + c2*s + k2)/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
G_F2_to_x1 = (c2*s + k2)/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
G_x0_to_x2 = (c1*s + k1)*(c2*s + k2)/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
G_F1_to_x2 = (c2*s + k2)/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
G_F2_to_x2 = (m1*s^2 + c1*s + k1 + c2*s + k2)/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
G_x0_to_d2 = -m2*s^2*(c1*s + k1)/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
G_F1_to_d2 = -m2*s^2/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
G_F2_to_d2 = (m1*s^2 + c1*s + k1)/((m1*s^2 + c1*s + k1)*(m2*s^2 + c2*s + k2) + m2*s^2*(c2*s + k2));
```
From Figure [1](#figure--fig:mass-spring-damper-2dof-x0-bode-plots), we can see that:
- the low frequency transmissibility is equal to one
- the high frequency transmissibility to the second mass is smaller than to the first mass
<a id="figure--fig:mass-spring-damper-2dof-x0-bode-plots"></a>
{{< figure src="/ox-hugo/mass_spring_damper_2dof_x0_bode_plots.png" caption="<span class=\"figure-number\">Figure 1: </span>Transfer functions from x0 to x1 and x2 (Transmissibility)" >}}
The transfer function from \\(F\_1\\) to the mass displacements (Figure [1](#figure--fig:mass-spring-damper-2dof-F1-bode-plots)) has the same shape than the transmissibility (Figure [1](#figure--fig:mass-spring-damper-2dof-x0-bode-plots)).
However, the low frequency gain is now equal to \\(1/k\_1\\).
<a id="figure--fig:mass-spring-damper-2dof-F1-bode-plots"></a>
{{< figure src="/ox-hugo/mass_spring_damper_2dof_F1_bode_plots.png" caption="<span class=\"figure-number\">Figure 1: </span>Transfer functions from F1 to x1 and x2" >}}
The transfer functions from \\(F\_2\\) to the mass displacements are shown in Figure [1](#figure--fig:mass-spring-damper-2dof-F2-bode-plots):
- the motion \\(x\_1\\) is smaller than \\(x\_2\\)
<a id="figure--fig:mass-spring-damper-2dof-F2-bode-plots"></a>
{{< figure src="/ox-hugo/mass_spring_damper_2dof_F2_bode_plots.png" caption="<span class=\"figure-number\">Figure 1: </span>Transfer functions from F2 to x1 and x2" >}}
2022-03-15 16:40:48 +01:00
## Bibliography {#bibliography}
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
</div>