1 Introduction

According to [1], we can find two classes of attractors in a system, those classical attractors self-excited by their unstable equilibria whose basin of attraction intersects with an open neighborhood of equilibria called self-excited attractors, and those whose basin of attraction does not contain neighborhoods of equilibria called hidden attractors. The localization of hidden attractors is generally more difficult than in the case of self-excited attractors. An analytical-numerical algorithm was suggested in [1] for the localization of hidden attractors of Chua’s circuit.

Recently, the use of hidden chaotic attractors instead of self-excited attractors in cryptographic algorithms has been shown to increase security [2]. Some systems with hidden attractors have been studied in [3,4,5,6,7,8,9,10,11,12,13,14,15], however, most of the mechanisms that lead to the appearance of hidden attractors in the wide variety of classes of systems remain unexplored.

The concept of multistability in a system is usually related to the existence of two or more attractors. If at least one of these is a hidden attractor, it adds additional complexity since its location is not as simple as in the case of a self-excited attractor.

In [16] a study is presented on the widening of the basins of attraction in multistable piecewise linear systems. In this work, a system with two double- scroll self-excited attractors and one double- scroll hidden attractor is reported. The hidden attractor resembles a larger double-scroll attractor in that the self-excited attractors act similarly to the equilibria in the center of the scrolls of a self-excited double-scroll attractor. This behavior was studied in [17] for a class of piecewise linear systems that lead to the construction of multistable systems with hidden grid attractors. In the center of each scroll of this grid attractor is a self-excited attractor. Based on the previous results and with the objective of increasing the complexity of multistable systems, we propose an approach which allows the generation of \(2^m-1\) nested hidden attractors, with \(m\in \mathbb {N}\). The approach allows the construction of complicated multistable systems where the shape of both, self-excited and hidden attractors can be modified. With this nested arrangement, more than one attractor can be found in the center of a scroll of another attractor, which leads to more complex attraction basins. Since the approach allows the construction of complicated multistable systems with any number of hidden attractors, a possible application in cryptography is expected.

The structure of this work is as follows: In Sect. 2, the approach to generate nested hidden attractors is introduced. In Sect. 3, two particular cases are presented, one with two self excited attractors and one hidden attractor and another with fifteen attractors. In Sect. 4 some conclusions are given.

2 Approach description

In order to introduce the approach let us define \(P=\{P_1,\ldots ,P_\eta \}\), with \(\eta >1\) and \(\eta \in \mathbb {N}\), as a finite partition of \(X\subset \mathbb {R}^3\). Now let \(T:X\rightarrow X\), with \(X\subset \mathbb {R}^3\), be a piecewise linear dynamical system whose dynamics is given by a family of sub-systems of the form

$$\begin{aligned} \dot{\mathbf{x}}=A\mathbf{x}+f(\mathbf{x})B, \end{aligned}$$
(1)

where \(\mathbf{x}=(x_1,x_2,x_3)^\mathrm{T}\in \mathbb {R}^3\) is the state vector, \(A=\{\alpha _{ij}\} \in \mathbb {R}^{3 \times 3}\) is a linear operator, \(B=(\beta _{ 1}, \beta _{ 2}, \beta _{3})^\mathrm{T}\) is a constant vector, and f is a functional. The vector \(f(\mathbf{x})B\) is a constant vector in each atom \(P_i\) such that the equilibria is given by \(\mathbf{x}^*_{\mathrm{eq}_i}=(x^*_{{1}_{\mathrm{eq}_i}},x^*_{{2}_{\mathrm{eq}_i}},x^*_{{3}_{\mathrm{eq}_i}})^\mathrm{T}=-f(\mathbf{x})A^{-1}B\in P_i\), with \(i=1,\ldots ,\eta \).

The matrix of the linear operator A is defined as follows:

$$\begin{aligned} A=\begin{pmatrix} \frac{a}{3} + \frac{2c}{3}&{}\quad b &{}\quad \frac{2c}{3} - \frac{2a}{3}\\ -\frac{b}{3} &{}\quad a &{}\quad \frac{2b}{3}\\ \frac{c}{3} - \frac{a}{3}&{}\quad -b &{}\quad \frac{2a}{3} + \frac{c}{3}\\ \end{pmatrix}, \end{aligned}$$
(2)

