1 Introduction

The hybrid systems have been widely used in the learning of incomplete data for the applications of nonlinear modeling [21, 28], prediction [27], pattern recognition [33], classification [23, 25], control, fault detection, and diagnosis in industrial systems [7, 13], visual inspection [15], and cascaded systems [3].

There are many studies about hybrid systems for the learning of nonlinear behaviors. Despite the proposals, few researches have been carried out in the past to perform the learning of incomplete data.

On the other hand, there are other methods for the learning of nonlinear behaviors with incomplete data, but they use noise signals considering the design as a stochastic problem, it would be interesting to consider the design as a deterministic problem.

In this research, a hybrid algorithm as the combination of the stable neural network and interpolation algorithm is introduced for the learning of nonlinear systems with incomplete data where the design is considered as a deterministic problem. It consists in the following two stages.

First, the interpolation algorithm is used to obtain the missing data of all the variables in some nonlinear behavior. Figure 1 shows that the interpolation algorithm is applied to build the estimation of the variables denoted as \(\widehat{x}_{l}(k)\) when only some points of the real variables denoted as \(x_{lr}(k)\) are available.

Fig. 1
figure 1

Interpolation algorithm to estimate all the variables with incomplete data

Second, after the interpolation algorithm obtains the estimation of the variables, Fig. 2 shows that the interpolation neural network is employed to learn the output nonlinear behavior where the variables estimated by the interpolation algorithm denoted as \(\widehat{x}_{1}(k)=\widehat{z} _{1}(k)\), \(\widehat{x}_{2}(k)=\widehat{z}_{2}(k)\),..., \(\widehat{x} _{n}(k)=\widehat{z}_{n}(k)\), \(\widehat{x}_{n+1}(k)=\widehat{y}(k)\) are used instead of the real variables denoted as \(x_{1,r}(k)=z_{1}(k)\), \(x_{2,r} (k)=z_{2}(k)\), ..., \(x_{n,r}(k)=z_{n}(k)\), \(x_{n+1,r}(k)=y_{r} (k)\). \(\widehat{y}(k)\) is the target output of the neural network. The inputs and output of the neural network are \(\widehat{z}_{1}(k)\), \(\widehat{z}_{2}(k)\),...,\(\widehat{z}_{n}(k)\) and \({\mathrm{NN}}(k)\), respectively. The importance of the neural network is that while the interpolation algorithm only estimates the variables of the nonlinear behavior, the neural network learns the output behavior.

Fig. 2
figure 2

Interpolation neural network for the learning

In remainder of this section, there will be the survey of related works. Finally, the organization of this paper will be mentioned.

1.1 Related works

This subsection contains a survey of two kind of related works: (a) hybrid systems for the learning of nonlinear behaviors and (b) methods for the learning of behaviors with incomplete data.

There is some research about the learning with hybrid systems. In [1], a learning approach to train uninorm-based hybrid neural networks is suggested. In [2], four semi-supervised learning methods are discussed. A specific ensemble strategy is developed in [4]. In [5], an approach to the construction of classifiers from imbalanced datasets is described. A dynamic pattern recognition method is proposed in [9]. In [10] and [19], the use of evolving classifiers for the activity recognition is described. Hybrid and ensemble methods in machine learning are focused in [11]. In [12], a granular neural network framework for the evolving fuzzy system modeling is introduced. A novel hybrid active learning strategy is proposed in [14]. In [16], an enhanced version of the evolving participatory learning approach is developed. A class of hybrid fuzzy models is designed in [18]. A parsimonious network based on the fuzzy inference system is addressed in [20]. In [21], a novel dynamic parsimonious fuzzy neural network is considered. A holistic concept of a fully data-driven modeling tool is proposed in [22]. In [23], a novel evolving fuzzy-rule-based classifier is proposed. A novel meta-cognitive-based scaffolding classifier is considered in [24] . In [25], a novel interval type-2 fuzzy classifier is introduced. An evolving hybrid fuzzy neural network-based modeling approach is introduced in [26].

Otherwise, there is some research about the learning of nonlinear behaviors with incomplete data. In [6], kernel regression method is used for the modeling with incomplete data. The story of incomplete and redundant representation modeling is introduced in [8]. In [32], the authors propose a new model called sparse hidden Markov model. A novel sparse shape composition model is considered in [35]. In [36], a method is introduced for regression and classification problems.

1.2 Organization of the paper

