Undamped Oscillator#
import numpy as np
import matplotlib.pyplot as plt
import uqtestfuns as uqtf
The undamped oscillator function (UndampedOscillator) is a six-dimensional,
scalar-valued test function that models a non-linear, undamped,
single-degree-of-freedom, forced oscillating mechanical system.
This function is frequently used as a test function for reliability analysis methods (see [RE93, SG05, EGL11, EGLR13, BB90, GBL03]). Additionally, in [LMS21], the function is employed as a test function for metamodeling exercises.
Test function instance#
To create a default instance of the test function:
my_testfun = uqtf.UndampedOscillator()
Check if it has been correctly instantiated:
print(my_testfun)
Function ID : UndampedOscillator
Input Dimension : 6 (fixed)
Output Dimension : 1
Parameterized : False
Description : Undamped, non-linear, single DOF oscillator
Applications : reliability, metamodeling
Description#
The system under consideration is a single-degree-of-freedom mechanical system that undergoes undamped forced oscillation. The performance function is analytically defined as follows[1]:
where \(z_{\text{max}}\) is the maximum displacement response of the system given by
and
\(\boldsymbol{x} = \{ m, c_1, c_2, r, F_1, t_1 \}\) is the six-dimensional vector of input variables probabilistically defined further below.
The failure state and the failure probability are defined as \(g(\boldsymbol{x}; \boldsymbol{p}) \leq 0\) and \(\mathbb{P}[g(\boldsymbol{X}; \boldsymbol{p}) \leq 0]\), respectively.
Probabilistic input#
The available probabilistic input models are shown in the table below. The different specifications alter the failure probability of the system (as expected).
No. |
Remark |
Keyword |
Source |
|---|---|---|---|
1. |
\(\mu_{F_1} = 1.00\) |
|
[GBL03] (Table 9) |
2. |
\(\mu_{F_1} = 0.60\) |
|
[EGLR13] (Table 4) |
3. |
\(\mu_{F_1} = 0.45\) |
|
[EGLR13] (Table 4) |
The default input is shown below.
Show code cell source
print(my_testfun.prob_input)
Function ID : UndampedOscillator
Input ID : Gayton2003
Input Dimension : 6
Description : Input model for the undamped non-linear oscillator from
Gayton et al. (2003) (Table 9)
Marginals :
No. Name Distribution Parameters Description
----- ------ -------------- ------------ --------------------------
1 m normal [1. 0.05] Mass
2 c1 normal [1. 0.1] Spring (1) constant
3 c2 normal [0.1 0.01] Spring (2) constant
4 r normal [0.5 0.05] Length of restoring force
5 F1 normal [1. 0.2] Pulse load
6 t1 normal [1. 0.2] Duration of the pulse load
Copulas : Independence
Reference results#
This section provides several reference results of typical UQ analyses involving the test function.
Sample histogram#
Shown below is the histogram of the output based on \(10^6\) random points:
Show code cell source
xx_test = my_testfun.prob_input.get_sample(1000000)
yy_test = my_testfun(xx_test)
idx_pos = yy_test > 0
idx_neg = yy_test <= 0
hist_pos = plt.hist(yy_test, bins="auto", color="#0571b0")
plt.hist(yy_test[idx_neg], bins=hist_pos[1], color="#ca0020")
plt.axvline(0, linewidth=1.0, color="#ca0020")
plt.grid()
plt.ylabel("Counts [-]")
plt.xlabel("$g(\mathbf{X})$")
plt.gcf().set_dpi(150);
Failure probability (\(P_f\))#
Some reference values for the failure probability \(P_f\) from the literature are summarized in the tables below according to the chosen input specification.
Method |
\(N\) |
\(\hat{P}_f\) |
\(\mathrm{CoV}[\hat{P}_f]\) |
Source |
|---|---|---|---|---|
\(1281\) |
\(3.5 \times 10^{-2}\) |
— |
[SG05] (Table 5) |
|
DS + Polynomial |
\(62\) |
\(3.4 \times 10^{-2}\) |
— |
[SG05] (Table 5) |
DS + Splines |
\(76\) |
\(3.4 \times 10^{-2}\) |
— |
[SG05] (Table 5) |
DS + Neural network (NN) |
\(86\) |
\(2.8 \times 10^{-2}\) |
— |
[SG05] (Table 5) |
\(6144\) |
\(2.7 \times 10^{-2}\) |
— |
[SG05] (Table 5) |
|
\(109\) |
\(2.5 \times 10^{-2}\) |
— |
[SG05] (Table 5) |
|
\(67\) |
\(2.7 \times 10^{-2}\) |
— |
[SG05] (Table 5) |
|
\(68\) |
\(3.1 \times 10^{-2}\) |
— |
[SG05] (Table 5) |
|
\(7 \times 10^{4}\) |
\(2.834 \times 10^{-2}\) |
\(2.2\%\) |
[EGL11] (Table 6) |
|
Adaptive Kriging + MCS + EFF |
\(58\) |
\(2.834 \times 10^{-2}\) |
— |
[EGL11] (Table 6) |
Adaptive Kriging + MCS + U |
\(45\) |
\(2.851 \times 10^{-2}\) |
— |
[EGL11] (Table 6) |
Method |
\(N\) |
\(\hat{P}_f\) |
\(\mathrm{CoV}[\hat{P}_f]\) |
Source |
|---|---|---|---|---|
\(1.8 \times 10^{8}\) |
\(9.09 \times 10^{-6}\) |
\(2.47\%\) |
[EGLR13] (Table 5) |
|
\(29\) |
\(9.76 \times 10^{-6}\) |
— |
[EGLR13] (Table 5) |
|
\(20 + \times 10^{4}\) |
\(9.13 \times 10^{-6}\) |
\(2.29\%\) |
[EGLR13] (Table 5) |
|
Adaptive Kriging + IS |
\(29 + 38\) |
\(9.13 \times 10^{-6}\) |
\(2.29\%\) |
[EGLR13] (Table 5) |
Method |
\(N\) |
\(\hat{P}_f\) |
\(\mathrm{CoV}[\hat{P}_f]\) |
Source |
|---|---|---|---|---|
\(9 \times 10^{8}\) |
\(1.55 \times 10^{-8}\) |
\(2.68\%\) |
[EGLR13] (Table 5) |
|
\(29\) |
\(1.56 \times 10^{-8}\) |
— |
[EGLR13] (Table 5) |
|
\(29 + \times 10^{4}\) |
\(1.53 \times 10^{-8}\) |
\(2.70\%\) |
[EGLR13] (Table 5) |
|
Adaptive Kriging + IS |
\(29 + 38\) |
\(1.54 \times 10^{-8}\) |
\(2.70\%\) |
[EGLR13] (Table 5) |
References#
Malur R. Rajashekhar and Bruce R. Ellingwood. A new look at the response surface approach for reliability analysis. Structural Safety, 12(3):205–220, 1993. doi:10.1016/0167-4730(93)90003-j.
Luc Schueremans and Dionys Van Gemert. Benefit of splines and neural networks in simulation based structural reliability analysis. Structural Safety, 27(3):246–261, 2005. doi:10.1016/j.strusafe.2004.11.001.
B. Echard, N. Gayton, and M. Lemaire. AK-MCS: an active learning reliability method combining kriging and Monte Carlo simulation. Structural Safety, 33(2):145–154, 2011. doi:10.1016/j.strusafe.2011.01.002.
B. Echard, N. Gayton, M. Lemaire, and N. Relun. A combined importance sampling and kriging reliability method for small failure probabilities with time-demanding numerical models. Reliability Engineering & System Safety, 111:232–240, 2013. doi:10.1016/j.ress.2012.10.008.
C. G. Bucher and U. Bourgund. A fast and efficient response surface approach for structural reliability problems. Structural Safety, 7(1):57–66, 1990. doi:10.1016/0167-4730(90)90012-e.
N. Gayton, J. M. Bourinet, and M. Lemaire. CQ2RS: a new statistical approach to the response surface method for reliability analysis. Structural Safety, 25(1):99–121, 2003. doi:10.1016/s0167-4730(02)00045-0.
Nora Lüthen, Stefano Marelli, and Bruno Sudret. Sparse polynomial chaos expansions: literature survey and benchmark. SIAM/ASA Journal on Uncertainty Quantification, 9(2):593–649, 2021. doi:10.1137/20m1315774.