1 Introduction

DC–DC converter is used to convert one level of electrical voltage into another level by switching action [1], and it is a technology in power electronic systems. The buck converter is a step-down converter, and it is used when the input voltage is greater than the desired output voltage. On the other hand, boost converter is a step-down converter, which is used when the input voltage is less than the desired output voltage. The buck and boost converters are always used for computer peripherals, electric vehicle, battery power supplies, power factor correction (PFC) applications and recycled energy [1,2,3,4,5,6]. In recent years, the DC–DC converter has attracted many researchers because it is a main process in the maximum power point tracking systems (MPPT) [7,8,9]. The authors in [10] introduced a dual-input–tri-output DC–DC buck–boost converter with MPPT. Sreekanth et al. [11] provided a single-stage grid-connected high-gain buck–boost inverter with MPPT. Besides coping with the change in input voltage, the converter also must handle the change in the load while providing fast transient response. In recent years, many papers have applied the PID controller, sliding mode controller, and fuzzy neural network to control the DC–DC converters [12,13,14,15]. Kumbhojkar et al. [14] presented a novel sliding mode control technique for DC to DC buck converters. After that, Cheng et al. [15] proposed a model predictive control for DC–DC boost converters. However, most of these controllers did not care about the uncertainty of system, and their control performance can be further improved. Thus, this paper will propose a more efficient controller, an interval type-2 fuzzy CMAC, and apply it to control the DC–DC converters.

The cerebellar model articulation controller (CMAC) proposed by Albus [16] is a type of neural network based on a model of the mammalian cerebellum (associative memory). Compared with other neural networks, the CMAC has some advantages such as the fast learning property, simple computation, and good generalization capability [17]. In recent years, many studies have combined CMACs with other methods to enhance the performance [18,19,20,21,22,23]. Lin and Chen [18] introduced a self-organizing CMAC for a class of MIMO uncertain nonlinear systems. Lin and Li [22] presented a function-link CMAC for the control of antilock braking systems. Wang et al. [23] proposed an interactively recurrent self-evolving fuzzy CMAC model for medical diagnosis applications. However, as same as a type-1 fuzzy system, the CMAC with type-1 membership function cannot handle very well for the uncertainty coming from the internal and external of the system. The type-2 fuzzy sets, which have the ability to cover the uncertainty of the plant, were developed by Zadeh [24]. Since the complex in computation of type-2 fuzzy sets, in 2000, Liang and Mendel proposed the interval type-2 fuzzy logic systems (IT2FLS), which is much simple in computation than the original type-2 fuzzy logic systems [25]. In the literature, many papers reported that IT2FLS is better to handle the uncertainties than interval type-1 fuzzy logic systems (IT1FLS) because of IT2FLS have the uncertainties in the input membership functions, the effect of firing level in calculating the output, and the more design degrees of freedom and more general [26, 27]. By these advantages, in recent years, IT2FLS has attracted many researchers. Zhang [28] provided the trapezoidal interval type-2 fuzzy aggregation operators for group decision making. Mohagheghi et al. [29] introduced a new interval type-2 fuzzy model for the construction industry application. Also Eyoh et al. [30] proposed an interval type-2 intuitionistic fuzzy logic for regression problems. The conventional fuzzy system and CMACs often use a Gaussian function for the membership functions. However, some studies have proven that the wavelet functions have more efficient in learning capability than the conventional Gaussian functions [31, 32]. Therefore, this study uses a type-2 wavelet function as the membership function in the association memory space. The main characteristic of wavelet neural network is the wavelet functions is used as the nonlinear transformation function in the membership function layer, instead of using the usual Gaussian function. The wavelet functions have some advantages than the conventional Gaussian functions such as the time–frequency localization and the decomposition properties. The decomposition properties help the wavelet function to cover the change of input better than the Gaussian function [33]. This study combines the advantages of the CMAC and the type-2 wavelet functions, so the proposed type-2 wavelet CMAC has shown its advantages to achieve better learning performance.

For the past 5 decades, the sliding mode technique has been widely studied and extensively applied in the industrial environment due to its advantages such as conceptual simplicity, easy implementation and less computation cost [34,35,36,37]. In recent years, the sliding mode control has attracted many researchers in control problem. Morkoc et al. [38] proposed the DSP code generation for PMSM using the sliding mode control. After that, Yadegari et al. [39] presented the finite time sliding mode controller for a rigid satellite in presence of actuator failure. Ding and Li [40] proposed the second-order sliding mode controller design subject to mismatched term. The sliding mode technique is especially suitable for dealing with the nonlinear systems with uncertain dynamics and disturbances because of its robust characteristic and order reduction property, which can reduce the concern for determining the exact model parameter [14, 41].