where \(a,b\in \mathbb {R}^+\) and \(c\in \mathbb {R}^-\). The complexification of A, \(A^\mathbb {C}\) has the eigenvalues \(\lambda _1=a+ib\), \(\lambda _2=a-ib\) and \(\lambda _3=c\). Then the equilibrium point in each element of the partition P is a saddle point whose unstable manifold is \(W^{U}_{\mathbf{x}^*_{\mathrm{eq}_i}}=\{ (\mathbf{x}+\mathbf{x}^*_{\mathrm{eq}_i}) \in \mathbb {R}^3:\mathbf{x}\in \text{ span }\{v_1,v_2\}\}\) where \(v_{1}=( 1 \ 0 \ \frac{1}{2})^\mathrm{T}\) and \(v_{2}=(0 \ -1 \ 0)^\mathrm{T}\). The stable manifold is \(W^{S}_{\mathbf{x}^*_{\mathrm{eq}_i}}=\{ (\mathbf{x}+\mathbf{x}^*_{\mathrm{eq}_i}) \in \mathbb {R}^3:\mathbf{x}\in \text{ span }\{v_3\}\}\) where \(v_{3}=(-1 \ 0 \ 1 )^\mathrm{T}\).

The selection of this matrix A is based on the idea that each equilibrium point \(\mathbf{x}^*_{\mathrm{eq}_i}\) is a saddle equilibrium point, and furthermore, if two equilibria \(\mathbf{x}^*_{\mathrm{eq}_1}\) and \(\mathbf{x}^*_{\mathrm{eq}_2}\) are symmetrically separated along axis \(x_1\) from a surface \(\Sigma =\{\mathbf{x}\in \mathbb {R}^3 : x_1=\rho , \rho \in \mathbb {R}\}\) then \(W^{U}_{\mathbf{x}^*_{\mathrm{eq}_1}}\cap W^{S}_{\mathbf{x}^*_{\mathrm{eq}_2}}\cap \Sigma =\emptyset \) and \(W^{S}_{\mathbf{x}^*_{eq_1}}\cap W^{U}_{\mathbf{x}^*_{\mathrm{eq}_2}}\cap \Sigma =\emptyset \). This condition is related to the existence of a hidden attractor and was observed before in [17].

The constant vector \(B\in \mathbb {R}^3\) is given by:

$$\begin{aligned} B=\begin{pmatrix} -\frac{a}{3} - \frac{2c}{3}\\ \frac{b}{3}\\ \frac{a}{3} -\frac{c}{3}\\ \end{pmatrix}, \end{aligned}$$
(3)

The functional \(f(\mathbf{x})\) is:

$$\begin{aligned} f(\mathbf{x})=\alpha u\left( 2\left( x_1-\sum _{i=1}^{m}w_i\right) -x_3,\;x_3\right) +\sum _{i=1}^{m}w_i, \end{aligned}$$
(4)

where \(\alpha \in \mathbb {R}\), \(m\in \mathbb {N}\), and \(w_i\) are defined as follows

$$\begin{aligned}&w_0=0, \end{aligned}$$
(5)
$$\begin{aligned}&w_{i}=\gamma ^{m+1-i}u\left( x_1-\sum _{j=0}^{i-1}w_{j},x_3\right) , \ \ \text{ for } \, i=1,\ldots ,m, \nonumber \\&\quad \text{ and } \, m\ge 1, \end{aligned}$$
(6)

where \(\gamma \in \mathbb {R}\), \(u(x_1,x_3)\) is a binary function with two arguments, \(x_1\) and \(x_3\), that function values are 1 or – 1 depending on its arguments \(x_1\) and \(x_3\). Note that for \(x_1=0\) can be mapped to 1 or -1 depending on the value of \(x_3\). The function \(u(x_1,x_3)\) is defined as follows:

