✅ 1. 元の非線形連続時間モデル(Lotka–Volterra 方程式)
被食者(Prey)$x(t)$、捕食者(Predator)$y(t)$ の個体数:
$$
\begin{cases}
\displaystyle \frac{dx}{dt} = \alpha x - \beta x y \[8pt]
\displaystyle \frac{dy}{dt} = \delta x y - \gamma y
\end{cases}
$$
- $\alpha$:被食者の自然増殖率
- $\beta$:被食者が捕食される率
- $\delta$:捕食によって捕食者が増える係数
- $\gamma$:捕食者の自然減衰率
✅ 2. 状態ベクトルと非線形ベクトル場
状態ベクトル:
$$
\mathbf{z}(t) =
\begin{bmatrix}
x(t) \ y(t)
\end{bmatrix}
,\quad
\mathbf{f}(\mathbf{z}) =
\begin{bmatrix}
\alpha x - \beta x y \
\delta x y - \gamma y
\end{bmatrix}
$$
✅ 3. 任意点 $\mathbf{z}_0 = [x_0, y_0]^\top$ まわりのヤコビ行列による逐次線形化
ヤコビ行列(線形化近似):
$$
A =
\left. \frac{\partial \mathbf{f}}{\partial \mathbf{z}} \right|_{\mathbf{z}_0}
\begin{bmatrix}
\alpha - \beta y_0 & -\beta x_0 \
\delta y_0 & \delta x_0 - \gamma
\end{bmatrix}
$$
✅ 4. 離散化(Euler法)
時間刻み $\Delta t$ を用いて離散時間状態空間モデルを得る:
$$
\mathbf{z}[k+1] = (I + A \Delta t)\mathbf{z}[k] + B \cdot u[k]
$$
ここで $u[k]$ は制御入力、$B$ は入力行列(適宜設定、例:恒等 or 任意ベクトル)
$I$ は単位行列。
✅ 5. 出力方程式(出力をどの状態で観測するか)
$$
\mathbf{y}[k] = C \cdot \mathbf{z}[k]
$$
例:$C = [1 \quad 0]$ とすれば $y[k] = x[k]$(被食者数を出力として観測)
✅ 6. 状態フィードバック制御則(Modern Control)
状態ベクトル $\mathbf{z}[k]$ を用いたフィードバック入力:
$$
u[k] = -K \cdot (\mathbf{z}[k] - \mathbf{z}_{\text{ref}})
$$
ここで:
- $K$:ゲイン行列(2次元ベクトル)
- $\mathbf{z}_{\text{ref}}$:目標状態(平衡点など)
✅ 7. 閉ループ系の状態方程式(状態フィードバックあり)
$$
\mathbf{z}[k+1] = \left( A_d - B K \right) \mathbf{z}[k] + B K \mathbf{z}_{\text{ref}}
$$
$A_d = I + A \Delta t$(Euler離散化後)
✅ 8. ゲイン $K$ の設計方法(例)
- 極配置法(pole placement)
- LQR(Linear Quadratic Regulator)などを用いて数値的に決定