This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

infinite-horizon-of-sls

Olle Kjellqvist
(March 2022)

1 Reconstructing SLPs

Assume there exist 𝚽SF,𝚽FC\mathbf{\Phi}^{\text{SF}},\mathbf{\Phi}^{\text{FC}} satisfying

[zIAB2][𝚽xxSF𝚽xuSF]\displaystyle\begin{bmatrix}zI-A&-B_{2}\end{bmatrix}\begin{bmatrix}\mathbf{\Phi}^{\text{SF}}_{xx}\\ \mathbf{\Phi}^{\text{SF}}_{xu}\end{bmatrix} =I,\displaystyle=I, (1)
[𝚽xxFC𝚽xyFC][zIAC2]\displaystyle\begin{bmatrix}\mathbf{\Phi}^{\text{FC}}_{xx}&\mathbf{\Phi}^{\text{FC}}_{xy}\end{bmatrix}\begin{bmatrix}zI-A\\ -C_{2}\end{bmatrix} =I.\displaystyle=I. (2)

The transfer functions

𝚽xx\displaystyle\mathbf{\Phi}_{xx} =𝚽xxSF+𝚽xxFC𝚽xxSF(zIA)𝚽xxFC\displaystyle=\mathbf{\Phi}^{\text{SF}}_{xx}+\mathbf{\Phi}^{\text{FC}}_{xx}-\mathbf{\Phi}^{\text{SF}}_{xx}(zI-A)\mathbf{\Phi}^{\text{FC}}_{xx}
𝚽ux\displaystyle\mathbf{\Phi}_{ux} =𝚽uxSF𝚽uxSF(zIA)𝚽xxFC\displaystyle=\mathbf{\Phi}^{\text{SF}}_{ux}-\mathbf{\Phi}^{\text{SF}}_{ux}(zI-A)\mathbf{\Phi}^{\text{FC}}_{xx}
𝚽xy\displaystyle\mathbf{\Phi}_{xy} =𝚽xyFC𝚽xxSF(zIA)𝚽xyFC\displaystyle=\mathbf{\Phi}^{\text{FC}}_{xy}-\mathbf{\Phi}^{\text{SF}}_{xx}(zI-A)\mathbf{\Phi}^{\text{FC}}_{xy}
𝚽uy\displaystyle\mathbf{\Phi}_{uy} =𝚽uxSF(zIA)𝚽xyFC\displaystyle=-\mathbf{\Phi}^{\text{SF}}_{ux}(zI-A)\mathbf{\Phi}^{\text{FC}}_{xy}

satisfies

[zIAB2][𝚽xx𝚽xy𝚽ux𝚽uy]\displaystyle\begin{bmatrix}zI-A&-B_{2}\end{bmatrix}\begin{bmatrix}\mathbf{\Phi}_{xx}&\mathbf{\Phi}_{xy}\\ \mathbf{\Phi}_{ux}&\mathbf{\Phi}_{uy}\end{bmatrix} =[I0],\displaystyle=\begin{bmatrix}I&0\end{bmatrix}, (3)
[𝚽xx𝚽xy𝚽ux𝚽uy][zIAC2]\displaystyle\begin{bmatrix}\mathbf{\Phi}_{xx}&\mathbf{\Phi}_{xy}\\ \mathbf{\Phi}_{ux}&\mathbf{\Phi}_{uy}\end{bmatrix}\begin{bmatrix}zI-A\\ -C_{2}\end{bmatrix} =[I0].\displaystyle=\begin{bmatrix}I\\ 0\end{bmatrix}. (4)

2 Notation for sparsity

11todo: 1Notational clash. We use 𝚽~\widetilde{\mathbf{\Phi}} both for sparse transfer functions and for computing the output feedback.

Then 𝒩inA(i)={j:A(i,j)0}\mathcal{N}_{\text{in}}^{A}(i)=\{j:A(i,j)\neq 0\}, 𝒩ind(i)={j:Ad(i,j)0}\mathcal{N}_{\text{in}}^{d}(i)=\{j:A^{d}(i,j)\neq 0\} and 𝒩outd(i)={j:Ad(j,i)0}\mathcal{N}_{\text{out}}^{d}(i)=\{j:A^{d}(j,i)\neq 0\}. As each row 𝚽FC(i,:)\mathbf{\Phi}^{\text{FC}}(i,:) will be sparse, we denote the reduced transfer function consisting only of the nonzero elements (in order) as 𝚽~FC(i,:)\widetilde{\mathbf{\Phi}}^{\text{FC}}(i,:). Similarly, 𝚽~SF(:,i)\widetilde{\mathbf{\Phi}}^{\text{SF}}(:,i) denotes the sparse version of 𝚽SF(:,i)\mathbf{\Phi}^{\text{SF}}(:,i).

3 Computing the control signal

Let 𝚽~xx=z(Iz𝚽xx)\widetilde{\mathbf{\Phi}}_{xx}=z(I-z\mathbf{\Phi}_{xx}), 𝚽~ux=z𝚽ux\widetilde{\mathbf{\Phi}}_{ux}=z\mathbf{\Phi}_{ux}, 𝚽~xy=z𝚽xy\widetilde{\mathbf{\Phi}}_{xy}=-z\mathbf{\Phi}_{xy}. The control signal is then computed as

