Keywords

1 Introduction

Achieving standing-up motion for persons with spinal cord injury (SCI) assumes significance as it is a precursor to walking. In recent years, functional electrical stimulation (FES) has been primarily used to reanimate paralyzed muscles during this motion [1,2,3,4,5,6,7,8,9]. FES applies external electrical currents to artificially stimulate the paralyzed muscles that generate desired limb torques [1, 10, 11]. However, a rapid onset of muscle fatigue during FES impedes an effective FES control of sitting-to-standing movements [12].

Alternatively, lower-limb powered exoskeletons can also be used to achieve sitting-to-standing motions [2, 4, 9, 13, 14]. Exoskeleton has already been shown to achieve walking [15,16,17,18,19,20,21], and unlike FES they can reliably generate torques that assist lower-limb movements to work for longer duration. However, powered exoskeletons may require large power source and actuators to operate, which are likely to reduce their wearability.

Hybrid devices that combine FES and powered exoskeleton have the potential to overcome rapid muscle fatigue caused by FES and also reduce the size and weight of the powered exoskeletons. Controllers that coordinate FES and the electric motors in the hybrid device have been studied in recent literature [14, 22,23,24,25,26,27]. In [28], FES and active actuators were allocated to achieve a knee extension motion with an adaptive gain-based controller, where motors were controlled by a PD controller while the FES input was provided according to an adaptive gain proportional to the motor current input. In [23], a cooperative knee joint controller was proposed for controlling a hybrid knee-ankle-foot exoskeleton, where the stimulation amount is adapted based on a fatigue estimator that measures the torque-time integral. In [24], another cooperative control approach had been developed to coordinate hip motors with FES on the hamstrings and knee motors with FES on quadriceps muscle, where the FES control was modified by the difference between the estimated muscle torque and the reference torque profile. To better allocate the actuators according to the fatigue level, a muscle fatigue dynamic model [29] was adopted in [25], where a model predictive control (MPC) method [25, 30,31,32] was used to achieve a leg extension motion on hybrid neuroprosthesis.

However, actuator allocation approaches in a hybrid device to achieve a standing-up motion have been minimally reported. One of the seminal papers that report patient-driven standing-up [5, 6] used only FES for actuation, where the stimulation current is determined by minimizing the upper-arm effort. In [9, 13], only a lower-limb powered exoskeleton was used to assist a user to achieve the standing-up motion. In [33] a lower-limb powered exoskeleton was combined with FES to achieve a user-driven standing-up motion. However, FES amplitude was set to be constant and was not varied dynamically. In [14], a PID controller was used to drive the exoskeleton’s electric motors, while FES was triggered when a user lifts off from a seated position. Again in this work FES was not varied dynamically but was triggered based on a set knee joint angle during an extension phase. Because FES-induced fatigue is a major factor that needs to be considered, an optimal allocation of FES and the electric motors, based on the FES-induced fatigue, is desirable.

A hybrid walking neuroprosthesis device that was recently developed in our lab [33]. The exoskeleton has electrical motors mounted on the knee and hip joints while FES is used to stimulate the quadriceps muscles to assist during knee extension. In this paper a control scheme that can optimally allocate FES and the knee electric motors of the exoskeleton during the standing-up motion is proposed. In the scheme, a robust feedback controller is derived to provide stabilizing control signals. The feedback control computes the total torques required for both knee and hip joints to track a desired standing-up motion. Then, an online optimal control method is used to determine an optimal ratio between the FES-induced torque to the motor torque at the knee joint. The optimization uses a normalized fatigue level that is predicted by a dynamic muscle fatigue model to determine the actuator allocation. This allows dynamic allocation of control inputs to FES and the electric motors. Experiments were performed on an able-bodied participant to validate the proposed control method.

2 System Dynamics

A 2 degree of freedom lower-limb dynamics during the standing-up motion, as in Fig. 1, can be expressed as

