1 Introduction

Space Robotic Manipulators (SRM) play a crucial role for various on-orbit missions such as debris removal, object inspection, maintenance, and assembly of space structures [1,2,3,4,5]. To successfully perform such space missions, the motion of SRMs should be well controlled so that the End-Effector (EE) and all the joints can track their reference trajectories accurately. Moreover, SRMs should be always performed in the given workspace for safety concerns, which requires the system states including the tracking error and the error velocity of each joint to be always constrained within their pre-defined boundaries.

Over the past decades, many efforts have been made on controlling the motion of SRMs. The early developed controllers of SRMs always required either the accurate model or the linearizable model [6,7,8]. For example, Authors in [8] proposed a Proportional Derivative (PD) controller based on the accurate and linearized model of SRM with multiple Control Momentum Gyros (CMGs). Later, many adaptive controllers [9,10,11,12] and robust controllers [13,14,15] were designed to handle the system uncertainty, disturbance, and nonlinearity. Additionally, many works showed the interest on improving the transient performance by achieving a finite time convergence of tracking errors, known as Finite Time Control [16,17,18,19,20]. To detail a few, authors of [16] developed a Radial Bias Function (RBF) neural network based continuous sliding mode controller for SRMs under actuator saturation to achieve a finite time convergence of tracking errors. In [18], a novel finite-time Dynamic Surface Control (DSC) scheme was proposed for SRMs, which can not only guarantee the tracking error to converge within a finite time but also efficiently attenuate the actuator saturation. However, those control schemes can only achieve the settling time dependent on the initial system state, which cannot guarantee a settling time pre-defined by users.

Recently, Fixed Time Control (FTC) has been popular since the concept of fixed time stability was introduced by Polyakov in [21]. FTC approaches can achieve a settling time that is independent of initial conditions and only affected by the pre-defined coefficients of controller, which shows a significant superiority to Finite Time Control. In [22], an Extreme Learning Machine (ELM) based non-singular fixed time sliding mode control scheme was proposed to control robotic manipulator systems, wherein the novel sliding manifold achieved a faster converging rate of tracking errors compared to the conventional FTC counterparts such as [23, 24]. Authors of [25] presented an adaptive singularity-free fixed time control scheme for the attitude regulation of rigid spacecraft. The novel sliding manifold is singularity free without the need to switch the manifold around the equilibrium of tracking errors, which showed a superiority to other FTC approaches such as [26,27,28]. Authors in [29] designed a class of general non-singular terminal fixed time sliding mode control scheme, and then applied it on a dual-arm free floating SRM to achieve the global predefined time stability.

On top of that, it is a high priority for SRMs to guarantee the constrained system states to have a safe operation. For example, the tracking errors of a SRM servicing a target spacecraft should not exceed the given range to avoid hitting the body of the target, while the angular rate of the joints should not exceed the maximum rate allowed by the actuation motors. Many researchers have paid attention to the state constraint control. To mention a few, authors in [30] proposed an adaptive neural network controller for robotic systems subject to actuator saturation and time-varying delay, which utilized a Tan-type Barrier Lyapunov Function (BLF) to realize the semi-globally uniformly ultimately bounded tracking errors with the asymmetrically constrained states. In [31], a robust sliding mode controller for robots was designed to realize the finite time stability with the fulfillment of the state constraints. Liu et al. designed a neural network controller that realized the bounded tracking errors with the satisfaction of the asymmetric time-varying state constraints for a class of strict-feedback nonlinear systems [32]. Moreover, many efforts have been made on combining the FTC and constraint state control such as [33,34,35,36]. For example, authors of [36] designed a fuzzy adaptive backstepping controller for a class of uncertain non-strict-feedback systems subject to input saturation, which not only realized the fixed time stability but also constrain the system states within the pre-defined time-varying boundaries. It is also worth mentioning that Prescribed Performance Control (PPC) can be regarded as a particular case of state constraint control, since PPC approaches guarantee the transient performance (settling time and overshoot) by actively constraining the tracking error within the pre-defined decaying functions. Due to the merit of guaranteeing a pre-defined transient performance, many PPC schemes have been developed for robotic systems [37,38,39,40] and spacecrafts [41,42,43].

However, most of the existing state constraint controllers including [30–34] are designed based on Barrier Lyapunov Function (BLF). Therefore, these controllers include some BLF terms that could result in an inappropriately high control commands when the system states are close to their pre-defined constraints, which could compromise the control performance or even make the system instable. Unfortunately, although the BLF terms in these controllers can be proven to be finite by using the Lyapunov theory and considering the controller as a continuous system, the risk cannot be neglected because of the discrete nature of controller in practice and the potential failure of state measurement. For example, the slow response of actuators could result in the system state overly approaches to or even exceeds the constrained boundary before the next action of actuator is applied to stop it. Furthermore, the measured system states used by controller could also be inappropriately close or even exceed to the constraints due to measurement-noises and sensor-failures. Moreover, the control schemes based on BLF [30,31,32,33,34,35,36,37,38,39,40,41,42,43] assume the initial system states do not violate the constraints, which means they cannot handle all the initial conditions. In the light of the foregoing discussion, the following 2 aspects are urgently expected to be improved.

  • Compatibility to initial states violating constraints: if the initial states satisfy the constraints, the tracking error should be able to converge within a fixed time without the violation of state constraints. If no, the controller should be still able to make the tracking error converge within a finite time.

  • No risk due to the barrier function: the controller should not calculate the inappropriately high control commands when the measured system states are close to or even exceed their constrained boundaries.

To solve the mentioned issues, a novel fixed time full-state constraint sliding mode control scheme for SRMs subject to system uncertainty and unknown disturbance is proposed in this paper. Firstly, a novel singularity free fixed time sliding mode manifold is designed, which can guarantee the fixed time convergence of tracking errors without violating state constraints. Notably, the varying power of tracking error of the manifold is designed to solve the singularity problem of FTC, which is different to many conventional works [20, 22, 26, 44,45,46] that need an additional switch mechanism of sliding manifold. Secondly, the condition of sliding manifold is determined such that the system state will satisfy their constraints if this condition is satisfied. Thirdly, a fixed time disturbance observer-based sliding mode controller is proposed to achieve sliding manifold within a fixed time with the satisfaction of the mentioned condition. The advantages of the proposed control scheme are listed as follows.

  • Compared to the conventional state-constraint-control schemes [30,31,32,33,34,35,36,37,38,39,40,41,42,43], the proposed controller does not include any BLF term of system states, which thereby eliminates the risk of calculating inappropriately high control commands caused by the system states close to their constrained boundaries.

  • Unlike the conventional state-constraint-control schemes [30,31,32,33,34,35,36,37,38,39,40,41,42,43] that are incompatible to the initial states violating the constraints, the proposed controller can still achieve a finite time stability if the initial system states violate their constraints.

  • Compared to the conventional fixed time control scheme [20, 22, 26] and [44,45,46], the proposed controller does not need an additional switch mechanism that works when tracking errors move into a neighbourhood of origin. Thereby, the fixed time convergence is not compromised when tracking errors at the neighbourhood of origin.

The rest of paper is organized as follows. The model of SRMs and assumptions are given in Sect. 2. In Sect. 3, the proposed control scheme is detailed, and the proof of stability is given. The simulation results are presented in Sect. 4. Conclusion is drawn in Sect. 5.

2 Problem formulation and preliminaries

2.1 Dynamic model of space manipulator

A \(n\)-link rigid space robotic manipulator considered in this paper is shown in Fig. 1. The SRM is composed of \(1+N\) rigid bodies. \(i=0\) is the satellite or spacecraft base with 6 Degree-of-Freedoms (DOFs) and \(i=\mathrm{1,2},\dots ,N\) represents the \({i}^{th}\) rigid link. \({\Sigma }_{I}\) is the inertia frame, \({\Sigma }_{0}\) is the body fixed frame of the base, \({\Sigma }_{i}\) (\(=\mathrm{1,2},\dots ,N\)) represents the local fixed frame of the \({i}^{th}\) link, and \({\Sigma }_{E}\) is the local frame of the end effector. The Centre of Mass (COM) of the \({i}^{th}\) link is located by \({a}_{i}\) and \({b}_{i}\) in local frame. \({l}_{i}={a}_{i}+{b}_{i}\) represent the length of the \({i}^{th}\) link.

Fig. 1
figure 1

Illustration of the space robotic manipulator (SRM)

The dynamic model of SRMs derived by using Lagrange method is shown in (1) [11,12,13,14,15,16, 38, 39].

$$M\left(\theta \right)\ddot{\theta }+C\left(\theta ,\dot{\theta }\right)\dot{\theta }+D=\tau $$
(1)

where \(\theta =[{\theta }_{B},{{\theta }_{R}]}^{T}\in {R}^{(3+N)\times 1}\). \({\theta }_{B}=[{\theta }_{0x},{{\theta }_{0y},{\theta }_{0z}]}^{T}\in {R}^{3\times 1}\) represents the attitudes of the base, and \({\theta }_{R}=[{\theta }_{1},{{\theta }_{2},\dots ,{\theta }_{N}]}^{T}\in {R}^{N\times 1}\) refers to the angular positions of joints of the manipulator. The positive definite matrix \(M\left(\theta \right)\in {R}^{(3+N)\times (3+N)}\) is the coupling inertia matrix of SRMs. \(C\left(\theta ,\dot{\theta }\right)\in {R}^{(3+N)\times (3+N)}\) is the matrix consisting of the nonlinear terms of Coriolis and Centrifugal forces. \(D\in {R}^{(3+N)\times 1}\) is the external disturbance.\(\tau =[{\tau }_{B},{{\tau }_{R}]}^{T}\) \(\in {R}^{(3+N)\times 1}\). \({\tau }_{B}=[{\tau }_{x},{\tau }_{y},{\tau }_{z}{]}^{T}\in {R}^{3\times 1}\) is the torque regulating the base, \({\tau }_{R}=[{\tau }_{1},{\tau }_{2},\dots ,{\tau }_{N}{]}^{T}\in {R}^{N\times 1}\) is the torque driving the joints.

After some mathematic manipulations, (1) can be written as (2) ready to design a controller [12, 47,48,49].

$$\ddot{\theta }={\widehat{M}}^{-1}\left(\theta \right)\tau -{\widehat{M}}^{-1}\left(\theta \right)\widehat{C}\left(\theta ,\dot{\theta }\right)\dot{\theta }+{\widehat{M}}^{-1}\left(\theta \right)\{\left[\widehat{M}\left(\theta \right)-M\left(\theta \right)\right]\ddot{\theta }-[C\left(\theta ,\dot{\theta }\right)-\widehat{C}\left(\theta ,\dot{\theta }\right)]\dot{\theta }-D\}={\widehat{M}}^{-1}\left(\theta \right)[\tau -\widehat{C}\left(\theta ,\dot{\theta }\right)\dot{\theta }]+H$$
(2)

where the matrix \(\widehat{M}\) and \(\widehat{C}\) is the nominal part of \(M\) and \(C\) respectively. The vector \(H=-{\widehat{M}}^{-1}\left(\theta \right)\{[C\left(\theta ,\dot{\theta }\right)-\widehat{C}\left(\theta ,\dot{\theta }\right)]\dot{\theta }+D\}+\left[{M}^{-1}\left(\theta \right)-{\widehat{M}}^{-1}\left(\theta \right)\right]\tau \) is the lumped uncertainty consisting of model uncertainties and external disturbances.

2.2 Assumptions and control targets

The control target is to realize the convergence of tracking errors without violating the constraints of angular position and angular velocity, which is detailed in (3), (4) and (5).

$${e}_{i}\left(t\right)={\theta }_{i}\left(t\right)-{\theta }_{r,i}\left(t\right)=0, \forall t\ge {t}^{*}, i=0x,0y,0z,1,..,N$$
(3)
$$ \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\kappa } _{{1,i}} \left( t \right) < ;\theta _{i} \left( t \right) < \bar{\kappa }_{{1,i}} \left( t \right),\forall t \ge 0,i = 0x,0y,0z,1,..,N $$
(4)
$$ \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\kappa } _{{2,i}} \left( t \right) < \dot{\theta }_{i} \left( t \right) < \bar{\kappa }_{{2,i}} \left( t \right),\forall t \ge 0,i = 0x,0y,0z,1,..,N $$
(5)