z𝜷\displaystyle z\boldsymbol{\beta} =𝚽~xx𝜷+𝚽~xy𝐲\displaystyle=\widetilde{\mathbf{\Phi}}_{xx}\boldsymbol{\beta}+\widetilde{\mathbf{\Phi}}_{xy}\mathbf{y} (5)
𝐮\displaystyle\mathbf{u} =𝚽~ux𝜷+𝚽~uy𝐲.\displaystyle=\widetilde{\mathbf{\Phi}}_{ux}\boldsymbol{\beta}+\widetilde{\mathbf{\Phi}}_{uy}\mathbf{y}.

Note that 𝚽~xx=z(A𝚽xx+B2𝚽ux)\widetilde{\mathbf{\Phi}}_{xx}=-z(A\mathbf{\Phi}_{xx}+B_{2}\mathbf{\Phi}_{ux}). Let

𝜶\displaystyle\boldsymbol{\alpha} =𝚽xx𝜷,\displaystyle=\mathbf{\Phi}_{xx}\boldsymbol{\beta}, 𝜻\displaystyle\boldsymbol{\zeta} =𝚽xy𝐲\displaystyle=\mathbf{\Phi}_{xy}\mathbf{y} (6)
γ\displaystyle\gamma =𝚽ux𝜷,\displaystyle=\mathbf{\Phi}_{ux}\boldsymbol{\beta}, 𝜽\displaystyle\boldsymbol{\theta} =𝚽uyy\displaystyle=\mathbf{\Phi}_{uy}y

Equation (5) then becomes

z𝜷\displaystyle z\boldsymbol{\beta} =z(A𝜶+B2𝜸)z𝜻,\displaystyle=-z(A\boldsymbol{\alpha}+B_{2}\boldsymbol{\gamma})-z\boldsymbol{\zeta}, (7)
𝐮\displaystyle\mathbf{u} =z𝜸+𝜽.\displaystyle=z\boldsymbol{\gamma}+\boldsymbol{\theta}.

We now show how to compute 𝜶,𝜸,𝜻,𝜽\boldsymbol{\alpha},\boldsymbol{\gamma},\boldsymbol{\zeta},\boldsymbol{\theta}. Let 𝐰^=𝚽xxFC𝜷\widehat{\mathbf{w}}=\mathbf{\Phi}^{\text{FC}}_{xx}\boldsymbol{\beta} and 𝐯^=𝚽xyFC𝐲\widehat{\mathbf{v}}=\mathbf{\Phi}^{\text{FC}}_{xy}\mathbf{y}. Then compute 𝐰~=𝜷(zIA)𝐰^\widetilde{\mathbf{w}}=\boldsymbol{\beta}-(zI-A)\widehat{\mathbf{w}} and 𝐯~=(zIA)𝐯^\widetilde{\mathbf{v}}=-(zI-A)\widehat{\mathbf{v}}. Finally 𝜶=𝚽xxSF𝐰~+𝐰^\boldsymbol{\alpha}=\mathbf{\Phi}^{\text{SF}}_{xx}\widetilde{\mathbf{w}}+\widehat{\mathbf{w}}, 𝜸=𝚽uxSF𝐰~\boldsymbol{\gamma}=\mathbf{\Phi}^{\text{SF}}_{ux}\widetilde{\mathbf{w}}, 𝜻=𝚽xxSF𝐯~+𝐯^\boldsymbol{\zeta}=\mathbf{\Phi}^{\text{SF}}_{xx}\widetilde{\mathbf{v}}+\widehat{\mathbf{v}}, and 𝜽=𝚽uxSF𝐯~\boldsymbol{\theta}=\mathbf{\Phi}^{\text{SF}}_{ux}\widetilde{\mathbf{v}}.

𝐰^\displaystyle\widehat{\mathbf{w}} =𝚽xxFC𝜷,\displaystyle=\mathbf{\Phi}^{\text{FC}}_{xx}\boldsymbol{\beta}, 𝐯^\displaystyle\widehat{\mathbf{v}} =𝚽xyFC𝐲\displaystyle=\mathbf{\Phi}^{\text{FC}}_{xy}\mathbf{y} (8)
𝐰~\displaystyle\widetilde{\mathbf{w}} =𝜷(zIA)𝐰^,\displaystyle=\boldsymbol{\beta}-(zI-A)\widehat{\mathbf{w}}, 𝐯~\displaystyle\widetilde{\mathbf{v}} =(zIA)𝐯^\displaystyle=-(zI-A)\widehat{\mathbf{v}}
𝜶\displaystyle\boldsymbol{\alpha} =𝚽xxSF𝐰~+𝐰^,\displaystyle=\mathbf{\Phi}^{\text{SF}}_{xx}\widetilde{\mathbf{w}}+\widehat{\mathbf{w}}, 𝜻\displaystyle\boldsymbol{\zeta} =𝚽xxSF𝐯~+𝐯^\displaystyle=\mathbf{\Phi}^{\text{SF}}_{xx}\widetilde{\mathbf{v}}+\widehat{\mathbf{v}}
𝜸\displaystyle\boldsymbol{\gamma} =𝚽uxSF𝐰~,\displaystyle=\mathbf{\Phi}^{\text{SF}}_{ux}\widetilde{\mathbf{w}}, 𝜽\displaystyle\boldsymbol{\theta} =𝚽uxSF𝐯~\displaystyle=\mathbf{\Phi}^{\text{SF}}_{ux}\widetilde{\mathbf{v}}

