【过程控制系统】-预测控制(7)

Posted by Orchid on May 27, 2025

模型预测

  • 输出曲线 = k时刻前输入对输出的响应曲线 + k时刻到k+M-1时刻Δu对输出响应曲线 \(\begin{align*} \hat{y}(k+1|k) &= \hat{y}_0(k+1|k) + a_1 \Delta u(k) \\ \hat{y}(k+2|k) &= \hat{y}_0(k+2|k) + a_2 \Delta u(k) + a_1 \Delta u(k+1) \\ &\vdots \\ \hat{y}(k+M|k) &= \hat{y}_0(k+M|k) + a_M \Delta u(k) + a_{M-1} \Delta u(k+1) + \cdots + a_1 \Delta u(k+M-1) \\ &\vdots \\ \hat{y}(k+P|k) &= \hat{y}_0(k+P|k) + a_P \Delta u(k) + a_{P-1} \Delta u(k+1) + \cdots + a_{P-M+1} \Delta u(k+M-1) \end{align*}\) (其中 $a_i$ 是通过阶跃响应实验得到的参数)(如果是 MIMO 系统,那么上述的 $y,a,u$ 都是列向量)

    写成矩阵的形式: \(\hat{y}_{PM}(k) = \hat{y}_{P0}(k) + A \Delta u_M(k) \tag{1}\) 其中,$\hat{y}{PM}(k) = \begin{bmatrix} \hat{y}(k+1|k) \ \hat{y}(k+2|k) \ \vdots \ \hat{y}(k+M|k) \ \vdots \ \hat{y}(k+P|k) \end{bmatrix}$,$\hat{y}{P0}(k) = \begin{bmatrix} \hat{y}0(k+1|k) \ \hat{y}_0(k+2|k) \ \vdots \ \hat{y}_0(k+M|k) \ \vdots \ \hat{y}_0(k+P|k) \end{bmatrix}$,$A = \begin{bmatrix} a_1 & 0 & \cdots & 0
    a_2 & a_1 & \ddots & \vdots
    \vdots & \vdots & \ddots & 0
    a_M & a
    {M-1} & \cdots & a_1
    a_{M+1} & a_M & \cdots & a_2
    \vdots & \vdots & \ddots & \vdots
    a_P & a_{P-1} & \cdots & a_{P-M+1} \end{bmatrix}$,$\Delta u_M(k) = \begin{bmatrix} \Delta u(k|k)
    \Delta u(k+1|k)
    \vdots
    \Delta u(k+M-1|k) \end{bmatrix}$ 。

滚动优化

\[\min_{\Delta u_M(k)} J(k) = \|\hat{y}_{PM}(k) - \bar{\omega}(k)\|_Q^2 + \|\Delta u_M(k)\|_R^2 \\ \implies \Delta u_M^*(k) = \left(A^T Q A + R\right)^{-1} A^T Q \left(\bar{\omega}(k) - \hat{y}_{P0}(k)\right) \\ \implies u^*(k) = u(k-1) + d \Delta u_M^*(k) \text{ ,} \quad d = [I_m \, 0 \, 0 \, 0 \, 0]\]

其中,$\bar{\omega}(k) = \begin{bmatrix} \omega^T(k+1|k) & \omega^T(k+2|k) & \cdots & \omega^T(k+P|k) \end{bmatrix}^T$ 是未来时刻的设定值,$Q,R$ 是权重矩阵。 \(\begin{align} \text{取法一:}&\omega(k+i|k) = y_r(k), i = 1, 2, \ldots, P \\ \text{取法二:}&\omega(k+i|k) = \alpha^i y(k) + \left(1 - \alpha^i\right) y_r(k) , \quad\alpha = e^{-\Delta t / T} \end{align}\)

反馈矫正

  1. 预测值 \(\hat{y}_{N1}(k+i|k) = \hat{y}_{N0}(k+i|k) + a_i \Delta u(k), \quad i = 1, 2, \ldots, P\) 矩阵形式: \(\hat{y}_{N1}(k) = \hat{y}_{N0}(k) + \bar{A} \Delta u(k) \quad \bar{A} = \begin{bmatrix} a_1^T & a_2^T & \cdots & a_N^T \end{bmatrix}^T\) $\hat{y}_{N1}(k)$ 包含了未来 $N$ 个时间步的预测值。

  2. 用 $k+1$ 时刻的偏差值修正预测值 \(\begin{align} \hat{y}_{N1,cor}(k) &= \hat{y}_{N1}(k) + h \left( y(k+1) - \hat{y}(k+1) \right) \\ \hat{y}_{N0}(k+1) &= S \hat{y}_{N1,cor}(k) \end{align}\) 其中,$h = [I, I, \ldots, I]^T$,$S = \begin{bmatrix} 0 & I & 0 & 0 & \cdots & 0
    0 & 0 & I & 0 & \cdots & 0
    \vdots & \vdots & \ddots & \ddots & \ddots & \vdots
    0 & 0 & \cdots & 0 & I & 0
    0 & 0 & \cdots & 0 & 0 & I
    0 & 0 & \cdots & 0 & 0 & I \end{bmatrix}$ 。

  • 总结:
\[\begin{align} &\hat{y}_{N1}(k+i|k) = \hat{y}_{N0}(k+i|k) + a_i \Delta u(k), \quad i = 1, 2, \ldots, P \\ &\hat{y}_{N1}(k) = \hat{y}_{N0}(k) + \bar{A} \Delta u(k) \quad \bar{A} = \begin{bmatrix} a_1^T & a_2^T & \cdots & a_N^T \end{bmatrix}^T \\ &\hat{y}_{N1,cor}(k) = \hat{y}_{N1}(k) + h \left( y(k+1) - \hat{y}(k+1) \right) \\ &\hat{y}_{N0}(k+1) = S \hat{y}_{N1,cor}(k) \end{align}\]