Electrode Array Control Design

, of ES signal $$\varvec{u} \in \mathscr {L}^m_2[0,T]$$ represents the electrical stimulation applied to the ith muscle. Since each array element does not necessarily correspond to a single muscle, we now introduce signal $$\varvec{z} \in \mathscr {L}^n_2[0,T]$$ containing the stimulation applied to each of the n elements of the array over $$t \in [0,T]$$. The stimulation provided to the ith muscle is assumed to be a linear combination of those array elements within spatial range, and hence can be modeled using the relationship



$$\begin{aligned} u_i(t) = \sum ^{n}_{j = 1} a_{i,j} z_j (t), \quad i = 1, \ldots , m, \quad t \in [0,T]. \end{aligned}$$

(8.1)
From Chap. 3, the resulting system is hence expressed in operator form as


$$\begin{aligned} M : \varvec{\varPhi } = H_{RB} F_m (\varvec{\varPhi },\dot{\varvec{\varPhi }}) H_{LAD} h_{IRC}(A \varvec{z}), \quad A :\varvec{z} \mapsto \varvec{u}: \varvec{u}(t) = \left[ \begin{array}{ccc} a_{1,1} &{}\cdots &{} a_{1,n} \\ \vdots &{}\ddots &{}\vdots \\ a_{m,1} &{}\cdots &{}a_{m,n} \end{array} \right] \varvec{z}(t) \end{aligned}$$

(8.2)
with elements defined by (3.​39)–(3.​42). This reduces to (3.​38) when $$n = m$$ and $$A = I$$ (i.e. each ES channel is associated with a single muscle).

It is possible to identify parameters in (8.2) by extending the approach developed in Chap. 2. However, in the case of the wrist and hand there are at least 41 musculo-tendon units actuating16 joints with 23 degrees of freedom [6]. This makes measurement of all joint angles and application and sensing of force/moments about each axis highly challenging. In addition, since the muscles are small and closely packed, the model system is sensitive to small changes in array position as well as to physiological changes such as fatigue and spasticity, and environmental conditions such as temperature and humidity. This makes the previous approach impractical, and therefore it will be exchanged for the identification of local linear models (as incorporated as an option within the design procedures of Chaps. 3, 4 and 6).



8.2 General Array Control Framework


Application of control design Procedure 4 of Sect. 6.​4 to the array control problem first requires designing feedback controller K to stabilise the linearised model description $$M |_{\varvec{z}_k}$$. The impractically of obtaining a global non-linear model means that we must identify $$M |_{\varvec{z}_k}$$ around each operating point $$\varvec{z}_k$$. The structure of $$M : \varvec{z} \mapsto \varvec{\varPhi }$$ is given by (8.2) and has n inputs and p outputs, making it potentially high dimension. To recover a tractable identification problem we therefore embed a restricted plant stimulation space with dimension $$q < n$$. From Definition 6.​1, this necessitates feedback structure (6.​11), and hence the control scheme takes the form shown in Fig. 8.1, where operator X is given by (6.​6) with full rank $$\bar{X} \in \mathbb {R}^{n \times q}$$. We can expand the previous design procedure as follows:


Procedure 5

(Design for Robust stability: specification to electrode array)

Define task: Choose P via (6.​1) and Lemma 6.​3 to capture the required functional task (or for simplicity choose $$P = I$$ to track reference $$\hat{\varvec{\varPhi }}$$ over $$t \in [0,T]$$).

Define stimulation subspace, X : This will be addressed in Sect. 8.3.

Model identification: Apply input sequence $$\varvec{z}_k = X \varvec{r}_k$$ to the ES electrode array, and use resulting input-output data set $$\{ \varvec{z}_k, \varvec{\varPhi }_k \}$$ to identify a linear approximation to the dynamics $$M|_{\varvec{z}_k}$$ about $$\varvec{z}_k = X \varvec{r}_k$$. Here


$$\begin{aligned}&M |_{\varvec{z}(k)} : \mathscr {L}^n_2[0,T] \rightarrow \mathscr {L}^p_2[0,T] : \varvec{z} \mapsto \varvec{\varPhi } \nonumber \\&\,\;\;\;\;\;\qquad \qquad \qquad : \varvec{\varPhi } = \big ( H_{RB} |_{\varvec{w}} F_m (\varvec{\varPhi },\dot{\varvec{\varPhi }}) H_{LAD} \varvec{h}_{IRC} (A \varvec{z}) \big ) |_{\varvec{z}_k} \varvec{z} \end{aligned}$$

