最適制御とは、制御性能を評価する目的関数(コスト)を最小化する制御入力を求める手法である。 古典的 PID とは異なり、数学的に最適なフィードバック則を導くことができる。
\[ J = \int_0^\infty (x(t)^{\mathrm T} Q x(t) + u(t)^{\mathrm T} R u(t)) \, dt \]
・状態の大きさを減らす(安全) ・操作量の大きさを抑える(省エネ) といった目的を両立できる。
代表的な最適制御手法で、 「線形系+二次形の評価関数」→解析的に最適解が得られる。
\[ \dot{x}(t)=A x(t)+B u(t) \]
\[ J = \int_0^\infty (x^{\mathrm T} Q x + u^{\mathrm T} R u)\, dt \]
\[ u(t)= -K x(t) \] \[ K = R^{-1} B^{\mathrm T} P \] ここで P はリカッチ方程式の解: \[ A^{\mathrm T}P + PA - PBR^{-1}B^{\mathrm T}P + Q = 0 \]
現実にはすべての状態が測れないため、LQR の入力に使う \(x(t)\) は観測ノイズを含む。 → そこで最適状態推定器カルマンフィルタを併用する。
\[ \dot{x}=A x+Bu + w,\qquad y=Cx + v \] w:プロセスノイズ v:観測ノイズ
\[ \dot{\hat{x}} = A\hat{x} + Bu + L (y - C\hat{x}) \] L はリカッチ方程式から求まる。
\[ u(t) = -K \hat{x}(t) \]
状態を 0(または任意の平衡点)に保つ問題。
\[ \lim_{t\to\infty} (y(t)-r(t)) = 0 \] を達成するように最適化する。
誤差の積分を状態として追加することで、 最適制御でも定常偏差 0を達成できる。
・未来の挙動を予測し、有限時間での最適化問題を毎サンプル解き直す制御方式。 ・工業プロセス、化学プラント、半導体製造、ロボティクスで広く利用。
予測ホライゾン N のもとで \[ \min_{u[0],\dots,u[N-1]} \sum_{k=0}^{N} (x[k]^{\mathrm T}Qx[k] + u[k]^{\mathrm T}R u[k]) \] ただし \[ x[k+1]=Ax[k]+Bu[k] \]
最適化で得られた操作列のうち **最初の 1 ステップだけ** 実際に使い、 次サンプリングでまた解き直す(リーディング・ホライゾン方式)。
制御対象が非線形 \[ \dot{x}=f(x,u) \] の場合でも MPC は適用できる。 この場合、最適化は一般に非凸で、 数値解法(SQP, interior-point)が毎サイクル必要となる。
LQR/LQG は「最適で高速な制御」, MPC は「制約を扱う実用的な次世代制御」 という関係になっている。