The paper is structured as follows. In Sect. 2, the interpolation neural network is described. In Sect. 3, the interpolation neural network is employed for the modeling of two trajectories of the wind turbine behavior. Finally, in Sect. 4, the conclusion and future research are detailed.

2 Interpolation neural network

This section is divided in two subsection which consider the two stages of the proposed algorithm. (a) the interpolation algorithm is utilized to estimate the nonlinear behavior of all the variables with incomplete data. (b) The interpolation neural network is employed for the learning of the nonlinear behavior output with incomplete data.

2.1 Interpolation algorithm to estimate the incomplete data

The interpolation algorithm is described in this subsection as the first part of the proposed model. The algorithm proposed in this part is used to estimate the missing data of all the variables with incomplete data, i.e., the proposed algorithm is a multi-dimension approximator where all the variables are independently estimated.

2.1.1 Description of the interpolation algorithm

Consider the functions \(x_{lr}(k)=f(k_{l})\in {\mathfrak {R}}\) with \(l=1,2,,\ldots ,n+1\) is the number of variables estimated with this algorithm, \(k_{l}=1,2,\ldots ,T\), T are the iterations number for the variables, \(x_{lr}(k)\) are the output real data of the nonlinear behaviors. The approximation consists to find \(\widehat{x}_{l}(k)\) such that they estimate the real variables with incomplete data \(x_{lr}(k)\).

The slopes of \(x_{lr}(k)\) denoted as \(m_{l}(k)\) using the \(k_{l}\) and \(x_{lr}(k)\) data of the nonlinear behavior are obtained as follows:

$$\begin{aligned} m_{l}(k)=\frac{x_{lr}(k)-x_{lr}(k-1)}{(k_{l})-(k_{l}-1)} \end{aligned}$$
(1)

The nonlinear behaviors are divided in \(N_{l}\) intervals, each interval is generated by considering the following inequality:

$$\begin{aligned} \left| \left( \left| m_{l}(k)\right| -\left| m_{l} (k-1)\right| \right) \right| \ge h_{l} \end{aligned}$$
(2)

where \(h_{l}\) is a small selected threshold parameter, consider that the signals taken from \(k_{l}\) for each of the \(N_{l}\) intervals are denoted by j. Figure 3 shows the approximation of the nonlinear behaviors using the interpolation algorithm.

Fig. 3
figure 3

Interpolation algorithm

The Eq. (3) describes the approximation of the nonlinear behaviors using the proposed interpolation algorithm [30]:

$$\begin{aligned} \widehat{x}_{l}(k)=\left( 1-\lambda _{l}(k)\right) \cdot x_{l,i,j} (k)+\lambda _{l}(k)\cdot x_{l,f,j}(k) \end{aligned}$$
(3)

where \(x_{l,i,j}(k)\) are the initial values of \(x_{lr}(k)\) in the interval j, \(x_{l,f,j}(k)\) are the final values of \(x_{lr}(k)\) in the interval j, \(k_{l}\) are the variant iterations inside of the interval j, \(\lambda _{l}(k)\) are the variant-in-time parameters of the interval j, \(\lambda _{l}(k)\) are given as follows:

$$\begin{aligned} \lambda _{l}(k)=\frac{k_{l}-k_{l,i,j}}{k_{l,f,j}-k_{l,i,j}} \end{aligned}$$
(4)

where \(k_{l,i,j}\) are the initial values of \(\lambda _{l}(k)\) in the interval j, and \(k_{l,f,j}\) are the final values of \(\lambda _{l}(k)\) in the interval j.

It is known that \(k_{l,i,j}\le k_{l}\le k_{l,f,j}\) for each interval j; consequently, \(0\le \lambda _{l}(k)\le 1\), and \(\lambda _{l}(k)\) always increases. The variant parameters \(\lambda _{l}(k)\) are important in the proposed interpolation algorithm because \(\widehat{x}_{l}(k)\) are the approximations of \(x_{lr}(k)\) from the initial points to the final points for each interval j. The interpolation algorithm for the approximation of nonlinear behaviors is as follows:

  1. 1.

    Obtain the slope of \(x_{lr}(k)\) denoted as \(m_{l}(k)\) using the \(k_{l}\) and \(x_{lr}(k)\) data of the nonlinear behaviors using the Eq. (1), and select the threshold parameters \(h_{l}\).

  2. 2.

    Obtain the elements number in the intervals \(N_{l}\) with Eq. (2).

  3. 3.

    The intervals are denoted by j.

  4. 4.

    For each interval j, obtain \(\lambda _{l}(k)\) with Eq. (4).

  5. 5.

    For each interval j, obtain \(\widehat{x}_{l}(k)\) as the approximations of \(x_{lr}(k)\) using Eq. (3).