3.1 Simplification for observer-based state feedback

In this case we have 𝚽xuSF=K𝚽uxSF\mathbf{\Phi}^{\text{SF}}_{xu}=K\mathbf{\Phi}^{\text{SF}}_{ux} and 𝚽xyFC=𝚽xxFCL\mathbf{\Phi}^{\text{FC}}_{xy}=\mathbf{\Phi}^{\text{FC}}_{xx}L. In this case

𝐰^\displaystyle\widehat{\mathbf{w}} =𝚽xxFC𝜷,\displaystyle=\mathbf{\Phi}^{\text{FC}}_{xx}\boldsymbol{\beta}, 𝐯^\displaystyle\widehat{\mathbf{v}} =𝚽xxFCL𝐲\displaystyle=\mathbf{\Phi}^{\text{FC}}_{xx}L\mathbf{y} (9)
𝐰~\displaystyle\widetilde{\mathbf{w}} =𝜷(zIA)𝐰^,\displaystyle=\boldsymbol{\beta}-(zI-A)\widehat{\mathbf{w}}, 𝐯~\displaystyle\widetilde{\mathbf{v}} =(zIA)𝐯^\displaystyle=-(zI-A)\widehat{\mathbf{v}}
𝜶\displaystyle\boldsymbol{\alpha} =𝚽xxSF𝐰~+𝐰^,\displaystyle=\mathbf{\Phi}^{\text{SF}}_{xx}\widetilde{\mathbf{w}}+\widehat{\mathbf{w}}, 𝜻\displaystyle\boldsymbol{\zeta} =𝚽xxSF𝐯~+𝐯^\displaystyle=\mathbf{\Phi}^{\text{SF}}_{xx}\widetilde{\mathbf{v}}+\widehat{\mathbf{v}}
𝜸\displaystyle\boldsymbol{\gamma} =K(𝚽xxSF)𝐰~,\displaystyle=K(\mathbf{\Phi}^{\text{SF}}_{xx})\widetilde{\mathbf{w}}, 𝜽\displaystyle\boldsymbol{\theta} =K(𝚽xxSF)𝐯~.\displaystyle=K(\mathbf{\Phi}^{\text{SF}}_{xx})\widetilde{\mathbf{v}}.

Furthermore

𝚽xx\displaystyle\mathbf{\Phi}_{xx} =𝚽xxSF+𝚽xxFC𝚽xxSF(zIA)𝚽xxFC\displaystyle=\mathbf{\Phi}^{\text{SF}}_{xx}+\mathbf{\Phi}^{\text{FC}}_{xx}-\mathbf{\Phi}^{\text{SF}}_{xx}(zI-A)\mathbf{\Phi}^{\text{FC}}_{xx}
𝚽ux\displaystyle\mathbf{\Phi}_{ux} =K𝚽xxSFK𝚽xxSF(zIA)𝚽xxFC\displaystyle=K\mathbf{\Phi}^{\text{SF}}_{xx}-K\mathbf{\Phi}^{\text{SF}}_{xx}(zI-A)\mathbf{\Phi}^{\text{FC}}_{xx}
𝚽xy\displaystyle\mathbf{\Phi}_{xy} =𝚽xxFCL𝚽xxSF(zIA)𝚽xxFCL\displaystyle=\mathbf{\Phi}^{\text{FC}}_{xx}L-\mathbf{\Phi}^{\text{SF}}_{xx}(zI-A)\mathbf{\Phi}^{\text{FC}}_{xx}L
𝚽uy\displaystyle\mathbf{\Phi}_{uy} =K𝚽xxSF(zIA)𝚽xxFCL\displaystyle=-K\mathbf{\Phi}^{\text{SF}}_{xx}(zI-A)\mathbf{\Phi}^{\text{FC}}_{xx}L

3.2 Localized computation of signals.

We will divide the computation into steps performed by each node ii.

Step one: form β[𝒩ind(i)](t)\beta_{[\mathcal{N}_{\text{in}}^{d}(i)]}(t) and y[𝒩ind(i)](t)y_{[\mathcal{N}_{\text{in}}^{d}(i)]}(t).

Collect βj(t)\beta_{j}(t) and yj(t)y_{j}(t) from j𝒩ind(i)j\in\mathcal{N}_{\text{in}}^{d}(i) and stack them in order to form the column vectors β[𝒩ind(i)](t)\beta_{[\mathcal{N}_{\text{in}}^{d}(i)]}(t) and y[𝒩ind(i)](t)y_{[\mathcal{N}_{\text{in}}^{d}(i)]}(t).

Step two: evaluate 𝐰^=𝚽xxFC𝜷\hat{\mathbf{w}}=\mathbf{\Phi}^{\text{FC}}_{xx}\boldsymbol{\beta} and 𝐯^=𝚽xyFC𝐲\hat{\mathbf{v}}=\mathbf{\Phi}^{\text{FC}}_{xy}\mathbf{y} at time tt.

From Jing’s previous work we have state-space realizations

