ハイブリッドシステム

**ハイブリッドシステム**（）は、連続的な挙動と離散的な挙動が混在する動的システムである。
形式的には、連続的な振舞いを記述する常微分方程式や差分方程式にを組み合わせることによって記述される。
他の用法との混同を避けるため、**ハイブリッドダイナミカルシステム** (hybrid dynamical system; HDS) とも呼ばれる。

ハイブリッドシステムでは連続的および離散的な挙動を統一的に扱うことが出来るため、伝統的な動的システムに基づいた制御理論と比べて広範な制御対象へと適用することが可能である。
その概念は古くから知られていたが、計算機科学における離散事象システムの研究の発展を契機にシステム制御分野での関心が高まり、近年急速に発展を遂げている。

## 一般的なシステムモデル
ハイブリッドシステムの一般的なモデルは次のように記述される。

ただし、x(t) \in \mathbb{R}^n と I(t) \in \mathbb{N}^q はそれぞれ時刻 t におけるシステムの**連続状態** (continuous state) および **離散状態** (discrete state) である。離散状態は**モード** (mode) とも呼ばれる。連続および離散状態の組 (x, I) を**ハイブリッド状態** (hybrid state)、あるいは単に状態と呼ぶ。
u(t) \in \mathbb{R}^m および y(t) \in \mathbb{R}^p は通常の非線形システムと同様システムの入力および出力を意味するが、状態と同様に離散的な振舞いを示す可能性がある。
ここで用いられる x, I, u, y はすべて t について右連続であると仮定する。

式はある特定の離散状態における連続状態の遷移を表わしたものであり、通常の非線形システムにおける状態方程式に相当する。
同様に、式はシステムの出力方程式である。
式およびはハイブリッドシステムとしての挙動を記述するためのものであり、それぞれ離散状態の遷移（**離散遷移** (discrete transition) や**スイッチ** (switch) と呼ばれる）と連続状態の不連続な遷移（**ジャンプ** (jump) と呼ばれる）を規定する。ここで x(t_{-}) は左極限値 \lim_{\tau \to 0} x(t - \tau) を意味する。
スイッチとジャンプはハイブリッドシステムにみられる特有の状態遷移であり、これらはまとめて**事象** (event) と呼ばれる。
事象の生起ルールは、おおまかに次の2種類に大別される。
* **自律スイッチ/自律ジャンプ** (autonomous switch/jump) - システムの（ハイブリッド）状態がある条件を満たすことによって生じる事象。
* **制御スイッチ/制御ジャンプ** (controlled switch/jump) - 外部入力によって強制的に生起される事象。

## 具体的なシステムモデル
上のように記述されるモデルは一般的なハイブリッドシステムを記述することが出来る。
一方、対象となるシステムのダイナミクスを詳細に表わしたり理論的な分析や制御器の設計に関する議論をしやすくするなどの理由から、以下に挙げるようなハイブリッドシステムのモデルが提案されている。

### ハイブリッドオートマトン

**ハイブリッドオートマトン** (hybrid automaton) は、有限オートマトンの状態ノードを離散状態に、およびノード間の遷移を事象の生起に対応させることで記述されるシステムモデルである。
（通常の）有限オートマトンと異なり、ハイブリッドオートマトンでは現在のモードの値に加えて連続状態や制御入力の値を考慮してモードの遷移条件（あるいは不変条件）が定められる。
この遷移条件のことを**ガード** (guard)、不変条件を**インヴァリアント** (invariant) と呼ぶ。

### 区分的アファインシステムモデル
**区分的アファインシステムモデル** (piecewise affine system model; PWA model) は、システムの状態方程式が区分アファインな関数として与えられるシステムモデルである。
具体的には、状態 x(t) \in \mathbb{R}^n と入力 u(t) \in \mathbb{R}^m の組がある部分集合 S_i \subset \mathbb{R}^n \times \mathbb{R}^m にあるときの状態方程式が

  \dot{x}(t) = A_i x(t) + B_i u(t) + a_i \quad \text{if}~ [x^{\top}(t), u^{\top}(t)]^{\top} \in S_i

であるように与えられる。
特に S_1, S_2, \dots, S_M が状態空間と制御入力の集合の積集合である \mathbb{R}^n \times \mathbb{R}^m の分割であれば各 [x(t), u(t)] に対応する S_i が一意に定まり、このときの i \in \{ 1, 2, \dots, M \} をモードとみなすことで一般的なハイブリッドシステムの形式へと帰着することが出来る。
すべての i = 1,2,\dots,M において a_i = 0 である場合は**区分的線形システムモデル** (piecewise linear model; PWL model) と呼ばれる。

### 線形相補性システムモデル

**線形相補性システムモデル** (linear complementary system model; LC system model) は、相補性条件 (complementary condition) を用いてシステムの離散状態を表現するモデルである。
一般的な LC システムモデルは次のように与えられる。

