**1. Introduction**

Dynamical systems that exhibit chaotic behavior have proven to be very useful in science and engineering, for this same reason it is important to look for implementation alternatives that are fast and reliable. FPGAs are a very useful technology for these types of needs, due to their flexibility and the user friendly programming approach.

Since the discovery of systems with chaotic behavior, multiple analysis have been carried out [1–4], and the topic of synchronization of this class of systems has been a highly studied topic during the last 30 years [5]. This is due to the mistaken perception that this class of systems cannot be synchronized due to the complexity of their dynamics. This myth vanished in 1983 thanks to Yamada and Fujisaka [6] where a methodology for the synchronization of two chaotic systems using bidirectional coupling is presented, meanwhile in 1990 Pecora and Carroll [7] proposed the synchronization of the drive and response systems with different initial conditions. Since then, a wide series of alternative methodologies for the synchronization of chaotic systems have been developed [8–16] and thanks to this methodologies, a vast quantity of possible applications have been found in science and engineering, from physics [17,18], optics [19,20], biology [21–23], chemistry [24,25] and specially in the branch of secure communications [26–28].

A wide variety of chaotic systems have been implemented in circuits [29–33], this class of circuit implementations have certain disadvantages, such as the fact that they need very large changes in case the system wants to be modified. FPGAs have shown grea<sup>t</sup> flexibility in this regard [34–36] and although the original system changes, the only significant change is the reprogramming of the FPGA, which represents a grea<sup>t</sup> advantage when working on prototyping of new applications, a situation that represents cost savings and implementation times.

The aim of this work is to generalize a master–slave synchronization methodology in order to synchronize two chaotic systems with heterogeneous dynamics, which means that the master system and the slave system do not need to present the same behavior through time and it is not necessary that they are defined in the same number of parts, for example, the master system can be a system defined as a piecewise system, with *n* parts, while the slave system can be defined in a single part, with a single domain. In addition to this, the implementation of the most representative synchronization scheme is carried out in an FPGA, which allows these schemes to be used in multiple different applications.

The rest of this work is divided in the following way: in Section 2 the systems with which we will work are presented and a brief description of them is given; in Section 3, four different synchronization schemes are presented, including the methodology; in Section 4 the implementation of one of the schemes in an FPGA is presented and the results obtained are shown; finally, in Section 5 the conclusions are presented.

## **2. Preliminaries**

This section presents in a non exhaustive way the dynamical systems that will be used in the rest of the paper.

#### *2.1. The Generalized Lorenz System*

Consider the generalized Lorenz system (GLS) defined in [37] as