𝚽~xxFC(i,:)=[AxxFC,iBxxFC,iCxxFC,i0],𝚽~xyFC(i,:)=[AxyFC,iBxyFC,iCxyFC,i0]\widetilde{\mathbf{\Phi}}^{\text{FC}}_{xx}(i,:)=\left[\begin{array}[]{c| c}A_{xx}^{\text{FC},i}&B_{xx}^{\text{FC},i}\\ \hline\cr C_{xx}^{\text{FC},i}&0\end{array}\right],\quad\widetilde{\mathbf{\Phi}}^{\text{FC}}_{xy}(i,:)=\left[\begin{array}[]{c| c}A_{xy}^{\text{FC},i}&B_{xy}^{\text{FC},i}\\ \hline\cr C_{xy}^{\text{FC},i}&0\end{array}\right]

Propagate the following linear system once

ηiFC(t+1)\displaystyle\eta^{\text{FC}}_{i}(t+1) =AxxFC(i)ηiFC(t)+BxxFC(i)β[𝒩ind(i)](t)\displaystyle=A^{\text{FC}}_{xx}(i)\eta^{\text{FC}}_{i}(t)+B^{\text{FC}}_{xx}(i)\beta_{[\mathcal{N}_{\text{in}}^{d}(i)]}(t)
νiFC(t+1)\displaystyle\nu^{\text{FC}}_{i}(t+1) =AxyFC(i)νiFC(t)+BxyFC(i)y[𝒩ind(i)](t)\displaystyle=A^{\text{FC}}_{xy}(i)\nu^{\text{FC}}_{i}(t)+B^{\text{FC}}_{xy}(i)y_{[\mathcal{N}_{\text{in}}^{d}(i)]}(t)
w^i(t)\displaystyle\hat{w}_{i}(t) =CxxFC(i)ηiFC(t)\displaystyle=C^{\text{FC}}_{xx}(i)\eta^{\text{FC}}_{i}(t)
v^i(t)\displaystyle\hat{v}_{i}(t) =CxyFC(i)νiFC(t).\displaystyle=C^{\text{FC}}_{xy}(i)\nu^{\text{FC}}_{i}(t).

Step three: form w^[𝒩inA(i)](t)\hat{w}_{[\mathcal{N}_{\text{in}}^{A}(i)]}(t) and v^[𝒩inA(i)](t)\hat{v}_{[\mathcal{N}_{\text{in}}^{A}(i)]}(t).

Collect w^j(t)\hat{w}_{j}(t) and v^j(t)\hat{v}_{j}(t) from j𝒩inA(i)j\in\mathcal{N}_{\text{in}}^{A}(i) and stack them in order to form the column vectors w^[𝒩inA(i)](t)\hat{w}_{[\mathcal{N}_{\text{in}}^{A}(i)]}(t) and v^[𝒩inA(i)](t)\hat{v}_{[\mathcal{N}_{\text{in}}^{A}(i)]}(t).

Step four: compute w~(t)=βi(t)(zIA)w^(t)\tilde{w}(t)=\beta_{i}(t)-(zI-A)\hat{w}(t) and v~(t)=(zIA)v^(t)\tilde{v}(t)=-(zI-A)\hat{v}(t).

Note that w^i(t+1)\hat{w}_{i}(t+1) and v^i(t+1)\hat{v}_{i}(t+1) are available for computation at time tt, so that can be done directly in each node ii. Further w~i(t)=βi(t)(w^i(t+1)A(i,:)w^[𝒩inA(i)](t))\tilde{w}_{i}(t)=\beta_{i}(t)-(\hat{w}_{i}(t+1)-A(i,:)\hat{w}_{[\mathcal{N}_{\text{in}}^{A}(i)]}(t)) and v~i(t)=v^i(t+1)+A(i,:)v^[𝒩inA(i)](t)\tilde{v}_{i}(t)=-\hat{v}_{i}(t+1)+A(i,:)\hat{v}_{[\mathcal{N}_{\text{in}}^{A}(i)]}(t).

Step five: Compute 𝜶^(𝒩outd(j))\widehat{\boldsymbol{\alpha}}^{(\mathcal{N}_{\text{out}}^{d}(j))}, 𝜸^(𝒩outd(j))\widehat{\boldsymbol{\gamma}}^{(\mathcal{N}_{\text{out}}^{d}(j))}, ζ^(𝒩outd(j))\widehat{\zeta}^{(\mathcal{N}_{\text{out}}^{d}(j))}, and 𝜽^(𝒩outd(j))\widehat{\boldsymbol{\theta}}^{(\mathcal{N}_{\text{out}}^{d}(j))}.

𝚽~xxSF(:,i)=[AxxSF,iBxxSF,iCxxSF,i0],𝚽~uxSF(:,i)=[AuxSF,iBuxSF,iCuxSF,i0].\widetilde{\mathbf{\Phi}}^{\text{SF}}_{xx}(:,i)=\left[\begin{array}[]{c| c}A_{xx}^{\text{SF},i}&B_{xx}^{\text{SF},i}\\ \hline\cr C_{xx}^{\text{SF},i}&0\end{array}\right],\quad\widetilde{\mathbf{\Phi}}^{\text{SF}}_{ux}(:,i)=\left[\begin{array}[]{c| c}A_{ux}^{\text{SF},i}&B_{ux}^{\text{SF},i}\\ \hline\cr C_{ux}^{\text{SF},i}&0\end{array}\right].