2.1.2 Boundedness of the interpolation algorithm

In this section, the variables of the interpolation algorithm will be guaranteed to be bounded. Substituting (4) into (3) of the interpolation algorithm gives:

$$\begin{aligned} \widehat{x}_{l}(k)=\left( 1-\frac{k_{l}-k_{l,i,j}}{k_{l,f,j}-k_{l,i,j} }\right) \cdot x_{l,i,j}(k)+\frac{k_{l}-k_{l,i,j}}{k_{l,f,j}-k_{l,i,j}}\cdot x_{l,f,j}(k) \end{aligned}$$
(5)

(5) can be rewritten as follows:

$$\begin{aligned} \widehat{x}_{l}(k)=x_{l,i,j}(k)+\frac{k_{l}-k_{l,i,j}}{k_{l,f,j}-k_{l,i,j}}\left( x_{l,f,j}(k)-x_{l,i,j}(k)\right) \end{aligned}$$
(6)

Theorem 1

The outputs \(\widehat{x}_{l}(k)\) of the interpolation algorithm (3)–(4), (6), are guaranteed to be bounded by \(x_{l,i,j} (k)\) and by \(x_{l,f,j}(k)\) for all the intervals j.

Proof

The proof is given by two parts. (a) If \(x_{l,i,j}(k)\le x_{l,f,j}(k)\), then \(x_{l,f,j}(k)-x_{l,i,j}(k)\ge 0\), using (6), and the fact \(k_{l,i,j}\le k_{l}\le k_{l,f,j}\), it gives:

$$\begin{aligned}&x_{l,i,j}(k)+\frac{k_{l,i,j}-k_{l,i,j}}{k_{l,f,j}-k_{l,i,j}}\left( x_{l,f,j}(k)-x_{l,i,j}(k)\right) \nonumber \\&\quad \le x_{l,i,j}(k)+\frac{k_{l}-k_{l,i,j}}{k_{l,f,j}-k_{l,i,j}}\left( x_{l,f,j}(k)-x_{l,i,j}(k)\right) \nonumber \\&\quad \le x_{l,i,j}(k)+\frac{k_{l,f,j}-k_{l,i,j}}{k_{l,f,j}-k_{l,i,j}}\left( x_{l,f,j}(k)-x_{l,i,j}(k)\right) \end{aligned}$$
(7)

Inequality (7) gives \(x_{l,i,j}(k)\le \widehat{x}_{l}(k)\le x_{l,f,j}(k)\). (b) If \(x_{l,f,j}(k)\le x_{l,i,j}(k)\), then \(x_{l,f,j} (k)-x_{l,i,j}(k)\le 0\), using (6), and the fact \(k_{l,i,j}\le k_{l}\le k_{l,f,j}\), it gives:

$$\begin{aligned}&x_{l,i,j}(k)+\frac{k_{l,f,j}-k_{l,i,j}}{k_{l,f,j}-k_{l,i,j}}\left( x_{l,f,j}(k)-x_{l,i,j}(k)\right) \nonumber \\&\quad \le x_{l,i,j}(k)+\frac{k_{l}-k_{l,i,j}}{k_{l,f,j}-k_{l,i,j}}\left( x_{l,f,j}(k)-x_{l,i,j}(k)\right) \nonumber \\&\quad \le x_{l,i,j}(k)+\frac{k_{l,i,j}-k_{l,i,j}}{k_{l,f,j}-k_{l,i,j}}\left( x_{l,f,j}(k)-x_{l,i,j}(k)\right) \end{aligned}$$
(8)

Inequality (8) gives \(x_{l,f,j}(k)\le \widehat{x}_{l}(k)\le x_{l,i,j}(k)\). Since (a) If \(x_{l,i,j}(k)\le x_{l,f,j}(k)\), then \(x_{l,i,j}(k)\le \widehat{x}_{l}(k)\le x_{l,f,j}(k)\), and (b) If \(x_{l,f,j}(k)\le x_{l,i,j}(k)\), then \(x_{l,f,j}(k)\le \widehat{x}_{l}(k)\le x_{l,i,j}(k)\), in all the cases \(\widehat{x}_{l}(k)\) are bounded by \(x_{l,i,j}(k)\) and by \(x_{l,f,j}(k)\) as the Theorem claims. \(\square\)