where \({t}^{*}>0\) is the settling time. \({\theta }_{r,i}\) is the reference signal. \( \overline{\kappa } _{{1,i}} \left( t \right) \) and \({\underline{\kappa }}_{1,i}\left(t\right)\) are the constraints of angular position. \({\underline{\kappa }}_{2,i}\left(t\right)\) and \({\overline{\kappa }}_{2,i}\left(t\right)\) are the constraints of angular velocity.

Assumption 1

Like the works [12,13,14, 16], the lumped uncertainty \(H\) in (2) is assumed to be bounded by a positive number \(\overline{H}>0\) such that \(\left|\left|H\right|\right|<\overline{H}\).

Assumption 2

\( \underline{\kappa } _{{1,i}} \left( t \right) < \bar{\kappa }_{{1,i}} \left( t \right) \) holds so that there exists a positive constant \( \Delta _{{1,i}} = \begin{array}{*{20}l} {\min } \hfill \\ {t > 0} \hfill \\ \end{array} (\bar{\kappa }_{{1,i}} \left( t \right) - \underline{\kappa } _{{1,i}} \left( t \right)) > 0 \), and \( \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\kappa } _{{2,i}} \left( t \right) < \bar{\kappa }_{{2,i}} \left( t \right) \) holds so that there exists a positive constant \( \Delta _{{2,i}} = {\text{ }}\mathop {\min }\limits_{{t{\text{ }} > 0}} \;(\bar{\kappa }_{{2,i}} \left( t \right) - \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\kappa } _{{2,i}} \left( t \right)) > 0 \).

Assumption 3

The constraints of angular velocity \( \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\kappa } _{{2,i}} \) and \({\overline{\kappa }}_{2,i}\) are able to handle the changing rate of the constraints of angular position \( \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\kappa } _{{1,i}} \) and \({\overline{\kappa }}_{1,i}\) such that \( \underline{{\dot{\kappa }}} _{{1,i}} \left( t \right) < \bar{\kappa }_{{2,i}} \left( t \right) \) and \( \underline{\kappa } _{{2,i}} \left( t \right){ < }\dot{\bar{\kappa }}_{{1,i}} \left( t \right) \) hold.

Assumption 4

The reference trajectory \({\theta }_{r,i}\) satisfies the state constraints (4) and (5) such that \( \underline{\kappa } _{{1,i}} \left( t \right) < \theta _{{r,i}} \left( t \right) < \bar{\kappa }_{{1,i}} \left( t \right) \) and \( \underline{\kappa }_{{2,i}} \left( t \right) < \dot{\theta }_{{r,i}} \left( t \right) < \bar{\kappa }_{{2,i}} \left( t \right) \) hold.

Remark 1

Assumption 1, Assumption 2, Assumption 3 and Assumption 4 are reasonable and acceptable. In detail, Assumption 1 requiring a bounded lumped uncertainty is acceptable in many literatures such as [12,13,14, 16]. Assumption 2 guarantees the existence of the space between the upper boundary and lower boundary of constraints, where the system states are controlled to track their reference signals. Assumption 2 can also be found in [30]. Assumption 3 allows the system state \({\theta }_{i}\) to have the high enough magnitude of velocity to avoid hitting the upper/lower boundaries of constraints at any time. For example, \({\theta }_{i}\) extremely close to the lower boundary \( \underline{\kappa } _{{1,i}} \) can avoid hitting the lower boundary only if \( \bar{\kappa }_{{2,i}} > \dot{\theta }_{i} \ge \underline{{\dot{\kappa }}} _{{1,i}} \) holds, while \({\theta }_{i}\) extremely close to the upper boundary \({\overline{\kappa }}_{1,i}\) can avoid hitting the upper boundary only if \( \underline{\kappa } _{{2,i}} < \dot{\theta }_{i} \le \dot{\bar{\kappa }}_{{1,i}} \) holds. Assumption 4 guarantees the successful tracking of reference trajectory is not contradictory to the satisfaction of state constraints.

2.3 Useful existing lemma

Lemma 1

[50]. For a general Lyapunov function \(V(x)\), if the following condition (6) is satisfied, the system \(\dot{x}=f(x)\) can be fixed time stable with the convergence time \(T<{T}_{max}=\frac{1}{{\gamma }_{1}({\rho }_{1}-1)}+\frac{1}{{\gamma }_{2}(1-{\rho }_{2})}.\)

$$\dot{V}(x)\le -{\gamma }_{1}{V}^{{\rho }_{1}}(x)-{\gamma }_{2}{V}^{{\rho }_{2}}(x)$$
(6)

where \({\gamma }_{1}>0\), \({\gamma }_{2}>0\), \({\rho }_{1}>1\) and \(0<{\rho }_{2}<1.\)

3 Control scheme design

The proposed controller consists of the non-singular fixed time constrained state sliding mode manifold, and the fixed-time disturbance observer based constrained state robust controller. The structure is illustrated in Fig. 2.

Fig. 2
figure 2

Block diagram of the proposed control scheme

3.1 Non-singular fixed time sliding manifold

In the light of (3), the upper/lower boundaries of constraints of tracking error are defined in (7). The upper/lower boundaries of tracking error velocity are defined in (8).

$$ \bar{\varepsilon }_{{1,i}} \left( t \right) = \bar{\kappa }_{{1,i}} (t) - \theta _{{r,i}} (t),\underline{\varepsilon } _{{1,i}} \left( t \right) = \underline{\kappa } _{{1,i}} \left( t \right) - \theta _{{r,i}} (t) $$
(7)
$$ \bar{\varepsilon }_{{2,i}} \left( t \right) = \bar{\kappa }_{{2,i}} (t) - \dot{\theta }_{{r,i}} (t),\underline{\varepsilon } _{{2,i}} \left( t \right) = \underline{\kappa } _{{2,i}} \left( t \right) - \dot{\theta }_{{r,i}} (t) $$
(8)

Remark 2

According to (3)–(5) and (7)–(8), it is obvious we can achieve (4)-(5) if the inequalities \( \underline{\varepsilon } _{{1,i}} < e_{i} < \bar{\varepsilon }_{{1,i}} \) and \( \underline{\varepsilon } _{{2,i}} < \dot{e}_{i} < \bar{\varepsilon }_{{2,i}} \) are achieved.

Remark 3

According to Assumption 2 and Assumption 4, it is true that \( \bar{\varepsilon }_{{1,i}} \left( t \right){ > }0 \), \( \underline{\varepsilon } _{{1,i}} \left( t \right) < 0 \), \({\overline{\varepsilon }}_{2,i}\left(t\right)>0\) and \( \underline{\varepsilon } _{{2,i}} \left( t \right) < 0 \) hold. Working with Assumption 3, it is clear that \( \underline{{\dot{\varepsilon }}} _{{1,i}} < \bar{\varepsilon }_{{2,i}} \) and \( \underline{\varepsilon } _{{2,i}} < \dot{\bar{\varepsilon }}_{{1,i}} \) hold. Therefore, there exist the following positive constants:\( \bar{\delta }_{{1,i}} = \mathop {\max }\limits_{{t \ge 0}} (\left| {\underline{{\dot{\varepsilon }}} _{{1,i}} \left( t \right)} \right|) > 0 \), \( \underline{\delta } _{{1,i}} = \mathop {\min }\limits_{{t \ge 0}} (\left| {\underline{{\dot{\varepsilon }}} _{{1,i}} \left( t \right)} \right|) > 0 \), \({\overline{\delta }}_{2,i}=\underset{t\ge 0}{\mathrm{max}}\left(\left|{\dot{\overline{\varepsilon }}}_{1,i}\left(t\right)\right|\right)>0\), \( \underline{\delta } _{{2,i}} = \mathop {\min }\limits_{{t \ge 0}} (\left| {\dot{\overline{{\varepsilon }}} _{{1,i}} \left( t \right)} \right|) > 0 \), \({\overline{\delta }}_{3,i}=\underset{t\ge 0}{\mathrm{max}}({\overline{\varepsilon }}_{2,i}(t)-{\underset{\_}{\dot{\varepsilon }}}_{1,i}(t))>0\), \( \underline{\delta } _{{3,i}} = \mathop {\min }\limits_{{t \ge 0}} \left( {\bar{\varepsilon }_{{2,i}} \left( t \right) - \underline{{\dot{\varepsilon }}} _{{1,i}} \left( t \right)} \right) > 0 \), \( \bar{\delta }_{{4,i}} = \mathop {\max }\limits_{{t \ge 0}} \left( {\dot{\bar{\varepsilon }}_{{1,i}} \left( t \right) - \underline{\varepsilon } _{{2,i}} \left( t \right)} \right) > 0 \), \( \underline{\delta } _{{4,i}} = \mathop {\min }\limits_{{t \ge 0}} \left( {\dot{\bar{\varepsilon }}_{{1,i}} \left( t \right) - \underline{\varepsilon } _{{2,i}} \left( t \right)} \right) >0 \) and \({\overline{\delta }}_{5,i}=\underset{t\ge 0}{\mathrm{max}}\left(\left|{\underset{\_}{\varepsilon }}_{2,i}\left(t\right)\right|,\left|{\overline{\varepsilon }}_{2,i}\left(t\right)\right|\right)>0\). \( \underline{\delta } _{{5,i}} = \mathop {\min }\limits_{{t \ge 0}} \left( {\left| {\underline{\varepsilon } _{{2,i}} \left( t \right)} \right|,\left| {\bar{\varepsilon }_{{2,i}} \left( t \right)} \right|} \right) > 0 \).

In the light of (3), (7) and (8), a novel non-singular fixed time sliding manifold \(s=[{s}_{0x},{s}_{0y},{s}_{0z},{s}_{1},{s}_{2},..,{s}_{N}{]}^{T}\) is designed as (9)-(13).

