プロセス: K = 2、T = 5 s、dt = 0.1 s(固定)。シミュレーション時間 15 s。比較対象として同じ系に PID(Kp=2, Ki=0.4)を適用した応答も表示します。
上段=出力 y(青)・目標 r(赤破線)・PID応答(灰)・予測ホライズン先読み線(青点線)/下段=入力 u(緑)・Nc 個の最適化入力(黄点)
1次プロセス $G_p(s) = K/(T s + 1)$ を前進 Euler で離散化し、$x_{k+1} = a\,x_k + b\,u_k$($a = e^{-dt/T}$、$b = K(1-a)$)で表します。
$N_p$ ステップ先までの予測:
$$y_{k+i} = a^{i}\,x_k + \sum_{j=0}^{i-1} a^{i-1-j}\,b\,u_{k+j}$$コスト関数(出力誤差 + 入力変化ペナルティで積分動作を確保):
$$J = \sum_{i=1}^{N_p} (y_{k+i} - r)^2 + \lambda \sum_{j=0}^{N_c - 1} (\Delta u_{k+j})^2$$無拘束 QP の解析解($\partial J / \partial U = 0$):
$$U = \bigl(H^\top H + \lambda\, L^\top L\bigr)^{-1} \bigl(H^\top (R - F\,x_k) + \lambda\,u_{k-1}\,\mathbf{e}_1\bigr)$$$H$($N_p \times N_c$)と $F$($N_p \times 1$)はプロセス係数 $a, b$ から構成され、$L$ は前進差分演算子。受信ホライズン方式で先頭の $u_k = U[0]$ のみ印加し、次ステップで再最適化します。