This study proposes a new method, which combines the advantage of the wavelet function, sliding mode function and interval type-2 fuzzy CMAC to improve the performance of the DC–DC converter system. The proposed network is referred to as the type-2 wavelet CMAC (T2WCMAC). By applying the wavelet function, the proposed controller is more efficient in learning capability than using the conventional Gaussian functions. By using the sliding surface, the input dimension can be reduced and the control system can achieve better robust performance for handling uncertainties. The robust compensation controller is also added to dispel approximation error between the T2WCMAC and an ideal controller. In many electrical devices, the robust stability in terms of input voltage and load resistance changes is very important. Therefore, the proposed robust DC–DC converter design can achieve the desired performance. The main contributions of this paper are the following: successfully design the T2WCMAC control system with the parameters been updated by adaptive laws, which are designed using the gradient descent method; successfully apply the wavelet decomposition and sliding surface to improve the system performance; the stability of the control system is guaranteed by the robust compensation controller and was proved by the Lyapunov function; the experimental results are illustrated to show that the proposed control system can effectively achieve the robust control for boost and buck converters under the change in the input voltage and the load resistance.

The rest of this paper is as follows. The problem formulation of DC–DC converters is given in Sect. 2. The design of the T2WCMAC control system is presented in Sect. 3. The experimental results are provided in Sect. 4. Finally, the conclusion is given in Sect. 5.

2 Formulation of DC–DC converters

The circuit of DC–DC converters is shown in Fig. 1 where the buck and boost converters are applied to drop down and put up DC voltage, respectively. These circuits consist of a DC input voltage source (\(V_{\text{in}}\)), a diode (D), a transistor (S), a filter output capacitor (C), a filter inductor (L) and a load resistor (R). The terms \(r_{L}\) and \(r_{C}\) are the internal series resistance of L and C, respectively. The output \(V_{0}\) is the voltage measured on the load resistor. The state equations of the buck and boost DC–DC converters can be denoted as [1].

$$\dot{\varvec{x}} = \varvec{A}_{j} \varvec{x} + \varvec{B}_{j} V_{\text{in}}$$
(1)
$$V_{0} = \varvec{C}_{j} \varvec{x}$$
(2)

where \(\varvec{x} = \left[{\begin{array}{*{20}c} {i_{L}} & {v_{c}} \\ \end{array}} \right]^{\text{T}}\), and the system matrices of the linear circuit are denoted as \(\varvec{A}_{j}\), \(\varvec{B}_{j}\) and \(\varvec{C}_{j}\). The subscript expresses the different operating modes of the converter circuit, where \(j = 1,2\), respectively, stands for the state ON and OFF of the transistor S. The system matrices can be obtained for different operating modes as

Fig. 1
figure 1

The circuit of DC–DC converter. a The buck converter. b The boost converter

buck converter case :

$$\varvec{A}_{1} = \varvec{A}_{2} = \left[{\begin{array}{*{20}c} {- \frac{1}{L}\left({\frac{{Rr_{C}}}{{R + r_{C}}} + r_{L}} \right)} & {- \frac{1}{L}\left({\frac{{Rr_{C}}}{{R + r_{C}}}} \right)} \\ {\frac{1}{C}\left({\frac{{Rr_{C}}}{{R + r_{C}}}} \right)} & {\frac{1}{C}\left({\frac{1}{{R + r_{C}}}} \right)} \\ \end{array}} \right]$$
(3)
$$\varvec{B}_{1} = \left[{\begin{array}{*{20}c} {\frac{1}{L}} \\ 0 \\ \end{array}} \right]\quad \varvec{B}_{2} = \left[{\begin{array}{*{20}c} 0 \\ 0 \\ \end{array}} \right]$$
(4)
$$\varvec{C}_{1} = \varvec{C}_{2} = \left[{\begin{array}{*{20}c} {\frac{{Rr_{C}}}{{R + r_{C}}}} & {\frac{R}{{R + r_{C}}}} \\ \end{array}} \right]$$
(5)

boost converter case :

$$\varvec{A}_{1} = \left[{\begin{array}{*{20}c} {- \frac{{r_{L}}}{L}} & 0 \\ {\frac{{r_{L}}}{C}} & {\frac{1}{C}\left({\frac{1}{{R + r_{C}}}} \right)} \\ \end{array}} \right]$$
(6)
$$\varvec{A}_{2} = \left[{\begin{array}{*{20}c} {- \frac{1}{L}\left({\frac{{Rr_{C}}}{{R + r_{C}}} + r_{L}} \right)} & {- \frac{1}{L}\left({\frac{{Rr_{C}}}{{R + r_{C}}}} \right)} \\ {\frac{1}{C}\left({\frac{{Rr_{C}}}{{R + r_{C}}}} \right)} & {\frac{1}{C}\left({\frac{1}{{R + r_{C}}}} \right)} \\ \end{array}} \right]$$
(7)
$$\varvec{B}_{1} = \varvec{B}_{2} = \left[{\begin{array}{*{20}c} {\frac{1}{L}} \\ 0 \\ \end{array}} \right]$$
(8)
$$\varvec{C}_{1} = \varvec{C}_{2} = \left[{\begin{array}{*{20}c} {\frac{{Rr_{C}}}{{R + r_{C}}}} & {\frac{R}{{R + r_{C}}}} \\ \end{array}} \right]$$
(9)

By applying the state-space averaging method in [42, 43] for analyzing the system, the state equation can be obtained as

$$\dot{\varvec{x}} = \varvec{Ax} + \varvec{B}V_{in}$$
(10)
$$V_{0} = \varvec{Cx}$$
(11)