$$ \left\{ {\begin{array}{*{20}l} {s_{i} \left( t \right) = \dot{e}_{i} \left( t \right) - X_{i} (t)} \\ {X_{i} (t) = \eta _{i} \left( t \right)\frac{{\underline{\varepsilon } _{{2,i}} \left( t \right)\Phi _{i} \left( t \right)}}{{ - \underline{\varepsilon } _{{2,i}} \left( t \right) + \Phi _{i} \left( t \right)}} + (1 - \eta _{i} (t))\frac{{\bar{\varepsilon }_{{2,i}} (t)\Phi _{i} (t)}}{{\bar{\varepsilon }_{{2,i}} (t) + \Phi _{i} (t)}}} \\ \end{array} } \right. $$
(9)
$${\Phi }_{i}(t)={k}_{1,i}|{e}_{i}(t){|}^{{\lambda }_{1,i}}+{k}_{2,i}(|{e}_{i}(t)|+{\alpha }_{i}^{\frac{1}{{\lambda }_{2,i}\left(t\right)}}(t){)}^{{\lambda }_{2,i}(t)}$$
(10)
$${\alpha }_{i}=\left\{\begin{array}{c}{G}_{1}\left({\phi }_{1,i}^{*},{k}_{c,i}\right), if {e}_{i}<0\\ \\ {G}_{1}\left({\phi }_{2,i}^{*},{k}_{c,i}\right), if {e}_{i}\ge 0\end{array}\right.$$
(11)
$$ \phi _{{1,i}}^{*} = \frac{1}{{k_{{2,i}} }}[\phi _{{1,i}} - k_{{1,i}} ( - e_{i} )^{{\lambda _{{1,i}} }} ],\phi _{{1,i}} = \frac{{\underline{{\dot{\varepsilon }}} _{{1,i}} - G_{2} \left( {k_{L} ,e_{i} - \underline{\varepsilon } _{{1,i}} } \right)}}{{\bar{\varepsilon }_{{2,i}} - \underline{{\dot{\varepsilon }}} _{{1i}} + G_{2} \left( {k_{L} ,e_{i} - \underline{\varepsilon } _{{1,i}} } \right)}}\bar{\varepsilon }_{{2,i}} $$
(12)
$$ \phi _{{2,i}}^{*} = \frac{1}{{k_{{2,i}} }}(\phi _{{2,i}} - k_{{1,i}} e_{i}^{{\lambda _{{1,i}} }} ),\phi _{{2,i}} = \frac{{ - \dot{\bar{\varepsilon }}_{{1,i}} - G_{2} \left( {k_{R} ,\bar{\varepsilon }_{{1,i}} - e_{i} } \right)}}{{\dot{\bar{\varepsilon }}_{{1,i}} - \underline{\varepsilon } _{{2,i}} + G_{2} \left( {k_{R} ,\bar{\varepsilon }_{{1,i}} - e_{i} } \right)}}( - \underline{\varepsilon } _{{2,i}} ) $$
(13)
$$ \eta _{i} = \left\{ {\begin{array}{*{20}l} {1,\;if\;e_{i} \ge 0} \hfill & {} \hfill \\ {0,\;if\;e_{i} } \hfill & {lt;0} \hfill \\ \end{array} } \right. $$
(14)

where \({k}_{1,i}>0\), \({k}_{2,i}>0\), \({\lambda }_{1,i}>1\), \({k}_{c,i}>0\), \({k}_{L}>0\) and \({k}_{R}>0\) are the constant coefficients defined by users. The function \({G}_{1}\) and \({G}_{2}\) used in (11)-(13) are defined in (15) and (16) respectively. \(0.5<{\lambda }_{2,i}^{*}<{\lambda }_{2,i}\left(t\right)\le 1\) is a varying parameter to solve the singularity problem of fixed time control, which is defined in (17).

$$ G_{1} \left( {x,y} \right) = \left\{ {\begin{array}{*{20}l} {\varsigma ,\;if\;x < - y} \hfill \\ {\varsigma + \frac{1}{2}x - \frac{b}{\pi }\cos \left( {\pi \frac{x}{{2y}}} \right) + \frac{1}{2}y,\;if - y \le x \le y} \hfill \\ {\varsigma + x,\;if\;x > y} \hfill \\ \end{array} } \right. $$
(15)
$$ G_{2} \left( {x,y} \right) = \left\{ {\begin{array}{*{20}l} {0,\;if\;y < \varsigma } \hfill \\ {x(y - \varsigma )^{2} ,\;if\;y \ge \varsigma } \hfill \\ \end{array} } \right. $$
(16)
$$ \lambda _{{2,i}} \left( t \right) = \left\{ {\begin{array}{*{20}c} {1,\;if\;t \le t_{{0,i}} } & {} & {} \\ {\frac{1}{2} + \frac{{\lambda _{{2,i}}^{*} }}{2} + \frac{{1 - \lambda _{{2,i}}^{*} }}{2}\cos \left( {\pi \frac{{t - t_{{0i}} }}{{t_{{Di}} }}} \right),\;if\;t_{{0,i}} } & { < t} & { < t_{{0,i}} + t_{{D,i}} } \\ {\lambda _{{2,i}}^{*} ,\;if\;t \ge t_{{0,i}} + t_{{D,i}} } & {} & {} \\ \end{array} } \right. $$
(17)

where \({x}\), \({y}\in R\) mean any real number. \(\varsigma >0\) is a small positive constant close to zero (e.g. \(\varsigma =1\times {10}^{-9}\)) that satisfies \(0<\varsigma <\underset{t\ge 0}{\mathrm{min}}(|{\overline{\varepsilon }}_{1,i}(t)|,|{\underset{\_}{\varepsilon }}_{1,i}(t)|)\). \(0.5<{\lambda }_{2,i}^{*}<1\) is a constant. \({t}_{D,i}>0\) is a positive constant. \({t}_{0,i}\) is the time after the sliding manifold (9) is achieved such that \({s}_{i}\left(t\ge {t}_{0,i}\right)=0\). \({t}_{0,i}\) will be determined in the next section.

Theorem 1

Considering the system (2), if system states successfully reach the sliding manifold (9) at the time \({t}_{0,i}\ge 0\), the following 2 conclusions can be drawn:

  • If system state at \(t={t}_{0i}\) does not violate constraint (4) such that \({s}_{i}(t\ge {t}_{0,i})=0\) and \({\underset{\_}{\varepsilon }}_{1,i}\left({t}_{0,i}\right)<{e}_{i}\left({t}_{0,i}\right)<{\overline{\varepsilon }}_{1,i}({t}_{0,i})\) hold, then \({e}_{i}(t\ge {t}_{1,i})=0\) can be achieved within a fixed time \({t}_{1,i}\) shown in (18), and the constraint (4) and (5) are satisfied as long as \(t\ge {t}_{0,i}\).

  • If system state at \(t={t}_{0,i}\) violates constraint (4) such that \({s}_{i}(t\ge {t}_{0,i})=0\) and \({e}_{i}\left({t}_{0,i}\right)\in (-\infty ,{\underset{\_}{\varepsilon }}_{1,i}({t}_{0,i}))\cup ({\overline{\varepsilon }}_{1,i}({t}_{0,i}),\infty )\), then \({e}_{i}(t\ge {t}_{2,i})=0\) can be achieved within a finite time \({t}_{2,i}\) shown in (19), and the constraint (5) is satisfied as long as \(t\ge {t}_{0,i}\).

    $${t}_{1,i}={t}_{0,i}+{t}_{D,i}+\frac{2}{(\sqrt{2}{)}^{1+{\lambda }_{1i}}{\overline{\sigma }}_{i}{k}_{1,i}({\lambda }_{1,i}-1)}+\frac{2}{(\sqrt{2}{)}^{1+{\lambda }_{2,i}^{*}}{\overline{\sigma }}_{i}{k}_{2,i}(1-{\lambda }_{2,i}^{*})}$$
    (18)
    $${t}_{2,i}={t}_{0,i}+{t}_{D,i}+\frac{2}{(\sqrt{2}{)}^{1+{\lambda }_{2,i}^{*}}{\overline{\overline{\sigma }}}_{i}{k}_{2,i}(1-{\lambda }_{2,i}^{*})}[\frac{1}{2}{e}_{i}^{2}({t}_{0,i}){]}^{1-{\lambda }_{2,i}^{*}}$$
    (19)

where constant \({\overline{\sigma }}_{i}>0\) is independent of system state \({e}_{i}(t={t}_{0,i})\), constant \({\overline{\overline{\sigma }}}_{i}>0\) is dependent of system state \({e}_{i}(t={t}_{0,i})\), which are detailed in Appendix A.

Proof

The proof is given in Appendix A.

3.2 Condition of sliding manifold to satisfy state constraint

Theorem 2

Considering the system (2), if the initial states satisfy the constraints (4) and (5), the state constraints (4) and (5) can be satisfied for \(0\le t\le {t}_{0,i}\) as long as the condition described by (20)–(27) is satisfied for \(0\le t\le {t}_{0,i}\). Moreover, the inequations \(0<{\overline{\mu }}_{i}\le 1\), \( 0 < \underline{\mu } _{i} \le 1 \), \({\overline{B}}_{s,i}>0\) and \({\underline{B}}_{s,i}<0\) always hold for all \(t>0\).

$${\underline{B}}_{s,i}<{s}_{i}<{\overline{B}}_{s,i}$$
(20)
$$ \left\{ {\begin{array}{*{20}c} {\bar{B}_{{s,i}} = \bar{\mu }_{i} \left( {\bar{h}_{i} + \bar{\varepsilon }_{{2,i}} - X_{i} } \right)} \\ {\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{B} _{{s,i}} = \underline{\mu } _{i} (\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{h} _{i} + \underline{\varepsilon } _{{2,i}} - X_{i} )} \\ \end{array} } \right. $$
(21)

where \(\overline{h}_{i} = \overline{h}_{0,i} F_{0} \left( t \right)\) and \(\underline {h}_{i} = \underline {h}_{0,i} F_{0} \left( t \right)\). The time function \(F_{0} \left( t \right)\) is shown in (22). where constants \(\overline{h}_{0,i} \ge 0\) and \(\underline {h}_{0,i} \le 0\) are detailed in (23)

$$ F_{0} \left( t \right) = \left\{ {\begin{array}{*{20}c} {\cos \left( {\frac{\pi }{2}\frac{t}{{T_{1} }}} \right) , \;if\; t \le T_{1} } \\ {0 , \;if\; t > T_{1} } \\ \end{array} } \right. $$
(22)
$$ \bar{h}_{{0,i}} = \left\{ {\begin{array}{*{20}c} {2\dot{e}_{i} (0),\;if\;\dot{e}_{i} (0) \ge \bar{\varepsilon }_{{2,i}} (0)} & {} \\ {0,\;if\;\dot{e}_{i} \left( 0 \right)} & {lt;\bar{\varepsilon }_{{2,i}} (0)} \\ \end{array} } \right.,\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{h} _{{0,i}} = \left\{ {\begin{array}{*{20}c} {2\dot{e}_{i} (0),\;if\;\dot{e}_{i} (0) \le \underline{\varepsilon } _{{2,i}} (0)} & {} \\ {0,\;if\;\dot{e}_{i} \left( 0 \right)} & {gt;\underline{\varepsilon } _{{2,i}} (0)} \\ \end{array} } \right. $$
(23)

where the variables \(\overline{\mu }_{i}\) and \(\underline {\mu }_{i}\) are detailed in (24).

$$ \begin{gathered} \overline{\mu }_{i} = \left\{ {\begin{array}{*{20}c} {1 , \;if\; \left| {z_{R,i} } \right| \ge \left| {z_{R,i}^{*} } \right| } \\ {\overline{\mu }_{0,i} + \left( {1 - \overline{\mu }_{0,i} } \right)\sin \left( {\frac{\pi }{2}\frac{{(z_{R,i} + F_{0} z_{R,i}^{**} )^{2} }}{{(z_{R,i}^{*} )^{2} }}} \right), \;if\; \left| {z_{R,i} } \right| < \left| {z_{R,i}^{*} } \right|} \\ \end{array} } \right. \hfill \\ \underline {\mu }_{i} = \left\{ {\begin{array}{*{20}c} {1, \;if\; \left| {z_{L,i} \left| \ge \right|z_{L,i}^{*} } \right|} \\ {\underline {\mu }_{0,i} + \left( {1 - \underline {\mu }_{0,i} } \right)\sin \left( {\frac{\pi }{2}\frac{{(z_{L,i} + F_{0} z_{L,i}^{**} )^{2} }}{{(z_{L,i}^{*} )^{2} }}} \right),\;if\; \left| {z_{L,i} } \right| < \left| {z_{L,i}^{*} } \right|} \\ \end{array} } \right. \hfill \\ \end{gathered} $$
(24)

where \({z}_{L,i}={e}_{i}-{\underset{\_}{\varepsilon }}_{1,i}\) and \({z}_{R,i}={\overline{\varepsilon }}_{1,i}-{e}_{i}\). The constants \({z}_{R,i}^{*}>0\), \({z}_{L,i}^{*}>0\), \({z}_{R,i}^{**}>0\) and \({z}_{L,i}^{**}>0\) are defined in (25). The constants \({\overline{\mu }}_{0,i}\) and \({\underset{\_}{\mu }}_{0,i}\) are defined in (27).

$${z}_{R,i}^{*}=\left\{\begin{array}{c}|{\overline{\varepsilon }}_{1,i}\left(0\right)| , \;if\; {|z}_{R,i}\left(0\right)|=0\\ |{z}_{R,i}\left(0\right)| , \;if\; {|z}_{R,i}\left(0\right)|>0\end{array}\right. {z}_{L,i}^{*}=\left\{\begin{array}{c}|{\underset{\_}{\varepsilon }}_{1,i}\left(0\right)| , \;if\; {|z}_{L,i}\left(0\right)|=0\\ |{z}_{L,i}\left(0\right)| , \;if\; {|z}_{L,i}\left(0\right)|>0\end{array}\right.$$
(25)
$$ z_{{R,i}}^{{**}} = \left\{ {\begin{array}{*{20}l} {|\bar{\varepsilon }_{{1,i}} \left( 0 \right)|,\;if\;|z_{{R,i}} \left( 0 \right)| = 0} \hfill \\ {0,else} \hfill \\ \end{array} } \right.z_{{L,i}}^{{**}} = \left\{ {\begin{array}{*{20}l} {|\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\varepsilon } _{{1,i}} \left( 0 \right)|,\;if\;|z_{{L,i}} \left( 0 \right)| = 0} \hfill \\ {0,else} \hfill \\ \end{array} } \right. $$
(26)
$$ \bar{\mu }_{{0,i}} = \begin{array}{*{20}l} {\min } \hfill \\ {t > 0} \hfill \\ \end{array} \left( {F_{{1,i}} (t)} \right),F_{{1,i}} \left( t \right) = \frac{{\min (\dot{\bar{\varepsilon }}_{{1,i}} \left( t \right),\bar{\varepsilon }_{{2,i}} \left( t \right)) - \bar{X}_{i} (t)}}{{\bar{h}_{i} \left( t \right) + \bar{\varepsilon }_{{2,i}} \left( t \right) - \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\varepsilon } _{{2,i}} \left( t \right)}},\bar{X}_{i} \left( t \right) = \frac{{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\varepsilon } _{{2,i}} \overline{{\mathcal{U}}} _{i} }}{{ - \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\varepsilon } _{{2,i}} + \overline{{\mathcal{U}}} _{i} }}. $$
$$ \underline{\mu } _{{0,i}} = \mathop {\min }\limits_{{t > 0}} \left( {{\mathcal{F}}_{{2,i}} (t)} \right),{\mathcal{F}}_{{2,i}} \left( t \right) = \frac{{\max (\underline{{\dot{\varepsilon }}} _{{1,i}} \left( t \right),\underline{\varepsilon } _{{2,i}} (t)) - \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{X} _{i} (t)}}{{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{h} _{i} (t) + \underline{\varepsilon } _{{2,i}} (t) - \bar{\varepsilon }_{{2,i}} (t)}},\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{X} _{i} \left( t \right) = \frac{{\bar{\varepsilon }_{{2,i}} \underline{{\mathcal{U}}} _{i} }}{{\bar{\varepsilon }_{{2,i}} + \underline{{\mathcal{U}}} _{i} }} $$
$$ \overline{{\mathcal{U}}} _{i} = k_{{1,i}} |\bar{\varepsilon }_{{1,i}} |^{{\lambda _{{1,i}} }} + k_{{2,i}} \alpha _{i} \left( {e_{i} } \right)|_{{e_{i} = \bar{\varepsilon }_{{1,i}} }} ,\underline{{\mathcal{U}}} _{i} = k_{{1,i}} |\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\varepsilon } _{{1,i}} |^{{\lambda _{{1,i}} }} + k_{{2,i}} \alpha _{i} \left( {e_{i} } \right)|_{{e_{i} = \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{\varepsilon } _{{1,i}} }} $$
(27)

Proof

The proof is given in Appendix B.

Remark 4

The information of \({\overline{h}}_{i}\), \({\underline{h}}_{i}\), \( \underline{\varepsilon } _{{1,i}} \), \({\overline{\varepsilon }}_{1,i}\), \( \underline{\varepsilon } _{{2,i}} \) and \({\overline{\varepsilon }}_{2,i}\) are known, and they are all time-dependent variables without any system states. Therefore, \({\overline{\mu }}_{0,i}\) and \( \underline{\mu }_{0,i}\) can be obtained by solving (27) at the beginning prior to implement the controller.

Remark 5

: The proposed sliding manifold (9) is non-singular such that \({|\dot{X}}_{i}|\) is non-singular for all \({e}_{i}\in (-\infty ,\infty )\) and \({\dot{e}}_{i}\in (-\infty ,\infty )\).

Proof

The proof is given in Appendix C.

3.3 Fixed time disturbance observer based robust controller

To improve the clarity, the dynamics model (2) can be written as (28).

$${\ddot{\theta }}_{i}={\mathrm{\rm P}}_{i}+{H}_{i} , i=0x,0y,0z,1,..,N$$
(28)

where \({\mathrm{\rm P}}_{i}\) is the \({i}^{th}\) element of the vector \(({\widehat{M}}^{-1}\tau )\in {R}^{(3+N)\times 1}\). \({H}_{i}\) is the \({i}^{th}\) element of the vector \(H\in {R}^{(3+N)\times 1}\).

Prior to detail the robust controller, a Fixed Time Disturbance Observer (FTDO) [52] is introduced in (29)–(35) to approximate the unknown term \({H}_{i}\) in (28).

$${\mathbb{z}}_{i}={\dot{\theta }}_{i}-{\mathbb{a}}_{i}$$
(29)
$${\dot{\mathbb{a}}}_{i}=-{\mathbb{k}}_{0,i}{\mathbb{z}}_{i}+{\mathrm{\rm P}}_{i}$$
(30)
$${\dot{\widehat{\mathbb{z}}}}_{i}={\dot{\mathbb{y}}}_{i}+sgn({\mathbb{z}}_{i}-{\widehat{\mathbb{z}}}_{i})({\mathbb{k}}_{1,i}|{\mathbb{z}}_{i}-{\widehat{\mathbb{z}}}_{i}{|}^{\mathbb{m}}+{\mathbb{k}}_{2,i}|{\mathbb{z}}_{i}-{\widehat{\mathbb{z}}}_{i}{|}^{\mathbb{n}})$$
(31)
$${\widehat{H}}_{i}={\dot{\mathbb{y}}}_{i}-{\mathbb{k}}_{0,i}{\widehat{\mathbb{z}}}_{i}$$
(32)

where \({\widehat{H}}_{i}\) is the estimate of \({H}_{i}\). \({\mathbb{k}}_{0,i}>0\), \({\mathbb{k}}_{1,i}>0\), \({\mathbb{k}}_{2,i}>0\), \({\mathbb{m}}>1\) and \(0<{\mathbb{n}}<1\) are the constants. \({\mathbb{y}}_{i}={\mathbb{z}}_{i}\). The derivative \({\dot{\mathbb{y}}}_{i}\) is calculated by a discrete tracking differentiator (TD) shown in (33)-(35).

$$\left\{\begin{array}{c}{\mathbb{x}}_{1,i}\left(k+1\right)={\mathbb{x}}_{1,i}\left(k\right)+{\mathbb{x}}_{2,i}\left(k\right)\Delta T\\ {\mathbb{x}}_{2,i}\left(k+1\right)={\mathbb{x}}_{2,i}\left(k\right)+{\mathbb{u}}_{i}(k)\Delta T\end{array}\right.$$
(33)
$${\mathbb{u}}_{i}\left(k\right)=\left\{\begin{array}{c}-{r}_{td}sgn\left({\mathbb{A}}_{i}\left(k\right)\right) , \;if\; |{\mathbb{A}}_{i}\left(k\right)|>w\\ -{r}_{td}\frac{{\mathbb{A}}_{i}\left(k\right)}{\mathbb{w}} , \;if\; |{\mathbb{A}}_{i}\left(k\right)|\le w\end{array}\right.$$
(34)
$$ {\mathbb{A}}_{i} \left( k \right) = \left\{ {\begin{array}{*{20}l} {{\mathbb{X}}_{{2,i}} \left( k \right) + \frac{{{\mathbb{B}}_{i} \left( k \right) - {\mathbb{W}}}}{2}\text{sgn} \left( {{\mathbb{L}}_{i} \left( k \right)} \right),\;if\;\left| {{\mathbb{L}}_{i} \left( k \right)} \right|} \hfill & { > w} \hfill \\ {{\mathbb{X}}_{{2,i}} \left( k \right) + \frac{{{\mathbb{L}}_{i} (k)}}{{\Delta T}},\;if\;|{\mathbb{L}}_{i} \left( k \right)| \le w} \hfill & {} \hfill \\ \end{array} } \right. $$
(35)

where \({\mathbb{L}}_{i}\left(k\right)={\mathbb{x}}_{1,i}(k)-{\mathbb{y}}_{i}(k)+{\mathbb{x}}_{2,i}(k)\Delta T\) and \({\mathbb{B}}_{i}\left(k\right)=\sqrt{{\mathbb{w}}^{2}+8{r}_{td}|{\mathbb{L}}_{i}\left(k\right)|}\). \({\mathbb{w}}={r}_{td}\Delta T\). The positive constants \({r}_{td}\) and \(\Delta T\) are the tracking rate and sampling time respectively.

Lemma 2

[52]. The observer error \({\mathbb{e}}_{i}={\mathbb{z}}_{i}-{\widehat{\mathbb{z}}}_{i}\) and disturbance estimation error \({\widetilde{H}}_{i}={H}_{i}-{\widehat{H}}_{i}\) converge to zero within the fixed time \({\mathbb{t}}_{i}\) given in (36).

$${\mathbb{t}}_{i}=\frac{2}{(\sqrt{2}{)}^{1+{\mathbb{m}}}{\mathbb{k}}_{1,i}({\mathbb{m}}-1)}+\frac{2}{(\sqrt{2}{)}^{1+{\mathbb{n}}}{\mathbb{k}}_{2,i}(1-{\mathbb{n}})}$$
(36)

Remark 6

The FTDO [52] has no requirement on the disturbance to be estimated, which means it is applicable to SRMs. Moreover, the effectiveness of FTDO had been experimentally verified by authors of [52] such that Lemma 2 holds even at the presence of measurement noise.

The novel robust controller including no barrier term is designed in (37, 38). More precisely, the control torque is calculated by (37).

$$\tau =\widehat{M}\left(\theta \right)\left({v}_{1}+{v}_{2}\right)+\widehat{C}\left(\theta ,\dot{\theta }\right)\dot{\theta }$$
(37)

The \({v}_{1,i}\) and \({v}_{2,i}\) are the elements of the vector \({v}_{1}\) and \({v}_{2}\) respectively, which are detailed in (38) and (39).

$${v}_{1,i}={\ddot{\theta }}_{ri}+{\dot{X}}_{i}-({\beta }_{1,i}\left|{s}_{i}{|}^{{\rho }_{1}}+{\beta }_{2,i}\right|{s}_{i}{|}^{{\rho }_{2}})sgn({s}_{i})-({\beta }_{3,i}+\frac{1}{2}{\gamma }_{i}^{2}){s}_{i}-{\widehat{H}}_{i}{\Psi }_{i}^{+}$$
(38)
$${v}_{2,i}=-[{\Lambda }_{1,i}+\left|{\Lambda }_{1,i}\right|sgn\left({s}_{i}\right)+{v}_{0,i}]{\Psi }_{i}^{-}(t)$$
(39)

where the constants \({\beta }_{1,i}>0\), \({\beta }_{2,i}>0\), \({\beta }_{3,i}>0\), \({\gamma }_{i}>0\), \({\rho }_{1}>1\) and \(0<{\rho }_{2}<1\) are selected by user. \({\widehat{H}}_{i}\) is calculated by (32). The time dependent functions \({\Psi }_{i}^{+}\) and \({\Psi }_{i}^{-}\) are detailed in (40) and (41). The variable terms \({\Lambda }_{i}\) and \({v}_{0,i}\) are presented in (42) and (43).

$$ \Psi _{i}^{ - } \left( t \right) = \left\{ {\begin{array}{*{20}l} {1,t \le t_{{0,i}} } \hfill & {} \hfill \\ {\cos \left( {\frac{\pi }{2}\frac{{t - t_{{0,i}} }}{{T_{2} }}} \right),t_{{0,i}} } \hfill & { < t \le t_{{0,i}} + T_{2} } \hfill \\ {0,t} \hfill & { > t_{{0,i}} + T_{2} } \hfill \\ \end{array} } \right. $$
(40)
$$ \Psi _{i}^{ + } \left( t \right) = \left\{ {\begin{array}{*{20}l} {0,t \le {\mathbb{t}}_{i} } \hfill & {} \hfill \\ {\sin \left( {\frac{\pi }{2}\frac{{t - t_{{0,i}} }}{{T_{3} }}} \right),{\mathbb{t}}_{i} } \hfill & { < t \le {\mathbb{t}}_{i} + T_{3} } \hfill \\ {1,t} \hfill & { >{\mathbb{t}} _{i} + T_{3} } \hfill \\ \end{array} } \right. $$
(41)
$${\Lambda }_{1,i}=\frac{{\underline{B}}_{s,i}{s}_{i}-{s}_{i}^{2}}{-{\overline{B}}_{s,i}{\underline{B}}_{s,i}+{s}_{i}^{2}}{\dot{\overline{B}}}_{s,i}+\frac{{\overline{B}}_{s,i}{s}_{i}-{s}_{i}^{2}}{-{\overline{B}}_{s,i}{\underline{B}}_{s,i}+{s}_{i}^{2}}{\underset{\_}{\dot{B}}}_{s,i}$$
(42)
$${v}_{0,i}=\frac{{\beta }_{4,i}}{2}\left|\frac{\left({\overline{B}}_{s,i}-{s}_{i}\right)\left({s}_{i}-{\underline{B}}_{s,i}\right)}{-{\overline{B}}_{s,i}{\underline{B}}_{s,i}+{s}_{i}^{2}}\right|{s}_{i}+\frac{{\gamma }_{0,i}^{2}}{2}{\overline{y}}_{i}(-{\overline{B}}_{s,i}{\underline{B}}_{s,i}+{s}_{i}^{2}){s}_{i}$$
(43)

where constants \({T}_{2}>0\), \({T}_{3}>0\), \({\beta }_{4,i}>0\) and \({\gamma }_{0,i}>0\) are selected by user. The variable term \({\overline{y}}_{i}\) is defined in (44).

$${\overline{y}}_{i}=1/\mathrm{min}[|\left({\overline{B}}_{s,i}-{\overline{s}}_{i}\right)\left({\overline{s}}_{i}-{\underline{B}}_{s,i}\right){|}^{-3},|\left({\overline{B}}_{s,i}-{\underline{s}}_{i}\right)\left({\underline{s}}_{i}-{\underline{B}}_{s,i}\right){|}^{-3}]$$
$${\overline{s}}_{i}=\frac{1}{2}\left({\overline{B}}_{s,i}+{\underline{B}}_{s,i}-\frac{1}{{\aleph }_{i}}\right)+\frac{1}{2}\sqrt{({\overline{B}}_{s,i}+{\underline{B}}_{s,i}-\frac{1}{{\aleph }_{i}}{)}^{2}-4{\overline{B}}_{s,i}{\underline{B}}_{s,i}}.$$
$${\underline{s}}_{i}=\frac{1}{2}\left({\overline{B}}_{s,i}+{\underline{B}}_{s,i}+\frac{1}{{\aleph }_{i}}\right)-\frac{1}{2}\sqrt{({\overline{B}}_{s,i}+{\underline{B}}_{s,i}+\frac{1}{{\aleph }_{i}}{)}^{2}-4{\overline{B}}_{s,i}{\underline{B}}_{s,i}}$$
(44)

where positive constant \({\aleph }_{i}>0\) is selected to satisfy (45).

$${\aleph }_{i}>\left|{\xi }_{i}\left(0\right)\right|=|\frac{{s}_{i}(0)}{\left[{\overline{B}}_{s,i}\left(0\right)-{s}_{i}\left(0\right)\right][{s}_{i}\left(0\right)-{\underline{B}}_{s,i}\left(0\right)]}|$$
(45)

where variable \({\xi }_{i}=\frac{{s}_{i}}{({\overline{B}}_{s,i}-{s}_{i})({s}_{i}-{\underline{B}}_{s,i})}.\)

Remark 7

\({\overline{y}}_{i}\) in (44) is finite for all \({e}_{i}\in R\) and \({\dot{e}}_{i}\in R\). Moreover, for any initial state \({e}_{i}(0)\in R\) and \({\dot{e}}_{i}(0)\in R\), there is a finite positive \({\aleph }_{i}\) to be the solution of (45).

Proof

The proof is given in Appendix D.

Remark 8

Theorem 2 indicates that \({\overline{B}}_{s,i}>0\) and \({\underline{B}}_{s,i}<0\) hold for all \({e}_{i}\in R\), and the calculation of \({\overline{B}}_{s,i}\) and \({\underline{B}}_{s,i}\) does not involve \({\dot{e}}_{i}\) (seeing (21)). It means \(-{\overline{B}}_{s,i}{\underline{B}}_{s,i}+{s}_{i}^{2}>0\) holds for all \({e}_{i}\in R\) and \({\dot{e}}_{i}\in R\). Moreover, \({\overline{y}}_{i}\) is proven to be finite for all \({e}_{i}\in R\) and \({\dot{e}}_{i}\in R\) in Remark 7. Therefore, the controller defined by (38)–(44) has no barrier function term of the measured system states (tracking error \({e}_{i}\) and error velocity \({\dot{e}}_{i}\)), which thereby eliminates the risk of calculating inappropriately high control commands when the measured system states are close to or even exceed the constrained boundaries.

3.4 Stability analysis

Theorem 3

For a system of SRM (2) controlled by (37)–(44), the sliding manifold (9) will be reached within a fixed time \({t}_{0,i}\) shown in (46) such that \({s}_{i}\left(t\right)=0\) holds for \(t\ge {t}_{0,i}\). Moreover \({\underline{B}}_{s,i}<{s}_{i}<{\overline{B}}_{s,i}\) holds for all \(t\ge 0\) as long as the parameters of FTDO (29)-(32) are selected to satisfy the condition (47).

$${t}_{0,i}=\frac{2}{(\sqrt{2}{)}^{1+{\rho }_{1}}{\beta }_{1,i}({\rho }_{1}-1)}+\frac{2}{(\sqrt{2}{)}^{1+{\rho }_{2}}{\beta }_{2,i}(1-{\rho }_{2})}+{\mathbb{t}}_{i}+{T}_{3}$$
(46)
$$\begin{aligned} \mathbb{t}_{i} + T_{3} \le \left\{ {\begin{array}{*{20}l} {\frac{1}{{\beta _{{4,i}} }}\ln \left( {\frac{{\frac{1}{2}\xi _{i}^{2} (0) - \frac{{\bar{H}^{2} }}{{2\beta _{{4,i}} \gamma _{{0,i}}^{2} }}}}{{\frac{1}{2}\aleph _{i}^{2} - \frac{{\bar{H}^{2} }}{{2\beta _{{4,i}} \gamma _{{0,i}}^{2} }}}}} \right),if\frac{1}{2}\aleph _{i}^{2} } \hfill & {lt;\frac{{\bar{H}^{2} }}{{2\beta _{{4,i}} \gamma _{{0,i}}^{2} }}} \hfill \\ {T_{4} ,\;if\;\frac{1}{2}\aleph _{i}^{2} \ge \frac{{\bar{H}^{2} }}{{2\beta _{{4,i}} \gamma _{{0,i}}^{2} }}} \hfill & {} \hfill \\ \end{array} } \right.\end{aligned} $$
(47)

where positive constant \({\mathbb{t}}_{i}\) is defined in (36). \({T}_{3}\) is defined in (41). Positive constant \({T}_{4}\) is selected by user to satisfy \({T}_{4}>{T}_{3}\). The variable \({\xi }_{i}\) is defined in (45).

Proof

Proof is given in Appendix E.

The next step is to analyse the transient and static performance. To do so, we consider the following 2 situations.

Situation 1

Initial system state violates the constraints such that at least one of the inequations, \( \underline{\varepsilon } _{{1,i}} (0) < e_{i} (0) < \bar{\varepsilon }_{{1,i}} (0) \) and \( \underline{\varepsilon } _{{2,i}} (0) < \dot{e}_{i} (0) < \bar{\varepsilon }_{{2,i}} (0) \), does not hold. Given Theorem 3, \({s}_{i}\left(t\right)=0\) holds for \(t\ge {t}_{0,i}\). Given Theorem 1, \({e}_{i}(t)=0\) holds for \(t\ge {t}_{2,i}\). Therefore, in this situation, the finite time convergence of \({e}_{i}\) can be achieved.

Situation 2

Initial system state satisfies the constraints such that \( \underline{\varepsilon } _{{1,i}} (0) < e_{i} (0) < \bar{\varepsilon }_{{1,i}} (0) \) and \( \underline{\varepsilon } _{{2,i}} (0) < \dot{e}_{i} (0) < \bar{\varepsilon }_{{2,i}} (0) \) hold. In the light of Theorem 3, \({\underline{B}}_{s,i}<{s}_{i}<{\overline{B}}_{s,i}\) holds for \(t\ge 0\). Given Theorem 2, \( \underline{\varepsilon } _{{1,i}} < e_{i} < \bar{\varepsilon }_{{1,i}} \) and \( \underline{\varepsilon } _{{2,i}} < \dot{e}_{i} < \bar{\varepsilon }_{{2,i}} \) can hold for \(t\in (0,{t}_{0,i}]\) because \({\underline{B}}_{s,i}<{s}_{i}<{\overline{B}}_{s,i}\) holds. Therefore, state constraints are satisfied for \(t\in (0,{t}_{0,i}]\). Given Theorem 1, state constraints can hold for \(t\in ({t}_{0,i},\infty )\) if they are not violated at \(t={t}_{0,i}\). Therefore, constraints of tracking error and error velocity are satisfied in this situation. Then, according to Theorem 3 (indicating \({s}_{i}\left(t\right)=0\) holds for \(t\ge {t}_{0,i}\)) and Theorem 1 (indicating \({e}_{i}(t)=0\) holds for \(t\ge {t}_{1,i}\)), it is easy to conclude \({e}_{i}(t)=0\) holds for \(t\ge {t}_{1,i}\) in this situation.

Based on the foregoing discussion and Remark 2, the following conclusions can be drawn.

  • If \( \underline{\kappa } _{{1,i}} < \theta _{i} < \bar{\kappa }_{{1,i}} \) or \( \underline{\kappa } _{{2,i}} < \dot{\theta }_{i} < \bar{\kappa }_{{2,i}} \) does not hold for \(t=0\), then \({e}_{i}(t)=0\) will hold for \(t\ge {t}_{2,i}\). \({t}_{2,i}\) is defined in (19).

  • If \( \underline{\kappa } _{{1,i}} < \theta _{i} < \bar{\kappa }_{{1,i}} \) and \( \underline{\kappa } _{{2,i}} < \dot{\theta }_{i} < \bar{\kappa }_{{2,i}} \) hold for \(t=0\), then \({e}_{i}(t)=0\) will hold for \(t\ge {t}_{1,i}\), while \( \underline{\kappa } _{{1,i}} < \theta _{i} < \bar{\kappa }_{{1,i}} \) and \( \underline{\kappa } _{{2,i}} < \dot{\theta }_{i} < \bar{\kappa }_{{2,i}} \) will hold for all \(t>0\). \({t}_{1,i}\) is defined in (18).

Remark 9

Compared to the conventional literatures of state constraint control schemes such as [30,31,32,33,34,35,36] and [53,54,55,56], a significant merit of the proposed controller is the compatibility to the initial state violating the state constraints.

Remark 10

The procedure and motivation of controller design are concluded as follows to enhance the explanation of research. Firstly, we design the sliding manifold (9)-(17) to guarantee the system states at the manifold to have the following 3 properties: fixed-time convergence without constraint violation if initial states satisfy constraints (see Theorem 1), finite-time convergence if initial states violate constraints (see Theorem 1) and Non-singularity for all system states on the real number field (see Remark 5). Then, we derive a condition (20)–(27) that can guarantee the system states initially satisfying their constraints to always satisfy their constraints even they are not at the sliding manifold (see Theorem 2). After that, we design the Barrier-Lyapunov-term-free control law (37)-(47) working with a disturbance observer (28)-(35) to make the system states reach the sliding manifold within a fixed time with the satisfaction of condition (20)–(27) (see Theorem 3). Finally, the analysed transient and static performance can be obtained.

Remark 11

The potential limitations of the proposed controller are detailed as follows. Firstly, the controller does not consider the fault and saturation of actuator, which means the actuator must be healthy and able to generate the enough control torques calculated by the controller. Secondly, the controller does not consider the measurement noise and the potential inaccessibility to measurement devices (e.g., IMU and star-tracker), which means the measurement devices must be healthy and able to provide the accurate information of system states (e.g., the attitude of base, the angular position/velocity of each joint).

The process of selecting parameters is given as follows.

Step 1 Select the parameters \({k}_{1,i}\), \({k}_{2,i}\), \({\lambda }_{1,i}\), \({\lambda }_{2,i}^{*}\), \({k}_{c,i}\), \({k}_{L}\), \({k}_{R}\) and \(\varsigma \) for sliding manifold (10)-(16). Select the parameter \({T}_{1}\) for (22).

Step 2 Calculate \({z}_{R,i}^{*}\), \({z}_{L,i}^{*}\), \({z}_{R,i}^{**}\), \({z}_{L,i}^{**}\), \({\overline{\mu }}_{0,i}\) and \( \underline{\mu } _{{0,i}} \) in (25)–(27). Then, calculate \({s}_{i}(0)\), \({\underline{B}}_{s,i}(0)\) and \({\overline{B}}_{s,i}\left(0\right)\) by using (9)-(17) and (21)–(26). It is worth mentioning \({\lambda }_{2,i}\left(0\right)=1\). After that, select \({\aleph }_{i}\) in (45).

Step 3 Select parameters \({\beta }_{1,i}\), \({\beta }_{2,i}\), \({\beta }_{3,i}\), \({\beta }_{4,i}\), \({\gamma }_{i}\), \({\gamma }_{0,i}\), \({\rho }_{1}\), \({\rho }_{2}\) and \({T}_{2}\) for control law (38)-(43). After that, Select the parameters \({T}_{3}\) in (41) and \({T}_{4}\) in (47). Then, select the parameters \({r}_{td}\), \(\Delta T\), \({\mathbb{k}}_{0,i}\), \({\mathbb{k}}_{1,i}\), \({\mathbb{k}}_{2,i}\), \({\mathbb{m}}\), and \({\mathbb{n}}\) for the observer (29)-(35) to satisfy (47).

Step 4 Calculate \({t}_{0,i}\) in (46), and then select the parameter \({t}_{D,i}\) in (17).

Remark 12

After selecting parameters, the implementation of controller for one iteration can be listed as follows, which reflects the computational burden.

Step 1 At the current moment \(\mathcal{K}\), measure the system states (\({\theta }_{i}\), \({\dot{\theta }}_{i}\)), upload the known reference signals (\({\theta }_{r,i}\), \({\dot{\theta }}_{r,i}\), \({\ddot{\theta }}_{r,i}\)), upload the known state constraints (\( \underline{\kappa } _{{1,i}} \), \({\overline{\kappa }}_{1,i}\), \( \underline{\kappa } _{{2,i}} \), \({\overline{\kappa }}_{2,i}\), \( \underline{{\dot{\kappa }}} _{{1,i}} \), \({\dot{\overline{\kappa }}}_{1,i}\), \( \underline{{\dot{\kappa }}} _{{2,i}} \), \({\dot{\overline{\kappa }}}_{2,i}\)). This step is implemented \({m}\) times, where integer \({m}>0\) is the total number of DOFs to be controlled (e.g., \(i\in \mathcal{M}=\{0x,0y,0z,\mathrm{1,2},..,N\}\) and \(m=Card\)(\(\mathcal{M})=3+N\)).

Step 2 Calculate tracking errors (\({e}_{i}={\theta }_{i}-{\theta }_{r,i}\)) and error velocities (\({\dot{e}}_{i}={\dot{\theta }}_{i}-{\dot{\theta }}_{r,i}\)), calculate constraints of tracking errors (\({\overline{\varepsilon }}_{1,i}={\overline{\kappa }}_{1,i}-{\theta }_{r,i}\),\( \underline{\varepsilon } _{{1,i}} = \underline{\kappa } _{{1,i}} - \theta _{{r,i}} \)) and that of error velocities (\({\overline{\varepsilon }}_{2,i}={\overline{\kappa }}_{2,i}-{\dot{\theta }}_{r,i}\),\( \underline{\varepsilon } _{{2,i}} = \underline{\kappa } _{{2,i}} - \dot{\theta } _{{r,i}} \)) by using (7) and (8). This step is implemented \(m\) times.

Step 3 Calculate sliding variables \({s}_{i}\) by using (9)-(17), calculating the derivative of \({X}_{i}\) (\({\dot{X}}_{i}\)) by using (C1)-(C13). This step is implemented \(m\) times.

Step 4 Calculate \({\overline{B}}_{s,i}\) and \({\underline{B}}_{s,i}\) in (20) by using (21)-(24) and their derivatives (\({\dot{\overline{B}}}_{s,i}\), \( \underline{{\dot{B}}} _{{s,i}} \)) by virtue of the calculated \({\dot{X}}_{i}\) in the previous step. This step is implemented \(m\) times.

Step 5 Calculate the estimated lumped uncertainty (\({\widehat{H}}_{i}\)) from disturbance observer by using (29)-(35). This step is implemented \(m\) times.

Step 6 Calculate the vector \({v}_{1,i}\) and \({v}_{2,i}\) in (37) by using (38)-(44). This step is implemented \(m\) times.

Step 7 Calculate the vector of control torques \(\tau \) by using (37). This step is implemented once.

Step 8 Go back to Step 1 with letting \(\mathcal{K}=\mathcal{K}+1\) if the moment \(\mathcal{K}\) is not the terminate.

4 Simulation results

Like [3,4,5] and [9,10,11,12,13,14,15,16,17,18,19,20], we verify the effectiveness of the proposed controller by numerical simulation in this section. The numerical simulation for a 2-rigid-links SRM visualized in Fig. 3 is then carried. The detailed dynamic equations of the used 2-rigid-links SRM can be found in [39]. The parameters of dynamic model are detailed in Table. 1 [39].

Fig. 3
figure 3

2-rigid-links space robotic manipulator

Table 1 Parameters of dynamics model of SRM

Similar to [9, 10] and [38], the reference trajectories of the joints are selected as the sine and cosine functions, as given below:\({\theta }_{0,r}=0\), \({\theta }_{1,r}={10}^{o}\mathrm{sin}\left(\frac{1}{2}t\right)\), \({\theta }_{2,r}={-8}^{o}\mathrm{cos}\left(\frac{1}{2}t\right)\). Similar to [9, 14] and [39], the disturbance is selected as the combination of triangular functions \(D=0.1[{d}_{1},{d}_{2},{d}_{3}{]}^{T}\) with \({d}_{1}=0.6\mathrm{sin}\left(\frac{\pi }{3}t+\frac{\pi }{4}\right)+0.05\mathrm{sin}(\frac{\pi }{3}t+\frac{\pi }{4})\), \({d}_{2}=0.45\mathrm{cos}\left(\frac{\pi }{3}t+\frac{\pi }{4}\right)+0.07\mathrm{sin}(\frac{\pi }{10}t+\frac{\pi }{4})\) and \({d}_{3}=0.7\mathrm{sin}\left(\frac{\pi }{3}t+\frac{\pi }{4}\right)-0.052\mathrm{sin}(\frac{\pi }{10}t+\frac{\pi }{4})\). The system uncertainty is set as \(20\%\) such that \(\widehat{M}=0.8M\) and \(\widehat{C}=0.8C\).

The parameters of the proposed controller are selected. In detail, the parameters for sliding manifold (10)-(16) are: \({k}_{\mathrm{1,0}}={k}_{\mathrm{1,1}}={k}_{\mathrm{1,2}}=1\), \({k}_{\mathrm{2,0}}={k}_{\mathrm{2,1}}={k}_{\mathrm{2,2}}=1\), \({\lambda }_{\mathrm{1,0}}=3\), \({\lambda }_{\mathrm{1,1}}={\lambda }_{\mathrm{1,2}}=1.8\), \({\lambda }_{\mathrm{2,0}}^{*}={\lambda }_{\mathrm{2,1}}^{*}={\lambda }_{\mathrm{2,2}}^{*}=0.8\), \({k}_{c,0}={k}_{c,1}={k}_{c,2}=0.01\), \({k}_{L}=10\), \({k}_{R}=10\), \(\varsigma =1\times {10}^{-9}\). The parameters of disturbance observer (29)–(35) are \({r}_{td}=0.1\), \(\Delta T=0.001\), \({\mathbb{k}}_{\mathrm{0,0}}={\mathbb{k}}_{\mathrm{0,1}}={\mathbb{k}}_{\mathrm{0,2}}=1\), \({\mathbb{k}}_{\mathrm{1,0}}={\mathbb{k}}_{\mathrm{1,1}}={\mathbb{k}}_{\mathrm{1,2}}=1\), \({\mathbb{k}}_{\mathrm{2,0}}={\mathbb{k}}_{\mathrm{2,1}}\), = \({\mathbb{k}}_{\mathrm{2,2}}=1\), \({\mathbb{m}}=2\), and \({\mathbb{n}}=0.8\). The parameters of control law (38)–(44) are \({\beta }_{\mathrm{1,0}}={\beta }_{\mathrm{1,1}}={\beta }_{\mathrm{1,2}}=1\), \({\beta }_{\mathrm{2,0}}={\beta }_{\mathrm{2,1}}={\beta }_{\mathrm{2,2}}=0.1\), \({\beta }_{\mathrm{3,0}}={\beta }_{\mathrm{3,1}}={\beta }_{\mathrm{3,2}}=2\), \({\beta }_{\mathrm{4,0}}={\beta }_{\mathrm{4,1}}={\beta }_{\mathrm{4,2}}=0.1\),\({\gamma }_{0}={\gamma }_{1}={\gamma }_{2}=1\times {10}^{-6}\), \({\gamma }_{\mathrm{0,0}}={\gamma }_{\mathrm{0,1}}={\gamma }_{\mathrm{0,2}}=1\times {10}^{-4}\), \({\rho }_{1}=1.8\), \({\rho }_{2}=0.6\), \({\aleph }_{0}=27.5\), \({\aleph }_{1}={\aleph }_{2}=24\). The time constants are \({T}_{1}=5\), \({T}_{2}={T}_{3}=2\), \({T}_{4}=4\), \({t}_{D,0}={t}_{D,1}={t}_{D,2}=1\). The guessed maximum of lumped uncertainty is \(\overline{H}=0.001\).

The constraints of angular position of joints are given as\({\overline{\kappa }}_{\mathrm{1,0}}={11}^{o}+{2}^{o}\mathrm{sin}\left(\frac{\pi }{3}t\right)\),\( \underline{\kappa } _{{{\text{1}},{\text{0}}}} = - 11^{o} - 2^{o} {\text{sin}}\left( {\frac{\pi }{3}t} \right) \),\({\overline{\kappa }}_{\mathrm{1,1}}={10}^{o}\mathrm{sin}\left(\frac{1}{2}t\right)+{15}^{o}+{4}^{o}\mathrm{sin}\left(\frac{\pi }{3}t\right)\),\( \underline{\kappa } _{{1,1}} = 10^{o} \sin \left( {\frac{1}{2}t} \right) - 15^{o} - 4^{o} \sin \left( {\frac{\pi }{3}t} \right) \),\({\overline{\kappa }}_{\mathrm{1,2}}={-8}^{o}\mathrm{cos}\left(\frac{1}{2}t\right)+{18}^{o}+{6}^{o}\mathrm{sin}\left(\frac{\pi }{3}t\right)\),\( \underline{\kappa } _{{1,2}} = - 8^{o} \cos \left( {\frac{1}{2}t} \right) - 18^{o} - 6^{o} \sin \left( {\frac{\pi }{3}t} \right) \). The constraints of angular velocity of joints are \({\overline{\kappa }}_{\mathrm{2,0}}=2(\frac{\pi }{3})\mathrm{cos}\left(\frac{\pi }{3}t\right)+5.7+2.3\mathrm{sin}\left(\frac{\pi }{3}t\right)(deg/s)\), \( \underline{\kappa } _{{2,0}} = - 2\left( {\frac{\pi }{3}} \right)\cos \left( {\frac{\pi }{3}t} \right) - 5.7 - 2.3\sin \left( {\frac{\pi }{3}t} \right)(\deg /s) \),\({\overline{\kappa }}_{\mathrm{2,1}}=5\mathrm{cos}\left(\frac{1}{2}t\right)+4(\frac{\pi }{3})\mathrm{cos}\left(\frac{\pi }{3}t\right)+17.1+5.7\mathrm{sin}\left(\frac{\pi }{3}t\right)(deg/s)\),\({\underset{\_}{\kappa }}_{\mathrm{2,1}}=5\mathrm{cos}\left(\frac{1}{2}t\right)-4\left(\frac{\pi }{3}\right)\mathrm{cos}\left(\frac{\pi }{3}t\right)-17.1-5.7\mathrm{sin}\left(\frac{\pi }{3}t\right)(deg/s)\),\({\overline{\kappa }}_{\mathrm{2,2}}=4\mathrm{sin}\left(\frac{1}{2}t\right)+6(\frac{\pi }{3})\mathrm{cos}\left(\frac{\pi }{3}t\right)+17.1+5.7\mathrm{sin}\left(\frac{\pi }{3}t\right)(deg/s)\),\({\underset{\_}{\kappa }}_{\mathrm{2,2}}=4\mathrm{sin}\left(\frac{1}{2}t\right)-6(\frac{\pi }{3})\mathrm{cos}\left(\frac{\pi }{3}t\right)-17.1-5.7\mathrm{sin}\left(\frac{\pi }{3}t\right)(deg/s)\). According to (3) and Remark 2, the constraints of angular position error and error velocity can be calculated.

The controller from [56] is used as comparison. The detailed controller from [56] is given as follows.

$$\tau =\widehat{M}\left(\theta \right)\left(-{\widehat{W}}^{T}\Phi -\widehat{D}+{\dot{\mathcal{o}}}_{1}-{\overline{K} }_{2}{Z}_{2}-{K}_{B,2}^{-1}{K}_{B,1}{Z}_{1}-\frac{1}{2}{K}_{B,2}{Z}_{2}\right)+\widehat{C}\left(\theta ,\dot{\theta }\right)\dot{\theta }$$
$$\widehat{D}=\mathcal{S}+{\overline{K} }_{s}{Z}_{2} , {\mathcal{o}}_{1}=-{\overline{K} }_{1}{Z}_{1}+{\dot{\theta }}_{r}$$
$$\dot{\mathcal{S}}=-{\overline{K} }_{s}\left[{\widehat{M}}^{-1}\left(\theta \right)\tau -{\widehat{M}}^{-1}\widehat{C}\left(\theta ,\dot{\theta }\right)\dot{\theta }+{\widehat{W}}^{T}\Phi +\mathcal{S}+{\overline{K} }_{s}{Z}_{2}-{\dot{\mathcal{o}}}_{1}\right]$$
$${Z}_{1}=\theta -{\theta }_{r} , {Z}_{2}=\dot{\theta }-{\mathcal{o}}_{1}$$
$${K}_{B,1}=diag\left(\frac{1}{{k}_{b,\mathrm{1,1}}^{2}-{Z}_{\mathrm{1,1}}^{2}},\frac{1}{{k}_{b,\mathrm{1,2}}^{2}-{Z}_{\mathrm{1,2}}^{2}},\frac{1}{{k}_{b,\mathrm{1,3}}^{2}-{Z}_{\mathrm{1,3}}^{2}}\right)$$
$${K}_{B,2}=diag\left(\frac{1}{{k}_{b,\mathrm{2,1}}^{2}-{Z}_{\mathrm{2,1}}^{2}},\frac{1}{{k}_{b,\mathrm{2,2}}^{2}-{Z}_{\mathrm{2,2}}^{2}},\frac{1}{{k}_{b,\mathrm{2,3}}^{2}-{Z}_{\mathrm{2,3}}^{2}}\right)$$
$$\widehat{W}=diag\left({\widehat{W}}_{1},{\widehat{W}}_{2},{\widehat{W}}_{3}\right),\Phi =[{\Phi }_{1},{\Phi }_{2},{\Phi }_{3}{]}^{T}.$$
$$ \dot{\hat{W}}_{i} = - \Gamma _{{1,i}} \left( {\frac{{Z_{{2,i}} }}{{\bar{k}_{{b,2,i}}^{2} - Z_{{2,i}}^{2} }}\Phi _{i} + \Gamma _{{2,i}} \hat{W}_{i} } \right),i = {\text{1}},{\text{2}},3 $$
(48)

where \({Z}_{1,i}\) and \({Z}_{2,i}\) are the \({i}^{th}\) element of vectors \({Z}_{1}\) and \({Z}_{2}\) respectively. \( k_{{b,1,1}} = \min (\left| {\bar{\varepsilon }_{{1,0}} } \right|,|\underline{\varepsilon } _{{1,0}} |) \), \( k_{{b,1,2}} = \min (\left| {\bar{\varepsilon }_{{1,1}} } \right|,|\underline{\varepsilon } _{{1,1}} |) \), and \( k_{{b,1,3}} = \min (\left| {\bar{\varepsilon }_{{1,3}} } \right|,|\underline{\varepsilon } _{{1,3}} |) \) refer to the constraints of tracking error. \( k_{{b,2,1}} = \min (\left| {\bar{\kappa }_{{2,0}} - o_{{1,1}} } \right|,|\underline{\kappa } _{{2,0}} - o_{{1,1}} |) \), \( k_{{b,2,2}} = \min (\left| {\bar{\kappa }_{{2,1}} - o_{{1,2}} } \right|,|\underline{\kappa } _{{2,1}} - o_{{1,2}} |) \), and \( k_{{b,2,3}} = \min (\left| {\bar{\kappa }_{{2,2}} - o_{{1,3}} } \right|,|\underline{\kappa } _{{2,2}} - o_{{1,3}} |) \) are the constraints of error velocity. \({\mathcal{o}}_{1,j}\) is the \({j}^{th}\) element of vector \({\mathcal{o}}_{1}\). \({\widehat{W}}_{i}=[{\widehat{W}}_{i,1},{\widehat{W}}_{i,2},{\widehat{W}}_{i,3},{\widehat{W}}_{i,4},{\widehat{W}}_{i,5}{]}^{T}\) and \({\Phi }_{i}=[{\Phi }_{i,1},{\Phi }_{i,2},{\Phi }_{i,3},{\Phi }_{i,4},{\Phi }_{i,5}{]}^{T}\) for \(i=\mathrm{1,2},3\). \({\Phi }_{i,j}\) is the output of the Radial Basis Functions (RBF), which is automatically determined by using Eq. (35) and Eq. (36) in [56].

The parameters of (48) are selected as follows. \({\overline{K} }_{1}=diag(\mathrm{0.3,0.3,0.3})\), \({\overline{K} }_{2}=diag(\mathrm{0.3,0.3,0.3})\), \({\overline{K} }_{s}=diag(\mathrm{0.9,0.9,0.9})\), \({\Gamma }_{\mathrm{1,1}}={\Gamma }_{\mathrm{1,2}}={\Gamma }_{\mathrm{1,3}}=0.1\), \({\Gamma }_{\mathrm{2,1}}={\Gamma }_{\mathrm{2,2}}={\Gamma }_{\mathrm{2,3}}=0.8\). \({\widehat{W}}_{i}(0)=[{\widehat{W}}_{i,1}(0),{\widehat{W}}_{i,2}(0),{\widehat{W}}_{i,3}(0),{\widehat{W}}_{i,4}(0),{\widehat{W}}_{i,5}(0){]}^{T}=[\mathrm{0,0},\mathrm{0,0},0{]}^{T}\) for \(i=\mathrm{1,2},3\). \(\mathcal{S}\left(0\right)=[-0.47, -0.34, 0.25{]}^{T}\). The selected parameters of (48) can guarantee the same initial control torques to that of the proposed controller at the moment \(t=0s\). Importantly, when implementing the controller from [56], it is required to ensure \( \underline{\kappa } _{{2,j - 1}} < o_{{1,j}} < \bar{\kappa }_{{2,j - 1}} \) holds for \(j=\mathrm{1,2},3\), which is well-known as “feasibility condition” in the field of state constraint control [54].

We consider the following 3 cases in simulation. In Case 1, the initial system states satisfy their state constraints. In Case 2, the initial system states violate their state constraints. In Case 3, the initial system states satisfy their constraints, however, the actuator are temporarily shut down for a timeslot to make the system states inappropriately approach or even exceed their constrained boundaries. We call Case 3 as Extreme scenario.

Case 1

Satisfied constraints of initial system state.

In this case, the initial system states are \(\left[{\theta }_{0},{\theta }_{1},{\theta }_{2}\right]=[{8}^{o},{10}^{o},{-20}^{o}]\) and \(\left[{\dot{\theta }}_{0},{\dot{\theta }}_{1},{\dot{\theta }}_{2}\right]=\left[0,-\mathrm{0.02,0}\right] rad/s\).

The tracking performance of angular position is shown in Fig. 4, while Fig. 5 presents the angular velocities of SRM. Clearly, both the proposed controller and the controller from [56] can achieve the satisfaction of constraints of system states as long as the initial states satisfy the constraints. Notably, the proposed controller has an improved tracking accuracy and a faster response, by showing the smaller tracking errors compared to the controller from [56] in Fig. 6. The improvements on tracking accuracy and settling time can be attributed to the achieved fixed time stability of tracking error (seeing Theorem 1 and Theorem 3), which is stronger than the Uniformly Ultimately Boundedness (UUB) of tracking errors achieved in [56]. More precisely, the fixed time stability can guarantee the tracking error converges to zero within a time predefined by users, while UUB can only guarantee the tracking error is always within an invariant set.

Fig. 4
figure 4

Comparison of angular position in case 1: a Base. b 1st Joint. c 2nd Joint

Fig. 5
figure 5

Comparison of angular velocity in case 1: a Base. b 1st Joint. c 2nd Joint

Fig. 6
figure 6

Comparison of angular position error in case 1: a Base. b 1st Joint. c 2nd Joint

The control torques are illustrated in Fig. 7. Clearly, even though the 2 controllers show the same initial torques at the moment \(t=0s\) (e.g.,\([{\tau }_{0}(0),{{\tau }_{1}(0),{\tau }_{2}(0)]}^{T}=[-4.71 Nm, -0.70 Nm, 0.88 Nm {]}^{T}\in {\mathbb{R}}^{3\times 1}\)), the proposed controller calculates the smaller magnitude of control torques during the stage for\(t\in (\mathrm{0,2}s]\). Then, according to Figs. 4 and 5, the converging rate of tracking error is not compromised by the declined magnitude of control torques. Therefore, the proposed controller can utilize the resource of actuation more efficiently. The sliding variables, shown in Fig. 8, are always within the boundary (red dash line) calculated by (20), which corresponds to the fact that the sliding variables always within this boundary can result in the satisfaction of system states during the approaching stage (seeing Theorem 2).

Fig. 7
figure 7

Comparison of control torque in case 1: a Base. b 1st Joint. c 2nd Joint

Fig. 8
figure 8

Sliding Variable (9) in case 1: a Base. b 1st Joint. c 2nd Joint

To verify the fixed time convergence, we need to provide the theoretically calculated convergence time. The detailed process is given as the following steps, which does not involve any information of initial states.

Step 1 Based on the selected parameters of disturbance observer (\({\mathbb{k}}_{\mathrm{0,0}}={\mathbb{k}}_{\mathrm{0,1}}={\mathbb{k}}_{\mathrm{0,2}}=1\), \({\mathbb{k}}_{\mathrm{1,0}}={\mathbb{k}}_{\mathrm{1,1}}={\mathbb{k}}_{\mathrm{1,2}}=1\), \({\mathbb{k}}_{\mathrm{2,0}}={\mathbb{k}}_{\mathrm{2,1}}\), = \({\mathbb{k}}_{\mathrm{2,2}}=1\), \({\mathbb{m}}=2\), \({\mathbb{n}}=0.8\)), we can calculate the settling time of disturbance observer by using (36) such that \({\mathbb{t}}_{0}={\mathbb{t}}_{1}={\mathbb{t}}_{2}=6.066s.\)

Step 2 Based on the selected parameters of control law (\({\beta }_{\mathrm{1,0}}={\beta }_{\mathrm{1,1}}={\beta }_{\mathrm{1,2}}=1\), \({\beta }_{\mathrm{2,0}}={\beta }_{\mathrm{2,1}}={\beta }_{\mathrm{2,2}}=0.1\), \({\rho }_{1}=1.8\), \({\rho }_{2}=0.6\), \({T}_{3}=2\)) and the calculated time on Step 1, we can calculate the time of reaching phase (the time of each system state reaching the sliding manifold) by using (46) such that \({t}_{\mathrm{0,0}}={t}_{\mathrm{0,1}}={t}_{\mathrm{0,2}}=37.7308s\),

Step 3 Based on the defined state constraints (\( \bar{\kappa }_{{1,i}} ,\underline{\kappa } _{{1,i}} ,\bar{\kappa }_{{2,i}} ,\underline{\kappa } _{{2,i}} \),\(\forall i=\mathrm{0,1},2\)) and the reference signals (\({\theta }_{0,r}\), \({\theta }_{1,r}{\theta }_{2,r}\)), we can obtain the following parameters by using (7), (8), (A15) and Remark 3. They are:\({\overline{\delta }}_{1,i}={\overline{\delta }}_{2,i}=0.03655 rad/s\),\( \underline{\delta } _{{3,i}} = \underline{\delta } _{{4,i}} = 0.01666rad/s \),\({\overline{\delta }}_{5,i}=0.15419 rad/s\),\( \underline{\delta } _{{5,i}} = 0.04581rad/s \), \({\varepsilon }_{1,i}^{*}=0.22689 rad\) for\(i=0\).\({\overline{\delta }}_{1,i}={\overline{\delta }}_{2,i}=0.07311 rad/s\),\( \underline{\delta } _{{3,i}} = \underline{\delta } _{{4,i}} = 0.12286rad/s \),\({\overline{\delta }}_{5,i}=0.42387 rad/s\),\( \underline{\delta } _{{5,i}} = 0.17613rad/s \), \({\varepsilon }_{1,i}^{*}=0.33161 rad\) for\(i=1\).\({\overline{\delta }}_{1,i}={\overline{\delta }}_{2,i}=0.10966 rad/s\),\( \underline{\delta } _{{3,i}} = \underline{\delta } _{{4,i}} = 0.05895rad/s \),\({\overline{\delta }}_{5,i}=0.44841 rad/s\),\( \underline{\delta } _{{5,i}} = 0.15159rad/s \), \({\varepsilon }_{1,i}^{*}=0.41888 rad\) for\(i=2\).

Step 4 Based on the parameters calculated in Step 3, we can obtain \({\overline{\phi }}_{1,i}\) and \({\overline{\phi }}_{2,i}\) by using (A17) and (A18) such that \({\overline{\phi }}_{\mathrm{1,0}}={\overline{\phi }}_{\mathrm{2,0}}=0.3382 rad/s\), \({\overline{\phi }}_{\mathrm{1,1}}={\overline{\phi }}_{\mathrm{2,1}}=0.2522 rad/s\) and \({\overline{\phi }}_{\mathrm{1,2}}={\overline{\phi }}_{\mathrm{2,2}}=0.8341 rad/s\). Then, based on the selected parameters (\(\varsigma =1\times {10}^{-9}\), \({k}_{c,0}={k}_{c,1}={k}_{c,2}=0.01\), \({k}_{\mathrm{1,0}}={k}_{\mathrm{1,1}}={k}_{\mathrm{1,2}}=1\), \({k}_{\mathrm{2,0}}={k}_{\mathrm{2,1}}={k}_{\mathrm{2,2}}=1\), \({\lambda }_{\mathrm{1,0}}=3\), \({\lambda }_{\mathrm{1,1}}={\lambda }_{\mathrm{1,2}}=1.8\), \({\lambda }_{\mathrm{2,0}}^{*}={\lambda }_{\mathrm{2,1}}^{*}={\lambda }_{\mathrm{2,2}}^{*}=0.8\)), we can use (A15) and (A16) to obtain the constants \({\overline{\Phi }}_{i}\) such that \({\overline{\Phi }}_{0}=0.5824 rad/s\), \({\overline{\Phi }}_{1}=0.8362 rad/s\) and \({\overline{\Phi }}_{2}=1.5719 rad/s\). After that, we can use the definition of \({\overline{\sigma }}_{i}\) in (A19) to calculate that \({\overline{\sigma }}_{0}=0.0622\), \({\overline{\sigma }}_{1}=0.1398\) and \({\overline{\sigma }}_{2}=0.075\).

Step 5 Based on the calculated \({\overline{\sigma }}_{0}, {\overline{\sigma }}_{1}\) and \({\overline{\sigma }}_{3}\) in the previous step and the selected parameters of sliding manifold (\({k}_{\mathrm{1,0}}={k}_{\mathrm{1,1}}={k}_{\mathrm{1,2}}=1\), \({k}_{\mathrm{2,0}}={k}_{\mathrm{2,1}}={k}_{\mathrm{2,2}}=1\), \({\lambda }_{\mathrm{1,0}}=3\), \({\lambda }_{\mathrm{1,1}}={\lambda }_{\mathrm{1,2}}=1.8\), \({\lambda }_{\mathrm{2,0}}^{*}={\lambda }_{\mathrm{2,1}}^{*}={\lambda }_{\mathrm{2,2}}^{*}=0.8\), \({t}_{D,0}={t}_{D,1}={t}_{D,2}=1\)), we can calculate the convergence time of tracking error for each system state by using (18) such that \({t}_{\mathrm{1,0}}=128.906s\), \({t}_{\mathrm{1,1}}=83.845s\) and \({t}_{\mathrm{1,2}}=122.775s\).

Figures 9 and 10 show the tracking errors and error velocities of system with the 4 different initial states. The 4 different initial states satisfy their constraints, which are detailed in Table 2. It is clear the system can converge within a fixed time by showing the settling time smaller than the calculated convergence time (\({t}_{\mathrm{1,0}}=128.906s\), \({t}_{\mathrm{1,1}}=83.845s\) and \({t}_{\mathrm{1,2}}=122.775s\)) for the 4 different initial states.

Fig. 9
figure 9

Tracking error of angular position in case 1: a Base. b 1st Joint. c 2nd Joint

Fig. 10
figure 10

Tracking error velocity in case 1: a Base. b 1st Joint. c 2nd Joint

Table 2 Different initial states to verify fixed time convergence

Case 2

Violated constraints of initial system state.

In this case, 2 sets of the initial system states are given. The 1st set is \(\left[{\theta }_{0},{\theta }_{1},{\theta }_{2}\right]=[{15}^{o},{25}^{o},{-35}^{o}]\) and \(\left[{\dot{\theta }}_{0},{\dot{\theta }}_{1},{\dot{\theta }}_{2}\right]=\left[\mathrm{0,0},-0.12\right] rad/s\), which means the initial angular position violating the constraint. The 2nd set is \(\left[{\theta }_{0},{\theta }_{1},{\theta }_{2}\right]=[{8}^{o},{10}^{o},{-23}^{o}]\) and \(\left[{\dot{\theta }}_{0},{\dot{\theta }}_{1},{\dot{\theta }}_{2}\right]=\left[-0.2,-\mathrm{0.5,1.1}\right] rad/s\), which means the initial angular velocity violating the constraints.

Figure 11 shows the comparison of angular positions with the initial angular position violating the constraint. Figures 12 and 13 respectively presents the angular position and angular velocity of the proposed controller with the initial angular velocity violating the constraint. Clearly, the tracking error achieved by the proposed controller can still converge to equilibrium at the presence of the violations of initial angular position and initial angular velocity, which corresponds to the fact that finite time stability of tracking error can be achieved if the initial states violate their constraints (seeing Theorem 1 and Theorem 3). However, the story is different to controller from [56]. In the light of Fig. 11, the tracking error of controller [56] cannot converge into the constrained boundaries if the initial angular position violating the constraint. It is also observed in Fig. 14 that the system under the controller [56] diverges to infinite if the initial angular velocity violates the constraint. For clarity, only the results of 1st joint are presented in Fig. 14. Therefore, the compatibility of the proposed controller to initial system states violating the constraints is illustrated.

Fig. 11
figure 11

Comparison of angular position in case 2 with violation of initial angular position: a Base. b 1st Joint. c 2nd Joint

Fig. 12
figure 12

Angular position of proposed controller in case 2 with violation of initial angular velocity: a Base. b 1st Joint. c 2nd Joint

Fig. 13
figure 13

Angular velocity of proposed controller in case 2 with violation of initial angular velocity: a Base. b 1st Joint. c 2nd Joint

Fig. 14
figure 14

Performance of 1st joint under the controller from [56] in case 2 with violation of initial angular velocity: a Angular position. b Angular velocity

Case 3

Extreme Scenario.

In this case, the initial states are the same as that in Case 1. However, we temporarily shut down the actuator for a period. It is to simulate the scenario that the controller or actuator completely fails for some unknown reasons to result in the system states inappropriately approaching or even exceeding their constrained boundaries. Therefore, the control torque in (37) is modified as \(\tau ={\mathbb{F}}(t)\widehat{M}(\theta )({v}_{1}+{v}_{2})\) in this case. \({\mathbb{F}}\left(t\right)=1\) for \(t\le 65s\), \({\mathbb{F}}\left(t\right)=\mathrm{cos}(\frac{\pi }{2}\frac{t-65}{5})\) for \(65s<t\le 70s\), \({\mathbb{F}}\left(t\right)=0\) for \(70s<t\le 80s\), \({\mathbb{F}}\left(t\right)=\mathrm{sin}(\frac{\pi }{2}\frac{t-80}{5})\) for \(80s<t\le 85s\), \({\mathbb{F}}\left(t\right)=1\) for \(t>85s\). It means actuator or controller fails during \(65s-85s\).

Figures 15 and 16 respectively present the angular position and angular velocity with the presence of temporary complete failure of actuation. Clearly, the system states become inappropriately approaching or even exceeding their constraints due to the shutting down (\(t>65s\)). After that, the proposed controller can retrieve the effectiveness after the recovery of actuation (\(t>85s\)) by making the system states outside the constrained regions start to move back to the constrained regions after \(t=85s\). After a while, the system states under the proposed controller stay at the constrained regions and eventually track their reference signals successfully. However, the controller [56] shows a failure on tracking the reference signals even the actuation is recovered (\(t>85s\)). Therefore, the proposed controller is superior to the controller [56].

Fig. 15
figure 15

Comparison of angular position in case 3: a Base. b 1st Joint. c 2nd Joint

Fig. 16
figure 16

Comparison of angular velocity in case 3: a Base. b 1st Joint. c 2nd Joint

To evaluate the computational time, we coded the control algorithm in C +  + and implemented the codes in Raspberry Pi 3B + board, which runs Raspberry Pi OS based on the Debian Linux system. The running times for one iteration of the control loop with 3 trials are \(310\times {10}^{-6}s\), \(290\times {10}^{-6}s\) and \(394\times {10}^{-6}s\) respectively. The running time is different due to the Raspberry Pi OS is not a real-time operating system. We also run the control loop for 20,000 iterations, and the running time is \(824401\times {10}^{-6}s\), which means the average running time per iteration is less than \(50\times {10}^{-6}s\). The sampling time required for the control algorithm is 0.001 s. Clearly, the control algorithm is able to run on-board the Raspberry Pi 3B + , which has been adopted for future experimental works, within the required sampling time.

5 Conclusion

In conclusion, this paper proposed a fixed time disturbance observer-based sliding mode controller that can achieve the fixed time convergence of tracking error with the satisfaction of full state constraints at the presence of system uncertainty and unknown disturbance. Compared to the conventional literatures of state constraint control, the proposed controller does not include any BLF terms of system states, which thereby eliminates the risk of outputting overly high control commands due to the measured system states inappropriately approaching or even exceeding their constrained boundaries. Moreover, the proposed control scheme can still achieve a finite time stability at the presence of the initial states violating the constraints, which therefore is compatible to all the initial conditions. Furthermore, the designed fixed time sliding manifold solves the singularity problem of FTC by using a continuously varying power, which removes the need of an additional switching mechanism of sliding manifold to avoid compromising the fixed time convergence at the neighbourhood of origin of tracking errors. The simulation results verify the effectiveness and superiority of the proposed controller.