Propagate the following linear systems once

ηiα(t+1)\displaystyle\eta^{\alpha}_{i}(t+1) =AxxSF,iηiα(t)+BxxSF,iw~i(t),\displaystyle=A_{xx}^{\text{SF},i}\eta^{\alpha}_{i}(t)+B_{xx}^{\text{SF},i}\widetilde{w}_{i}(t), α^(𝒩outd(j))(t+1)\displaystyle\widehat{\alpha}^{(\mathcal{N}_{\text{out}}^{d}(j))}(t+1) =CxxSF,iηiα(t+1)\displaystyle=C_{xx}^{\text{SF},i}\eta^{\alpha}_{i}(t+1)
ηiγ(t+1)\displaystyle\eta^{\gamma}_{i}(t+1) =AuxSF,iηiγ(t)+BuxSF,iw~i(t),\displaystyle=A_{ux}^{\text{SF},i}\eta^{\gamma}_{i}(t)+B_{ux}^{\text{SF},i}\widetilde{w}_{i}(t), γ^(𝒩outd(j))(t+1)\displaystyle\widehat{\gamma}^{(\mathcal{N}_{\text{out}}^{d}(j))}(t+1) =CuxSF,iηiγ(t+1)\displaystyle=C_{ux}^{\text{SF},i}\eta^{\gamma}_{i}(t+1)
ηiζ(t+1)\displaystyle\eta^{\zeta}_{i}(t+1) =AxxSF,iηiζ(t)+BxxSF,iv~i(t),\displaystyle=A_{xx}^{\text{SF},i}\eta^{\zeta}_{i}(t)+B_{xx}^{\text{SF},i}\widetilde{v}_{i}(t), ζ^(𝒩outd(j))(t+1)\displaystyle\widehat{\zeta}^{(\mathcal{N}_{\text{out}}^{d}(j))}(t+1) =CxxSF,iηiζ(t+1)\displaystyle=C_{xx}^{\text{SF},i}\eta^{\zeta}_{i}(t+1)
ηiθ(t+1)\displaystyle\eta^{\theta}_{i}(t+1) =AuxSF,iηiθ(t)+BuxSF,iv~i(t),\displaystyle=A_{ux}^{\text{SF},i}\eta^{\theta}_{i}(t)+B_{ux}^{\text{SF},i}\widetilde{v}_{i}(t), θ^(𝒩outd(j))(t)\displaystyle\widehat{\theta}^{(\mathcal{N}_{\text{out}}^{d}(j))}(t) =CuxSF,iηiθ(t)\displaystyle=C_{ux}^{\text{SF},i}\eta^{\theta}_{i}(t)

Step six: Compute 𝜶i\boldsymbol{\alpha}_{i}, 𝜸i\boldsymbol{\gamma}_{i}. 𝜻i\boldsymbol{\zeta}_{i} and 𝜽i\boldsymbol{\theta}_{i}.