Remark 1

There are three differences between the interpolation algorithm introduced by [30] and that considered in this study. The first difference is that in [30], the interval number is obtained by the changes in the slopes sign, while in this study the interval number is determined by Eq. (2). The second difference is that in [30], the interpolation algorithm is applied only to estimate the nonlinear system output, while in this work the interpolation algorithm is used to estimate all the nonlinear system variables. The third difference is that in [30], the interpolation algorithm is considered alone, while in this research the interpolation algorithm is combined with a stable neural network.

2.2 Neural network to learn the nonlinear behavior with incomplete data

The neural network is described in this subsection as the second part of the proposed model. This subsection describes the algorithm proposed in this study for the modeling of a nonlinear behavior with incomplete data.

2.2.1 Description of the neural network

In this study, incomplete data are considered; consequently, the neural network of this paper is used to learn the nonlinear behavior using only the variables estimated with the interpolation model, not the real data variables, that is, the variables of the interpolation algorithm \(\widehat{z}_{1}(k)\), \(\widehat{z}_{2}(k)\),...,\(\widehat{z}_{n}(k)\), \(\widehat{y}(k)\), are used instead of the real variables with incomplete data \(z_{1}(k)\), \(z_{2} (k),\ldots ,z_{n}(k)\), \(y_{r}(k)\).

The stable backpropagation algorithm is employed with a new time-varying rate to guarantee its uniformly stability for online identification and its identification error converges to a small zone bounded by the uncertainty. The weights error is bounded by the initial weights error, i.e., overfitting and local optimum are eliminated in the mentioned algorithm [27, 28].

Stable backpropagation algorithm is as follows [27, 28]:

  1. 1.

    Obtain the output of the nonlinear system y(k). Note that the nonlinear system may have the structure represented by Eq. (9); the parameter n is selected according to this nonlinear system.

    $$\begin{aligned} \widehat{y}(k)=f\left[ Z(k)\right] \end{aligned}$$
    (9)

where \(Z(k)=\left[ \widehat{z}_{1}(k)\ldots ,\widehat{z}_{i}(k),\ldots ,\widehat{z}_{n}(k)\right] ^{T}\in {\mathfrak {R}}^{n\times 1}\) is the input vector, f is an unknown nonlinear function, \(f\in C^{\infty }\), and \(\widehat{y} (k)\), \(\widehat{z}_{1}(k)\), \(\widehat{z}_{2}(k)\),...,\(\widehat{z}_{n} (k)\) are the outputs of the interpolation algorithm.

  1. 2.

    Select the following parameters; V(1) and W(1) as random numbers between 0 and 1; m as an integer number, and \(\alpha _{0}\) as a positive value smaller or equal to 1; obtain the output of the neural network \({\mathrm{NN}}(1)\) with Eq. (10). The interpolation neural network which learns the real output with incomplete data of the nonlinear behavior \(y_{r}(k)\) is as follows:

    $$\begin{aligned} {\mathrm{NN}}(k)=V(k)\Phi (k)= & {} { \sum \limits _{j=1}^{m}} V_{j}(k)\phi _{j}(k)\nonumber \\ \Phi _{k}= & {} \left[ \phi _{1}(k),\ldots ,\phi _{j}(k),\ldots ,\phi _{m}(k)\right] ^{T}\nonumber \\ \phi _{j}(k)= & {} \tanh \left( { \sum \limits _{i=1}^{n}} W_{ij}(k)\widehat{z}_{i}(k)\right) \end{aligned}$$
    (10)