where \(\varvec{A} = d\varvec{A}_{1} + \left({1 - d} \right)\varvec{A}_{2}, \varvec{B} = d\varvec{B}_{1} + \left({1 - d} \right)\varvec{B}_{2},\varvec{C} = d\varvec{C}_{1} + \left({1 - d} \right)\varvec{C}_{2}\) and d is the switching duty cycle for pulse width modulation (PWM). The goal of the controller is to generate the switching duty cycle \(d\left(t \right)\), such that the output voltage of the converter can follow the desired reference output voltage. The current duty cycle \(d\left(t \right)\) is determined by adding the adjust value \(\delta d\left(t \right)\) to the previous duty cycle \(d\left({t - 1} \right)\) as

$$d\left(t \right) = \delta d\left({t - 1} \right) + \delta d\left(t \right)$$
(12)

The output error voltage is defined as

$$e\left(t \right) = V_{\text{ref}} \left(t \right) - V_{0} \left(t \right)$$
(13)

where \(V_{\text{ref}}\) is the predefined reference output voltage.

3 Design of T2WFCMAC control system

Figure 2 shows the structure of T2WFCMAC control system for DC–DC converters in which the T2WFCMAC is the main controller and a robust controller is designed to achieve robust stability of the system. The design of sliding hyperplane is to guarantee the stability and to improve the robustness of the control system. All the parameters of the control system can be adjusted based on the derived adaptive laws, which are designed in Sect. 3.2.

Fig. 2
figure 2

Block diagram of ST2WCMAC control system

3.1 Interval type-2 wavelet fuzzy CMAC

A novel T2WFCMAC is proposed with the following fuzzy inference rules:

$$\begin{aligned} R^{\lambda} :{\text{If}}\;I_{1} \;{\text{is}}\;\tilde{F}_{1jk} \;{\text{and}}\;I_{2} \;{\text{is}}\;\tilde{F}_{2jk}, \ldots,I_{{n_{i}}} \;{\text{is}}\; \tilde{F}_{{n_{i} jk}} \hfill \\ {\text{Then}}\;o_{jk} = \tilde{w}_{jk} = \left[{\underline{w}_{jk} \bar{w}_{jk}} \right]\;{\text{for}}\;j = 1, 2, \ldots , n_{j},\quad k = 1, 2, \ldots , n_{k} \hfill \\ {\text{and}}\;\lambda = 1, 2, \ldots , n_{l} \hfill \\ \end{aligned}$$
(14)

where \(n_{i}\) is the input dimension, \(n_{j}\) is the number of the layers for each input, \(n_{k}\) is the number of blocks for each layer, \(n_{l} = n_{j} n_{k}\) is the number of the fuzzy rules, \(\tilde{F}_{ijk} = \left[{\bar{f}_{ijk} \underline{f}_{ijk} } \right]\) is the fuzzy set for the ith input, jth layer and kth block, and \(o_{jk}\) is the output weight in the consequent part.

The structure of T2WFCMAC is shown in Fig. 3 which consists of an input space, an association memory space, a receptive-field space, a weight memory space and an output space. The signal propagation and the basic functions in each space are described as follows.

Fig. 3
figure 3