$$\begin{aligned} u(x,z)=\left\{ \begin{array}{r@{\quad }l} 1,&{}\text{ if } x>0 \text{ and } z\ge 0;\\ -1,&{}\text{ if } x\le 0 \text{ and } z\ge 0;\\ 1,&{}\text{ if } x\ge 0 \text{ and } z<0;\\ -1,&{}\text{ if } x<0 \text{ and } z<0.\\ \end{array} \right. \end{aligned}$$
(7)

The functional \(f(\mathbf{x})\) is responsible for the location of the equilibria. In order to analyze it let us rewrite it as \(f(\mathbf{x})=f_1+f_2\). The functional \(f(\mathbf{x})\) acts on a partition P which is determined by dividing the atoms of a partition G defined by the function \(f_2\). Therefore, first, we consider the function \(f_2=\sum _{i=1}^{m}w_i\), for \(m=1\) it takes the form:

$$\begin{aligned} f_2=w_1=\gamma u(x_1,x_3), \end{aligned}$$
(8)

which generates a partition \(G=\{G_1,G_2\}\) with the switching surface \(\{\mathbf{x}\in \mathbb {R}^3:x_1=0\}\) such that for \(\mathbf{x}\) in \(G_1\), we have \(f_2=-\gamma \), and for \(\mathbf{x}\) in \(G_2\), \(f_2=\gamma \). The partition P is given by dividing the atoms \(G_1\) and \(G_2\) according to the function \(f_1\). The way how the atoms \(G_1\) and \(G_2\) are divided is shown below. Now, let us consider \(m=2\) then

$$\begin{aligned}&w_1=\gamma ^2 u(x_1,x_3), \end{aligned}$$
(9)
$$\begin{aligned}&w_2=\gamma u(x_1-\gamma ^2 u(x_1,x_3),x_3), \end{aligned}$$
(10)
$$\begin{aligned}&f_2=\gamma u(x_1-\gamma ^2 u(x_1,x_3),x_3)+\gamma ^2 u(x_1,x_3).\qquad \end{aligned}$$
(11)

This can be interpreted by parts: first, \(w_1\) generates a partition \(G=\{G_1,G_2\}\) with the switching surface \(\{\mathbf{x}\in \mathbb {R}^3:x_1=0\}\) such that for \(\mathbf{x}\) in \(G_1\), we have \(w_1=-\gamma ^2\) and for \(\mathbf{x}\) in \(G_2\), \(w_1=\gamma ^2\). Then, \(w_2\) generates a partition in \(G_1\) as follows \(G_1=\{G_{11},G_{12}\}\) with the switching surface \(\{\mathbf{x}\in \mathbb {R}^3:x_1=w_1=-\gamma ^2\}\). Also, \(w_2\) generates a partition in \(G_2\) as follows \(G_2=\{G_{21},G_{22}\}\) with the switching surface \(\{\mathbf{x}\in \mathbb {R}^3:x_1=w_1=\gamma ^2\}\). Thus, the location of the switching surfaces along the \(x_1\) axis is \(x_1\in \{-\gamma ^2,0,\gamma ^2\}\). Since \(f_2=w_1+w_2\) it follows that:

$$\begin{aligned} f_2=\left\{ \begin{array}{l@{\quad }l} -\gamma ^2-\gamma &{}\text{ if } {} \mathbf{x}\in G_{11};\\ \gamma ^2+\gamma &{}\text{ if } {} \mathbf{x}\in G_{12};\\ \gamma ^2-\gamma &{}\text{ if } {} \mathbf{x}\in G_{21};\\ \gamma ^2+\gamma &{}\text{ if } {} \mathbf{x}\in G_{22}. \end{array} \right. \end{aligned}$$
(12)

If \(m=3\) then the elements of the partition are doubled as \(G=\{G_{111},G_{112},G_{121},G_{122},\ldots ,G_{221},G_{222}\}\) and since \(f_2=w_1+w_2+w_3\):

$$\begin{aligned} f_2=\left\{ \begin{array}{l@{\quad }l} -\gamma ^3-\gamma ^2-\gamma &{}\text{ if } {} \mathbf{x}\in G_{111};\\ -\gamma ^3-\gamma ^2+\gamma &{}\text{ if } {} \mathbf{x}\in G_{112};\\ -\gamma ^3+\gamma ^2-\gamma &{}\text{ if } {} \mathbf{x}\in G_{121};\\ -\gamma ^3+\gamma ^2+\gamma &{}\text{ if } {} \mathbf{x}\in G_{122};\\ \gamma ^3-\gamma ^2-\gamma &{}\text{ if } {} \mathbf{x}\in G_{211};\\ \gamma ^3-\gamma ^2+\gamma &{}\text{ if } {} \mathbf{x}\in G_{212};\\ \gamma ^3+\gamma ^2-\gamma &{}\text{ if } {} \mathbf{x}\in G_{221};\\ \gamma ^3+\gamma ^2+\gamma &{}\text{ if } {} \mathbf{x}\in G_{222};\\ \end{array} \right. \end{aligned}$$
(13)

while the switching surfaces are located along the \(x_1\) axis as \(x_1\in \{ -\gamma ^3-\gamma ^2,-\gamma ^3+\gamma ^2,0,\gamma ^3-\gamma ^2,\gamma ^3+\gamma ^2 \}\).

Then, one way to see the function \(f_2\) is that for each time that m changes to \(m+1\) the elements of the previous partition are doubled. The number of elements of the partition G is \(2^m\).

It is worth mentioning that each atom of the partition P contains an equilibrium point which is determined by the functional f. Also, the partition P is generated by dividing the atoms of the partition G, then the atoms of the partition P are twice of the atoms of the partition G. Furthermore, the functional f is designed to allow the generation of heteroclinic orbits between a pair of equilibria which are contained in the same atom of the partition G.

Now, let us analyze the term \(f_1\) which can be rewritten as

$$\begin{aligned}&f_1=\alpha u\left( 2(x_1-\sum _{i=1}^{m}w_i)-x_3,\;x_3\right) \nonumber \\&\quad =\alpha u\left( 2(x_1-f_2)-x_3,\;x_3\right) . \end{aligned}$$
(14)

Therefore, \(f_1\) is basically the step function u(xz) with a scaling factor \(\alpha \). The arguments of \(u(x_1,x_3)\) take this form to generate switching surfaces with the orientation required to generate the heteroclinic loops between equilibria in adjacent atoms given by \(P_i\) and \(P_{i+1}\), with \(i=1,3,5,\ldots , 2^{m+1} -1\).

Thus \(f_1\) generates a partition with two elements for each element of the partition generated by \(f_2\). Then the final partition is \(P=\{P_1.\ldots ,P_{2^{m+1}}\}\). In each element of the partition G there is a switching surface of the form \(\{ \mathbf{x}\in \mathbb {R}^3,\epsilon \in \mathbb {R}:2x_1-x_3=\epsilon \}\). Also, the number of equilibria is \(2^{m+1}\) which under appropriate parameter values generates \(2^m\) self-excited attractors. For each pair of self-excited attractors a hidden attractor could emerge as well as for two hidden attractors could emerge a new hidden attractor.

Then, for \(m=1\) there are two self-excited attractors and one hidden attractor, each time m is incremented the attractors (self-excited and hidden) are multiplied by two and a new hidden attractor can emerge. Thus, the total number of hidden attractors is \(2^{m}-1\) and the total number of self excited attractors is \(2^m\). The total number of coexisting attractors is then \(2^m+2^m-1=2^{m+1}-1\).

The equilibria is located along the \(x_1\) axis depending on \(\alpha \), m and \(\gamma \). The equilibria for \(m\in \{1,2,3\}\) is shown in Table 1. Each self-excited attractor oscillates around a pair of equilibria \(\mathbf{x}^*_{\mathrm{eq}_{k}}\) and \(\mathbf{x}^*_{\mathrm{eq}_{k+1}}\), with \(k=1,3,\ldots ,2^{m+1}-1\).

Table 1 Location of the equilibria along the \(x_1\) axist depending on \(m,\alpha \) and \(\gamma \) for \(m\in [1,3]\)

3 Particular cases of nested hidden and self-excited double scroll attractors

To illustrate the approach, consider the simplest case for \(m=1\) along with \(\alpha =1\), \(\gamma =10\), the system presents three attractors, a hidden attractor and two self-excited attractors. In the Fig. 1, two self excited attractors are shown in red and a hidden attractor in blue. The double-scroll self-excited attractors are nested in each scroll of the hidden attractor.

Now in order to illustrate the approach with a more complex case, consider the values \(m=3\), \(\alpha =1\), \(\gamma =10\). The number of attractors is now fifteen, eight self-excited and seven hidden attractors. Projection of the attractors on the \((x_1,x_2)\) plane are presented in the Fig. 2, the self-excited attractors are drawn in black. There are eight double-scroll self-excited attractors and the projection of one of them on the \((x_1,x_2)\) plane is shown in Fig. 2a. A pair of double-scroll self-excited attractors are used to generate a double-scroll hidden attractor. Figure 2b shows the projection of a double-scroll hidden attractor in green which is generated by a pair of self-excited attractors in black. Therefore, the eight double-scroll self-excited attractors generate four double-scroll hidden attractors in green. Each scroll of the green hidden attractor has a self-excited attractor nested. Each pair of green hidden attractors generates a new hidden attractor. Figure 2c shows the projections of three hidden attractors on the \((x_1,x_2)\) plane, the double-scroll hidden attractor in red is generated by two hidden attractors in green. Then, the four green attractors generate two red hidden attractors. Each scroll of the red hidden attractor has a green hidden attractor nested. And so on, the two red hidden attractors generate a larger double-scroll hidden attractor which is drawn in blue in Fig. 2d. Therefore, each scroll of the blue hidden attractor has seven attractors nested, i.e. a red hidden attractor, two green hidden attractors, and four self-excited attractors.

Fig. 1
figure 1

Projection of the three attractors on the \((x_1,x_2)\) plane: Two self-excited attractors (red) and a hidden attractor (blue) exhibited for \(m=1,\alpha =1,\gamma =10\)

Fig. 2
figure 2

In (ac) smaller portions of the projection of the attractors are shown. In (a) a double-scroll self-excited attractor of eight self-excited attractors produced by the proposed construction given by (1), (2), (3) and (4) with \(a=0.2\), \(b=5\), \(c=-3\), \(m=3\), \(\alpha =1\) and \(\gamma =10\) projected on \(x_1-x_2\). In (b) a double-scroll hidden attractor contained two nested double-scroll self-excited attractors, c three hidden attractors and four self-excited attractors, and d fifteen attractors are shown, seven hidden attractors and eight self-excited attractors

Fig. 3
figure 3

Approximation of the basins of attraction of the fifteen attractors produced by the proposed construction given by (1), (2), (3) and (4) with \(a=0.2\), \(b=5\), \(c=-3\), \(m=3\), \(\alpha =1\) and \(\gamma =10\) on the plane \(\{\mathbf{x}\in \mathbb {R}^3:x_3=0\}\), the white region is not part of any basin of attraction and a different color is assigned to each basin of attraction

Table 2 Lyapunov exponents and Kaplan–Yorke dimension of the fifteen attractors produced by the proposed construction given by (1), (2), (3) and (4) with \(a=0.2\), \(b=5\), \(c=-3\), \(m=3\), \(\alpha =1\) and \(\gamma =10\) as well as the diameter of the subset of the basin of attraction numerically

The Lyapunov exponents have been calculated for the fifteen attractors with the Wolf’s algorithm [18] using \(\text{ tanh }(Nx_1)\) approximations, Kaplan–Yorke dimension was also calculated for all the attractors and is presented along the exponents in Table 2.

According to [19] the diameter of a set is defined as follows:

Definition 31

[19] If S is a nonempty subset of \(\mathbb {R}^n\), then

$$\begin{aligned} d(S)=\mathrm{sup}\left\{ |x-y|:x,y\in S \right\} , \end{aligned}$$

is the diameter of S. If \(d(S)<\infty \), S is bounded, if \(d(S)=\infty \), S is unbounded.

Subsets of the basins of attraction at the plane \(\{x\in \mathbb {R}^3:x_3=0 \}\) were numerically estimated for the fifteen attractors and they are shown in the Fig. 3. As shown in the Fig. 3 the basins of attraction of different coexisting attractors occur as disjoint sets in the phase space, this is due to the nested geometry of the attractors. Consider for instance the hidden attractor shown in Fig. 2b in green, its basin of attraction “surround” four equilibrium points, however, the equilibria are not part of it, neither the two self-excited attractors in black. The basin of attraction of each self-excited attractor “surround the two equilibria” but it is also “surrounded” by the basin of attraction of the hidden attractor.

The diameters of the estimated subsets of the basins of attraction are also presented in Table 2.

4 Conclusions

In this work an approach for the generation of multiple hidden attractors is presented, the approach allows the modification of shape and number of attractors via some parameters. The proposed approach could be performed following three steps: First, parameters a, b and c related to the eigenvalues of \(A^\mathbb {C}\) are selected. Second, parameters \(\gamma \) and \(\alpha \) that produce a bistable behavior are found via simulation. In case these were not found, new parameters can be chosen in the first step. Third, the found parameters are used in the appropriate proposed description of the system for the correct value of m according to the desired number of attractors. The new system is then simulated in order to verify the expected behavior as well as perform the characterization of the attractors. The particular cases used to illustrate the construction suggests that the generated attractors, self-excited as well as hidden are indeed chaotic. Even when the approach uses self-excited attractors as a base for the generation of hidden attractors these could be replaced by hidden double scroll attractors as those reported in [14] which would lead to a system without equilibria. The approach could also lead to other designs that exhibit not only double scroll attractors but different number of scrolls or even nested hidden grid attractors. The generation of a multiscroll hidden attractor along several self-excited attractors could be controlled for the use in a multichannel communication scheme or even in the generation of pseudo-random numbers. Also, it seems plausible the modification of the approach to generate a fractal like continuous system where the attractors present self-similarity.