1 Introduction

In the past few decades, lots of effort have been put into the field of identification of nonlinear MDOF systems. Although various kinds of methods have been proposed, there is still no applicable one which could be utilized to model general structures with arbitrary number and type of nonlinearities. Several common techniques include restoring force surface method [15], Hilbert transform [68], NARMAX models [911], Volterra series [1216], proper orthogonal decomposition [1721], nonlinear identification through feedback of the output [22], nonlinear resonant decay method [23], subspace-based method [2426] and so on [27, 28]. More information about the common methods can be achieved in [29].

One of these developed methods for identifying MDOF nonlinear systems is the RP approach which was firstly introduced by Bendat [30, 31] as a spectral method to identify single-degree-of-freedom (SDOF) systems. Then the method was applied to MDOF systems by Rice and Fitzpatrick [32]. The RP method reverses the input–output path of the given system to formulate equations in frequency domain and divides the whole system into the underlying linear part and several internal nonlinear forces. A possible drawback is that the excitation must be applied on the locations of the nonlinearities to achieve the coefficients, which is hard to implement especially when the locations of the nonlinearities are unknown beforehand. To overcome the disadvantage of RP method, conditioned reverse path (CRP) method was put forward by Richards and Singh [33] and the key idea of the method is to separate the nonlinear part and the linear part of input and output of the system by spectral conditioning techniques to construct the uncorrelated response components in the frequency domain. However, although CRP method only needs a single excitation point, the formulation of the problem is complex and increases computational complexity. Muhamad et al. [34] proposed orthogonalized reverse path method (ORP) which provides a simpler formulation for the problem of characterizing the underlying linear system by removing the effects of nonlinearities in the time domain. Another method modifying the RP method proposed by Magnevall et al. [35] only needs a single broadband excitation. The method generally applies the RP approach with the assumption that the locations of the nonlinearities are known beforehand and the response measurements could be achieved at the nonlinear locations.

When applying RP, CRP and most of the other methods to identify parameters of the nonlinearities in MDOF structures, the locations and the types of the nonlinearities are usually needed to be determined firstly as the structure identification, which is beneficial to make the mathematical modeling and the parameter estimation more efficient and robust. Therefore, different nondestructive and low-cost techniques based on analysis of vibration signals have been developed to locate the nonlinearities. For example, Lin [36, 37] and Ewins [36] proposed a method to locate the nonlinearities by correlating analytical model with measured vibration test data; Al-Hadid and Wright [38] developed procedures based on the well-known time-domain restoring force surface (RFS) method; Trendafilova et al. [39] discussed procedures using pattern recognition tools for the localization of nonlinearities in structures. This technique was built on the comparison between the signals from the linear structure and the signals from the corresponding nonlinear one; Peng et al. [4042] studied the distribution of nonlinear effects in the one-dimensional chain type structures, which can be utilized to determine the location of the nonlinearity; Lang et al. [43] extended the transmissibility to nonlinear cases by introducing NOFRFs to propose a method to locate the nonlinear damage in MDOF engineering structures. Josefsson et al. [44] proposed a method based on the RP methodology and the coherence functions to find the most possible position where the nonlinearity is located. Most of the identification techniques listed above require some priori information such as the underlying linear system or require that measurements should be carried out more than once to achieve data under different excitation levels.

The method proposed in the present study is a forward selection approach based on RP method. It is able to determine the nonlinearities in the structure one by one from all the various kinds of possible nonlinearities in a forward selection way. Moreover, the method only needs a single broadband excitation point and no prior information about the underlying linear system is needed. Since it is a forward selection method, it is able to decrease the computational cost compared with an iterate brute-force approach when there exist several nonlinearities in one structure and the number of possible nonlinearities to be verified is large. A possible drawback is that in order to calculate the internal nonlinear forces the response measurements at all the possible nonlinear nodes are needed. Another limitation is that the nonlinearities should be strong enough to be indicated in the response measurements which are polluted by noise. In Sect. 2, the method will be described in detail when it is applied to identify the locations of nonlinearities in structure. In Sect. 3, illustrative numerical examples are given and results are shown to demonstrate the feasibility of the forward selection method.

2 Forward selection RP method

The forward selection RP method discussed in the present study is able to be applied to structures with several local nonlinearities as shown in Fig. 1. Similar to the traditional linear frequency response function technique, the method assumes that the structure is excited at degree-of-freedom (DOF) p by a broadband excitation \(f_{in(p)}\) which is large enough to excite the nonlinearities in the structure. All the displacements at N nodes, which are \(x_{1}, x_{2},{\ldots }, x_{N}\) as shown in Fig. 1, should be achieved. The mathematical representation of the structure should be able to be simplified as an underlying linear system with internal nonlinear forces. The internal nonlinear force between node i and node j is denoted as \(f_{ij}\) as shown in Fig. 1. The goal of the method is to identify the nodes which are affected directly by the internal nonlinear forces one by one using only one single set of displacement measurements.

Fig. 1
figure 1

Illustration of the structure considered in the present study: a broadband excitation at node \(x_{p}\) and responses at N nodes are needed to be measured

2.1 A RP algorithm

The RP method was firstly proposed by Bendat [30, 31] and then developed by Rice and Fitzpatric [32], Richards and Singh [33], Muhamad et al. [34] and Magnevall et al. [35]. The forward selection formulation of the RP method in this paper is described in the following part.

The key idea of the RP methodology is to separate a MDOF nonlinear system into an underlying linear part and several nonlinear internal forces. Thus, the situation shown in Fig. 1 where a nonlinear structure is excited by an excitation \(f_{in(p) }\)could be treated equally as the situation where the underlying linear structure is excited by the excitation \(f_{in(p)}\) and several nonlinear internal forces \(f_{ij}\). This change of perspective not only makes the traditional linear frequency response function technique usable in this situation, but also enables the RP approach to be applied to a continuous structure. Starting from the representation of MDOF frequency response function, denoted as \(\mathbf{H}(\omega )\), of the underlying linear system, the governing equation of the nonlinear system can be written as