where \(\widehat{z}_{1}(k)\), \(\widehat{z}_{2}(k),\ldots,\) \(\widehat{z}_{n}(k)\) are the inputs estimation with the interpolation algorithm, \(V_{j}(k+1)\) and \(W_{ij}(k+1)\) are the weights of the hidden and output layer, respectively. m is the neuron number in the hidden layer.\(\ \phi _{j}\) is the hyperbolic tangent function.

  1. 3.

    For each iteration k, obtain the output of the neural network \({\mathrm{NN}}(k)\) with Eq. (10), obtain the neural network error \(e_{\mathrm{NN}}(k)\) with Eq. (11), and update the parameters \(V_{j}(k+1)\) and \(W_{ij}(k+1)\) with Eq.  (12).

    $$\begin{aligned} e_{\mathrm{NN}}(k)&=\,{\mathrm{NN}}(k)-\widehat{y}(k) \end{aligned}$$
    (11)
    $$\begin{aligned} V_{j}(k+1)&=\,V_{j}(k)-\alpha (k)\phi _{j}(k)e_{\mathrm{NN}}(k)\nonumber \\ W_{ij}(k+1) &=\,W_{ij}(k)-\alpha (k)\sigma _{ij}(k)e_{\mathrm{NN}}(k) \end{aligned}$$
    (12)

    where the new time-varying rate \(\alpha (k)\) is:

    $$\begin{aligned} \alpha (k)=\frac{\alpha _{0}}{2\left( \frac{1}{2}+ { \sum \nolimits _{j=1}^{m}} \phi _{j}^{2}(k)+ { \sum \nolimits _{j=1}^{m}} { \sum \limits _{i=1}^{n}} \sigma _{ij}^{2}(k)\right) } \end{aligned}$$

where \(i=1,\ldots ,n\), \(j=1,\ldots ,m\), \(\sigma _{ij}(k)=V_{j}(k)\)sech\(^{2}( { \sum \nolimits _{i=1}^{n}} W_{ij}(k)z_{i}(k))\widehat{z}_{i}(k)\in \mathfrak {R}\), \(\alpha _{0}\) is the constant learning speed, \(\widehat{y}(k)\) is the output estimation with the interpolation algorithm, \({\mathrm{NN}}(k)\) is the output of the interpolation neural network, and \(\widehat{z}_{1}(k)\), \(\widehat{z}_{2}(k)\),...,\(\widehat{z}_{n}(k)\), \(\widehat{y}(k)\) are the outputs of the interpolation algorithm.

Remark 2

The hyperbolic tangent is used as the activation function in the proposed neural network because it considers positive and negative values, being it more complete than others as the sigmoid function which only considers positive values.

2.2.2 Stability analysis of the neural network

The following theorem guarantees that the interpolation neural network can approximate a nonlinear behavior.

Theorem 2

([34]) Suppose that the input universe of discourse U is a compact set in \(\mathfrak {R}^{n}\). Then, for any given real continuous function \(\sigma (k)\) on U, and arbitrary \(\in >0\), there exists an interpolation neural network \({\mathrm{NN}}(k)\) in the form (10) such that:

$$\begin{aligned} \underset{x\in U}{\sup }\left| {\mathrm{NN}}(k)-\widehat{y}(k)\right| <\in \end{aligned}$$
(13)

That is, the neural network \({\mathrm{NN}}(k)\) is an approximator of the output of the interpolation algorithm \(\widehat{y}(k)\).

Proof

See [34] for the proof. \(\square\)

The following theorem gives the stability of the neural network model.

Theorem 3

The interpolation neural network (10), (11), and (12) applied for the identification of the nonlinear system (9) is uniformly stable and the upper bound of the average identification error \(e_{p}^{2}(k)\) satisfies:

$$\begin{aligned} \underset{T\rightarrow \infty }{\lim \sup }\frac{1}{T} { \sum \limits _{k=2}^{T}} e_{p}^{2}(k)\le \alpha _{0}\overline{\mu }^{2} \end{aligned}$$
(14)

where \(e_{p}^{2}(k)=\frac{\alpha (k-1)}{2}e^{2}(k-1)\),\(\ 0<\alpha _{0}\le 1\in {\mathfrak {R}}\) and \(0<\alpha (k)\in {\mathfrak {R}}\) are defined in (12), e(k) is defined in (11), \(\mu (k)=y(k)- { \sum \nolimits _{j=1}^{M}} V_{j}^{*}\phi _{j}^{*}\) is an uncertainty,\(\ \overline{\mu }\) is the upper bound of the uncertainty \(\mu (k)\), \(\left| \mu (k)\right| <\,\overline{\mu }\), \(\phi _{j}^{*}=\tanh ( { \sum \nolimits _{i=1}^{N}} W_{ij}^{*}x_{i}(k))\),\(\ V_{j}^{*}\) and \(W_{ij}^{*}\) are unknown weights such that the uncertainty \(\mu (k)\) is minimized.

Proof

See [27, 28] for the proof. \(\square\)

The following theorem proves that the weights of the interpolation neural network are bounded.

Theorem 4