$$\displaystyle \begin{aligned} M\left(\boldsymbol{q}\right)\ddot{\boldsymbol{q}}+C_{m}\left(\boldsymbol{q},\dot{\boldsymbol{q}}\right)\dot{\boldsymbol{q}}+F\left(\boldsymbol{q},\dot{\boldsymbol{q}}\right)+G\left(\boldsymbol{q}\right)+\boldsymbol{\omega}=T{} \end{aligned} $$
(1)

where the terms \(\boldsymbol {q},\dot {\boldsymbol {q}},\ddot {\boldsymbol {q}}\in \mathbb {R}^{2}\) are the joint angular position vector, angular velocity vector , and angular acceleration vector, respectively. The vector \(\boldsymbol {q}=\left [\begin {array}{cc} q_{1} & q_{2}\end {array}\right ]^{T}\)contains the knee joint angular position, q 1 and the hip joint angular position, q 2. The torque vector

$$\displaystyle \begin{aligned} \boldsymbol{T}\equiv\left[\begin{array}{cc} T_{1} & T_{2}\end{array}\right]^{T}=\left[\begin{array}{cc} \tau_{k} & \tau_{h}\end{array}\right]^{T}+\left[\begin{array}{cc} \tau_{a} & 0\end{array}\right]^{T}{} \end{aligned} $$
(2)

denotes the total torque vector that contains the knee motor torque \(\tau _{k}\in \mathbb {R}\), hip motor torque \(\tau _{h}\in \mathbb {R}\), and \(\tau _{a}(q_{1},\dot {q}_{1},\mu ,u_{fes})\in \mathbb {R}\) denotes the FES-induced torque at the knee joint. \(u_{fes}\in \mathbb {R}\) the normalized FES current level, and \(\mu \in \mathbb {R}\) the muscle fatigue [5, 29]. In (1) we can see that only knee joint is stimulated by FES. The disturbance term \(\boldsymbol {\omega }\in \mathbb {R}^{2}\) is bounded as \(\left |\boldsymbol {\omega }\right |\leq \boldsymbol {\Omega }\in \mathbb {R}^{2}\). The matrix \(M(\boldsymbol {q})\in \mathbb {R}^{2\times 2}\) denotes the moment of inertia, which is symmetric, positive definite, bounded, and invertible. The matrix \(C_{m}(\boldsymbol {q},\dot {\boldsymbol {q}})\in \mathbb {R}^{2\times 2}\) denotes the Coriolis term [34]. The vector \(G(\boldsymbol {q})\in \mathbb {R}^{2}\) denotes the gravity vector and \(F(\boldsymbol {q},\dot {\boldsymbol {q}})\in \mathbb {R}^{2}\) denotes the passive muscle torque vector. The equation of motion (1) can be rewritten as

$$\displaystyle \begin{aligned} \ddot{\boldsymbol{q}}+\Psi\left(\boldsymbol{q},\dot{\boldsymbol{q}}\right)+\boldsymbol{v}=B\left(\boldsymbol{q}\right)\boldsymbol{T}{} \end{aligned} $$
(3)

where \(\Psi \left (\boldsymbol {q},\dot {\boldsymbol {q}}\right )=M^{-1}C+M^{-1}F+M^{-1}G\), \(B\left (\boldsymbol {q}\right )=M^{-1}\), v ≡ M −1ω.

Fig. 1
figure 1

A representative figure depicting the hybrid neuroprosthesis for standing-up motion

3 Standing Motion Planning

The joint angle, velocity, and acceleration can be represented in an output vector. Let us define \(\boldsymbol {h}_{d}=\left [q_{d_{1}},\dot {q}_{d_{1}},\ddot {q}_{d_{1}},q_{d_{2}},\dot {q}_{d_{2}},\ddot {q}_{d_{2}}\right ]^{T}\) as the reference output vector (represents the optimal motion) and \(\boldsymbol {h}=\left [q_{1},\dot {q}_{1},\ddot {q}_{1},q_{2},\dot {q}_{2},\ddot {q}_{2}\right ]^{T}\) as the actual output vector. The reference output can be computed using a virtual constraint approach [35], which is obtained by substituting the independent join angle function, \(\theta \left (\boldsymbol {q},\dot {\boldsymbol {q}}\right )\in \mathbb {R}\)