$$\begin{aligned}&{{\mathbf {X}}}(\omega )\nonumber \\&\quad =\mathbf{H}(\omega )\left( {{{\mathbf {F}}}_{in(p)} \left( \omega \right) -\sum _{i_1 } {{{\mathbf {F}}}_{1i_1 } (\omega )} -\cdots -\sum _{i_N } {{{\mathbf {F}}}_{Ni_N } \left( \omega \right) }} \right) \nonumber \\ \end{aligned}$$
(1)

where \({{\mathbf {X}}}\left( \omega \right) =\left[ {{\begin{array}{llll} {x_1 \left( \omega \right) }&{} {x_2 \left( \omega \right) }&{} \cdots &{} {x_N \left( \omega \right) } \\ \end{array} }} \right] ^{T}\), \({{\mathbf {F}}}_{ji_j } \left( \omega \right) =[\underbrace{{\begin{array}{llll} 0&{} \cdots &{} 0 \\ \end{array} }}_{j-1}f_{ji_j } \left( \omega \right) \underbrace{{\begin{array}{llll} 0&{} \cdots &{} 0 \\ \end{array} }}_{N-j}]^{T}\) and \({{\mathbf {F}}}_{in\left( p \right) } \left( \omega \right) =[\underbrace{{\begin{array}{llll} 0&{} \cdots &{} 0 \\ \end{array} }}_{p-1}f_{in\left( p \right) } \left( \omega \right) \underbrace{{\begin{array}{llll} 0&{} \cdots &{} 0 \\ \end{array} }}_{N-p}]^{T}\) are the Fourier transforms of the displacement response vector \({{\mathbf {x}}}\left( t \right) =\left[ {{\begin{array}{llll} {x_1 \left( t \right) }&{} {x_2 \left( t \right) }&{} \cdots &{} {x_N \left( t \right) } \\ \end{array} }} \right] ^{T}\), the internal nonlinear force vector \({{\mathbf {f}}}_{ji_j } \left( t \right) =[\underbrace{{\begin{array}{llll} 0&{} \cdots &{} 0 \\ \end{array} }}_{j-1}f_{ji_j } \left( t \right) \underbrace{{\begin{array}{llll} 0&{} \cdots &{} 0 \\ \end{array} }}_{N-j}]^{T}\) and the external excitation \({{\mathbf {f}}}_{in\left( p \right) } \left( t \right) =[\underbrace{{\begin{array}{llll} 0&{} \cdots &{} 0 \\ \end{array} }}_{p-1}f_{in\left( p \right) } \underbrace{{\begin{array}{llll} 0&{} \cdots &{} 0 \\ \end{array} }}_{N-p}]^{T}\), respectively. The subscript \(ji_j \) of \({{\mathbf {F}}}_{ji_j } \left( \omega \right) \) and \({{\mathbf {f}}}_{ji_j } \left( t \right) \) means the internal nonlinear force which acts between node j and node \(i_j \).

Expanding Eq. (1), Eq. (1) can be rewritten as

$$\begin{aligned}&\left[ {{\begin{array}{l} {H_{1p} \left( \omega \right) } \\ {H_{2p} \left( \omega \right) } \\ \vdots \\ {H_{Np} \left( \omega \right) } \\ \end{array} }} \right] f_{in(p)} \left( \omega \right) -\left[ {{\begin{array}{l} {H_{11} \left( \omega \right) } \\ {H_{21} \left( \omega \right) } \\ \vdots \\ {H_{N1} \left( \omega \right) } \\ \end{array} }} \right] \sum _{i_1 } {f_{1i_1 } \left( \omega \right) } -\cdots \nonumber \\&-\left[ {{\begin{array}{l} {H_{1N} \left( \omega \right) } \\ {H_{2N} \left( \omega \right) } \\ \vdots \\ {H_{NN} \left( \omega \right) } \\ \end{array} }} \right] \sum _{i_N } {f_{Ni_N } \left( \omega \right) } =\left[ {{\begin{array}{l} {X_1 \left( \omega \right) } \\ {X_2 \left( \omega \right) } \\ \vdots \\ {X_N \left( \omega \right) } \\ \end{array} }} \right] \end{aligned}$$
(2)

For an N-degree-of-freedom system, there are N rows in Eq. (2). Each row m can be rewritten individually as

$$\begin{aligned}&H_{mp} \left( \omega \right) f_{in(p)} \left( \omega \right) -H_{m1} \left( \omega \right) \sum _{i_1 } {f_{1i_1 } \left( \omega \right) } -\cdots \nonumber \\&-H_{mN} \left( \omega \right) \sum _{i_N } {f_{Ni_N } \left( \omega \right) } =X_m \left( \omega \right) \end{aligned}$$
(3)

Assuming that every internal nonlinear force can be represented by

$$\begin{aligned} f_{ni_n } \left( \omega \right)= & {} \hbox {NonlinearFun}(k_{ni_n } ,x_n ,x_{i_n } )\nonumber \\= & {} k_{ni_n } Z_{ni_n } (x_n ,x_{i_n } ) \end{aligned}$$
(4)

where \(x_{i_n } \) is the displacement of node \(i_n \) that is affected directly by \(f_{ni_n } \left( \omega \right) \), \(k_{ni_n } \) is the coefficient of the nonlinear internal force and \(Z_{ni_n } (x_n ,x_{i_n } )\) represents the mathematical form of the nonlinearity. Multiplying Eq. (3) by \(H_{mp} ^{-1}\left( \omega \right) \) and then substituting Eq. (4) into Eq. (3) yield