The architecture of the ST2WCMAC controller

  1. 1.

    Input space I: For a given \(\varvec{I} = \left[{I_{1}, I_{2}, \ldots I_{i}, \ldots I_{{n_{i}}}} \right]^{\text{T}} \epsilon {\Re}^{{n_{i}}}\), where \(I_{i}\) represents the ith input and \(n_{i}\) is number of input signals. Each input state variable \(I_{i}\) can be quantized into discrete regions according to a given control space.

  2. 2.

    Association memory space A: In this space, several elements can be accumulated as a block. Each block performs a receptive-field basis function. The type-2 Gaussian membership function (T2GMF) is used as a mother wavelet. Therefore, the interval values of association memory can be given as

    $$\begin{aligned} \bar{f}_{ijk} \left({\bar{F}_{ijk}} \right) = - \bar{F}_{ijk}^{2} exp\left({- \bar{F}_{ijk}^{2}/2} \right)\;{\text{and}}\;\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{f}_{ijk} \left({\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{F}_{ijk}} \right) = - \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{F}_{ijk}^{2} exp\left({- \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{F}_{ijk}^{2}/2} \right) \hfill \\ \quad {\text{for}}\quad i = 1,2, \ldots,n_{i} \quad j = 1,2, \ldots,n_{j} \;{\text{and}}\;k = 1,2, \ldots,n_{k} \hfill \\ \end{aligned}$$
    (15)
    $$\bar{F}_{ijk} = \frac{{I_{i} - m_{ijk}}}{{\bar{\sigma}_{ijk}}}\;{\text{and}}\;\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{F}_{ijk} = \frac{{I_{i} - m_{ijk}}}{{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\sigma}_{ijk}}}$$

    where \(m_{ijk}\) is the mean, \(\bar{\sigma}_{ijk}\) and \(\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\sigma}_{ijk}\) are the upper and lower variance of the kth block in the jth layer corresponding to the ith input variable.

  3. 3.

    Receptive-field space\(\phi\): The multi-dimensional receptive-field function is given as

    $$\begin{aligned} \bar{\phi} & = \left[{\bar{\phi}_{11}, \ldots, \bar{\phi}_{{1n_{k}}}, \ldots,\bar{\phi}_{{n_{j} 1}}, \ldots, \bar{\phi}_{{n_{j} n_{k}}}} \right]^{T} \in {\Re}^{{n_{j} n_{k}}} \\ \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\phi} & = \left[{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\phi}_{11}, \ldots, \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\phi}_{{1n_{k}}}, \ldots,\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\phi}_{{n_{j} 1}}, \ldots, \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\phi}_{{n_{j} n_{k}}}} \right]^{T} \in {\Re}^{{n_{j} n_{k}}} \\ \end{aligned}$$
    (16)

    where

    $$\bar{\phi}_{jk} = \mathop \prod \limits_{i = 1}^{{n_{i}}} \bar{f}_{ijk} \left({\bar{F}_{ijk}} \right) = - \mathop \prod \limits_{i = 1}^{{n_{i}}} \left({\frac{{I_{i} - m_{ijk}}}{{\bar{\sigma}_{ijk}}}} \right)^{2} { \exp }\left({\frac{{- \left({\frac{{I_{i} - m_{ijk}}}{{\bar{\sigma}_{ijk}}}} \right)^{2}}}{2}} \right)$$
    $$\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\phi}_{jk} = \mathop \prod \limits_{i = 1}^{{n_{i}}} \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{f}_{ijk} \left({\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{F}_{ijk}} \right) = - \mathop \prod \limits_{i = 1}^{{n_{i}}} \left({\frac{{I_{i} - m_{ijk}}}{{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\sigma}_{ijk}}}} \right)^{2} { \exp }\left({\frac{{- \left({\frac{{I_{i} - m_{ijk}}}{{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\sigma}_{ijk}}}} \right)^{2}}}{2}} \right)$$
  4. 4.

    Weight memory space W: Each location of the receptive-field is corresponding to a particular adjustable connecting weight memory, and it can be described as

    $$\bar{\varvec{w}} = \left[{\bar{w}_{11}, \ldots, \bar{w}_{{1n_{k}}}, \ldots,\bar{w}_{{n_{j} 1}}, \ldots, \bar{w}_{{n_{j} n_{k}}}} \right]^{\text{T}} \in {\Re}^{{n_{j} n_{k}}}$$
    $$\varvec{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{w}} = \left[{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{w}_{11}, \ldots, \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{w}_{{1n_{k}}}, \ldots,\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{w}_{{n_{j} 1}}, \ldots, \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{w}_{{n_{j} n_{k}}}} \right]^{\text{T}} \in {\Re}^{{n_{j} n_{k}}}$$
    (17)

    where \(w_{jk}\) is the connecting weight value of the output associated with the jth layer and kth block.

  5. 5.

    Output space\(y\): The output of a T2WFCMAC is the algebraic sum of the left output \(y_{\text{l}}\) and right output \(y_{\text{r}}\), which can be calculated by the weight memory space and the receptive-field space. To reduce the computation cost and to speed up the response for real-time control system, the output of T2WFCMAC can be obtained directly without using the Karnik–Mendel algorithm as follows:

    $$u_{{{\text{ST2WCMAC}}}} = \frac{1}{2}\left( {y_{{\text{l}}} + y_{{\text{r}}} } \right) = \frac{1}{2}\left( {\mathop \sum \limits_{{j = 1}}^{{n_{j} }} \mathop \sum \limits_{{k = 1}}^{{n_{k} }} \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{w} _{{jk}} \underline{\phi } _{{jk}} + \mathop \sum \limits_{{j = 1}}^{{n_{j} }} \mathop \sum \limits_{{k = 1}}^{{n_{k} }} \bar{w}_{{jk}} \overline{\phi } _{{jk}} } \right)$$
    (18)

3.2 Adaptive control of interval type-2 wavelet fuzzy CMAC

Assume there exists an optimal controller \(u_{{{\text{T}}2{\text{WFCMAC}}}}^{*}\) to approximate the ideal controller \(\delta d^{*} \left(t \right)\) so that

$$\delta d^{*} \left(t \right) = u_{\text{T2WFCMAC}}^{*} \left({\underline{w}^{*},\bar{w}^{*},m^{*},\underline{\sigma}^{*},\bar{\sigma}^{*},t} \right) + \varepsilon (t)$$
(19)

where \(\varepsilon (t)\) denotes the approximation error between \(\delta d^{*} \left(t \right)\) and \(u_{{{\text{T}}2{\text{WFCMAC}}}}^{*}\), and \(\underline{w}^{*},\bar{w}^{*},m^{*},\underline{\sigma}^{*},\bar{\sigma}^{*}\) are the optimal parameters of \(\underline{w},\bar{w},m,\underline{\sigma},\bar{\sigma},\) respectively. Since the fact that \(u_{{{\text{T}}2{\text{WFCMAC}}}}^{*}\) cannot be obtained, the \(u_{{{\text{T}}2{\text{WFCMAC}}}}^{*}\) can be online estimated by using the estimation controller \(\hat{u}_{{{\text{T}}2{\text{WFCMAC}}}}\). The robust controller \(\hat{u}_{R}\) is designed to deal with the approximation error \(\varepsilon (t)\). Thus, the overall control system can be designed as