αi(t+1)\displaystyle\alpha_{i}(t+1) =w^i(t+1)+j{j:i𝒩outd(j)}α^i(𝒩out(j))(t+1\displaystyle=\widehat{w}_{i}(t+1)+\sum_{j\in\{j:i\in\mathcal{N}_{\text{out}}^{d}(j)\}}\widehat{\alpha}^{(\mathcal{N}_{\text{out}}(j))}_{i}(t+1
γi(t+1)\displaystyle\gamma_{i}(t+1) =j{j:i𝒩outd(j)}γ^i(𝒩out(j))(t+1)\displaystyle=\sum_{j\in\{j:i\in\mathcal{N}_{\text{out}}^{d}(j)\}}\widehat{\gamma}^{(\mathcal{N}_{\text{out}}(j))}_{i}(t+1)
ζi(t+1)\displaystyle\zeta_{i}(t+1) =v^i(t)+j{j:i𝒩outd(j)}ζ^i(𝒩out(j))(t+1)\displaystyle=\widehat{v}_{i}(t)+\sum_{j\in\{j:i\in\mathcal{N}_{\text{out}}^{d}(j)\}}\widehat{\zeta}^{(\mathcal{N}_{\text{out}}(j))}_{i}(t+1)
θi(t)\displaystyle\theta_{i}(t) =j{j:i𝒩outd(j)}θ^(𝒩out(j))(t)i\displaystyle=\sum_{j\in\{j:i\in\mathcal{N}_{\text{out}}^{d}(j)\}}\widehat{\theta}^{(\mathcal{N}_{\text{out}}(j))}(t)_{i}

Step seven: form 𝜶[𝒩inA(i)]\boldsymbol{\alpha}_{[\mathcal{N}_{\text{in}}^{A}(i)]} and 𝜸[𝒩inA(i)]\boldsymbol{\gamma}_{[\mathcal{N}_{\text{in}}^{A}(i)]}.

Collect αj(t+1)\alpha_{j}(t+1) and γj(t+1)\gamma_{j}(t+1) from j𝒩inA(i)j\in\mathcal{N}_{\text{in}}^{A}(i) and j𝒩inB(i)j\in\mathcal{N}_{\text{in}}^{B}(i) and stack them in order to form the column vectors α[𝒩inA(i)](t+1)\alpha_{[\mathcal{N}_{\text{in}}^{A}(i)]}(t+1) and γ[𝒩inA(i)](t+1)\gamma_{[\mathcal{N}_{\text{in}}^{A}(i)]}(t+1) respectively.

Compute z𝜷z\boldsymbol{\beta} and 𝐮\mathbf{u}.

βi(t+1)\displaystyle\beta_{i}(t+1) =A(i,:)α[𝒩inA(i)](t+1)B2(i,:)γ[𝒩inB(i)](t+1)ζi(t+1)\displaystyle=-A(i,:)\alpha_{[\mathcal{N}_{\text{in}}^{A}(i)]}(t+1)-B_{2}(i,:)\gamma_{[\mathcal{N}_{\text{in}}^{B}(i)]}(t+1)-\zeta_{i}(t+1)
ui(t)\displaystyle u_{i}(t) =γi(t+1)+θ(t)\displaystyle=\gamma_{i}(t+1)+\theta(t)

3.3 Special case: observer-based local feedback

We will divide the computation into steps performed by each node ii.

Step one: form β[𝒩ind(i)](t)\beta_{[\mathcal{N}_{\text{in}}^{d}(i)]}(t) and y[𝒩ind(i)](t)y_{[\mathcal{N}_{\text{in}}^{d}(i)]}(t).

Collect βj(t)\beta_{j}(t) and yj(t)y_{j}(t) from j𝒩inFC(i)j\in\mathcal{N}^{\text{FC}}_{\text{in}}(i) and stack them in order to form the column vectors β[𝒩ind(i)](t)\beta_{[\mathcal{N}_{\text{in}}^{d}(i)]}(t) and y[𝒩ind(i)](t)y_{[\mathcal{N}_{\text{in}}^{d}(i)]}(t).

Step two: evaluate 𝐰^=𝚽xxFC𝜷\hat{\mathbf{w}}=\mathbf{\Phi}^{\text{FC}}_{xx}\boldsymbol{\beta} and 𝐯^=𝚽xyFC𝐲\hat{\mathbf{v}}=\mathbf{\Phi}^{\text{FC}}_{xy}\mathbf{y} at time tt.

From Jing’s previous work we have state-space realizations

𝚽~xxFC(i,:)=[AxxFC(i)Iei𝖳0],𝚽~xyFC(i,:)=[AxxFC(i)Liei𝖳0]\widetilde{\mathbf{\Phi}}^{\text{FC}}_{xx}(i,:)=\left[\begin{array}[]{c| c}A_{xx}^{\text{FC}}(i)&I\\ \hline\cr e_{i}^{\mkern-1.5mu\mathsf{T}}&0\end{array}\right],\quad\widetilde{\mathbf{\Phi}}^{\text{FC}}_{xy}(i,:)=\left[\begin{array}[]{c| c}A_{xx}^{\text{FC}}(i)&L_{i}\\ \hline\cr e_{i}^{\mkern-1.5mu\mathsf{T}}&0\end{array}\right]

Propagate the following linear system once

ηiFC(t+1)\displaystyle\eta^{\text{FC}}_{i}(t+1) =AxxFC(i)ηiFC(t)+β[𝒩ind(i)](t),\displaystyle=A^{\text{FC}}_{xx}(i)\eta^{\text{FC}}_{i}(t)+\beta_{[\mathcal{N}_{\text{in}}^{d}(i)]}(t), w^i(t)\displaystyle\hat{w}_{i}(t) =ei𝖳ηiFC(t)\displaystyle=e_{i}^{\mkern-1.5mu\mathsf{T}}\eta^{\text{FC}}_{i}(t)
νiFC(t+1)\displaystyle\nu^{\text{FC}}_{i}(t+1) =AxxFC(i)νiFC(t)+Liy[𝒩ind(i)](t),\displaystyle=A^{\text{FC}}_{xx}(i)\nu^{\text{FC}}_{i}(t)+L_{i}y_{[\mathcal{N}_{\text{in}}^{d}(i)]}(t), v^i(t)\displaystyle\hat{v}_{i}(t) =ei𝖳νiFC(t).\displaystyle=e_{i}^{\mkern-1.5mu\mathsf{T}}\nu^{\text{FC}}_{i}(t).
𝐲i\mathbf{y}_{i}𝐲j1\mathbf{y}_{j_{1}}𝐲jm\mathbf{y}_{j_{m}}\vdots\vdots𝚽~evFC(i,:)\widetilde{\mathbf{\Phi}}^{\text{FC}}_{ev}(i,:)𝐯^i\widehat{\mathbf{v}}_{i}𝐲[𝒩ind(i)]\mathbf{y}_{[\mathcal{N}_{\text{in}}^{d}(i)]}
Figure 1: Illustration of step one and two. The construction of w^\hat{w} is similar.

Step three: form w^[𝒩inA(i)]\hat{w}_{[\mathcal{N}_{\text{in}}^{A}(i)]} and v^[𝒩inA(i)]\hat{v}_{[\mathcal{N}_{\text{in}}^{A}(i)]}.

Collect w^j(t)\hat{w}_{j}(t) and v^j(t)\hat{v}_{j}(t) from j𝒩inA(i)j\in\mathcal{N}_{\text{in}}^{A}(i) and stack them in order to form the column vectors w^[𝒩inA(i)](t)\hat{w}_{[\mathcal{N}_{\text{in}}^{A}(i)]}(t) and v^[𝒩inA(i)](t)\hat{v}_{[\mathcal{N}_{\text{in}}^{A}(i)]}(t).

Step four: compute w~(t)=βi(t)(zIA)w^(t)\tilde{w}(t)=\beta_{i}(t)-(zI-A)\hat{w}(t) and v~(t)=(zIA)v^(t)\tilde{v}(t)=-(zI-A)\hat{v}(t).

Note that w^i(t+1)\hat{w}_{i}(t+1) and v^i(t+1)\hat{v}_{i}(t+1) are available for computation at time tt, so that can be done directly in each node ii. Further

w~i(t)=βi(t)(w^i(t+1)A(i,:)w^[𝒩inA(i)](t))\tilde{w}_{i}(t)=\beta_{i}(t)-(\hat{w}_{i}(t+1)-A(i,:)\hat{w}_{[\mathcal{N}_{\text{in}}^{A}(i)]}(t))

and

v~i(t)=v^i(t+1)+A(i,:)v^[𝒩inA(i)](t).\tilde{v}_{i}(t)=-\hat{v}_{i}(t+1)+A(i,:)\hat{v}_{[\mathcal{N}_{\text{in}}^{A}(i)]}(t).
𝐯^i\widehat{\mathbf{v}}_{i}𝐯^j1\widehat{\mathbf{v}}_{j_{1}}𝐯^jm\widehat{\mathbf{v}}_{j_{m}}\vdots\vdotsA(i,:)A(i,:)z-z++𝐯~i\widetilde{\mathbf{v}}_{i}𝐯^[𝒩inA(i)]\widehat{\mathbf{v}}_{[\mathcal{N}_{\text{in}}^{A}(i)]}
Figure 2: Illustration of step three and four.

Step five: Compute 𝜶^(𝒩outd(j))\widehat{\boldsymbol{\alpha}}^{(\mathcal{N}_{\text{out}}^{d}(j))}, 𝜸^(𝒩outd(j))\widehat{\boldsymbol{\gamma}}^{(\mathcal{N}_{\text{out}}^{d}(j))}, 𝜻^(𝒩outd(j))\widehat{\boldsymbol{\zeta}}^{(\mathcal{N}_{\text{out}}^{d}(j))}, and 𝜽^(𝒩outd(j))\widehat{\boldsymbol{\theta}}^{(\mathcal{N}_{\text{out}}^{d}(j))}.

𝚽~xxSF(:,i)=[AxxSF,ieiI0],𝚽~uxSF(:,i)=[AxxSF,ieiKi0].\widetilde{\mathbf{\Phi}}^{\text{SF}}_{xx}(:,i)=\left[\begin{array}[]{c| c}A_{xx}^{\text{SF},i}&e_{i}\\ \hline\cr I&0\end{array}\right],\quad\widetilde{\mathbf{\Phi}}^{\text{SF}}_{ux}(:,i)=\left[\begin{array}[]{c| c}A_{xx}^{\text{SF},i}&e_{i}\\ \hline\cr K_{i}&0\end{array}\right].

Propagate the following states once

ηiα(t+1)\displaystyle\eta^{\alpha}_{i}(t+1) =AxxSF,iηiα(t)+eiw~i(t),\displaystyle=A_{xx}^{\text{SF},i}\eta^{\alpha}_{i}(t)+e_{i}\widetilde{w}_{i}(t),
ηiζ(t+1)\displaystyle\eta^{\zeta}_{i}(t+1) =AxxSF,iηiζ(t)+eiv~i(t).\displaystyle=A_{xx}^{\text{SF},i}\eta^{\zeta}_{i}(t)+e_{i}\widetilde{v}_{i}(t).

Observe them:

α^(𝒩outd(j))(t+1)\displaystyle\widehat{\alpha}^{(\mathcal{N}_{\text{out}}^{d}(j))}(t+1) =ηiα(t+1),\displaystyle=\eta^{\alpha}_{i}(t+1), γ^(𝒩outd(j))(t+1)\displaystyle\widehat{\gamma}^{(\mathcal{N}_{\text{out}}^{d}(j))}(t+1) =Kiηiγ(t+1),\displaystyle=K_{i}\eta^{\gamma}_{i}(t+1),
ζ^(𝒩outd(j))(t+1)\displaystyle\widehat{\zeta}^{(\mathcal{N}_{\text{out}}^{d}(j))}(t+1) =ηiζ(t+1),\displaystyle=\eta^{\zeta}_{i}(t+1), θ^(𝒩outd(j))(t)\displaystyle\widehat{\theta}^{(\mathcal{N}_{\text{out}}^{d}(j))}(t) =Kiηiθ(t)\displaystyle=K_{i}\eta^{\theta}_{i}(t)

Step six: Compute 𝜶i\boldsymbol{\alpha}_{i}, 𝜸i\boldsymbol{\gamma}_{i}. 𝜻i\boldsymbol{\zeta}_{i} and 𝜽i\boldsymbol{\theta}_{i}.

αi(t+1)\displaystyle\alpha_{i}(t+1) =w^i(t+1)+j{j:i𝒩outd(j)}α^i(𝒩out(j))(t+1)\displaystyle=\widehat{w}_{i}(t+1)+\sum_{j\in\{j:i\in\mathcal{N}_{\text{out}}^{d}(j)\}}\widehat{\alpha}^{(\mathcal{N}_{\text{out}}(j))}_{i}(t+1)
γi(t+1)\displaystyle\gamma_{i}(t+1) =j{j:i𝒩outd(j)}γ^i(𝒩out(j))(t+1)\displaystyle=\sum_{j\in\{j:i\in\mathcal{N}_{\text{out}}^{d}(j)\}}\widehat{\gamma}^{(\mathcal{N}_{\text{out}}(j))}_{i}(t+1)
ζi(t+1)\displaystyle\zeta_{i}(t+1) =v^i(t)+j{j:i𝒩outd(j)}ζ^i(𝒩out(j))(t+1)\displaystyle=\widehat{v}_{i}(t)+\sum_{j\in\{j:i\in\mathcal{N}_{\text{out}}^{d}(j)\}}\widehat{\zeta}^{(\mathcal{N}_{\text{out}}(j))}_{i}(t+1)
θi(t)\displaystyle\theta_{i}(t) =j{j:i𝒩outd(j)}θ^i(𝒩out(j))(t)\displaystyle=\sum_{j\in\{j:i\in\mathcal{N}_{\text{out}}^{d}(j)\}}\widehat{\theta}^{(\mathcal{N}_{\text{out}}(j))}_{i}(t)
v~i\widetilde{v}_{i}𝚽~xxSF(:,i)\widetilde{\mathbf{\Phi}}^{\text{SF}}_{xx}(:,i)outoutinin\vdots\vdots\vdots\vdots++++v^i\widehat{v}_{i}𝜻i\boldsymbol{\zeta}_{i}𝜻^(𝒩out(i))\widehat{\boldsymbol{\zeta}}^{(\mathcal{N}_{\text{out}}(i))}𝜻^j1(𝒩out(i))\widehat{\boldsymbol{\zeta}}^{(\mathcal{N}_{\text{out}}(i))}_{j_{1}}𝜻^jm(𝒩out(i))\widehat{\boldsymbol{\zeta}}^{(\mathcal{N}_{\text{out}}(i))}_{j_{m}}𝜻^i(𝒩out(j1))\widehat{\boldsymbol{\zeta}}^{(\mathcal{N}_{\text{out}}(j_{1}))}_{i}𝜻^i(𝒩out(jn))\widehat{\boldsymbol{\zeta}}^{(\mathcal{N}_{\text{out}}(j_{n}))}_{i}𝜻^i(𝒩out(i))\widehat{\boldsymbol{\zeta}}^{(\mathcal{N}_{\text{out}}(i))}_{i}outoutLLinin++θi\theta_{i}\vdots\vdots\vdots\vdotsθ^(𝒩out(i))\widehat{\theta}^{(\mathcal{N}_{\text{out}}(i))}θ^j1(𝒩out(i))\widehat{\theta}^{(\mathcal{N}_{\text{out}}(i))}_{j_{1}}θ^jm(𝒩out(i))\widehat{\theta}^{(\mathcal{N}_{\text{out}}(i))}_{j_{m}}θ^i(𝒩out(j1))\widehat{\theta}^{(\mathcal{N}_{\text{out}}(j_{1}))}_{i}θ^i(𝒩out(jn))\widehat{\theta}^{(\mathcal{N}_{\text{out}}(j_{n}))}_{i}θ^i(𝒩out(i))\widehat{\theta}^{(\mathcal{N}_{\text{out}}(i))}_{i}
Figure 3: Illustration of step five and six.

Step seven: form 𝜶[𝒩inA(i)]\boldsymbol{\alpha}_{[\mathcal{N}_{\text{in}}^{A}(i)]} and 𝜸[𝒩inA(i)]\boldsymbol{\gamma}_{[\mathcal{N}_{\text{in}}^{A}(i)]}.

Collect αj(t+1)\alpha_{j}(t+1) and γj(t+1)\gamma_{j}(t+1) from j𝒩inA(i)j\in\mathcal{N}_{\text{in}}^{A}(i) and j𝒩inB(i)j\in\mathcal{N}_{\text{in}}^{B}(i) and stack them in order to form the column vectors α[𝒩inA(i)](t+1)\alpha_{[\mathcal{N}_{\text{in}}^{A}(i)]}(t+1) and γ[𝒩inA(i)](t+1)\gamma_{[\mathcal{N}_{\text{in}}^{A}(i)]}(t+1) respectively.

Compute z𝜷z\boldsymbol{\beta} and 𝐮\mathbf{u}.

βi(t+1)\displaystyle\beta_{i}(t+1) =A(i,:)α[𝒩inA(i)](t+1)B2(i,:)γ[𝒩inB(i)](t+1)ζi(t+1)\displaystyle=-A(i,:)\alpha_{[\mathcal{N}_{\text{in}}^{A}(i)]}(t+1)-B_{2}(i,:)\gamma_{[\mathcal{N}_{\text{in}}^{B}(i)]}(t+1)-\zeta_{i}(t+1)
ui(t)\displaystyle u_{i}(t) =γi(t+1)+θ(t)\displaystyle=\gamma_{i}(t+1)+\theta(t)