When the average error \(e_{p}^{2}(k)\) is bigger than the uncertainty \(\alpha _{0}\overline{\mu }^{2}\), the weights error is bounded by the initial weights error as follows:

$$\begin{aligned}e_{p}^{2}(k+1)&\ge \alpha _{0}\overline{\mu }^{2}\nonumber \\ &\Longrightarrow { \sum \limits _{j=1}^{M}} \widetilde{V}_{j}^{2}(k+1)+ { \sum \limits _{j=1}^{M}} { \sum \limits _{i=1}^{N}} \widetilde{W}_{ij}^{2}(k+1)\\ &\le { \sum \limits _{j=1}^{M}} \widetilde{V}_{j}^{2}(1)+ { \sum \limits _{j=1}^{M}} { \sum \limits _{i=1}^{N}} \widetilde{W}_{ij}^{2}(1) \end{aligned}$$
(15)

where \(i=1,\ldots ,N\), \(j=1,\ldots ,M\), \(\widetilde{V}_{j}(k)\) and \(\widetilde{W}_{ij}(k)\) is the weights error, \(\widetilde{V}_{j}(1)\) and \(\widetilde{W}_{ij}(1)\) is the initial weights error, \(e_{p}^{2} (k+1)=\frac{\alpha (k)}{2}e^{2}(k)\), \(V_{j}(k+1)\), \(W_{ij}(k+1)\), \(0<\alpha _{0}\le 1\in {\mathfrak {R}}\), and \(0<\alpha (k)\in {\mathfrak {R}}\) are defined in (12), e(k) is defined in (11), \(\overline{\mu }\) is the upper bound of the uncertainty \(\mu (k)\), \(\left| \mu (k)\right| <\overline{\mu }\).

Proof

See [27, 28] for the proof. \(\square\)

Remark 3

There are two conditions for applying this algorithm for nonlinear systems: the first one is that the nonlinear system may have the form described by (9), and the second one is that the uncertainty \(\mu (k)\) may be bounded.

Remark 4

The value of the parameter \(\overline{ \mu }\) used for the stability of the algorithm is unimportant, because this parameter is not used in the algorithm. The bound of \(\mu (k)\) is needed to guarantee the stability of the algorithm, but it is not used in the backpropagation algorithm (10), (11), (12).

Remark 5

There is one important difference between the stable neural network of [27, 28] and the considered in this study. It is that in [27, 28], the stable neural network is alone used for the learning of short data, while, in this research, the stable neural network is combined with the interpolation algorithm for the learning of nonlinear systems with incomplete data.

Remark 6

The fuzzy slopes model of [29] has two differences with the interpolation neural network of this research: (1) the fuzzy slopes model uses a fuzzy inference system, while the interpolation neural network employs the stable neural network, obtaining an advantage in the proposed method because a stable algorithm guarantees that all the variables will remain bounded; (2) the fuzzy slopes model only considers the output with incomplete data, while the interpolation neural network considers all the variables with incomplete data, obtaining an advantage in the introduced technique because it is a generalization of the previous.

3 Experimental results

The interpolation neural network is compared with the fuzzy slopes model of [29] for the learning of the wind turbine behavior with incomplete data. The objective is that the interpolation neural network output NN of (1)–(4), (10)–(12) must be nearer with the real output of the wind turbine \(y_{r}\) than the fuzzy slopes model output.

Figure 4 shows the prototype of the manufactured wind turbine with a rotatory tower which is considered for this study. This prototype has three blades with a rotatory tower which does not use a gear box. Important research about wind turbines is presented in [7, 31], and [33]. Table 1 shows the parameters of the prototype. The parameters \(m_{2}\) and \(l_{c2}\) are obtained from the wind turbine blades. The parameters \(R_{1}\), \(L_{1}\), and \(k_{1}\), are obtained from the tower motor. The parameters \(k_{2}\), \(R_{2}\), \(R_{e}\), and \(L_{2}\), are obtained from the wind turbine generator. The parameters R, \(\rho\), \(V_{\omega }\), and \(\beta\), are obtained from [31].

Fig. 4
figure 4

Prototype of the manufactured wind turbine

Table 1 Parameters of the prototype