$$\displaystyle \begin{aligned} \theta\left(\boldsymbol{q},\dot{\boldsymbol{q}}\right)=\zeta_{1}q_{1}+\zeta_{2}\dot{q}_{1}+\zeta_{3}q_{2}+\zeta_{4}\dot{q}_{2} \end{aligned}$$

where ∀i = 1, 2, 3, 4 \(\zeta _{\text{i}}\in \mathbb {R}\) are chosen such that \(\theta \left (\boldsymbol {q},\dot {\boldsymbol {q}}\right )\) is monotonically increasing. Then Bezier polynomials can be used to obtain the reference output

$$\displaystyle \begin{aligned} \boldsymbol{q}_{d}o\theta\left(\boldsymbol{q},\dot{\boldsymbol{q}}\right)=\left[\begin{array}{c} b_{1}o\varsigma(\boldsymbol{q},\dot{\boldsymbol{q}})\\ b_{2}o\varsigma(\boldsymbol{q},\dot{\boldsymbol{q}}) \end{array}\right]{} \end{aligned} $$
(4)

where

$$\displaystyle \begin{aligned} b_{i}(w)=\sum_{k=0}^{M}\varrho_{k}^{i}\frac{N_{b}!}{k!(N_{b}-k)!}w^{k}(1-w)^{M-k}.{} \end{aligned} $$
(5)

In (5), \(M,\,N_{b}\in \mathbb {I}^{+}\) denote the order and number of Bezier polynomial terms, respectively, \(\varrho _{k}^{i}\) is an optimization parameter, and w is obtained according to

$$\displaystyle \begin{aligned} w(\boldsymbol{q})=\frac{\theta(\boldsymbol{q},\dot{\boldsymbol{q}})-\theta^{+}}{\theta^{-}-\theta^{+}}{} \end{aligned} $$
(6)

where θ and θ +are the lower and upper limitations of the \(\theta \left (\boldsymbol {q},\dot {\boldsymbol {q}}\right )\), respectively [36].

It can be seen that in the design, the reference output is time invariant; i.e., it is constrained only to the actual joint kinematics and there exists a motion generation law Θ(⋅, ⋅) such that \(\boldsymbol {h}_{d}=\Theta (\boldsymbol {q},\dot {\boldsymbol {q}})\).

4 Feedback Control Development

The control objective is to minimize the error term e = q d −q, where \(\boldsymbol {q}_{d}=\left [\begin {array}{cc} q_{d_{1}} & q_{d_{2}}\end {array}\right ]^{T}\). Define an auxiliary signal, \(\boldsymbol {s}\in \mathbb {R}^{2}\),

$$\displaystyle \begin{aligned} \boldsymbol{s}=\dot{\boldsymbol{e}}+\lambda\boldsymbol{e}.{} \end{aligned} $$
(7)

After taking time derivative of (7) and on substituting (3),

$$\displaystyle \begin{aligned} \dot{\boldsymbol{s}}=\ddot{\boldsymbol{q}}_{d}+\lambda\dot{\boldsymbol{q}}_{d}-\lambda\dot{\boldsymbol{q}}+\Psi+\boldsymbol{v}-B\boldsymbol{T}.{} \end{aligned} $$
(8)

Based on the subsequent stability analysis, a feedback law K(⋅, ⋅) is designed such that

$$\displaystyle \begin{aligned} \begin{array}{cc} \boldsymbol{T}=\hat{M}\left(\ddot{\boldsymbol{q}}_{d}+\lambda\dot{\boldsymbol{q}}_{d}-\lambda\boldsymbol{q}+\kappa_{2}\boldsymbol{s}\right)+\hat{C}_{m}\boldsymbol{s}+\hat{C}+\hat{F}+\hat{G}\\ +\kappa_{1}\text{sgn}(\boldsymbol{s})+\kappa_{0}\left(\boldsymbol{e},\,\dot{\boldsymbol{e}}\right)\boldsymbol{s}+\Gamma\text{sgn}\left(\dot{\boldsymbol{q}}^{T}\boldsymbol{s}\right)\dot{\boldsymbol{q}}+\hat{\boldsymbol{\omega}} \end{array}{} \end{aligned} $$
(9)