$$\delta \hat{d}\left(t \right) = \hat{u}_{{{\text{T}}2{\text{WFCMAC}}}} \left({\hat{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{w}},\hat{\bar{w}},\hat{m},\underline{{\hat{\sigma}}},\hat{\bar{\sigma}},t} \right) + \hat{u}_{R} \left(t \right)$$
(20)

where \(\hat{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{w}},\hat{\bar{w}},\hat{m},\underline{{\hat{\sigma}}},\hat{\bar{\sigma}}\) are the estimation of \(\underline{w}^{*},\bar{w}^{*},m^{*},\underline{\sigma}^{*},\bar{\sigma}^{*}\), respectively.

To fast achieve the robust tracking, a sliding surface s(t) is defined as

$$s\left(t \right) = e^{{\left({n - 1} \right)}} + k_{1} e^{{\left({n - 2} \right)}} + \ldots + k_{n} \mathop \int \limits_{0}^{t} e\left(\tau \right){\text{d}}\tau$$
(21)

Taking the derivative of (21)

$$\dot{s}\left(t \right) = e^{\left(n \right)} + \varvec{K}^{\varvec{T}} \varvec{e}$$
(22)

where \(\varvec{K} = \left[{k_{n}, \ldots, k_{2}, k_{1}} \right]^{T} \in {\Re}^{n}\) is a positive gain vector, and \(\varvec{e}\left(t \right) \triangleq \left[{e\left(t \right), \dot{e}\left(t \right), \ldots,e^{{\left({n - 1} \right)}} \left(t \right)} \right]^{T} \in {\Re}^{n}\) is the system tracking error vector.

From (22), if the suitable value for \(\varvec{K}\) is selected to correspond to a Hurwitz polynomial, then \(\mathop { {\text{lim}}}\nolimits_{k \to \infty} e\left(k \right) = 0\). The Lyapunov function is chosen as \(E\left(t \right) = \frac{1}{2}e^{2} \left(t \right)\). The goal of tuning the parameters is to find the values \(\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\hat{w}},\hat{\bar{w}},\hat{m},\hat{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\sigma}},\hat{\bar{\sigma}}\) such that \(E\left(t \right)\) is minimized and achieves fast convergence. Using the gradient descent method, the parameters of T2WFCMAC can be updated by the following equations:

$$\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\hat{w}}_{jk} \left({t + 1} \right) = \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\hat{w}}_{jk} \left(t \right) - \hat{\eta}_{w} \frac{\partial E\left(t \right)}{{\partial \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\hat{w}}_{jk}}}$$
(23)
$$\hat{\bar{w}}_{jk} \left({t + 1} \right) = \hat{\bar{w}}_{jk} \left(t \right) - \hat{\eta}_{w} \frac{\partial E\left(t \right)}{{\partial \hat{\bar{w}}_{jk}}}$$
(24)
$$\hat{m}_{ijk} \left({k + 1} \right) = \hat{m}_{ijk} \left(k \right) - \hat{\eta}_{m} \frac{\partial E\left(t \right)}{{\partial \hat{m}_{ijk}}}$$
(25)
$$\hat{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\sigma}}_{ijk} \left({k + 1} \right) = \hat{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\sigma}}_{ijk} \left(k \right) - \hat{\eta}_{\sigma} \frac{\partial E\left(t \right)}{{\partial \hat{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\sigma}}_{ijk}}}$$
(26)
$$\hat{\bar{\sigma}}_{ijk} \left({k + 1} \right) = \hat{\bar{\sigma}}_{ijk} \left(k \right) - \hat{\eta}_{\sigma} \frac{\partial E\left(t \right)}{{\partial \hat{\bar{\sigma}}_{ijk}}}$$
(27)

where \(\hat{\eta}_{w, } \hat{\eta}_{m},\hat{\eta}_{\sigma}\) are the learning rates with positive numbers.

Using the chain rule, the derivation terms in (23)–(27) can be given as:

