File: use_case_viscous_fall.rst

package info (click to toggle)
openturns 1.26-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 67,708 kB
  • sloc: cpp: 261,605; python: 67,030; ansic: 4,378; javascript: 406; sh: 185; xml: 164; makefile: 101
file content (93 lines) | stat: -rw-r--r-- 2,505 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
.. _use-case-viscous-fall:

A viscous free fall example
===========================

Introduction
-------------

We consider an object inside a vertical cylinder which contains a viscous fluid.
The fluid generates a drag force which limits the speed of the solid and we assume that the force depends linearily on the object speed:

.. math::
   m \frac{dv}{dt} = - m g - c v

for any :math:`t \in [0, t_{max}]` where:

- :math:`v` is the speed :math:`[m/s]`,
- :math:`t` is the time :math:`[s]`,
- :math:`t_{max}` is the maximum time :math:`[s]`,
- :math:`g = 9.81` is the gravitational acceleration :math:`[m.s^{-2}]`,
- :math:`m` is the mass :math:`[kg]`,
- :math:`c` is the linear drag coefficient :math:`[kg.s^{-1}]`.

The exact solution of the previous differential equation is:

.. math::
   z(t) = z_0 + v_{inf} t + \tau (v_0 - v_{inf})\left(1 - e^{-\frac{t}{\tau}}\right)

for any :math:`t \in [0, t_{max}]`

where:

- :math:`z` is the altitude above the surface :math:`[m]`,
- :math:`z_0` is the initial altitude :math:`[m]`,
- :math:`v_0` is the initial speed (upward) :math:`[m.s^{-1}]`,
- :math:`v_{inf}` is the limit speed :math:`[m.s^{-1}]`:

.. math::
   v_{inf}=-\frac{m g}{c}

- :math:`\tau` is time caracteristic :math:`[s]`:

.. math::
   \tau=\frac{m}{c}.

The stationnary speed limit at infinite time is equal to :math:`v_{inf}`:

.. math::
   \lim_{t\rightarrow+\infty} v(t)= v_{inf}.

When there is no drag, i.e. when :math:`c=0`, the trajectory depends quadratically on :math:`t`:

.. math::
   z(t) = z_0 + v_0 t -g t^2

for any :math:`t \in [0, t_{max}]`.

Furthermore when the solid touches the ground, we ensure that the altitude remains nonnegative i.e. the final altitude is:

.. math::
   y(t) = \max(z(t),0)


for any :math:`t \in [0, t_{max}]`.

Probabilistic model
-------------------

The parameters :math:`z_0`, :math:`v_0`, :math:`m` and :math:`c` are probabilistic:

- :math:`z_0 \sim \mathcal{U}(100, 150)`,
- :math:`v_0 \sim \mathcal{N}(55, 10)`,
- :math:`m \sim \mathcal{N}(80, 8)`,
- :math:`c \sim \mathcal{U}(0, 30)`.

References
----------

* Steven C. Chapra. Applied numerical methods with Matlab for engineers and scientists, Third edition. 2012. Chapter 7, "Optimization", p.182.

API documentation
-----------------

.. currentmodule:: openturns.usecases.viscous_free_fall

.. autoclass:: ViscousFreeFall
    :noindex:

Examples based on this use case
-------------------------------

.. minigallery:: openturns.usecases.viscous_free_fall.ViscousFreeFall