where κ 0 is a positive and monotonically increasing function, \(\kappa _{1}\in \mathbb {R}^{+}\) and \(\kappa _{2}\in \mathbb {R}^{+}\) are control gains, \(\Gamma \in \mathbb {R}^{2\times 2}\) is a positive definite control gain matrix, and \(\hat {M}\in \mathbb {R}^{2\times 2}\), \(\hat {C}_{m}\in \mathbb {R}^{2\times 2}\), \(\hat {C}\in \mathbb {R}^{2}\), \(\hat {F}\in \mathbb {R}^{2}\), \(\hat {G}\in \mathbb {R}^{2}\), \(\hat {\boldsymbol {\omega }}\in \mathbb {R}^{2}\) as estimates of M, C m, C, F, G, ω , respectively, where \(C(\boldsymbol {q},\dot {\boldsymbol {q}})=C_{m}(\boldsymbol {q},\dot {\boldsymbol {q}})\dot {\boldsymbol {q}}\) [34]. The controller is expressed in the following compact form:

$$\displaystyle \begin{aligned} \boldsymbol{T}=K(\Theta(\boldsymbol{q},\dot{\boldsymbol{q}}),\boldsymbol{h}).{} \end{aligned} $$
(10)

On substituting (9) into (8)

$$\displaystyle \begin{aligned} \dot{\boldsymbol{s}}= & \Psi-M^{-1}C-M^{-1}F-M^{-1}G-M^{-1}C_{m}\boldsymbol{s}\\ & +M^{-1}\tilde{M}\left(\ddot{\boldsymbol{q}}_{d}+\lambda\dot{\boldsymbol{q}}_{d}\right)+M^{-1}\tilde{C}+M^{-1}\tilde{F}\\ & +M^{-1}\tilde{G}+\boldsymbol{v}-M^{-1}\hat{\boldsymbol{\omega}}-\kappa_{1}M^{-1}\text{sgn}(\boldsymbol{s})\\ & +\kappa_{2}M^{-1}\tilde{M}\boldsymbol{s}+M^{-1}\tilde{C}_{m}\boldsymbol{s}-\kappa_{0}M^{-1}\boldsymbol{s}\\ & -M^{-1}\Gamma\text{sgn}(\dot{\boldsymbol{q}}^{T}\boldsymbol{s})\dot{\boldsymbol{q}}-\lambda M^{-1}\tilde{M}\dot{\boldsymbol{q}}-\kappa_{2}\boldsymbol{s} \end{aligned} $$

where \(\tilde {M}=M-\hat {M}=\left [\begin {array}{cc} \tilde {m}_{11} & \tilde {m}_{12}\\ \tilde {m}_{21} & \tilde {m}_{22} \end {array}\right ]\), \(\tilde {C}_{m}=C_{m}-\hat {C}_{m}\), \(\tilde {C}=C-\hat {C}\) , \(\tilde {F}=F-\hat {F}\), and \(\tilde {G}=G-\hat {G}\), \(\tilde {\boldsymbol {\omega }}=\boldsymbol {\omega }-\hat {\boldsymbol {\omega }}\), \(\tilde {\boldsymbol {v}}=\boldsymbol {v}-\hat {\boldsymbol {v}}\), \(\hat {\boldsymbol {v}}=M^{-1}\hat {\boldsymbol {\omega }}\).

It is further simplified to

$$\displaystyle \begin{aligned} M\dot{\boldsymbol{s}}= & -C_{m}\boldsymbol{s}+\tilde{\boldsymbol{n}}+\tilde{\boldsymbol{y}}-\kappa_{1}\text{sgn}(\boldsymbol{s})-\lambda\tilde{M}\dot{\boldsymbol{q}} \\ & -\Gamma\text{sgn}\left(\dot{\boldsymbol{q}}^{T}\boldsymbol{s}\right)\dot{\boldsymbol{q}}+\Upsilon\boldsymbol{s}-\kappa_{0}\boldsymbol{s}-\kappa_{2}M\boldsymbol{s}.{} \end{aligned} $$
(11)