$$\frac{\partial E\left(t \right)}{{\partial \hat{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{w}}_{jk}}} = \frac{\partial E\left(t \right)}{{\partial \hat{u}_{\text{T2WFCMAC}}}}\frac{{\partial \hat{u}_{\text{T2WFCMAC}}}}{{\partial y_{l}}}\frac{{\partial y_{l}}}{{\partial \hat{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{w}}_{jk}}} = - \frac{1}{2}e\left(t \right)\mathop \sum \limits_{j = 1}^{{n_{j}}} \mathop \sum \limits_{k = 1}^{{n_{k}}} \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\phi}_{jk}$$
(28)
$$\frac{\partial E\left(t \right)}{{\partial \hat{\bar{w}}_{jk}}} = \frac{\partial E\left(t \right)}{{\partial \hat{u}_{\text{T2WFCMAC}}}}\frac{{\partial \hat{u}_{\text{T2WFCMAC}}}}{{\partial y_{r}}}\frac{{\partial y_{r}}}{{\partial \hat{\bar{w}}_{jk}}} = - \frac{1}{2}e\left(t \right)\mathop \sum \limits_{j = 1}^{{n_{j}}} \mathop \sum \limits_{k = 1}^{{n_{k}}} \overline{\phi}_{jk}$$
(29)
$$\frac{\partial E\left(t \right)}{{\partial \hat{m}_{ijk}}} = \frac{\partial E\left(t \right)}{{\partial \widehat{u}_{\text{T2WFCMAC}}}}\left({\frac{{\partial \hat{y}_{l}}}{{\partial \underline{\phi}_{jk}}}\frac{{\partial \underline{\phi}_{jk}}}{{\partial \underline{f}_{ijk}}}\frac{{\partial \underline{f}_{ijk}}}{{\partial \hat{m}_{ijk}}} + \frac{{\partial \hat{y}_{r}}}{{\partial \overline{\phi}_{jk}}}\frac{{\partial \overline{\phi}_{jk}}}{{\partial \overline{f}_{ijk}}}\frac{{\partial \overline{f}_{ijk}}}{{\partial \hat{m}_{ijk}}}} \right) = - \frac{1}{2}e\left(t \right)\left({\mathop \sum \limits_{j = 1}^{{n_{j}}} \mathop \sum \limits_{k = 1}^{{n_{k}}} \underline{\phi}_{jk} \underline{w}_{jk} \frac{{\left({1 - \underline{F}_{ijk}^{2}} \right)}}{{I_{i} - \hat{m}_{ijk}}} + \mathop \sum \limits_{j = 1}^{{n_{j}}} \mathop \sum \limits_{k = 1}^{{n_{k}}} \overline{\phi}_{jk} \overline{w}_{jk} \frac{{\left({1 - \overline{F}_{ijk}^{2}} \right)}}{{I_{i} - \hat{m}_{ijk}}}} \right)$$
(30)
$$\frac{\partial E\left(t \right)}{{\partial \hat{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\sigma}}_{ijk}}} = \frac{\partial E\left(t \right)}{{\partial \hat{u}_{\text{T2WFCMAC}}}}\frac{{\partial \hat{y}_{l}}}{{\partial \underline{\phi}_{jk}}}\frac{{\partial \underline{\phi}_{jk}}}{{\partial \underline{f}_{ijk}}}\frac{{\partial \underline{f}_{ijk}}}{{\partial \hat{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\sigma}}_{ijk}}} = - \frac{1}{2}e\left(t \right)\left({\mathop \sum \limits_{j = 1}^{{n_{j}}} \mathop \sum \limits_{k = 1}^{{n_{k}}} \underline{\phi}_{jk} \underline{w}_{jk}} \right)\frac{{\left({1 - \underline{F}_{ijk}^{2}} \right)}}{{\hat{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\sigma}}_{ijk}}}$$
(31)
$$\frac{\partial E\left(t \right)}{{\partial \hat{\bar{\sigma}}_{ijk}}} = \frac{\partial E\left(t \right)}{{\partial \hat{u}_{\text{T2WFCMAC}}}}\frac{{\partial \hat{y}_{r}}}{{\partial \overline{\phi}_{jk}}}\frac{{\partial \overline{\phi}_{jk}}}{{\partial \overline{f}_{ijk}}}\frac{{\partial \overline{f}_{ijk}}}{{\partial \hat{\bar{\sigma}}_{ijk}}} = - \frac{1}{2}e\left(t \right)\left({\mathop \sum \limits_{j = 1}^{{n_{j}}} \mathop \sum \limits_{k = 1}^{{n_{k}}} \overline{\phi}_{jk} \overline{w}_{jk}} \right)\frac{{\left({1 - \overline{F}_{ijk}^{2}} \right)}}{{\hat{\bar{\sigma}}_{ijk}}}$$
(32)

3.3 Robust controller design

The approximation error \(\varepsilon (t\)) is assumed to be bounded by an uncertainty bound \(E\) and \(0 \le \varepsilon \left(t \right) \le E\), where E is a positive constant. However, E cannot be known precisely. Hence, an estimated value \(\hat{E}\left(t \right)\) is used to estimate the unknown bound E. The estimation error of the uncertainty bound can be obtained as

$$\tilde{E}\left(t \right) = E - \hat{E}\left(t \right)$$
(33)

The robust controller \(u_{R} \left(t \right)\), which is used to handle the approximation errors, is chosen as

$$u_{R} \left(t \right) = \hat{E}\left(t \right){\text{sgn}}\left({s\left(t \right)} \right)$$
(34)

where \(\hat{E}\left(t \right)\) can be updated using the adaptive law as

$$\dot{\hat{E}}\left(t \right) = \eta_{D} \left| {s\left(t \right)} \right|$$
(35)

where \(\eta_{D}\) is the learning rate for updating the estimated value \(\hat{E}\left(t \right)\).

After using some straightforward manipulation, the system error can be obtained

$$\dot{s} = \varvec{e}^{\left(n \right)} + \varvec{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{K}}^{T} \varvec{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{e}} = \varepsilon \left(t \right) - u_{R} \left(t \right)$$
(36)

The Lyapunov function is defined as