\(1\times 10^{-5}\) are considered as the initial conditions for the plant states \(x_{1}=i_{2}\), \(x_{2}=\theta _{2}\), \(x_{3}=\overset{\cdot }{\theta }_{2}\), \(x_{4}=i_{1}\), \(x_{5}=\theta _{1}\), and \(x_{6}=\overset{\cdot }{\theta }_{1}\). \(u_{1}\ \)is the force of the air received by the three blades in \(\hbox {kgm}^{2}\, \hbox {rad/s}^{2}\), \(u_{2}\) is the motor armature voltage in V, \(\theta _{1}\) is the angular position of the tower motor in rad, \(\theta _{2}\) is the angular position of a wind turbine blade in rad, \(i_{1}\) is the motor armature current of the tower in A, \(i_{2}\) is the generator armature current in A, and y is the output voltage generated by the wind turbine in V. An electronic circuit and a microcontroller board of Arduino are used to digitalize and to send the obtained signals to a personal computer. Figure 5 shows the electronic circuit of the acquisition system. Figure 6 shows one program designed to save the real data of the electric current, electric voltage, blades position, and tower position using the Mathlab software. Figure 7 shows the real electronic circuit to save the real data of the electric voltage, electric current, blades position, and tower position.

Fig. 5
figure 5

Electronic circuit of the acquisition system

Fig. 6
figure 6

Program to save the real data

Fig. 7
figure 7

Electronic circuit to save the real data

The interpolation neural network learns the behavior considering real data of the inputs and states of the wind turbine behavior, the eight inputs for the nonlinear behavior are denoted as \(z_{1}(k)=u_{1r}\), \(z_{2}(k)=u_{2r}\), \(z_{3}(k)=x_{1r}\), \(z_{4}(k)=x_{2r}\), \(z_{5}(k)=x_{3r}\), \(z_{6}(k)=x_{4r}\), \(z_{7}(k)=x_{5r}\), and \(z_{8}(k)=x_{6r}\), and the target output is denoted as \(\widehat{y}(k)=y\). The root mean square error is used for the comparison results [17, 28, 30]:

$$\begin{aligned} {\mathrm{RMSE}}=\left( \frac{1}{T}\sum _{k=1}^{T}e^{2}(k)\right) ^{\frac{1}{2}} \end{aligned}$$
(16)

where T is the iterations number, and \(e(k)=e_{FS}(k)\) is the error of the fuzzy slopes model, or \(e(k)=e_{\mathrm{NN}}(k)\) is the error of the interpolation neural network of (11).

3.1 Experiment 1

Experiment 1 considers the first movement of the wind turbine described as follows: (1) from 0 to 2 s, both inputs are fed; consequently, the tower moves far of the maximum air intake, the generator current is decreased, and the wind turbine blades stop moving; (2) from 2 to 4 s, both inputs are not fed; consequently, current is not generated, and both the tower and wind turbine blades do no move; (3) from 4 to 6 s, both inputs are fed, but the air intake is positive and tower voltage is negative; consequently, the tower returns to the maximum air intake, the generator current is increased, and the wind turbine blades move; (4) from 6 to 8 s, both inputs are not fed; consequently, current is not generated, and the tower and wind turbine blades do no move. The described behavior is repeated three times for the learning and once for the testing; consequently, 8412 data are used for the training and 2804 data are used for the testing.

The fuzzy slopes model is used with parameters \(n=8\), \(m=4\), \(v_{i} (1)={\text {rand}}\), \(c_{ij}(1)={\text {rand}}\), \(\sigma _{ij}(1)=10{\text {r\,and}}\), \(h=1\times 10^{-7}\), \({\text {rand}}\) is a random number between 0 and 1.

The interpolation neural network of (1)–(4), (10)–(12) is used with parameters \(n=8\), \(m=4\), \(\alpha _{0}=0.5\), \(V_{j}(1)={\text {rand}}\), \(W_{ij}(1)={\text {rand}}\),\(\ h=1\times 10^{-7}\), \({\text {rand}}\) is a random number between 0 and 1.

Figure 8 shows the incomplete data for the states of the wind turbine behavior. Figure 9 shows the modeling of the wind turbine behavior using the fuzzy slopes model and interpolation neural network for the training. Figure 10 shows the modeling of the wind turbine behavior using the fuzzy slopes model and interpolation neural network for the testing. Table 2 shows the root mean square error for the fuzzy slopes model and interpolation neural network.

Fig. 8
figure 8

Incomplete data for the experiment 1

Fig. 9
figure 9

Modeling for the training of the experiment 1

Fig. 10
figure 10

Modeling for the testing of the experiment 1

Table 2 Comparison of the errors