$$\begin{aligned} f_{in(p)} \left( \omega \right)= & {} H_{mp} ^{-1}\left( \omega \right) \sum _{i_{1}} {H_{m1} \left( \omega \right) k_{1i_1 } Z_{1i_1 } (x_{1} ,{x_{i}}_{1} )} + \cdots \nonumber \\&+H_{mp} ^{-1}\left( \omega \right) \sum _{i_N } {H_{mN} \left( \omega \right) k_{Ni_N } Z_{Ni_N } (x_N ,x_{i_N } )}\nonumber \\&+H_{mp} ^{-1}\left( \omega \right) X_m \left( \omega \right) \end{aligned}$$
(5)

Noting that \(f_{ni_n } \left( \omega \right) =k_{ni_n } Z_{ni_n } (x_n ,x_{i_n } )\) not only acts on node n, but also acts on node \(i_n \), which means that there may be two terms in Eq. (5) corresponding to the single nonlinearity represented by \(Z_{ni_n } (x_n ,x_{i_n } )\). Combining these identical terms and rewriting in matrix form yield

$$\begin{aligned}&f_{in(p)} \left( \omega \right) =\nonumber \\&\quad \left[ {{\begin{array}{llll} {H_{mp} ^{-1}\left( \omega \right) }&{} {H_{mp} ^{-1}\left( \omega \right) hk_1 \left( \omega \right) }&{} \cdots &{} {H_{mp} ^{-1}\left( \omega \right) hk_t \left( \omega \right) } \\ \end{array} }} \right] \nonumber \\&\quad \cdot \left[ {{\begin{array}{llll} {X_m \left( \omega \right) }&{} {S_1 \left( \omega \right) }&{} \cdots &{} {S_t \left( \omega \right) } \\ \end{array} }} \right] ^{T} \end{aligned}$$
(6)

where