$$V_{2} \left({s\left(t \right), \tilde{E}\left(t \right)} \right) = \frac{1}{2}s^{2} \left(t \right) + \frac{{\tilde{E}^{2} \left(t \right)}}{{2\eta_{D}}}$$
(37)

Taking the derivative of (37) and using (35) and (36) yield

$$\begin{aligned} \dot{V}_{2} \left({s\left(t \right), \tilde{E}\left(t \right)} \right) & = s\left(t \right)\dot{s}\left(t \right) + \frac{{\tilde{E}\left(t \right)\dot{\tilde{E}}\left(t \right)}}{{\eta_{D}}} \\ & = s\left(t \right)\left({\varepsilon \left(t \right) - u_{R} \left(t \right)} \right) + \frac{{\tilde{E}\left(t \right)\dot{\tilde{E}}\left(t \right)}}{{\eta_{D}}} \\ & = s\left(t \right)\varepsilon \left(t \right) - \hat{E}\left(t \right)\left| {s\left(t \right)} \right| + \frac{{\tilde{E}\left(t \right)\dot{\tilde{E}}\left(t \right)}}{{\eta_{D}}} \\ \end{aligned}$$
(38)

Since E is a positive constant, so from (33) \(\dot{\tilde{E}}\left(t \right) = - \dot{\hat{E}}\left(t \right) is obtained\). Then, (38) can be rewritten as

$$\begin{aligned} \dot{V}_{2} \left({s\left(t \right), \tilde{E}\left(t \right)} \right) & = s\left(t \right)\varepsilon \left(t \right) - \hat{E}\left(t \right)\left| {s\left(t \right)} \right| - \left({E - \hat{E}\left(t \right)} \right)\left| {s\left(t \right)} \right| \\ & = s\left(t \right)\varepsilon \left(t \right) - E\left| {s\left(t \right)} \right| \le \left| {s\left(t \right)} \right|\left| {\varepsilon \left(t \right)} \right| - E\left| {s\left(t \right)} \right| \\ & = - \left| {s\left(t \right)} \right| \left({E - \left| {\varepsilon \left(t \right)} \right|} \right) \le 0 \\ \end{aligned}$$
(39)

Since \(\dot{V}_{2} \left({s\left(t \right), \tilde{E}\left(t \right)} \right)\) is negative semidefinite, that is, \(V_{2} \left({s\left(t \right),\tilde{E}\left(t \right)} \right) \le V\left({s\left(0 \right), \tilde{E}\left(0 \right)} \right)\), it implies s(t) and \(\tilde{E}\left(t \right)\) are bounded. Let the function \(\varOmega \equiv \left({E - \varepsilon \left(t \right)} \right)s \le \left({E - \left| {\varepsilon \left(t \right)} \right|} \right)\left| s \right| \le - \dot{V}_{2} \left({s\left(t \right), \tilde{E}\left(t \right)} \right)\), and integrate \(\varOmega \left(t \right)\) with respect to time, then it is obtained that

$$\mathop \int \limits_{0}^{t}\Omega\left(\tau \right){\text{d}}\tau \le V_{2} \left({s\left(0 \right),\tilde{E}\left(0 \right)} \right) - V_{2} \left({s\left(t \right), \tilde{E}\left(t \right)} \right)$$
(40)

Since \(V_{2} \left({s\left(0 \right), \tilde{E}\left(0 \right)} \right)\) is bounded, and \(V_{2} \left({s\left(t \right), \tilde{E}\left(t \right)} \right)\) is non-increasing and bounded, so it is easy to obtain

\(\mathop {\lim}\limits_{t \to \infty} \mathop \int \nolimits_{0}^{t} \varOmega \left(\tau \right){\text{d}}\tau < \infty.\) Also, \(\dot{\varOmega}\left(\tau \right)\) is bounded, so by Barbalat’s lemma [44], \(\mathop {\lim}\nolimits_{t \to \infty} \varOmega = 0\). That is, \(s\left(t \right) \to 0\) as \(t \to \infty\). As a result, the stability of the T2WFCMAC control system can be guaranteed.

4 Experimental results

The experiment equipment of DC–DC converter system is shown in Fig. 4, which includes a DC–DC converter circuit, a DC source, a PCI control and DAQ card, a load with variable resistance and an oscilloscope. In our experiments, the controller of the DC–DC converter is used to generate the duty cycle of PWM to control the output voltage to follow the desired voltage. (The reference output voltages are set as 20 V for DC–DC buck and 40 V for DC–DC boost converter.) In this design, the input value of the T2WCMAC comes from the sliding hyperplane and its derivative, \(s\left(t \right)\) and \(\dot{s}\left(t \right)\).

Fig. 4
figure 4

Experiment equipment

The experiments are conducted in both modes of DC–DC buck and DC–DC boost converter, and each mode considers two cases as follows: The first case is the nominal case (load resistance is set as R = 100 Ω), and the second case is the variation in the load (changed from 100 Ω to 50 Ω at 300 ms and from 50 Ω to 100 Ω at 600 ms). The switching frequency of the converter is 20 kHz, and the sampling frequency of the controller is 2 kHz. The circuit parameters are chosen as \(R = 100\,\varOmega\), \(L = 500\,{\upmu H}\), \(C = 2200\,{\rm F}\). The PWM uses IC SG1825 to generate the duty cycle, and the generated duty cycle is directly proportional to the analog output of the controller.