The iterations number is shown instead of the time in seconds to guarantee that in this research incomplete data are employed. From Fig. 9 and Table 2, it is shown that the interpolation neural network is the best for the training of the wind turbine behavior because the RMSE of the above algorithm is the smallest one. The training could be used for online designs such as the control, prediction, or fault detection. From Fig. 10 and Table 2, it is shown that the interpolation neural network is the best for the testing of the wind turbine behavior because the RMSE of the above algorithm is the smallest one. The testing could be used for offline designs such as the pattern recognition or classification.

3.2 Experiment 2

Experiment 2 considers the second movement of the wind turbine described as follows: (1) from 0 to 2 s, the input air is fed and the tower input is not fed; consequently, the tower remains in the maximum air intake, the generator current is maximum, and the wind turbine blades have motion; (2) from 2 to 4 s, the air is not fed and the tower input is fed; consequently, current is not generated, the tower moves far of the maximum air intake, and the wind turbine blades do not have motion; (3) from 4 s to 6 s, the air is fed and the tower input is not fed; consequently, the tower does not move, the generator current is minimum, and the wind turbine blades almost do not move; (4) from 6 s to 8 s, the air is not fed and the tower input is fed with a negative voltage; consequently, current is not generated, the tower returns to the maximum air intake, and the wind turbine blades do not have motion. The described behavior is repeated three times for the learning and once for the testing; consequently, 8412 data are used for the training and 2804 data are used for the testing.

The fuzzy slopes model is used with parameters \(n=8\), \(m=4\), \(v_{i} (1)={\text {rand}}\), \(c_{ij}(1)={\text {rand}}\), \(\sigma _{ij}(1)=10{\text {rand}}\), \(h=1\times 10^{-7}\), \({\text {rand}}\) is a random number between 0 and 1.

The interpolation neural network of (1)–(4), (10 )–(12) is used with parameters \(n=8\), \(m=4\), \(\alpha _{0}=0.5\), \(V_{j}(1)={\text {rand}}\), \(W_{ij}(1)={\text {rand}}\),\(\ h=5\times 10^{-8}\), \({\text {rand}}\) is a random number between 0 and 1.

Figure 11 shows the incomplete data for the states of the wind turbine behavior. Figure 12 shows the modeling of the wind turbine behavior using the fuzzy slopes model and interpolation neural network for the training. Figure 13 shows the modeling of the wind turbine behavior using the fuzzy slopes model and interpolation neural network for the testing. Table 3 shows the root mean square error for the fuzzy slopes model and interpolation neural network.

Fig. 11
figure 11

Incomplete data for the experiment 2

Fig. 12
figure 12

Modeling for the training of the experiment 2

Fig. 13
figure 13

Modeling for the testing of the experiment 2

Table 3 Comparison of the errors

The iterations number is shown instead of the time in seconds to guarantee that in this research incomplete data are employed. From Fig. 12 and Table 3, it is shown that the interpolation neural network is the best for the training of the wind turbine behavior because the RMSE of the above algorithm is the smallest one. The training could be used for online designs such as the control, prediction, or fault detection. From Fig. 13 and Table 3, it is shown that the interpolation neural network is the best for the testing of the wind turbine behavior because the RMSE of the above algorithm is the smallest one. The testing could be used for offline designs such as the pattern recognition or classification.

Remark 7

Choosing an appropriate number of hidden neurons is important in the behavior, because too many neurons result in a complex system that may be unnecessary for the problem and it can cause overfitting [28], whereas too few neurons produce a less powerful system that may be insufficient to achieve the objective. The number of hidden neurons is considered as a design parameter and it is determined based on the trial-error method.

4 Conclusion

In this paper, the interpolation neural network was introduced. The interpolation algorithm was applied to build an estimation of the nonlinear behaviors when only some points of the real behavior with incomplete data were available. After the interpolation algorithm obtained the estimation of the nonlinear behaviors, the neural network was employed to learn the output nonlinear behavior considering only the outputs of the interpolation model instead of the real data inputs and output. The importance of the neural network is that while the interpolation algorithm only estimates the nonlinear behaviors, the neural network learns the output behavior. The proposed interpolation neural network was compared with a fuzzy slopes model for the modeling of the wind turbine behavior, giving that the first algorithm provides higher accuracy compared to the other. The proposed technique could be used in control, prediction, pattern recognition, classification, or fault detection. As a future research, the proposed strategy will be used for the control design.