自己駆動型制御器の設計

#セルフトリガ制御とは
　「[状態フィードバックを用いたEvent-Triggered Control(イベントトリガ制御)](https://qiita.com/drafts/998750fa78b5efc79a9c/edit?resume=true)」と「[出力フィードバックを用いたEvent-Triggered Control(イベントトリガ制御)](https://qiita.com/drafts/6d6dc8b7526b4ad30efd/edit?resume=true)」にて一般的なイベントトリガ制御について考察をした。イベントトリガ制御ではセンサが現在の状態、入力、出力の値を計測し、直近に送信した測定値と比較をすることで現在の測定値を送信するかをイベントトリガ条件をもとに行っていた。
　これに対して、セルフトリガ制御ではコントローラ自身が目標とする制御仕様を満たすために直近に送られた測定値から次に測定値を受信するタイミングを決定することを行う。ここでは、制御対象であるプラントのダイナミクスを

```math
\frac{dx(t)}{dt} = Ax(t) + B_1u(t) + B_2w(t) 
\tag{1}
```
で常に状態$x(t)$がコントローラに送信されると仮定し、$L^2$安定かつ外乱$w(t)$から状態$x(t)$までの伝達関数$H$が$||H||{\infty}<\gamma$を満たすように設計した状態フィードバック制御$u(t)=Kx(t)$があった時に、セルフトリガ条件を設けることでそれらの制御使用を満たしつつ、送信回数を減らすことを目標とする。

#コントローラの設計
　少し話が変わるが、セルフトリガ条件を求めるための準備としてプラント(1)に対して、$L^2$安定かつ$||H||{\infty}<\gamma$となる状態フィードバックのゲイン$K$を設計する。
　まず、$||H||{\infty}<\gamma$を満たす$K$が存在するための十分条件は、リッカチ方程式

```math
A^TP+PA+P(\frac{1}{\gamma^2}B_2B_2^T-B_1B_1^T)P=-I
\tag{2}
```
を満たす$P\succ 0$が存在することである。この時、ゲイン$K$の一つに

```math
K=-B_1^T P
\tag{3}
```
を与えることができる。このゲイン$K$を用いた状態フィードバックにより、プラント(1)を$L^2$安定となるかどうかを以下より調べる。
　$P$を用いた二次形式$V(v)=v^T P v \ge 0$の状態$x(t)$のもとにおける変化の仕方を調べると

```math
\begin{align}
\frac{d}{dt}V(x(t)) & =x(t)^T(A^T P+PA-2P B_1 B_1^T P)x(t)+2w(t)^T B_2^T Px(t) \\
& = x(t)^T(-I-\frac{1}{\gamma^2}PB_2B_2^T-PB_1B_1^TP)x(t)+2w(t)^T B_2^T Px(t),~~(\because (2))\\
& \le -||x(t)||^2 - \frac{1}{\gamma^2}x(t)^T PB_2B_2^T Px(t) + 2w(t)^T B_2^T Px(t)\\
& = -||x(t)||^2 + \gamma^2||w(t)||^2-||\gamma w(t)-\frac{1}{\gamma}B_2^T Px(t)||^2 \\
& \le -||x(t)||^2 + \gamma^2||w(t)||^2
\end{align}
\tag{4}
```
と変形できるので、$x(0)=0$のとき両辺を$0$から$\infty$で積分すると、

```math
0 \le -\int_{0}^{\infty}||x(t)||^2 dt + \gamma^2 \int_{0}^{\infty}||w(t)||^2 dt
\tag{5}
```
が得られる。よって、

```math
||x||_2\le \gamma||w||_2 
\tag{6}
```
であり、$w$から$x$への$L^2$ゲインは$\gamma$以下であることがわかる。ただし、$||x||_2$は$x(t)\in L^2[0,\infty)$の$L^2$ノルムで式(7)のように表記されるとする。

```math
||x||_2=\sqrt{\int_0^{\infty}||x(t)||^2 dt}
\tag{7}
```

さらに、$\forall t \ge0$に対して$w(t)=0$のとき、式(4)より$\forall x(0)\in R^n$に対して、

```math
||x(t)|| \le e^{\frac{-1}{\lambda_{min}(P)}t}||x(0)||
\tag{8}
```
より、$\lim_{t\to\infty}x(t)=0$である。
　以上より、式(3)で設計をしたゲイン$K$で状態フィードバックを行うことでプラント(1)を$L^2$安定かつ$||H||{\infty}<\gamma$を満たすことが示された。そこで、コントローラを

```math
u(t)=-B_1^T Px(t_k),~~\forall t\in[t_k,t_{k+1})
\tag{9}
```
とし、適切なセルフトリガ条件を設定することで、プラント(1)を$L^2$安定を満たしつつ、測定値の送信回数を減らすことを考える。ただし、今回セルフトリガ条件を設定するとき

```math
||w(t)||\le W||x(t)||,~~\forall t\ge0
\tag{10}
```
を満たす正の実数$W$が存在し、状態$x(t)$に依存して外乱$w(t)$を許容する大きさが決まるという条件もとでの考察をする。

#セルフトリガ条件
###準備(大雑把な考え方)
 「[状態フィードバックを用いたEvent-Triggered Control(イベントトリガ制御)](https://qiita.com/drafts/998750fa78b5efc79a9c/edit?resume=true)」と「[出力フィードバックを用いたEvent-Triggered Control(イベントトリガ制御)](https://qiita.com/drafts/6d6dc8b7526b4ad30efd/edit?resume=true)」ではセンサによってリアルタイムに状態、入力、出力の値を計測することができるとしているため、時刻$t$から見た時刻$t_k$の情報の相対誤差や絶対誤差に重みをつけることによってイベントトリガ条件を設定した。しかし、セルフトリガ制御ではセンサを用いず、コントローラにて時刻$t_k$での情報から制御入力を加えるかどうかを判断するため、セルフトリガ条件を設定するにあたり、まず時刻$t_k$から見た時刻$t$での情報の相対誤差に適切な重みをつけ、時刻$t$での状態と外乱に関する条件(10)を用いて現在の時刻$t$の情報を消去することを考える。

###過去の送信情報と現在の情報の相対誤差に対する適切な重み設定
　まず、コントローラ(9)を用いてプラント(1)を制御したときのフィードバックシステムのダイナミクスは

```math
\frac{dx(t)}{dt} = Ax(t) - B_1B_1^T Px(t_k) + B_2w(t),~~\forall t\in[t_k,t_{k+1})
\tag{11}
```
と表記される。また、時刻$t$と時刻$t_k$での状態の誤差を$e(t)=x(t)-x(t_k)$とし、$P$を用いた二次形式$V(v)=v^T P v \ge 0$の状態$x(t)$のもとにおける変化の仕方を調べると

```math
\begin{align}
\frac{d}{dt}V(x(t)) & =x(t)^T(A^T P+PA)x(t)-2x(t)^TPB_1B_1^TPx(t_k)+2w(t)^T B_2^T Px(t) \\
& = x(t)^T(-I+Q-\frac{1}{\gamma^2}PB_2B_2^T)x(t)-2x(t)^TQx(t_k)+2w(t)^T B_2^T Px(t),~~(\because (2))\\
& = -||x(t)||^2 - \frac{1}{\gamma^2}x(t)^T PB_2B_2^T Px(t) + 2w(t)^T B_2^T Px(t)+x(t)^TQx(t)-2x(t)^TQx(t_k)\\
& \le -||x(t)||^2 + \gamma^2||w(t)||^2 + x(t)^TQx(t)-2x(t)^TQx(t_k) \\
& \le -||x(t)||^2 + \gamma^2||w(t)||^2 + e(t)^TQe(t)-x(t_k)^T
Qx(t_k) \end{align}
\tag{12}
```
と変形できる。ただし、$Q=PB_1B_1^TP\succ 0$とおいた。ここで、式(4)と式(12)を比べると、誤差$e(t)$と状態$x(t_k)$に何らかのイベントトリガ条件を設けることで、システムを$L^2$安定にすることができると予想できる。
　そこで、誤差$e(t)$の関係式より$||e(t)||$と$||x(t_k)||$を$||x(t)||$で表現することを考えると、それぞれのノルムの関係は以下のような不等式で表すことができる。

```math
\begin{align}
\frac{1}{2}||x(t_k)||^2-||e(t)||^2&=(||x(t_k)||^2+||e(t)||^2)-(\frac{1}{2}||x(t_k)||^2+2||e(t)||^2)\\
&=||x(t_k)+e(t)||^2-||\frac{1}{\sqrt{2}}x(t_k)+\sqrt{2}e(t)||^2\\
&\le ||x(t_k)+e(t)||^2=||x(t)||^2
\end{align}
\tag{13}
```
よって、0以上の全ての整数$k$に対してイベントトリガ条件を以下の式(14)のように定める。

```math
e(t)^TQe(t)-x(t_k)^TQx(t_k)>(1-\beta^2)(\frac{1}{2}||x(t_k)||^2-||e(t)||^2),~~\forall t\in[t_k,t_{k+1})
\tag{14}
```
ただし、$\beta\in(0,1)$。このとき、$\forall t\in[t_k,t_{k+1})$に対して

```math
e(t)^TQe(t)-x(t_k)^TQx(t_k)\le(1-\beta^2)(\frac{1}{2}||x(t_k)||^2-||e(t)||^2)
\tag{15}
```
であるので、式(12)に代入すると、

```math
\frac{d}{dt}V(x(t))\le -\beta^2||x(t)||^2 + \gamma^2||w(t)||^2
\tag{16}
```
とわかる。

　以上より、0以上の全ての整数$k$に対して$(t_{k+1}-t_k)>0$のとき、$\cup_{k}[t_k,t_{k+1})=[0,\infty)$が成立することを用いると、式(16)について式(5)~式(8)までと同様の手続きを踏むことで、イベントトリガ条件(14)を用いたコントローラ(9)により、プラント(1)を$\omega$から$x$に対する$L_2$ゲインを$\frac{\gamma}{\beta}$以下として$L^2$安定を満たすことが分かった。
　最後に、イベントトリガ条件(14)を整理しておくと

```math
e(t)^TMe(t)>x(t_k)^TNx(t_k),~~\forall t\in[t_k,t_{k+1})
\tag{17}
```
と記述できるので、過去の送信情報と現在の情報の相対誤差に対して適切な重み設定をすることができた。ただし、$M=Q+(1-\beta^2)I$、$N=Q+\frac{1}{2}(1-\beta^2)I$。さらに、記法の簡単のため$z(t)=M^{\frac{1}{2}}e(t)$、$\rho(x(t_k))=\sqrt{x(t_k)^T Nx(t_k)}$とおくと、

```math
||z(t)||>\rho(x(t_k)),~~\forall t\in[t_k,t_{k+1})
\tag{18}
```
のようにも書くことができる。

###セルフトリガ条件の設定
　過去の送信情報と現在の情報の相対誤差に対して適切な重み設定をすることができたので、外乱に関する条件(10)を用いて現在の時刻$t$の情報を消去することを考える。ここで、||z(t)||の$t$についての変化を調べると

```math
\begin{align}
\frac{d}{dt}||z(t)|| \le ||\frac{dz(t)}{dt}||&=||M^{\frac{1}{2}}\frac{dx(t)}{dt}||\\
&=||M^{\frac{1}{2}}\bigl\{Ax(t) - B_1B_1^T Px(t_k) + B_2w(t)\bigr\}||~~(\because (11))\\
&\le ||M^{\frac{1}{2}}AM^{\frac{-1}{2}}||\cdot ||z(t)||+||M^{\frac{1}{2}}(A-B_1 B_1^TP)x(t_k)||+||M^{\frac{1}{2}}B_2||\cdot||w(t)|| \\
&\le \bigl\{||M^{\frac{1}{2}}AM^{\frac{-1}{2}}||+W||M^{\frac{1}{2}}B_2||\cdot ||M^{\frac{-1}{2}}||\bigr\}\cdot ||z(t)||+\bigl\{||M^{\frac{1}{2}}(A-B_1 B_1^TP)||+W||M^{\frac{1}{2}}B_2||\bigr\}\cdot||x(t_k)|| ~~(\because (10))\\
&= \alpha ||z(t)|| + \mu(x(t_k)) 
\end{align}
\tag{19}
```
と変形できる。ただし、ここでも記法の簡単のため

```math
\left\{
\begin{array}{cl}
\alpha& = ||M^{\frac{1}{2}}AM^{\frac{-1}{2}}||+W||M^{\frac{1}{2}}B_2||\cdot ||M^{\frac{-1}{2}}|| \\
\mu(x(t_k))& = \bigl\{||M^{\frac{1}{2}}(A-B_1 B_1^TP)||+W||M^{\frac{1}{2}}B_2||\bigr\}\cdot||x(t_k)||
\end{array}
\right.
\tag{20}
```
としている。よって、式(19)について$t_k$から$t(\ge t_k)$で積分すると

```math
||z(t)||\le \frac{\mu(x(t_k))}{\alpha}(e^{\alpha (t-t_k)}-1)
\tag{21}
```
が得られるが、ここでイベントトリガ条件(18)より、

```math
\frac{\mu(x(t_k))}{\alpha}(e^{\alpha (t-t_k)}-1)\le \rho(x(t_k))
\tag{22}
```
としておけば、$\omega$から$x$に対する$L_2$ゲインを$\frac{\gamma}{\beta}$以下として$L^2$安定にする十分条件が与えられることがわかる。さらに、式(22)を変形すると

```math
t-t_k \le \frac{1}{\alpha} \log(1+\alpha\frac{\rho(x(t_k))}{\mu(x(t_k))})
\tag{23}
```
となる。
　さて、$\rho(x(t_k))$,$\mu(x(t_k))$の定義より、

```math
\left\{
\begin{array}{cl}
\rho(x(t_k))&\ge \kappa_1||x(t_k)|| \\
\mu(x(t_k))&\le \kappa_2||x(t_k)||\\
\end{array}
\right.
\tag{24}
```
を満たす正の実数$\kappa_1,\kappa_2$が存在するので

```math
\alpha\frac{\rho(x(t_k))}{\mu(x(t_k))}\ge \alpha\frac{\kappa_1}{\kappa_2} >0
\tag{25}
```
であることから、式(23)の右辺の項は0以上の全ての$k$に対して0より大きいので、

```math
t_{k+1}=t_k + \frac{1}{\alpha} \log(1+\alpha\frac{\rho(x(t_k))}{\mu(x(t_k))})
\tag{26}
```
$t_{k+1}-t_k>0$を満たす送信時刻{t_k}が存在する。
　以上より、セルフトリガ条件(26)を用いたコントローラ(9)により、$t_{k+1}-t_k>0$を満たすと同時に、プラント(1)を$\omega$から$x$に対する$L_2$ゲインを$\frac{\gamma}{\beta}$以下として$L^2$安定を満たす十分条件も与えることができる。ただし、上述したように外乱$w(t)$には条件(10)があるので、$w(t)\in L^2$を満たしていなければセルフトリガ条件(26)を用いることはできないことに注意しなければならない。

#補足
>*$L^2$安定性($L^2$ stability)*
>プラント(1)が$L^2$安定であるとは$\forall t\ge0$で$w(t)=0$のとき、$\forall x(0)\in R^n$に対して

>```math
\lim_{t\to\infty}x(t)=0
```
かつ、$x(0)=0$のとき、$w \in L^2[0,\infty)$に対して

>```math
||x||_2\le\varepsilon||w||_2
```
を満たす正の実数$\varepsilon$が存在することである。

#Reference
[1]Networked Control&copy;Masaaki Nagahara,Kunihisa Okano,Masaki Ogura,Masashi Wakaiki (2019)
[2]X.Wang,and M.D.Lemmon:S-lf-triggered feedback control systems with finite-gain $L_2$ stability,IEEE Transactions on Automatic Control,54,3,pp.452-467(2009)
[3]M.Mazo Jr.,A.Anta,and P.Tabuada:An ISS self-triggered implementation of linear controllers,Automatica,46,8,pp.1310-1314(2010)