\begin{align}
  & \dot{x}(t) = A x(t) + B_1 u(t) + B_2 w(t) \\
  & v(t) = C x(t) + D_1 u(t) + D_2 w(t) + D_3 \\
  & v^{\top}(t) w(t) = 0, \quad v(t) \geq 0, \quad w(t) \geq 0
\end{align}


ここで、v(t), w(t) \in \mathbb{R}^l は相補性条件を記述するための補助変数であり、**相補性変数** (complementary variable) と呼ばれる。
各成分に対する制約 v_i(t), w_i(t) \geq 0 \, (i=1,2,\dots,l) から、相補性条件は v_i(t)w_i(t) = 0 がすべての i = 1,2,\dots,l で成り立つことと等価であり、これは v_i(t) と w_i(t) のいずれか（または両方）が必ずゼロでなければいけないことを意味している。

### 混合論理動的システムモデル
**混合論理動的システムモデル** (mixed-logical dynamical system model; MLD system model) は、システムの挙動に関する命題論理を等価な不等式制約で記述することで得られるシステムモデルである。
一般的な MLD システムモデルは、次のように記述される。

\begin{align}
  \dot{x}(t) = A x(t) + B_1 u(t) + B_2 z(t) + B_3 \delta(t) \\
  C_1 x(t) + D_1 u(t) + D_2 z(t) + D_3 \delta(t) \leq D_4
\end{align}

ここで z(t) \in \mathbb{R}^{l_1} および \delta(t) \in \{ 0, 1 \}^{l_2} は補助変数 (auxiliary variable) であり、特に \delta はこのシステムモデルにおける離散状態に対応する。

### スイッチドシステムモデル
**スイッチドシステムモデル** (switched system model) は、外部からの離散信号によってシステムのダイナミクスが切り替わるような挙動を表現するためのハイブリッドシステムモデルである。
典型的なスイッチドシステムは次のように記述される。

  \dot{x}(t) = f_{s(t)}(x(t), u(t))


ここで s(t) \in \{ 1,2,\dots,M \} は**スイッチ信号** (switching signal) と呼ばれ、システムの外部から入力される離散的な入力を意味する。

### その他のモデル
上に挙げたシステムモデルの他にも、ハイブリッドシステムを扱うためのモデルがいくつか提案されている:
* max-plus 代数システムモデル (max-plus discrete event system model) - 線形演算（和とスカラー倍）に\max,\min 演算を加えた代数操作のみで状態方程式・出力方程式を記述するシステムモデル
* ハイブリッドペトリネット (hybrid Petri net) - 離散事象システムを記述する数理モデルであるペトリネットを連続状態を扱えるよう拡張したもの
* 確率的ハイブリッドシステムモデル (stochastic hybrid system model)

## ハイブリッドシステムの例

### 物体の衝突
2つの球が地面を転がっている状況を考える（簡単のため、地面との摩擦はないと仮定し、一方向の運動のみを考える）。
2つの球の質量は等しいものとし、水平方向の位置および速度をそれぞれ u_i, v_i \, (i=1,2) と表記する。
球の初期位置は u_1(0)  を満たし、さらに衝突の前後で球1が球2を追い越すことはない、すなわち任意の時刻で u_1(t) \leq u_2(t) であると仮定する。
このとき、各球の運動は u_i(t) の値によって次のように場合分けされる。
* u_1(t) \neq u_2(t) のとき、それぞれの球の運動は干渉しないので、等速直線運動 v_i(t) = 0 によって各球の状態が決定される。
* u_1(t) = u_2(t) のとき、2つの球は衝突し速度が不連続に変化する。このときの速度は、運動量保存則と力学的エネルギー保存則を満たし、さらに追い越しに関する上記の制約から次のように与えられる。

  (v_1(t), v_2(t)) = \begin{cases}
    (v_1(t), v_2(t)) & \text{if} ~ v_1(t_{-}) 

すなわち、u_1(t) = u_2(t) および v_1(t) \geq v_2(t) が成立した時点で自律ジャンプが生起される。
ここで x(t) = [ u_1(t), u_2(t), v_1(t), v_2(t) ]^{\top} をシステムの連続状態とすれば、ハイブリッドシステムとしての状態遷移およびジャンプは次のように記述することが出来る。

\begin{align}
  \dot{x}(t) &= A x(t), \quad A = \begin{bmatrix}
    0 & 0 & 1 & 0 \\
    0 & 0 & 0 & 0 \\
    0 & 0 & 0 & 1 \\
    0 & 0 & 0 & 0 \\
  \end{bmatrix} \\
  x(t) &= \begin{cases}
    D x(t_{-}) & \text{if} ~ u_1(t_{-}) = u_2(t_{-}) \land v_1(t_{-}) \geq v_2(t_{-}) \\
    x(t_{-}) & \text{otherwise}
  \end{cases}, \quad D = \begin{bmatrix}
    1 & 0 & 0 & 0 \\
    0 & 1 & 0 & 0 \\
    0 & 0 & 0 & 1 \\
    0 & 0 & 1 & 0 \\
  \end{bmatrix}