In (11) \(\Upsilon \in \mathbb {R}^{2\times 2}\) is defined as \(\Upsilon \triangleq \left [\begin {array}{cc} \varepsilon _{1} & \varepsilon _{2}\\ \varepsilon _{3} & \varepsilon _{4} \end {array}\right ]=\kappa _{2}\tilde {M}+\tilde {C}_{m}\), where \(\varepsilon _{i}\in \mathbb {R}\forall i=1,2,3,4\), \(\tilde {\boldsymbol {y}}\in \mathbb {R}^{2}\) is defined as \(\tilde {\boldsymbol {y}}=\tilde {C}+\tilde {F}+\tilde {G}\), \(\tilde {\boldsymbol {n}}\in \mathbb {R}^{2}\) is defined as \(\tilde {\boldsymbol {n}}\triangleq \left [\tilde {n}_{1},\tilde {n}_{2}\right ]^{T}=\tilde {\boldsymbol {\omega }}+\tilde {\boldsymbol {d}}\), and \(\tilde {\boldsymbol {d}}\in \mathbb {R}^{2}\) is defined as \(\tilde {\boldsymbol {d}}\equiv \tilde {M}\ddot {\boldsymbol {q}}_{d}+\lambda \tilde {M}\dot {\boldsymbol {q}}_{d}\). It is also assumed that \(\tilde {\boldsymbol {y}}\) is bounded as[34]

$$\displaystyle \begin{aligned} \left\Vert \tilde{\boldsymbol{y}}\right\Vert \leq\tilde{Y}(\left\Vert \boldsymbol{e},\,\dot{\boldsymbol{e}}\right\Vert ^{2}) \end{aligned}$$

where \(\tilde {Y}\) is a positive and monotonically increasing function.

Theorem 1

The control law in (9) makes the error dynamical system in (11) semi-globally exponentially stable, provided the following gain conditions hold true:

$$\displaystyle \begin{aligned} & \kappa_{0}>\mathit{\text{max}}\left\{ \left|\varepsilon_{i}\right|;\forall i=1,2,3,4\right\} +\tilde{Y}(\left\Vert \boldsymbol{e},\,\dot{\boldsymbol{e}}\right\Vert ^{2}) \\ & \kappa_{1}>\mathit{\text{max}}\left\{ \left|\tilde{n}_{1}\right|,\left|\tilde{n}_{2}\right|\right\} {}\\ & \Gamma=\left[\begin{array}{cc} \gamma_{11} & \gamma_{12}\\ \gamma_{21} & \gamma_{22} \end{array}\right]\,\forall i,j\,\gamma_{ij}\geq\lambda\tilde{m}_{ij}. \end{aligned} $$
(12)

Proof

Define a positive definite Lyapunov candidate, \(V\in \mathbb {R}\)

$$\displaystyle \begin{aligned} V=\frac{1}{2}\boldsymbol{s}^{T}M\boldsymbol{s}{} \end{aligned} $$
(13)

such that \(\lambda _{m}\left \Vert \boldsymbol {s}\right \Vert ^{2}\leq V\leq \lambda _{M}\left \Vert \boldsymbol {s}\right \Vert ^{2}\), where λ m and λ M are the minimum and maximum eigenvalue of M, respectively.

The time derivative of V is

$$\displaystyle \begin{aligned} \dot{V}=\boldsymbol{s}^{T}M\dot{\boldsymbol{s}}+\frac{1}{2}\boldsymbol{s}^{T}\dot{M}\boldsymbol{s}.{} \end{aligned} $$
(14)

On substituting (11) into (14), and by applying the skew symmetric property [34], i.e., \(\dot {M}-2C_{m}=0\), we can obtain