For comparison, a PID controller, a fuzzy controller and an interval type-2 fuzzy neural network (IT2FNN) [45] and the proposed T2WCMAC controller are performed for these converters. All the experimental results for the two studies (buck and boost converter) with two cases (nominal and load resistance variation) are shown in Figs. 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 and 20 in which the output voltage is shown in part (a) and the control effort is shown in part (b). The experimental results for the PID controller are shown in Figs. 5 and 13 (for buck), Figs. 6 and 14 (for boost). The results show that, for PID controller, the converters achieve fast response, but still have overshoot. The experimental results for the fuzzy controller are shown in Figs. 7 and 15 (for buck), Figs. 8 and 16 (for boost). These results show that the fuzzy controller can achieve satisfactory regulation performance, and the setting time is smaller than PID controller. The experimental results for the IT2FNN control system are shown in Figs. 9 and 17 (for buck), Figs. 10 and 18 (for boost). These results indicate that the IT2FNN has better regulation performance than PID and fuzzy controllers; however, it still can be further improved. The experimental results for the proposed T2WFCMAC control system are shown in Figs. 11 and 19 (for buck), Figs. 12 and 20 (for boost). From these results, it can be observed that the performance of T2WFCMAC is better than the PID controller, the fuzzy controller, and the IT2FNN controller, because this control does not have any overshoot, and both the rise time and settling time are short. Especially, its response is quick and smooth, so it can quickly respond to the change in load resistance. In the T2WFCMAC control system, the adaptive laws can adjust parameters online, so it can quickly reduce the overshoot and tracking error well. Moreover, the robust controller and sliding mode technique have shown its advantage in covering the uncertainties which come from the load change. Thus, the T2WFCMAC control is highly suitable for the application of DC–DC converters. The comparison results in RMSE for the proposed controller, and the other controllers are shown in Table 1, which also shows the control effectiveness of the proposed T2WCMAC control system.

Fig. 5
figure 5

Experimental results of PID controller for buck converter in nominal case. a The output voltage. b The control effort

Fig. 6
figure 6

Experimental results of PID controller for boost converter in nominal case. a The output voltage. b The control effort

Fig. 7
figure 7

Experimental results of fuzzy controller for buck converter in nominal case. a The output voltage. b The control effort

Fig. 8
figure 8

Experimental results of fuzzy controller for boost converter in nominal case. a The output voltage. b The control effort

Fig. 9
figure 9

Experimental results of IT2FNN controller for buck converter in nominal case. a The output voltage. b The control effort

Fig. 10
figure 10

Experimental results of IT2FNN for boost converter in nominal case. a The output voltage. b The control effort

Fig. 11
figure 11

Experimental results of T2WCMAC controller for buck converter in nominal case. a The output voltage. b The control effort

Fig. 12
figure 12

Experimental results of T2WCMAC for boost converter in nominal case. a The output voltage. b The control effort

Fig. 13
figure 13

Experimental results of PID controller for buck converter with the variation in the load. a The output voltage. b The control effort

Fig. 14
figure 14

Experimental results of PID controller for boost converter with the variation in the load. a The output voltage. b The control effort

Fig. 15
figure 15

Experimental results of fuzzy controller for buck converter with the variation in the load. a The output voltage. b The control effort

Fig. 16
figure 16

Experimental results of fuzzy controller for boost converter with the variation in the load. a The output voltage. b The control effort

Fig. 17
figure 17

Experimental results of IT2FNN for buck converter with the variation in the load. a The output voltage. b The control effort

Fig. 18
figure 18

Experimental results of IT2FNN for boost converter with the variation in the load. a The output voltage. b The control effort

Fig. 19
figure 19

Experimental results of T2WCMAC for buck converter with the variation in the load. a The output voltage. b The control effort

Fig. 20
figure 20

Experimental results of T2WCMAC for boost converter with the variation in the load. a The output voltage. b The control effort

Table 1 Comparison results in RMSE for different control methods

5 Conclusion

This paper has proposed a ST2WCMAC control system for the DC–DC converters, and this control system combines the advantages of the sliding mode, the wavelet function, the type-2 fuzzy system and the CMAC. The proposed control system can be also applied to other nonlinear control systems. The main contributions of this study are: the development of the ST2WCMAC with the adaptive laws for online adjusting parameters; successfully apply the wavelet decomposition and sliding surface to improve the system performance; the stability of the control system is guaranteed and is proved by the Lyapunov function; the experimental results are illustrated to show that the proposed control system can effectively achieve the robust control for DC–DC converters and its performance is better than the other controllers. The applications of this DC–DC converter control system can be used in the personal electronics, the automotive devices, the industrial devices and the communication devices, etc. The limitations of this study are given as follows. The choice of the learning rates of adaptive laws and the feedback gains for sliding surface will significantly affect the control performance, and we use the trial-and-error method to choose these parameters. In the future study, we need to derive the algorithm for automatically adjust these parameters. However, this study only considers the single-input single-output systems, and we should extend it to multi-input multi-output systems.