\end{align}


## 解の特異性
ハイブリッドシステムは離散事象システムを内包しているため、解の挙動は通常の（連続なベクトル場を持つ）システムでは見られない特異性を持つことがある。
特に対象とするシステムを分析するにあたって、状態方程式における解の一意性だけでは不十分であり、事象の発生にともないシステムの解が次のような挙動を示すのかどうかを確認し、好ましくない事象が生起しないことを保証するための前提条件を見定める必要がある。

* 事象の生起時刻において、遷移先のモードが存在しないことを **デッドロック** (deadlock)、複数の遷移先モードの値が存在し一意に定まらないことを **複数解** (multiple solutions) と言う。モデル上で遷移先のモードが指定されていた場合でも、遷移した時点からの連続状態の解が存在しなければ、そのモード遷移は実質的に無効であることに注意する。反対に、モデル上で複数個の遷移先モードが指定されていた場合においても、連続状態の解が存在しないモードを除くことで遷移先のモードが一意に定まることがある。
* ある時刻において事象が生起した後、時刻が進むことなく複数の事象が立て続けに生起することを**複数事象** (multiple events) と言う。例えば、ある時点において自律ジャンプが生起することで連続状態の値が変化した後、その状態の値が別の自律スイッチの遷移条件を満たすことによってモード遷移が発生することがある。特に生起する事象が可算個存在し、事象がすべて生起し終えた後の状態の値が定まらない（すなわち、i 番目の事象が生起した時点における状態を x^{(i)}(t), I^{(i)}(t)  と表記したとき極限 \lim_{i \to \infty} x^{(i)}(t) または \lim_{i \to \infty} I^{(i)}(t) のいずれかが存在しない）現象は**ライブロック** (livelock) と呼ばれる。
* ある解における事象の生起時刻 t_1, t_2, \dots（t_i  を満たす）が有限な集積点 \lim_{i \to \infty} t_i  を持つとき、その解は **ゼノン解** (Zeno solution) と呼ばれる。例えば地面と衝突し跳躍するボールの運動を考えたとき、地面との弾性係数が 1 よりも小さければ衝突後の最高到達地点は次第に小さくなり、ある時刻でボールの水平運動は完全に停止する。

### スライディングモード

次のような離散時間不連続システムを考える（ただし a_1, a_2, s \in \mathbb{R}^n は定数ベクトルである）。

  x(t + \Delta t) = x(t) + \begin{cases}
    a_1 \Delta t & \text{if} ~ s^\top x(t) \leq 0 \\
    a_2 \Delta t & \text{if} ~ s^\top x(t) \geq 0 \\
  \end{cases}

いま s^\top a_1 > 0 および s^\top a_2  が成り立つと仮定する。
このとき、システムの解は超平面 \mathcal{H} = \{ x \in \mathbb{R}^n \mid s^\top x = 0 \} に吸い込まれるように発展し、十分時間が経過した後における解の挙動は \mathcal{H} 付近で振動するようなものとなる。
ここでサンプリング周期の極限 \Delta t \to 0 を考えると、
解はあたかもモードの境界面である \mathcal{H} 上で発展しているとみなせる。
このような解の挙動を**スライディング動作** (sliding motion) と言う。

上のシステムを連続時間で表わすと、次のようになる。

  \dot{x}(t) = \begin{cases}
    a_1                           & \text{if} ~ s^\top x(t)  0 \\
  \end{cases}

ただし \alpha \in [0,1] は s^{\top}\big( \alpha a_1 + (1 - \alpha) a_2 \big) = 0 を満たす定数であり、一意に定まる。
ここで追加された超平面 \mathcal{H} 上で発展する挙動は、元々存在していたモード（s^\top x  および s^\top x > 0）のいずれとも異なる新たに生成されたモードであり、**スライディングモード** (sliding mode) と呼ばれる。

## 関連する話題
### 区分的アファインシステムの同定
区分的アファインシステムの同定手法として、時系列データの統計モデルであるARX モデルに離散状態を追加した piecewise ARX (PWARX) モデルへのアプローチが提案されている。

### 混合論理動的システムの制御
混合論理動的システムの制御手法として、有限時間最適制御問題を実時間で逐次的に解くことで制御入力を決定するモデル予測制御を用いた手法が広く知られている。
特に離散時間 MLD システムでは、解くべき最適化問題は**混合整数計画問題** (mixed integer programming problem; MIP -) に帰着する。
これは組合せ最適化の一種であり、一般にNP困難であることが知られている。

## 出典


## 参考文献
* 
* 
* 

* 
* 
* 
* 

## 関連項目
* 制御理論
* 
* 非線形システム論
* オートマトン
* グラフ理論
* 計算複雑性理論
* 計算機科学