$$\displaystyle \begin{aligned} \dot{V}= & -\kappa_{1}\boldsymbol{s}^{T}\text{sgn}(\boldsymbol{s})+\boldsymbol{s}^{T}\tilde{\boldsymbol{n}}+\boldsymbol{s}^{T}\tilde{\boldsymbol{y}}+\boldsymbol{s}^{T}\Upsilon\boldsymbol{s}-\boldsymbol{s}^{T}\kappa_{0}\boldsymbol{s}{}\\ & -\lambda\boldsymbol{s}^{T}\tilde{M}\dot{\boldsymbol{q}}-\boldsymbol{s}^{T}\Gamma\text{sgn}\left(\dot{\boldsymbol{q}}^{T}\boldsymbol{s}\right)\dot{\boldsymbol{q}}-\boldsymbol{s}^{T}\kappa_{2}M\boldsymbol{s}\\ \leq & -\kappa_{1}\boldsymbol{s}^{T}\text{sgn}(\boldsymbol{s})+\left|s_{1}\right|\left|\tilde{n}_{1}\right|+\left|s_{2}\right|\left|\tilde{n}_{2}\right| \\ & +\left\Vert \boldsymbol{s}\right\Vert \tilde{Y}(\left\Vert \boldsymbol{e},\,\dot{\boldsymbol{e}}\right\Vert ^{2})+\boldsymbol{s}^{T}\Upsilon\boldsymbol{s}-\boldsymbol{s}^{T}\kappa_{0}\boldsymbol{s} \\ & -\lambda\boldsymbol{s}^{T}\tilde{M}\dot{\boldsymbol{q}}-\boldsymbol{s}^{T}\Gamma\text{sgn}\left(\dot{\boldsymbol{q}}^{T}\boldsymbol{s}\right)\dot{\boldsymbol{q}}-\kappa_{2}\boldsymbol{s}^{T}M\boldsymbol{s}. \end{aligned} $$
(15)

By applying (12), (15) can be further simplified to

$$\displaystyle \begin{aligned} \dot{V}<-\kappa_{2}\boldsymbol{s}^{T}M\boldsymbol{s}\leq-2\kappa_{2}V. \end{aligned}$$

This means that V is semi-globally exponentially stable, which further implies that e goes to 0 exponentially. ■

5 Model Predictive Control-Based Ratio Allocation Method

The control allocation problem is to distribute T 1 in (2) among the knee torque, τ a generated by FES and the knee electrical motor, τ k. Further, we are interested in computing the stimulation amplitude for the quadriceps muscles that generate τ a. Therefore, the following model is used to determine stimulation current.

5.1 Muscle Force Generation and Fatigue Model

The active knee torque, \(\tau _{a}=\Phi _{a}\left (\phi \left (q_{1},\dot {q}_{1}\right ),\mu ,u_{fes}\right )\in \mathbb {R}^{+}\cup \{0\}\) is [37]

$$\displaystyle \begin{aligned} \tau_{a}=\phi\left(q_{1},\dot{q}_{1}\right)\mu u_{fes},{} \end{aligned} $$
(16)

where \(\phi \left (q_{1},\dot {q}_{1}\right )=\left (c_{2}q_{1}^{2}+c_{1}q_{1}+c_{0}\right )\left (1-c_{3}\dot {q}_{1}\right )\) (c ii = 0, 1, 2, 3 are model parameters) is the torque-knee angle and knee angular velocity relationships [37], u fes is the normalized stimulation amplitude, and μ is the normalized fatigue variable driven by the fatigue dynamics \(\dot {\mu }=\Phi _{\mu }\left (\mu ,u_{fes}\right )\in \mathbb {R}\)

$$\displaystyle \begin{aligned} \dot{\mu}=\frac{\left(\mu_{min}-\mu\right)u_{fes}}{T_{f}}+\frac{\left(1-\mu\right)\left(1-u_{fes}\right)}{T_{r}}{} \end{aligned} $$
(17)

5.2 Optimization Problem

Based on the knowledge of \(\boldsymbol {\bar {T}}\) ( \(\bar {\cdot }\) represents the nominal signals in the MPC), which is obtained by running the feedback controller (10) through the nominal model (without disturbance), an MPC approach is designed to determine the allocation between the motor and FES input. The optimization is also constrained to the estimated muscle fatigue model (17). The control loop is shown in Fig. 2.

Fig. 2
figure 2

The control loop of the ratio allocation approach

The optimization problem is