(8.3)
Feedback controller design: Design $$K_X : \mathscr {L}^p_2[0,T] \rightarrow \mathscr {L}^q_2[0,T]$$ to stabilize $$M |_{\varvec{z}(k)} X$$. This is equivalent to designing K to stabilize $$M |_{\varvec{z}(k)}$$ given structure (6.​11).

ILC design: Design L to satisfy condition (6.​14) or (6.​17) of Theorem 6.1 for the resulting closed-loop system


$$\begin{aligned}&G |_{\hat{\varvec{\varPhi }} + \varvec{v}_k} : \mathscr {L}^p_2[0,T] \rightarrow \mathscr {L}^p_2[0,T] : \varvec{v} \mapsto \varvec{\varPhi } : \varvec{\varPhi } = (I + M |_{\varvec{z}(k)} K)^{-1} M |_{\varvec{z}(k)} K \varvec{v}. \end{aligned}$$

(8.4)
The first condition guarantees nominal convergence to zero error, but requires $$q \ge p$$. In both cases, implement ILC update using (6.​26).

Examine robustness: Calculate $$b_{\bar{M}//\bar{C}}$$ for above K and L forms using Theorem 6.​4. Use in Theorem 4.​7 and Proposition 4.​1 to inspect allowable model mismatch and its effect on robust performance.



A352940_1_En_8_Fig1_HTML.gif


Fig. 8.1
Feedback and ILC control scheme specified to electrode array structure

We next present examples of explicit forms of $$K_X$$ and L for application in the above procedure. These assume that the form of linearized system (8.3) is stipulated by the designer as a static $$p \times n$$ mapping, i.e. with form


$$\begin{aligned} F : \mathscr {L}^n[0,T] \rightarrow \mathscr {L}^p[0,T] : \varvec{z} \mapsto \varvec{\varPhi } : \varvec{\varPhi }(t) = \bar{F} \varvec{z}(t), \;\; \bar{F} \in \mathbb {R}^{p \times n}, \end{aligned}$$

(8.5)
followed by SISO linear dynamics. In practice this assumption is supported by similar muscle and rigid body dynamics in the wrist and hand, together with the presence of spasticity, inherent stiffness, and the low bandwidth of required movements.


Proposition 8.1

Let linearized dynamics (8.3) have form $$M |_{\varvec{z}} = \bar{H}(s) F$$ where F is given by (8.5) and $$\bar{H}(s)$$ is a SISO system. The feedback control action $$K_X : \varvec{e} \mapsto \varvec{r} : \varvec{r} = \bar{K}(s) (F X)^\dagger \varvec{e}$$, where $$\bar{K}(s)$$ is a SISO system, applied to system $$\varvec{\varPhi } = M |_{\varvec{z}} X \varvec{r}$$ realizes stimulation input


$$\begin{aligned} \varvec{r} = N_w(s) \varvec{r}^\star \end{aligned}$$

(8.6)
where $$\varvec{r}^\star $$ is the unique minimizer of a weighted norm of the tracking error, $$\varvec{e} = \hat{\varvec{\varPhi }} - \varvec{\varPhi }$$, and the SISO system


$$\begin{aligned} N_w(s) :=(I + \bar{K}(s) \bar{H}(s))^{-1} \bar{K}(s) \bar{H}(s). \end{aligned}$$

(8.7)
The resulting closed-loop system dynamics are


$$\begin{aligned} \varvec{\varPhi } = N_w(s) (FX)^\perp \hat{\varvec{\varPhi }} \end{aligned}$$

(8.8)
where the orthogonal projection onto the range of FX is $$FX (FX)^\dagger = (FX)^\perp $$,


$$\begin{aligned} (FX)^\perp : \mathscr {L}^p[0,T] \rightarrow \mathscr {L}^p[0,T] : \hat{\varvec{\varPhi }} \mapsto \varvec{x} : \varvec{x}(t) = \bar{F} \bar{X}(\bar{F} \bar{X})^\dagger \hat{\varvec{\varPhi }}(t). \end{aligned}$$

(8.9)


Proof

Consider the weighted tracking error $$\varvec{r}^\star = \min _{\varvec{r}} \Vert \hat{\varvec{\varPhi }} - \varvec{\varPhi } \Vert ^2_{Q}$$ where weight $$Q = (\bar{H}(s)^{-1})^*\bar{H}(s)^{-1}$$ with $$(\cdot )^*$$ the adjoint operator. This has solution


$$\begin{aligned} \varvec{r}^\star&= \min _{\varvec{r}} \Vert \hat{\varvec{\varPhi }} - \varvec{\varPhi } \Vert ^2_{Q} = \min _{\varvec{r}} \Vert \hat{\varvec{\varPhi }} - \bar{H} FX \varvec{r} \Vert ^2_Q = \min _{\varvec{r}} \Vert \bar{H}^{-1} \hat{\varvec{\varPhi }} - F X \varvec{r} \Vert ^2 = ( FX )^\dagger \bar{H}^{-1} \hat{\varvec{\varPhi }}. \nonumber \end{aligned}$$
The proposed control action $$K_X = \bar{K}(s) (F X)^\dagger $$ realizes (when $$q \le p$$)


$$\begin{aligned} \varvec{r}&= \bar{K} (FX)^\dagger (\hat{\varvec{\varPhi }} - \bar{H} F X \varvec{r}) \Rightarrow (I + \bar{K} (F X)^\dagger \bar{H} F X ) \varvec{r} = \bar{K} (F X)^\dagger \hat{\varvec{\varPhi }} \nonumber \\ \Rightarrow (I + \bar{K} \bar{H}) \varvec{r}&= \bar{K} (F X)^\dagger \hat{\varvec{\varPhi }} \nonumber \\ \Rightarrow \varvec{r}&= (I + \bar{K} \bar{H})^{-1} \bar{K} (F X)^\dagger \bar{H} \bar{H}^{-1} \hat{\varvec{\varPhi }} \Rightarrow \varvec{r} = N_w \varvec{r}^\star \end{aligned}$$

(8.10)
The corresponding closed-loop dynamics are


$$\begin{aligned} \varvec{\varPhi }&= \bar{H}FX \varvec{r} = \bar{H} FX (I + \bar{K} \bar{H})^{-1} \bar{K} (FX)^\dagger \bar{H} \bar{H}^{-1} \hat{\varvec{\varPhi }} = N_w(s) FX (FX)^\dagger \hat{\varvec{\varPhi }}. \nonumber \\ \end{aligned}$$

$$\quad \square $$

The feedback control action $$K_X = \bar{K}(s) (F X)^\dagger $$ of Proposition 8.1 therefore ensures that $$\varvec{\varPhi }$$ tracks the demand input $$\hat{\varvec{\varPhi }}$$ (or $$\hat{\varvec{\varPhi }} + \varvec{v}_k$$ if ILC is also applied) as closely as possible, subject to dynamics $$N_w$$ specified by the designer. It requires only that SISO feedback controller $$\bar{K}(s)$$ be selected to stabilize dynamics (8.7), but has the property of stabilizing all p joints. By enforcing dynamics $$G|_{\hat{\varvec{\varPhi }} + \varvec{v}_k} = N_w(s) (FX)^\perp $$, it also facilitates the following simplified ILC update:


Proposition 8.2

The system of Fig. 8.1 with $$M = \bar{H}(s) F$$, the feedback action of Proposition 8.1, and ILC update


$$\begin{aligned} \varvec{v}_{k+1} = \varvec{v}_{k} + L P \varvec{e}_{k}, \quad L = l (P N_w (F X)^\perp )^\dagger , \quad l \in (0,1] \end{aligned}$$

(8.11)
satisfies (6.​17) and enforces convergence to the minimum extended error norm, i.e.


$$\begin{aligned} \lim _{k \rightarrow \infty } \varvec{v}_k = \varvec{v}^\star , \quad \varvec{v}^\star = \min _{\varvec{v}} \Vert {\hat{\varvec{\varPhi }}}^{e} - \varvec{\varPhi }^e \Vert ^2. \end{aligned}$$

(8.12)
Furthermore, if $$\bar{K}(s)$$ is tuned so that $$N_w(s)$$ approximates a pure delay of $$\lambda $$ seconds then (8.11) corresponds to the phaselead update


$$\begin{aligned} \varvec{v}_{k+1}(t) = \varvec{v}_{k}(t) + l (P_j (\bar{F} \bar{X})^\perp )^\dagger \varvec{e}_k^e (t + \lambda ), \quad \quad t \in [t_{j-1},t_j], \; j = 1, \ldots S. \end{aligned}$$

(8.13)


Proof

We set $$W = I$$ in Theorem 6.​1 and assume $$q \le p$$. Since Proposition 8.1 yields closed-loop dynamics $$G|_{\hat{\varvec{\varPhi }} + \varvec{v}_k} = N_w(s) (FX)^\perp $$, we then substitute $$L = l (P N_w (FX)^\perp )^\dagger $$ and $$G = N_w(s) (FX)^\perp $$ into $$I - LP G$$ to give $$I - l (P (FX)^\perp )^\dagger P (FX)^\perp = I(1-l)$$ which satisfies (6.​17). The corresponding limiting error solution (6.​22), $$\left( I - PG (LPG)^{-1} L \right) \hat{\varvec{\varPhi }}^e$$, is given by $$(I - (P (FX)^\perp )^\perp ) \hat{\varvec{\varPhi }}^e$$ which is the orthogonal projection onto the kernel of $$\hat{\varvec{\varPhi }}^e$$. This is the minimum achievable error and hence solves (8.12). If $$N_w(s) = e^{-s \lambda }$$ then $$L = l (e^{-s \lambda } P (FX)^\perp )^\dagger = l e^{s \lambda } (P (FX)^\perp )^\dagger $$ with time-based implementation (8.13). $$\quad \square $$

Note that update (8.13) takes the ‘phase-lead ILC’ form, which has received significant research attention due to its simple structure (with only two parameters, l, $$\lambda $$) that enables heuristic tuning [79].

We next examine how stimulation subspace X can be chosen to balance tracking accuracy with practicality of identification.


8.3 Subspace Identification


The identification of subspace $$\mathscr {X}$$ is addressed in this section, with subsequent identification of the q input, p output system $$M |_{\bar{\varvec{u}}(k)} X$$ following in Sect. 8.4. The purpose of $$\mathscr {X}$$ is to reduce the dimension of the latter problem so that it can feasibly be performed within the limited time available in practice. The use of $$\mathscr {X}$$ is motivated by the observation that only a subset of muscles are required for a given posture, and the underlying muscle locations can be assumed to not change. It is hence possible to select an input subspace that covers those muscles needed to perform a required set of tasks, together with the possible variation in array placement. In practice a suitable input subspace can be constructed using:



  • previous experimental input and output data, and/or


  • structural information based on prior system knowledge.

From the comments made following Theorem 6.​3, any basis can be used to define the stimulation subspace without affecting subsequent performance (i.e. X may be exchanged for $$X X_R$$ with any full rank $$X_R$$).


8.3.1 Selection Using Experimental Data


Assume that previous experiments (with any choice of input subspace) have yielded input and output signal pairs $$\{ \varvec{z}, \varvec{\varPhi } \}$$ for plant M given by (8.2) (where $$\varvec{z}$$ is the stimulation applied to the n elements of the array). From these select those with outputs close to the required movement(s), and denote as $$\{ \varvec{z}^i, \varvec{\varPhi }^i \}, \; i = 1, \ldots , c$$. These can be used to produce a basis for the input set by directly inserting in X as


$$\begin{aligned} \bar{X}(t) = [\varvec{z}^1(t), \varvec{z}^2(t), \dots , \varvec{z}^c(t)] \in \mathbb {R}^{n \times c} \end{aligned}$$

(8.14)
and setting $$q = c$$. If X is time-invariant, then a finite set of $$\{ \varvec{z}^i(t_j) \}_{i,j}$$ can instead be employed. In the case of linear M, any reference in the set spanned by a linear combination of $$\varvec{\varPhi }^i$$ (corresponding to the range of MX, $$\text {im}(MX)$$), will be tracked with zero error using the ILC algorithms of Theorem 6.​1. If $$\hat{\varvec{\varPhi }}$$ does not belong to this set, then the subsequent error is the orthogonal projection of $$\hat{\varvec{\varPhi }}$$ onto $$\text {ker}((MX)^*)$$, as shown in Fig. 8.2. If $$c \ll n$$, the dimension of MX is far smaller than that of M. The direct use of previous inputs is not ideal as q cannot be independently prescribed (since $$q = c$$). Inputs may also be linearly dependent, and thereby provide no new information. This is now addressed.

A352940_1_En_8_Fig2_HTML.gif


Fig. 8.2
Output space showing error as an orthogonal projection onto achievable plant dynamics


8.3.1.1 Previous Input Data


Let subspace dimension q be prescribed and data sets $$\{ \varvec{z}^i, \varvec{\varPhi }^i \}, \; i = 1, \ldots , c$$ available. The next proposition provides optimizations to yield $$X : \mathscr {L}^q_2[0,T] \rightarrow \mathscr {L}^n_2[0,T]$$:


Proposition 8.3

The distance between each $$\varvec{z}^i \in \mathscr {L}^n_2[0,T]$$ and the closest element in the image of X is minimized by solving


$$\begin{aligned} \min _{(X,H)} J(X,H), \quad J(X,H)= & {} \left\| Z - X H \right\| ^2_{HS} \end{aligned}$$

(8.15)
where $$\Vert \cdot \Vert _{HS}$$ is the Hilbert-Schmidt norm and operators


$$\begin{aligned} H&: \mathbb {R}^c \rightarrow \mathscr {L}^q_2[0,T] : \varvec{a} \mapsto \varvec{b} : \varvec{b}_i = \sum ^c_{i = 1} H_i \varvec{a}_i, \nonumber \\ Z&: \mathbb {R}^c \rightarrow \mathscr {L}^n_2[0,T] : \varvec{a} \mapsto \varvec{b} : \varvec{b}_i = \sum ^c_{i = 1} \varvec{z}^i \varvec{a}_i. \end{aligned}$$

(8.16)
Using the Frobenius norm $$\Vert \cdot \Vert _{F} $$, this can also be expressed as


$$\begin{aligned} \min _{(X,H)} J(X,H), \quad J(X,H) = & {} \int ^t_0 \left\| Z(t) - \bar{X}(t) H(t) \right\| ^2_{F} dt. \end{aligned}$$

(8.17)


Proof

The total distance between each $$\varvec{z}^i \in \mathscr {L}^n_2[0,T]$$ and the closest element in the image of


$$\begin{aligned} X : \mathscr {L}^q_2[0,T] \rightarrow \mathscr {L}^n_2[0,T] : \varvec{r} \mapsto \varvec{z} : \varvec{z}(t) = \bar{X}(t) \varvec{r}(t). \end{aligned}$$

(8.18)
is minimized by solving


$$\begin{aligned} \min _{(X,H)} J(X,H), \quad J(X,H) = & {} \sum ^{c}_{i = 1} \left\| \varvec{z}_i - X H_i \right\| ^2 \end{aligned}$$

(8.19)



$$\begin{aligned}= & {} \sum ^{c}_{i = 1} \int ^t_0 \Vert \varvec{z}_i(t) - \bar{X}(t) H_i(t) \Vert ^2 dt \end{aligned}$$

(8.20)
where $$H_i \in \mathscr {L}^q_2[0,T]$$. This is simplified by using


$$\begin{aligned} \left\| \varvec{z}^i - X H_i \right\| ^2 =&\left\| Z \varvec{q}^i - X H \varvec{q}^i \right\| ^2 , \quad \varvec{q}^i \in \mathbb {R}^c := \varvec{q}^i_i = 1, \; \varvec{q}^i_j = 0, \; j \ne i, \; j,i \; \in \{ 1, \ldots , c \} \nonumber \end{aligned}$$
since $$\{ \varvec{q}^i \in \mathbb {R}^c : i =\,\in \{ 1, \ldots , c \} \}$$ is an orthogonal basis of $$\mathbb {R}^c$$, it follows that


$$\begin{aligned} J(X,H) = \sum ^{c}_{i = 1} \left\| \varvec{z}_i - X H_i \right\| ^2&= \sum ^{c}_{i = 1} \left\| (Z - X H) \varvec{q}^i \right\| ^2 = \left\| Z - X H \right\| ^2_{HS}. \end{aligned}$$

(8.21)
Note, from (8.20), that this can also be expressed as
Sep 25, 2016 | Posted by in PHYSICAL MEDICINE & REHABILITATION | Comments Off on Electrode Array Control Design

Full access? Get Clinical Tree

Get Clinical Tree app for offline access