$$\dot{\mathbf{x}} = \begin{pmatrix} a\_{11} & a\_{12} & 0 \\ a\_{21} & a\_{22} & 0 \\ 0 & 0 & a\_{33} \end{pmatrix} \mathbf{x} + \mathbf{x}\_1 \begin{pmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{pmatrix} \mathbf{x}\_\prime \tag{1}$$

where *x* = (*<sup>x</sup>*1, *x*2, *<sup>x</sup>*3)*<sup>T</sup>*. Four typical chaotic systems can be specified from (1): (*i*) Classical Lorenz system with *a*12 = −*a*11 = *a*, *a*21 = *c*, *a*22 = −1 and *a*33 = −*b*; (*ii*) Chen system with *a*12 = −*a*11 = *a*, *a*21 = *c* − *a*, *a*22 = *c* and *a*33 = −*b*; (*iii*) Lü system using *a*12 = −*a*11 = *a*, *a*21 = 0, *a*22 = *c* and *a*33 = −*b*; (*iv*) Unified chaotic system with *a*12 = −*a*11 = 25 + *η*, *a*21 = 28 − 35*η*, *a*22 = 29*η* − 1 and *a*33 = −8+*η*3 , where *a*, *b*, *c* ∈ R<sup>+</sup> and *η* ∈ [0, 1].

#### *2.2. Unstable Dissipative Systems*

Now consider a unstable dissipative system (UDS) defined in [38] as

$$
\dot{\chi} = A\chi + B,\tag{2}
$$

where *χ* = (*<sup>χ</sup>*1, *χ*2, *<sup>χ</sup>*3)*<sup>T</sup>*, *A* = (*<sup>α</sup>ij*)<sup>3</sup>*j*=<sup>1</sup> and *B* contains the switching law of the form

$$B = \begin{cases} B\_1 & \text{if } & \chi \in D\_{1\prime} \\ B\_2 & \text{if } & \chi \in D\_{2\prime} \\ \vdots & \vdots & \vdots \\ B\_k & \text{if } & \chi \in D\_{k\prime} \end{cases} \tag{3}$$

with *Bk* = (*bk*1, *bk*2, *bk*3)*<sup>T</sup>*. It is possible to define two types of UDS, and two types of correspond equilibria.

**Definition 1** (Campos-Cantón et al. [39])**.** *A system given by* (2) *with eigenvalues λi, i* = 1, 2, 3*, satisfying* ∑<sup>3</sup>*i*=<sup>1</sup> *λi* < 0*. Then, the system is said to be:*


For the equilibria, their two types are defined accordingly. In Definition 1, item (*i*) implies that the UDS Type I is dissipative in one of its components but oscillatory unstable in the other two, while item (*ii*) implies that an UDS Type II is dissipative and oscillatory in two of their components but unstable in the other one. Some chaotic dynamical systems may relate to these two types of UDS around equlibria, systems as the ones in [29,40–42] can be characterized through a combination of UDS Type I and Type II.

#### **3. Synchronization Scheme**

The synchronization scheme diagram is depicted the Figure 1. The output *X* of the master FPGA is the input of the slave FPGA, the controller takes this input *X* and the output *Y* of the slave system inside of the slave FPGA and compensates the slave system output, which means that lim*t*→∞|*Y* − *X*| = 0.

**Figure 1.** Synchronization scheme diagram.

The rest of this Section presents four master–slave synchronization schemes.

#### *3.1. Master UDS–Slave GLS*

Consider the master system as

$$
\dot{\chi} = \begin{pmatrix} a\_{11} & a\_{12} & a\_{13} \\ a\_{21} & a\_{22} & a\_{23} \\ a\_{31} & a\_{32} & a\_{33} \end{pmatrix} \chi + \begin{pmatrix} b\_{k\_1} \\ b\_{k\_2} \\ b\_{k\_3} \end{pmatrix} \tag{4}
$$

while the slave system is defined as

$$
\dot{\mathbf{x}} = \begin{pmatrix} a\_{11} & a\_{12} & 0 \\ a\_{21} & a\_{22} & 0 \\ 0 & 0 & a\_{33} \end{pmatrix} \mathbf{x} + \mathbf{x}\_1 \begin{pmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{pmatrix} \mathbf{x} + \mathbf{u}\_\prime \tag{5}
$$

where *u* = (*<sup>u</sup>*1, *u*2, *<sup>u</sup>*3)*<sup>T</sup>*. The error vector is defined as *e* = *x* − *χ*, and is possible to obtain

$$\dot{e} = \begin{pmatrix} a\_{11} & a\_{12} & 0 \\ a\_{21} & a\_{22} & 0 \\ 0 & 0 & a\_{33} \end{pmatrix} \mathbf{x} + \mathbf{x}\_1 \begin{pmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{pmatrix} \mathbf{x} - \begin{pmatrix} a\_{11} & a\_{12} & a\_{13} \\ a\_{21} & a\_{22} & a\_{23} \\ a\_{31} & a\_{32} & a\_{33} \end{pmatrix} \boldsymbol{\chi} - \begin{pmatrix} b\_{k1} \\ b\_{k2} \\ b\_{k3} \end{pmatrix} + \boldsymbol{u}.\tag{6}$$

In order to stabilize the error system, the proposed Lyapunov function is

$$V = \frac{1}{2} \left( e\_1^2 + e\_2^2 + e\_3^2 \right),$$

whose derivative is ˙

$$\begin{array}{ll} V = & e\_1 \left( a\_{11} \mathbf{x}\_1 + a\_{12} \mathbf{x}\_2 - a\_{11} \boldsymbol{\chi}\_1 - a\_{12} \boldsymbol{\chi}\_2 - a\_{13} \boldsymbol{\chi}\_3 - b\_{k1} + \boldsymbol{\mu}\_1 \right) + e\_2 \left( a\_{21} \mathbf{x}\_1 + a\_{22} \mathbf{x}\_2 - \mathbf{x}\_1 \mathbf{x}\_3 - b\_{k2} \boldsymbol{\chi}\_2 - b\_{k2} \boldsymbol{\chi}\_3 - b\_{k3} \boldsymbol{\chi}\_1 - b\_{k3} \boldsymbol{\chi}\_2 - a\_{k3} \boldsymbol{\chi}\_3 - b\_{k3} \boldsymbol{\chi}\_1 - b\_{k4} \boldsymbol{\chi}\_2 - a\_{k3} \boldsymbol{\chi}\_3 \right) \\ & - a\_{21} \boldsymbol{\chi}\_1 - a\_{22} \boldsymbol{\chi}\_2 - a\_{23} \boldsymbol{\chi}\_3 - b\_{k2} + \boldsymbol{\mu}\_2 \big) + e\_3 \left( a\_{33} \mathbf{x}\_3 + \mathbf{x}\_1 \mathbf{x}\_2 - a\_{31} \boldsymbol{\chi}\_1 - a\_{32} \boldsymbol{\chi}\_2 - a\_{33} \boldsymbol{\chi}\_3 \right) \\ & - b\_{k3} + \boldsymbol{\mu}\_3 \big) \end{array} \tag{8}$$

which allows to design the control law *u* as

$$u = -Pe - \begin{pmatrix} a\_{11} & a\_{12} & a\_{13} \\ a\_{21} & a\_{22} & a\_{23} \\ a\_{31} & a\_{32} & a\_{33} \end{pmatrix} \chi - \begin{pmatrix} b\_{k1} \\ b\_{k2} \\ b\_{k3} \end{pmatrix} + \begin{pmatrix} a\_{11} & a\_{12} & 0 \\ a\_{21} & a\_{22} & 0 \\ 0 & 0 & a\_{33} \end{pmatrix} \chi + \chi\_1 \begin{pmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{pmatrix} \chi,\tag{9}$$

where *e* = (*<sup>e</sup>*1,*e*2,*e*3)*<sup>T</sup>* is the error vector, and *P* = *P<sup>T</sup>* = diag{*p*21, *p*22, *p*23} is a diagonal matrix of parameters selected to ensure negativeness of (8).

#### *3.2. Master GLS–Slave UDS*

For this scheme the master system is considered as

$$
\dot{\mathbf{x}} = \begin{pmatrix} a\_{11} & a\_{12} & 0 \\ a\_{12} & a\_{22} & 0 \\ 0 & 0 & a\_{33} \end{pmatrix} \mathbf{x} + \mathbf{x}\_1 \begin{pmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{pmatrix} \mathbf{x}\_\prime \tag{10}
$$

while the slave system is

$$
\chi = \begin{pmatrix} a\_{11} & a\_{12} & a\_{13} \\ a\_{21} & a\_{22} & a\_{23} \\ a\_{31} & a\_{32} & a\_{33} \end{pmatrix} \chi + \begin{pmatrix} b\_{k1} \\ b\_{k2} \\ b\_{k3} \end{pmatrix} + u. \tag{11}
$$

The error vector is defined as *e* = *χ* − *x*, consequently the error dynamics are represented by

$$\boldsymbol{\varepsilon} = \begin{pmatrix} a\_{11} & a\_{12} & a\_{13} \\ a\_{21} & a\_{22} & a\_{23} \\ a\_{31} & a\_{32} & a\_{33} \end{pmatrix} \boldsymbol{\chi} + \begin{pmatrix} b\_{k1} \\ b\_{k2} \\ b\_{k3} \end{pmatrix} - \begin{pmatrix} a\_{11} & a\_{12} & 0 \\ a\_{12} & a\_{22} & 0 \\ 0 & 0 & a\_{33} \end{pmatrix} \boldsymbol{\chi} - \boldsymbol{x}\_{1} \begin{pmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{pmatrix} \boldsymbol{x} + \boldsymbol{u} . \tag{12}$$

Similarly to the previous scheme, the proposed Lyapunov function is

$$V = \frac{1}{2} \left( e\_1^2 + e\_2^2 + e\_3^2 \right),$$

while in this scheme the derivative results in

$$\begin{array}{l} \mathcal{W} = & \mathbf{e}\_{1} \left( a\_{11} \chi\_{1} + a\_{12} \chi\_{2} + a\_{13} \chi\_{3} + b\_{\mathbf{k}1} - a\_{11} \mathbf{x}\_{1} - a\_{12} \mathbf{x}\_{2} + \mathbf{u}\_{1} \right) + \mathbf{e}\_{2} \left( a\_{21} \chi\_{1} + a\_{22} \chi\_{2} + a\_{23} \chi\_{3} + a\_{24} \chi\_{3} + a\_{34} \chi\_{4} + a\_{35} \chi\_{5} + a\_{56} \chi\_{6} + a\_{67} \chi\_{7} + a\_{68} \chi\_{8} + a\_{69} \chi\_{8} + a\_{6,10} \chi\_{10} + a\_{1,1} \chi\_{10} + a\_{1,2} \chi\_{2} + a\_{2,3} \chi\_{3} + a\_{35} \chi\_{4} + a\_{36} \chi\_{5} + a\_{6,21} \chi\_{10} + a\_{1,3} \chi\_{2} + a\_{2,2} \chi\_{3} + a\_{35} \chi\_{10} + a\_{36} \chi\_{2} + a\_{37} \chi\_{3} + a\_{38} \chi\_{4} + a\_{39} \chi\_{5} + a\_{39} \chi\_{6} + a\_{39} \chi\_{7} + a\_{38} \chi\_{8} + a\_{39} \chi\_{8} + a\_{39} \chi\_{9} + a\_{38} \chi\_{10} + a\_{39} \chi\_{2} + a\_{39} \chi\_{3} + a\_{39} \chi\_{4} + a\_{31} \chi\_{5} + a\_{3,4} \chi\_{5} + a\_{3,5} \chi\_{6} + a\_{3,6} \chi\_{7} + a\_{3,6} \chi\_{8} + a\_{3,4} \chi\_{9} + a\_{3$$

Under the before considerations, the proposed control law is

$$u = -Pe - \begin{pmatrix} a\_{11} & a\_{12} & a\_{13} \\ a\_{21} & a\_{22} & a\_{23} \\ a\_{31} & a\_{32} & a\_{33} \end{pmatrix} \chi - \begin{pmatrix} b\_{k1} \\ b\_{k2} \\ b\_{k3} \end{pmatrix} + \begin{pmatrix} a\_{11} & a\_{12} & 0 \\ a\_{12} & a\_{22} & 0 \\ 0 & 0 & a\_{33} \end{pmatrix} \chi + \chi\_1 \begin{pmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{pmatrix} \chi,\tag{15}$$

where, in the same form as before *P* = *P<sup>T</sup>* = diag{*p*21, *p*22, *p*23} is a matrix of parameters selected to ensure the negativeness of (14).

#### *3.3. Master GLS–Slave GLS*

The master system for this synchronization scheme is

$$
\dot{\mathbf{x}} = \begin{pmatrix} a\_{11} & a\_{12} & 0 \\ a\_{21} & a\_{22} & 0 \\ 0 & 0 & a\_{33} \end{pmatrix} \mathbf{x} + \mathbf{x}\_1 \begin{pmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{pmatrix} \mathbf{x}, \tag{16}
$$

However, in this scheme the slave system is defined as

$$
\dot{y} = \begin{pmatrix} b\_{11} & b\_{12} & 0 \\ b\_{21} & b\_{22} & 0 \\ 0 & 0 & b\_{33} \end{pmatrix} y + y\_1 \begin{pmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{pmatrix} y + u\_\prime \tag{17}
$$

Once again, *u* = (*<sup>u</sup>*1, *u*2, *<sup>u</sup>*3)*<sup>T</sup>* is the controller. The error is defined as *e* = *y* − *x*, and its dynamics is given by

$$\dot{e} = \begin{pmatrix} b\_{11} & b\_{12} & 0 \\ b\_{21} & b\_{22} & 0 \\ 0 & 0 & b\_{33} \end{pmatrix} y - \begin{pmatrix} a\_{11} & a\_{12} & 0 \\ a\_{21} & a\_{22} & 0 \\ 0 & 0 & a\_{33} \end{pmatrix} x + \begin{pmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{pmatrix} (y\_{1}y - x\_{1}x) + u. \tag{18}$$

In order to stabilize the error dynamics, the proposed Lyapunov function is

$$V = \frac{1}{2} \left( e\_1^2 + e\_2^2 + e\_3^2 \right),\tag{19}$$

where the derivative is

$$\begin{array}{ll} \dot{V} = & e\_1 \left( b\_{11} y\_1 + b\_{12} y\_2 - a\_{11} \mathbf{x}\_1 - a\_{12} \mathbf{x}\_2 + u\_1 \right) + e\_2 \left( b\_{21} y\_1 + b\_{22} y\_2 - a\_{21} \mathbf{x}\_1 - a\_{22} \mathbf{x}\_2 - y\_1 y\_3 \\ + \mathbf{x}\_1 \mathbf{x}\_3 + u\_2 \right) + e\_3 \left( b\_{33} y\_3 - a\_{33} \mathbf{x}\_3 + y\_1 y\_2 - \mathbf{x}\_1 \mathbf{x}\_2 + u\_3 \right), \end{array} \tag{20}$$

which allows to design the controll law *u* as

$$u = -Pe - \begin{pmatrix} b\_{11} & b\_{12} & 0 \\ b\_{21} & b\_{22} & 0 \\ 0 & 0 & b\_{33} \end{pmatrix} y + \begin{pmatrix} a\_{11} & a\_{12} & 0 \\ a\_{21} & a\_{22} & 0 \\ 0 & 0 & a\_{33} \end{pmatrix} x - \begin{pmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{pmatrix} (y\_1 y - x\_1 x) \tag{21}$$

#### *3.4. Master UDS–Slave UDS*

Finally, the master system for this scheme is

$$
\dot{\chi} = \begin{pmatrix} a\_{11} & a\_{12} & a\_{13} \\ a\_{21} & a\_{22} & a\_{23} \\ a\_{31} & a\_{32} & a\_{33} \end{pmatrix} \chi + \begin{pmatrix} b\_{k1} \\ b\_{k2} \\ b\_{k3} \end{pmatrix} \tag{22}
$$

and the slave system is of the form

$$
\Phi = \begin{pmatrix}
\beta\_{11} & \beta\_{12} & \beta\_{13} \\
\beta\_{21} & \beta\_{22} & \beta\_{23} \\
\beta\_{31} & \beta\_{32} & \beta\_{33}
\end{pmatrix} \\
\Phi + \begin{pmatrix}
c\_{k1} \\
c\_{k2} \\
c\_{k3}
\end{pmatrix} + u. \tag{23}
$$

The dynamics of the error *ϕ* − *χ* is given by

$$
\boldsymbol{\varepsilon} = \begin{pmatrix} \beta\_{11} & \beta\_{12} & \beta\_{13} \\ \beta\_{21} & \beta\_{22} & \beta\_{23} \\ \beta\_{31} & \beta\_{32} & \beta\_{33} \end{pmatrix} \boldsymbol{\varrho} - \begin{pmatrix} a\_{11} & a\_{12} & a\_{13} \\ a\_{21} & a\_{22} & a\_{23} \\ a\_{31} & a\_{32} & a\_{33} \end{pmatrix} \boldsymbol{\chi} + \begin{pmatrix} c\_{k1} \\ c\_{k2} \\ c\_{k3} \end{pmatrix} - \begin{pmatrix} b\_{k1} \\ b\_{k2} \\ b\_{k3} \end{pmatrix} + \boldsymbol{u},
\tag{24}
$$

and once again, the proposed Lyapunov function is

$$V = \frac{1}{2} \left( e\_1^2 + e\_2^2 + e\_3^2 \right),\tag{25}$$

with derivative

$$\begin{array}{llll}\mathcal{V} &=& \mathfrak{e}\_{1} \left( \mathfrak{f}\_{11} \mathfrak{q}\_{1} + \mathfrak{f}\_{12} \mathfrak{q}\_{2} + \mathfrak{f}\_{13} \mathfrak{q}\_{3} - \mathfrak{a}\_{11} \chi\_{1} - \mathfrak{a}\_{12} \chi\_{2} - \mathfrak{a}\_{13} \chi\_{3} + \mathfrak{c}\_{k1} - \mathfrak{b}\_{k1} + \mathfrak{u}\_{1} \right) + \mathfrak{e}\_{2} \left( \mathfrak{f}\_{21} \mathfrak{q}\_{1} \\ &+& \mathfrak{f}\_{22} \mathfrak{q}\_{2} + \mathfrak{f}\_{23} \mathfrak{q}\_{3} - \mathfrak{a}\_{21} \chi\_{1} - \mathfrak{a}\_{22} \chi\_{2} - \mathfrak{a}\_{23} \chi\_{3} + \mathfrak{c}\_{k2} - \mathfrak{b}\_{k2} + \mathfrak{u}\_{2} \right) + \mathfrak{e}\_{3} \left( \mathfrak{f}\_{31} \mathfrak{q}\_{1} + \mathfrak{f}\_{32} \mathfrak{q}\_{2} \\ &+& \mathfrak{f}\_{33} \mathfrak{q}\_{3} - \mathfrak{a}\_{31} \chi\_{1} - \mathfrak{a}\_{32} \chi\_{2} - \mathfrak{a}\_{33} \chi\_{3} + \mathfrak{c}\_{k3} - \mathfrak{b}\_{k3} + \mathfrak{u}\_{3} \right). \end{array} \tag{26}$$

Consequently, the proposed control law is

$$u = -Pe - \begin{pmatrix} \beta\_{11} & \beta\_{12} & \beta\_{13} \\ \beta\_{21} & \beta\_{22} & \beta\_{23} \\ \beta\_{31} & \beta\_{32} & \beta\_{33} \end{pmatrix} \boldsymbol{\varrho} + \begin{pmatrix} a\_{11} & a\_{12} & a\_{13} \\ a\_{21} & a\_{22} & a\_{23} \\ a\_{31} & a\_{32} & a\_{33} \end{pmatrix} \boldsymbol{\chi} - \begin{pmatrix} c\_{k1} \\ c\_{k2} \\ c\_{k3} \end{pmatrix} + \begin{pmatrix} b\_{k1} \\ b\_{k2} \\ b\_{k3} \end{pmatrix} . \tag{27}$$

## **4. Results**

For the implementation of the synchronization scheme, the selected piecewise UDS given in [43] presents a four scrolls attractor and it is defined as

$$
\dot{\chi} = \begin{pmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ -35.139 & -8.23 & -3.7 \end{pmatrix} \chi + \begin{pmatrix} 0 \\ 0 \\ B\_k \end{pmatrix} \tag{28}
$$

where *Bk* is given by

$$B\_k = \begin{cases} 21.0834 & \text{if } & \chi\_1 > 0.5, \\ 14.055 & \text{if } & 0.3 < \chi\_1 \le 0.5, \\ 7.0278 & \text{if } & 0.1 < \chi\_1 \le 0.3, \\ 0 & \text{if } & \chi\_1 \le 0.1, \end{cases} \tag{29}$$

and the slave system is

$$
\dot{\mathbf{x}} = \begin{pmatrix} -16 & 16 & 0 \\ 45.6 & -1 & 0 \\ 0 & 0 & -4 \end{pmatrix} \mathbf{x} + \mathbf{x}\_1 \begin{pmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{pmatrix} \mathbf{x} + \mathbf{u}.\tag{30}
$$

Using the synchronization scheme described in the Section 3.1, the control law is defined as

$$u = -Pe - \begin{pmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ -35.139 & -8.23 & -3.7 \end{pmatrix} \chi - \begin{pmatrix} 0 \\ 0 \\ B\_k \end{pmatrix} + \begin{pmatrix} -16 & 16 & 0 \\ 45.6 & -1 & 0 \\ 0 & 0 & -4 \end{pmatrix} \chi + \mathbf{x}\_1 \begin{pmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{pmatrix} \mathbf{x}\_1 \text{ (31)}$$

which will be implemented in a SPARTAN–3AN FPGA Starter Kit board from Xilinx, the general scheme can be appreciated in the Figure 2. It can be seen that in (**a**) the SPARTAN–3AN starter kit board in which the master system is implemented; in (**b**) the slave system is implemented with the control law (31); in (**c**) the Digital to Analog Converter (DAC) can be observed and in (**d**) the output data is acquired.

**Figure 2.** Synchronization scheme using two SPARTAN–3AN starter kit boards: (**a**) Master system. (**b**) Slave system. (**c**) DAC. (**d**) Data acquisition.

In order to implement the synchronization scheme in the SPARTAN–3AN starter kit, the Simulink® toolbox: Xilinx System Generator was used. In the Figure 3 can be observed the classical Lorenz system without any kind of control, implemented in Simulink® using this toolbox as example.

**Figure 3.** Classical Lorenz system implemented in Simulink® using the Xilinx System Generator toolbox.

When implementing the master system in the FPGA, it is possible to acquire the output signal using the DAC from the National Instruments module NI–6211. With this is possible to obtain the plane projections (*<sup>χ</sup>*1, *<sup>χ</sup>*2) and *χ*1,2 vs *t*, this can be appreciated in the Figure 4. This is also applicable to the projection on the plane (*χ*1, *χ*3), as can be seen in the Figure 5. The projections (*χ*2, *χ*3) are shown in the Figure 6, and the FPGA resources utilized by the master system is presented in Table 1.

**Figure 4.** Acquired data from the master system: (**a**) Projection on the plane (*χ*1, *χ*2). (**b**) *χ*1,2 vs *t*.

**Figure 5.** Acquired data from the master system: (**a**) Projection on the plane (*χ*1, *χ*3). (**b**) *χ*1,3 vs *t*.

**Figure 6.** Acquired data from the master system: (**a**) Projection on the plane (*χ*2, *χ*3). (**b**) *χ*3,3 vs *t*.


**Table 1.** FPGA utilization summary for the master 4–scrolls UDS.

For the uncontrolled slave system, both of the projections on the planes (*<sup>x</sup>*1, *<sup>x</sup>*2) and (*<sup>x</sup>*1, *<sup>x</sup>*3) were obtained and they can be seen in Figure 7. The projections on the plane (*<sup>x</sup>*2, *<sup>x</sup>*3) are depicted in Figure 8. It is important to highlight that the slave system arises a two-scroll attractor while the master system presents four scrolls. Consequently, once implemented the control law, the slave system will change its dynamics undergoing a four-scroll attractor behavior with the shape of the master systems's phase portrait. The FPGA utilization summary for the slave system is presented in Table 2.

**Figure 7.** Acquired data from the uncontrolled slave system: (**a**) Projection on the plane (*<sup>x</sup>*1, *x*2). (**b**) Projection on the plane (*<sup>x</sup>*1, *x*3).

**Figure 8.** Projection on the plane (*<sup>x</sup>*1, *x*2) for the uncontrolled slave system.


**Table 2.** FPGA utilization summary for the uncontrolled Lorenz slave system.

For the synchronized slave system, both of the projections on the planes (*<sup>x</sup>*1, *<sup>x</sup>*2) and (*<sup>x</sup>*1, *<sup>x</sup>*3) were obtained and they can be observed in the Figure 9. The projections on the plane (*<sup>x</sup>*2, *<sup>x</sup>*3) are depicted in the Figure 10. It is easy to see that the two-scroll slave system in fact adopted the master system behavior presenting four scrolls. The resource utilization of the FPGA is shown in the Table 3, the utilization increases compared with the master and the uncontrolled slave, this is due to the integration of the controller *u*. This proves that in a low cost, entry-level FPGA like the SPARTAN–3AN the system are possible to implement by taking in consideration that the utilization of the FPGA exceeds the 60% of the resources. For the MULTI18X18IOs of the system the utilization is 100%, this problem can be avoided by implementing the synchronization scheme in a more powerful FPGA.

**Figure 9.** Acquired data from the slave system: (**a**) Projection on the plane (*<sup>x</sup>*1, *x*2). (**b**) Projection on the plane (*<sup>x</sup>*1, *x*3).

**Figure 10.** Projection on the plane (*<sup>x</sup>*1, *x*2) for the slave system.


**Table 3.** FPGA utilization summary for the controlled Lorenz slave system.