$$\displaystyle \begin{aligned} \begin{array}{rcl} &\displaystyle \underset{\!\negthinspace\!\!\!\!\bar{u}_{fes}}{\!\!\!\!\!\!\text{min}}\,J(t_{k})=\int_{t_{k}}^{t_{k}+T_{N}}\left\{ \bar{\tau}_{k}^{2}+\frac{w_{1}}{\bar{\mu}+\epsilon}\bar{\tau}_{a}^{2}+w_{2}(\bar{\mu}-\bar{\mu}_{o})^{2}\right\} dt &\displaystyle \,\,\,\,\,{}\\ &\displaystyle \text{s.t.}\,\;\bar{\tau}_{k}+\bar{\tau}_{a}=\bar{T}_{1} \\ &\displaystyle \bar{\boldsymbol{T}}=K(\Theta(\bar{\boldsymbol{q}},\dot{\bar{\boldsymbol{q}}}),\bar{\boldsymbol{h}}) \\ &\displaystyle M\left(\bar{\boldsymbol{q}}\right)\ddot{\bar{\boldsymbol{q}}}\left(t\right)+C_{m}\left(\bar{\boldsymbol{q}},\dot{\bar{\boldsymbol{q}}}\right)\dot{\bar{\boldsymbol{q}}}\left(t\right)+F\left(\bar{\boldsymbol{q}},\dot{\bar{\boldsymbol{q}}}\right)+G\left(\bar{\boldsymbol{q}}\right)=\bar{\boldsymbol{T}} \\ &\displaystyle \bar{\tau}_{a}=\Phi_{a}\left(\phi\left(q_{1},\dot{q}_{1}\right),\bar{\mu},\bar{u}_{fes}\right) \\ &\displaystyle \dot{\bar{\mu}}=\Phi_{\mu}\left(\bar{\mu},\bar{u}_{fes}\right) \\ &\displaystyle \bar{u}_{fes}\in\mathcal{U}_{fes} \end{array} \end{aligned} $$
(18)

the objective index \(J(t)\in \mathbb {R}^{+}\cup \{0\}\) in (18) is the cost function, \(\bar {\mu }_{o}\) is the estimated fatigue of contralateral leg, \(\mathcal {U}_{fes}\) is the input constraint (normalized as \(\left [0,1\right ]\)[25, 38]), 𝜖 > 0 is a constant, and w 1,2 > 0 is a user-defined weight. When the optimal solution, \(u_{fes}^{*}\left (\left .t\right |:\,t\in \left [t_{k},t_{k}+T_{N}\right ]\right )=\text{argmin}\{J(t)\}\), is found, \(u_{fes}=u_{fes}^{*}\left (\left .t\right |:\,t=t_{k}\rightarrow t_{k}+\varepsilon \right )\) is applied to the system, where ε is an infinitesimal time constant that makes t k+1 = t k + ε [31].

For the ratio allocation optimization, a gradient search algorithm was adopted [31] to solve the optimization problem. The detailed algorithm can be found in Table 1.

Table 1 Detailed MPC algorithm

6 Results

6.1 Simulation

To validate the control method, simulations were run. The actual system parameters in the simulation are set to be slightly different than the nominal one. In the simulation, only one leg is considered by assuming that the contralateral leg dynamics is the symmetric and constrained to the primary leg. We also assume that fatigue levels of the two legs are equal, i.e., \(\bar {\mu }=\bar {\mu }_{o}\). In the simulation, allocation results were investigated by setting w 1 = 1. The simulation result can be seen in Fig. 3.

Fig. 3
figure 3

This figure demonstrate the simulation results. (a) Knee performance. (b) Hip performance. (c) Total motor torques. (d) FES and fatigue. (e) This figure visualizes the standing-up motion and the fatigue levels corresponding to (d)

7 Conclusion

This paper proposed a control scheme that includes an MPC method and a feedback controller to control a hybrid neuroprosthesis that can potentially help a person with SCI to achieve a standing-up motion. In the control scheme a ratio allocation method is proposed to allocate between FES and the powered exoskeleton. Simulation and experimental results validated the method. In our future work, the proposed method will be investigated on a person with SCI.