$$\begin{aligned} \left\{ {\begin{array}{l} S_i \left( \omega \right) =Z_{ab} \left( {x_a ,x_b } \right) =Z_{ba} \left( {x_b ,x_a } \right) \\ hk_i (\omega )=H_{ma} \left( \omega \right) k_{ab} +H_{mb} (\omega )k_{ba} \\ =\left( {H_{ma} (\omega )-H_{mb} \left( \omega \right) } \right) k_{ab}~ \left( {1\le i\le t,}\right. \\ \quad \left. {0\le a\ne b\le N} \right) \\ \end{array}} \right. \end{aligned}$$
(7)

For simplicity, Eq. (6) can be rewritten as

$$\begin{aligned} F={{\mathbf {BX}}} \end{aligned}$$
(8)

where \(F=f_{in(p)} \left( \omega \right) \), \(X=\big [ X_m \left( \omega \right) S_1 \left( \omega \right) \cdots S_t \left( \omega \right) \big ]^{T}\) and \({{\mathbf {B}}}=big[ H_{mp} ^{-1}\left( \omega \right) H_{mp} ^{-1} \left( \omega \right) hk_1 \left( \omega \right) \cdots H_{mp} ^{-1}\left( \omega \right) hk_t \left( \omega \right) \big ]\). Eq. (8) describes a multiple-input-single-output (MISO) system as shown in Fig. 2. The vector \({{\mathbf {B}}}\) contains information of underlying linear system and the coefficients of internal nonlinear forces. The vector \({{\mathbf {X}}}\) includes the information of the types of nonlinearities and is treated as input despite that it is composed of response measurements of the structure. Similarly, \(F=f_{in(p)} \left( \omega \right) \), which is in fact the Fourier transform of the excitation, is treated as output.

Fig. 2
figure 2

The derived RP model: system’s responses compose input vector \({{\mathbf {X}}}\) and system’s excitation composes output F

Since Eq. (8) describes a linear model, classical H\(_{1}\) estimator [45] can be used to calculate vector \({{\mathbf {B}}}\) as

$$\begin{aligned} {{\mathbf {B}}}={{\mathbf {G}}}_{F{{\mathbf {X}}}} \mathbf{G}_{{{\mathbf {XX}}}}^{-1} \end{aligned}$$
(9)

and

$$\begin{aligned} \left\{ {\begin{array}{l} {{\mathbf {G}}}_{F{{\mathbf {X}}}} =E\left( {F{{\mathbf {X}}}^{H}} \right) \\ \mathbf{G}_{{{\mathbf {XX}}}} =E\left( {{{\mathbf {XX}}}^{H}} \right) \\ \end{array}} \right. \end{aligned}$$
(10)

where \({{\mathbf {G}}}_{FX} \) and \(\mathbf{G}_{XX} \) represent cross-spectral row-vector between F and X and auto-spectral matrix of X, respectively. \(X^{H}\) is the conjugate transpose of X and \(E\left( {\cdot } \right) \) is the expectation operator. Once \({{\mathbf {B}}}\) is calculated, relative information about the underlying linear system and the coefficients of internal nonlinear forces are achieved.

Considering that the RP model described by Eq. (8) is a MISO system, it is straightforward to apply multiple coherence function to evaluate the linear dependence between the single output and all the inputs [44]. The physical meaning of the multiple coherence function is the proportion of the output power caused by the known inputs to the total actual output power, which can be calculated as

$$\begin{aligned} \gamma ^{2}= & {} \frac{E\left( {{{\mathbf {BX}}}\left( {{{\mathbf {BX}}}} \right) ^{H}} \right) }{{G}_{FF} }=\frac{E\left( {{{\mathbf {G}}}_{F{{\mathbf {X}}}} \mathbf{G}_{{{\mathbf {XX}}}}^{-1} {{\mathbf {XX}}}^{H}\left( {{{\mathbf {G}}}_{F{{\mathbf {X}}}} \mathbf{G}_{{{\mathbf {XX}}}}^{-1} } \right) ^{H}} \right) }{{{G}}_{FF} } \nonumber \\= & {} \frac{{G}_{F{{\mathbf {X}}}} \mathbf{G}_{{{\mathbf {XX}}}}^{-1} E\left( {{{\mathbf {XX}}}^{H}} \right) \left( {{{\mathbf {G}}}_{F{{\mathbf {X}}}} \mathbf{G}_{{{\mathbf {XX}}}}^{-1} } \right) ^{H}}{G_{FF} } \nonumber \\= & {} \frac{{{\mathbf {G}}}_{F{{\mathbf {X}}}} \mathbf{G}_{{{\mathbf {XX}}}}^{-1} {{\mathbf {G}}}_{{{\mathbf {XX}}}} \mathbf{G}_{{{\mathbf {XX}}}}^{-1} {{\mathbf {G}}}_{F{{\mathbf {X}}}}^H }{{{G}}_{FF} }=\frac{{{\mathbf {G}}}_{F{{\mathbf {X}}}} \mathbf{G}_{{{\mathbf {XX}}}}^{-1} {{\mathbf {G}}}_{F{{\mathbf {X}}}}^H }{{{G}}_{FF}} \end{aligned}$$
(11)

The value of the multiple coherence function is between 0 and 1, which indicates how much the output F is caused by \({{\mathbf {X}}}\). In the present study, the value is used as a criteria to judge the correctness of the chosen nonlinear terms in \({{\mathbf {X}}}\). It is simple to find that \(\gamma ^{2}\) is a scalar value depending on the frequency, and thus, a more eligible formula is as

$$\begin{aligned} \gamma ^{2}=\frac{1}{{{n}}_\omega }\sum _\omega {\frac{{{\mathbf {G}}}_{F{{\mathbf {X}}}} \mathbf{G}_{{{\mathbf {XX}}}}^{-1} {{\mathbf {G}}}_{F{{\mathbf {X}}}}^H }{{{G}}_{FF} }} \end{aligned}$$
(12)

which is the average of all \(\gamma ^{2}\)s calculated in \(n_\omega \) different chosen frequencies. Another point which is needed to be noticed is that as Eq. (9) uses H\(_{1}\) estimator which deals with output noise uncorrelated with input very well, Eq. (11) is thus especially reliable when only the excitation \(f_{in(p)} \) is disturbed by noise.

2.2 Forward selection formulation

It is usually an indispensable part to determine the locations and types of nonlinearities in a system before the step of parameter estimation for the reason that these prior information is able to make the subsequent parameter estimation more robust, efficient and accurate. One simple implementation is the brute-force approach which verifies every possibility and then finds the most feasible one as the result. However, this method may induce lots of computational burden when there are multiple possible nonlinearities to be verified. Another possible approach to reduce the computational work is to implement a forward selection method which is put forward in the present study. The method uses the criteria described in Eq. (12) to judge the rationality of the chosen nonlinear terms one by one, in a forward selection way.

In Eq. (8), \({{\mathbf {X}}}=\left[ {{\begin{array}{llll} {X_m \left( \omega \right) }&{} {S_1 \left( \omega \right) }&{} \cdots &{} {S_t \left( \omega \right) } \\ \end{array} }} \right] ^{T}\) includes various kinds of nonlinearities. The basic principle of the forward selection approach is to choose \(S_i \left( \omega \right) \) one by one based on their values of the multiple coherence function. The selection is terminated when the criterion in Eq. (12) reached the preset threshold value.

To better describe the method, auxiliary vectors are defined as

$$\begin{aligned} {{\mathbf {P}}}_1 ={{\mathbf {X}}}_m ,{{\mathbf {P}}}_2 =\left[ {{\begin{array}{l} {{{\mathbf {X}}}_m } \\ {z_1 } \\ \end{array} }} \right] =\left[ {{\begin{array}{l} {{{\mathbf {P}}}_1 } \\ {z_1 } \\ \end{array} }} \right] ,\ldots ,{{\mathbf {P}}}_{k+1} =\left[ {{\begin{array}{l} {{{\mathbf {P}}}_k } \\ {z_k } \\ \end{array} }} \right] ,\ldots \nonumber \\ \end{aligned}$$
(13)

Replacing \({{\mathbf {X}}}\) with \({{\mathbf {P}}}\), Eq. (11) is rewritten as

$$\begin{aligned} G_{FF} \gamma _k^2 ={{\mathbf {G}}}_{F{{\mathbf {P}}}_k } \mathbf{G}_{{{\mathbf {P}}}_k {{\mathbf {P}}}_k }^{-1} {{\mathbf {G}}}_{F{{\mathbf {P}}}_k }^H \end{aligned}$$
(14)

where the subscript k means the kth iteration in the forward selection approach.

Similarly, Eq. (11) with \(\gamma _{k+1}^2 \) is rewritten as

$$\begin{aligned} G_{FF} \gamma _{k+1}^2 ={{\mathbf {G}}}_{F{{\mathbf {P}}}_{k+1} } \mathbf{G}_{{{\mathbf {P}}}_{k+1} {{\mathbf {P}}}_{k+1} }^{-1} {{\mathbf {G}}}_{F{{\mathbf {P}}}_{k+1} }^H \end{aligned}$$
(15)

Substituting Eq. 14 into 15 yields

$$\begin{aligned} G_{FF} \gamma _{k+1}^2 =\left[ {{\begin{array}{ll} {{{\mathbf {G}}}_{F{{\mathbf {P}}}_k } }&{} {{G}_{Fz_k } } \\ \end{array} }} \right] \left[ {{\begin{array}{ll} {\mathbf{G}_{{{\mathbf {P}}}_k {{\mathbf {P}}}_k } }&{} {{{\mathbf {G}}}_{{{\mathbf {P}}}_k z_k } } \\ {{{\mathbf {G}}}_{z_k {{\mathbf {P}}}_k } }&{} {{{\mathbf {G}}}_{z_k z_k } } \\ \end{array} }} \right] ^{-1}\left[ {{\begin{array}{l} {{{\mathbf {G}}}_{F{{\mathbf {P}}}_k }^H } \\ {{{G}}_{Fz_k }^H } \\ \end{array} }} \right] \end{aligned}$$
(16)

When \(\mathbf{G}_{{{\mathbf {P}}}_k {{\mathbf {P}}}_k } \) is reversible, implementing inverse operation of block matrix yields

$$\begin{aligned}&G_{FF} \gamma _{k+1}^2 =\left[ {{\begin{array}{ll} {{{\mathbf {G}}}_{F{{\mathbf {P}}}_k } }&{} {G_{Fz_k } } \\ \end{array} }} \right] \left[ {{\begin{array}{ll} {\mathbf{G}_{{{\mathbf {P}}}_k {{\mathbf {P}}}_k }^{-1} +\mathbf{T}_1 }&{} {{\mathbf {T}}_2 } \\ {{{\mathbf {T}}}_3 }&{} {T_4 } \\ \end{array} }} \right] \left[ {{\begin{array}{l} {{{\mathbf {G}}}_{F{{\mathbf {P}}}_k }^H } \\ {G_{Fz_k }^H } \\ \end{array} }} \right] \nonumber \\&\quad ={{\mathbf {G}}}_{F{{\mathbf {P}}}_k } \mathbf{G}_{{{\mathbf {P}}}_k {{\mathbf {P}}}_k }^{-1} {{\mathbf {G}}}_{F{{\mathbf {P}}}_k }^H +\left[ {{\begin{array}{ll} {{{\mathbf {G}}}_{F{{\mathbf {P}}}_k } }&{} {G_{Fz_k } } \\ \end{array} }} \right] \left[ {{\begin{array}{ll} {\mathbf{T}_1 }&{} {{{\mathbf {T}}}_2 } \\ {{{\mathbf {T}}}_3 }&{} {T_4 } \\ \end{array} }} \right] \left[ {{\begin{array}{l} {{{\mathbf {G}}}_{F{{\mathbf {P}}}_k }^H } \\ {G_{Fz_k }^H } \\ \end{array} }} \right] \nonumber \\&\quad =G_{FF} \gamma _k^2 +\left[ {{\begin{array}{ll} {{{\mathbf {G}}}_{F{{\mathbf {P}}}_k } }&{} {G_{Fz_k } } \\ \end{array} }} \right] \left[ {{\begin{array}{ll} {\mathbf{T}_1 }&{} {{{\mathbf {T}}}_2 } \\ {{{\mathbf {T}}}_3 }&{} {T_4 } \\ \end{array} }} \right] \left[ {{\begin{array}{ll} {{{\mathbf {G}}}_{F{{\mathbf {P}}}_k } }&{} {G_{Fz_k } } \\ \end{array} }} \right] ^{H}\nonumber \\ \end{aligned}$$
(17)

where

$$\begin{aligned} \left\{ {\begin{array}{l} T_0 =\left( {G_{z_k z_k } -{{\mathbf {G}}}_{z_k {{\mathbf {P}}}_k } \mathbf{G}_{{{\mathbf {P}}}_k {{\mathbf {P}}}_k }^{-1} {{\mathbf {G}}}_{{{\mathbf {P}}}_k z_k } } \right) ^{-1} \\ T_1 =T_0 \mathbf{G}_{{{\mathbf {P}}}_k {{\mathbf {P}}}_k }^{-1} {{\mathbf {G}}}_{{{\mathbf {P}}}_k z_k } {{\mathbf {G}}}_{z_k {{\mathbf {P}}}_k } \mathbf{G}_{{{\mathbf {P}}}_k {{\mathbf {P}}}_k }^{-1} \\ T_2 =-T_0 \mathbf{G}_{{{\mathbf {P}}}_k {{\mathbf {P}}}_k }^{-1} {{\mathbf {G}}}_{{{\mathbf {P}}}_k z_k } \\ T_3 =T_2^H =-T_0 {{\mathbf {G}}}_{z_k {{\mathbf {P}}}_k } \mathbf{G}_{{{\mathbf {P}}}_k {{\mathbf {P}}}_k }^{-1} \\ T_4 =T_0 \\ \end{array}} \right. \end{aligned}$$
(18)

As the computational complexity of dense matrix multiplication of \(\mathbf{M}_{a\times b} \) and \(\mathbf{M}_{b\times c} \) is \(\mathrm{O}\left( {abc} \right) \) and the computational complexity of dense matrix inversion of \(\mathbf{M}_{d\times d} \) is \(\mathrm{O}\left( {d^{3}} \right) \), it is straightforward that using either Eq. (16) or (17) will lead to an \(\mathrm{O}\left( {k^{3}} \right) \) algorithm when trying to judge whether a certain kind of nonlinearity is the appropriate \(z_k \) in \({{\mathbf {P}}}_{k+1} =\left[ {{\begin{array}{ll} {{{\mathbf {P}}}_k ^{T}}&{} {z_k } \\ \end{array} }} \right] ^{T}\). However, if there are \(N_{k}\) kinds of nonlinearities to be verified, Eq. (16) is needed to be implemented \(N_{k }\)times which will lead to an \(\mathrm{O}\left( {N_k k^{3}} \right) \) algorithm. On the contrary, since \(\mathbf{G}_{{{\mathbf {P}}}_k {{\mathbf {P}}}_k }^{-1} \) is needed to be calculated only once in the kth iteration of the forward selection approach, Eq. (17) will lead to an algorithm with lower computational complexity when there is many nonlinearities to be verified.

In conclusion, by assuming that there exist \(N_{\mathrm{r}}\) nonlinearities of different types and locations in the structure and there are also \(N_{z}\) kinds of nonlinearities to be verified in the method, the forward selection algorithm with Eq. (17) is summarized as follows:

figure a

Assuming that all the \(N_{\mathrm{r}}\) nonlinearities are determined correctly, the computational complexity of the method is \(\sum \limits _{k=1}^{N_\mathrm{r}} {\left( {\mathrm{O}\left( {k^{3}} \right) +N_\mathrm{z} \mathrm{O}\left( {k^{2}} \right) } \right) } \), which is polynomial complexity. However, using the brute-force method, the computational complexity would be \(\hbox {O}\left( {\sum \limits _{k=1}^{N_\mathrm{r} } {k^{3}C_{N_\mathrm{z} }^k } } \right) \), which is exponential complexity when \(N_{\mathrm{r}}\) is close to \(N_{\mathrm{z}}\). Also, in the situation when \(N_{\mathrm{z}}\) is large and \(N_{\mathrm{r}}\) is small but larger than 1, which is more common in practical applications, the forward selection method’s computational complexity is lower as well for that its polynomial complexity has a lower order.

3 Numerical experiments

In this section, two numerical examples are provided to give illustrations of the performance of the proposed forward selection method. In the first example, a six-degree-of-freedom lumped mass system with local nonlinearities is used, and in the second example, a cantilever beam with local nonlinearities is simulated.

3.1 Example 1: a six-degree-of-freedom system with local nonlinearities

The six-degree-of-freedom lumped mass system with four different local nonlinearities considered in this example is shown in Fig. 3. Expressions of the four nonlinearities in the system are as follows:

$$\begin{aligned} \left\{ {\begin{array}{l} f_{N1} =k_{n1} x_1 ^{3} \\ f_{N2} =k_{n2} \left( {x_2 -x_1 } \right) ^{3} \\ f_{N3} =k_{n3} \left( {x_4 -x_3 } \right) \left| {x_4 -x_3 } \right| \\ f_{N4} =k_{n4} x_5 \left| {x_5 } \right| \\ \end{array}} \right. \end{aligned}$$
(23)

where \(k_{n1} =10^{15}, k_{n2} =10^{18}, k_{n3} =10^{15}, k_{n4} =10^{10}\) are the nonlinear coefficients, respectively. \(x_i \left( {i=1,\ldots ,6} \right) \) is the response displacement and the other system parameters are chosen as

$$\begin{aligned} \left\{ {\begin{array}{ll} k_i =3.6\times 10^{5},&{}\quad \left( {i=1,\ldots ,8} \right) \\ c_i =5\times 10^{-5}\times k_i ,&{}\quad \left( {i=1,\ldots ,8} \right) \\ m_i =1,&{}\quad \left( {i=1,\ldots ,6} \right) \\ \end{array}} \right. \end{aligned}$$
(24)

The preceding four modes between 0 and 180 Hz are considered, and the theoretical value of the FRF H\(_{16}\) of the underlying linear system is plotted in Fig. 4. The response displacements of the system are calculated using the fourth-order Runge–Kutta algorithm. The excitation \(f_{in\left( p \right) } \) on node 6 is chosen as a zero-mean white Gaussian noise whose root-mean-square value is 1, and it is also assumed to be contaminated by a 20-dB white Gaussian noise. The sample frequency is chosen to be 10 kHz, and data between 0 and 5 s are generated to be used in the identification. Also, Welch’s method [46] with 50 % overlap is used to calculate the power spectrum.

Fig. 3
figure 3

The six-degree-of-freedom lumped mass system with four localized nonlinearities in the numerical simulation

Fig. 4
figure 4

Theoretical value of \({\vert }\hbox {H}_{16}{\vert }\) of the underlying linear system containing the preceding four modes

The FRF \(\hbox {H}_{16}\) calculated with the response displacements using the \(\hbox {H}_{2}\) estimator [45] is shown in Fig. 5a, and \(\gamma _1 ^{2}\) calculated using Eq. (19) is shown in Fig. 5b. Compared with the theoretical value in Fig. 4, it is clear to see from Fig. 5 that the system has significant nonlinear characteristic and cannot be represented by a linear model.

It is needed to decide beforehand the set which contains all the possible nonlinearities to be verified when implementing the forward selection method. In this example, the set \(\Phi \) is determined as follows:

$$\begin{aligned} \Phi= & {} \left\{ {x_1 \left| {x_1 } \right| ,x_2 \left| {x_2 } \right| ,x_3 \left| {x_3 } \right| ,x_4 \left| {x_4 } \right| ,x_5 \left| {x_5 } \right| ,x_6 \left| {x_6 } \right| } \right\} \nonumber \\&\cup \left\{ {x_1 ^{3},x_2 ^{3},x_3 ^{3},x_4 ^{3},x_5 ^{3},x_6 ^{3}} \right\} \nonumber \\&\cup \left\{ {\begin{array}{l} \left( {x_2 -x_1 } \right) \left| {\left( {x_2 -x_1 } \right) } \right| ,\left( {x_3 -x_2 } \right) \left| {\left( {x_3 -x_2 } \right) } \right| ,\\ \quad \left( {x_4 -x_3 } \right) \left| {\left( {x_4 -x_3 } \right) } \right| , \\ \left( {x_5 -x_4 } \right) \left| {\left( {x_5 -x_4 } \right) } \right| ,\left( {x_6 -x_5 } \right) \left| {\left( {x_6 -x_5 } \right) } \right| \end{array}} \right\} \nonumber \\&\cup \left\{ {\left( {x_2 -x_1 } \right) ^{3},\left( {x_3 -x_2 } \right) ^{3},\left( {x_4 -x_3 } \right) ^{3},}\right. \nonumber \\&\qquad \left. {\left( {x_5 -x_4 } \right) ^{3},\left( {x_6 -x_5 } \right) ^{3}} \right\} \end{aligned}$$
(25)
Fig. 5
figure 5

a Calculated \({\vert }\hbox {H}_{16}{\vert }\) using the simulated data with H\(_{2}\) estimator and b \(\gamma _1 ^{2}\) which should be 1 when modeling a linear system

which contains 22 kinds of nonlinearities totally. Following the forward selection algorithm and setting the threshold value \(\rho \) as 0.995, the results calculated using the first row of matrix in Eq. (1) or (2) are shown in Fig. 6, 7, 8 and 9. Figures 6a, 7a, 8a and 9a show the calculated multiple coherence function \(\gamma _k ^{2}\left( {k=2,3,4,5} \right) \) corresponding to the relevant nonlinearity in set \(\Phi \) within the chosen frequency scope 0–180 Hz. Figures 6b, 7b, 8b and 9b show the \(\gamma _k ^{2}\left( {k=2,3,4,5} \right) \) which is before the operation of averaging and thus depends on different frequencies. The blue bold line describes the \(\gamma _{k-1} ^{2}\) calculated in the previous iteration, and the red line with circles describes the \(\gamma _k ^{2}\) calculated with the chosen nonlinear term in the current iteration. All the other gray lines describe \(\gamma _k^{{i}^{2}}\) calculated with the other nonlinear terms to be verified in set \(\Phi \) with Eq. (21). As Figs. 6, 7, 8 and 9 show, the forward selection algorithm selects the 18th, 15th, 7th and 5th terms corresponding to the maximum \(\gamma _k ^{2}\) in each iteration, and after four iterations, the algorithm is terminated since the sum of all the \(\gamma _k ^{2}\) has reached the preset threshold value. The four chosen nonlinear terms are \(\left( {x_2 -x_1 } \right) ^{3},\left( {x_4 -x_3 } \right) \left| {x_4 -x_3 } \right| ,x_1 ^{3},x_5 \left| {x_5 } \right| \), and the result gives the right types and locations of nonlinearities in the locally nonlinear MDOF lumped mass system. After determining the contained nonlinearities in the system, the parameters of the system can be estimated with different kinds of methods.

Fig. 6
figure 6

The results of the 1st iteration. a \(\gamma _2^{{i}^{2}}\) calculated corresponding to each verified term and b \(\gamma _2^{{i}^{2}}\hbox {s}\) calculated before the operation of averaging

Fig. 7
figure 7

The results of the second iteration. a \(\gamma _3^{i2}\) calculated corresponding to each verified term and b \(\gamma _3^{i2}\) calculated before the operation of averaging

Fig. 8
figure 8

The results of the third iteration. a \(\gamma _4^{{i}^{2}}\) calculated corresponding to each verified term and b \(\gamma _4^{{i2}}\hbox {s}\) calculated before the operation of averaging

Fig. 9
figure 9

The results of the fourth iteration. a \(\gamma _5^{{i2}}\) calculated corresponding to each verified term and b \(\gamma _5^{{i}^{2}}\hbox {s}\) calculated before the operation of averaging

3.2 Example 2: a cantilever beam with local nonlinearities

As shown in Fig. 10, the system considered in the second numerical simulation is a cantilever beam with four different local nonlinearities. The beam is modeled with finite element method [47] and Euler beam unit. The preceding six modes between 0 and 268 Hz are considered. The density, elasticity modulus, length, height, width of the beam are 7800 kg/m\(^{3}\), 2.06e11 Pa, 0.2, 0.01, 0.005 m, respectively. Each mode’s damping ratio is assumed to be 0.02. Expressions of the four nonlinearities in the system are as follows:

$$\begin{aligned} \left\{ {\begin{array}{l} f_{N1} =k_{n1} \left( {x_2 -x_1 } \right) \left| {x_2 -x_1 } \right| \\ f_{N2} =k_{n2} x_3 \left| {x_3 } \right| \\ f_{N3} =k_{n3} x_3 ^{3} \\ f_{N4} =k_{n4} \left( {x_6 -x_5 } \right) ^{3} \\ \end{array}} \right. \end{aligned}$$
(26)

where \(k_{n1} =10^{8},k_{n2} =10^{7},k_{n3} =10^{10},k_{n4} =10^{9}\) are the nonlinear coefficients, respectively. \(x_i \left( {i=1,\ldots ,6} \right) \) is the response displacement of the corresponding node of the beam and is calculated using the fourth-order Runge–Kutta algorithm. As in the first example, the excitation \(f_{in\left( p \right) } \) on node 6 is also chosen as a zero-mean white Gaussian noise whose root-mean-square value is 1 and it is also assumed to be contaminated by a 20-dB white Gaussian noise. The governing equation of the cantilever beam calculated from the preset parameters is as follows:

$$\begin{aligned} \mathbf{M}{\ddot{{\mathbf {x}}}}+\mathbf{C}{\dot{{{\mathbf {x}}}}}+\mathbf{K}{{\mathbf {x}}}={{\mathbf {F}}}+{{\mathbf {F}}}_n \end{aligned}$$
(27)

where

$$\begin{aligned} \left\{ {\begin{array}{l} {{\mathbf {F}}}=\left[ {{\begin{array}{lll} {0_{1\times 10} }&{} {f_{in\left( p \right) } }&{} 0 \\ \end{array} }} \right] ^{T} \\ {{\mathbf {F}}}_n =\left[ {{\begin{array}{llllllllll} {f_{N1} }&{} 0&{} {-f_{N1} }&{} 0&{} {-f_{N2} -f_{N3} }&{} {0_{1\times 3} }&{} {f_{N4} }&{} 0&{} {-f_{N4} }&{} 0 \\ \end{array} }} \right] ^{T} \\ {{\mathbf {x}}}=\left[ {{\begin{array}{llllllllllll} {x_1 }&{} {\theta _1 }&{} {x_2 }&{} {\theta _2 }&{} {x_3 }&{} {\theta _3 }&{} {x_4 }&{} {\theta _4 }&{} {x_5 }&{} {\theta _5 }&{} {x_6 }&{} {\theta _6 } \\ \end{array} }} \right] ^{T} \\ \end{array}} \right. \end{aligned}$$
(28)

\(\theta _i \left( {i=1,\ldots ,6} \right) \) is the angular displacement of the corresponding node of the beam. M, K and C are three \(12\times 12\) matrices and are provided as supplementary materials. The sample frequency is chosen to be 10 kHz, and data between 0 and 5 s are generated to be used in the identification. Also, Welch’s method with 50 % overlap is used to calculate the power spectrum.

Fig. 10
figure 10

The cantilever beam with four localized nonlinearities in the numerical simulation

The theoretical value of the FRF \(\hbox {H}_{16}\) of the underlying linear system, or the linear cantilever beam, is plotted in Fig. 11. The FRF \(\hbox {H}_{16}\) calculated with the response displacements using the \(\hbox {H}_{2}\) estimator is shown in Fig. 12a, and \(\gamma _1 ^{2}\) calculated using Eq. (19) is shown in Fig. 12b. It is clear to see from Fig. 12 that the system has significant nonlinear characteristic and cannot be represented by a linear model.

Fig. 11
figure 11

Theoretical value of \({\vert }\hbox {H}_{16}{\vert }\) of the underlying linear system containing the preceding six modes

Fig. 12
figure 12

a Calculated \({\vert }\hbox {H}_{16}{\vert }\) using the simulated data with \(\hbox {H}_{2}\) estimator and b \(\gamma _1 ^{2}\) which should be 1 when modeling a linear system

The set \(\Phi \) which contains all the possible nonlinearities to be verified is determined as the same in the first example with Eq. (25) which contains 22 kinds of nonlinearities totally. The threshold value \(\rho \) is set as 0.99, and the results calculated using the first row of matrix in Eq. (1) or (2) are shown in Figs. 13, 14, 15 and 16. Figures 13a, 14a, 15a and 16a show the calculated multiple coherence function \(\gamma _k ^{2}\left( {k=2,3,4,5} \right) \) corresponding to the relevant nonlinearity in set \(\Phi \) within the chosen frequency scope 0–268 Hz. Figures 13b, 14b, 15b and 16b show the \(\gamma _k^{2}\left( {k=2,3,4,5} \right) \) before the operation of averaging. The blue bold line describes the \(\gamma _{k-1}^{2}\) calculated in the previous iteration, and the red line with circles describes the \(\gamma _k ^{2}\) calculated with the chosen nonlinear term in the current iteration. All the other gray lines describe \(\gamma _k^{{i2}}\) calculated with the other nonlinear terms. In Figs. 13, 14, 15 and 16, in the second example, the algorithm selects the 3rd, 22th, 13th and 9th terms after four iterations and is terminated since the sum of all the \(\gamma _k ^{2}\) has reached the preset threshold value. The four chosen nonlinear terms are \(x_3 \left| {x_3 } \right| ,\left( {x_6 -x_5 } \right) ^{3},\left( {x_2 -x_1 } \right) \left| {x_2 -x_1 } \right| ,x_3 ^{3}\), and the result also gives the right types and locations of nonlinearities in the locally nonlinear cantilever beam.

Fig. 13
figure 13

The results of the 1st iteration. a \(\gamma _2^{{i} ^{2}}\) calculated corresponding to each verified term and b \(\gamma _2^{{i2}}\hbox {s}\) calculated before the operation of averaging

Fig. 14
figure 14

The results of the second iteration. a \(\gamma _{3}^{{i} ^{2}}\) calculated corresponding to each verified term and b \(\gamma _3^{{i2}}\hbox {s}\) calculated before the operation of averaging

Fig. 15
figure 15

The results of the third iteration. a \(\gamma _{4}^{{i}^{2}}\) calculated corresponding to each verified term and b \(\gamma _4^{{i2}}\hbox {s}\) calculated before the operation of averaging

Fig. 16
figure 16

The results of the fourth iteration. a \(\gamma _5^{{i2}}\) calculated corresponding to each verified term and b \(\gamma _5^{{i2}}\hbox {s}\) calculated before the operation of averaging

4 Conclusion

The results of the numerical examples indicate that the proposed forward selection method is able to correctly identify the four nonlinearities in the two different systems and thus is also able to determine the corresponding locations of the nonlinearities in the structures.

An advantage of the method is that nonlinearities can be determined one by one in a forward selection approach, and therefore, computational cost is reduced compared with an iterate brute-force method when the number of possible nonlinearities to be verified is large. Moreover, since the algorithm can be implemented using only a single row of matrix in Eq. (1), it is able to carry out the algorithm multiple times with a single set of response measurements. Furthermore, the method needs only a single broadband excitation which can be applied on anywhere in the structure as long as the nonlinearities in the structure is excited. Also, only one set of response data at one single excitation amplitude is needed and no prior information about the underlying linear system is required. A possible drawback is that since the method is a forward selection approach, it is not global optimized in a strict mathematical sense. One probable settlement is carrying out the algorithm more than once with different rows of matrix in Eq. (1) to get a more reliable result. Another limitation is that the nonlinearities should be strong enough to be indicated in the response measurements which are polluted by noise.