Сравнение управляемой данными и идеальной модели прогнозирования в контроллере MPC

Aug 20 2020

Я реализовал нелинейный контроллер MPC для системы с предполагаемой неизвестной динамикой, где модель прогноза задается дискретной моделью NARX в соответствии с

$$y_{k+1} = f(w_k) = f(x_k, x_{k-1}, y_k, y_{k-1}, y_{k-2})$$

для $y_{k+1} \in \mathbb{R}^{1 \times 1}$, с 2 входными задержками, описываемыми $x$, и 3 задержки вывода, обозначенные $y$. Вот$f(\cdot)$аппроксимируется на основе имеющихся входных и выходных данных. Это приводит к следующей модели пространства состояний:

$$x_{k+1} = \begin{bmatrix} y_{k+1} \\ y_{k} \\ y_{k-1} \\ u_{k-1} \end{bmatrix} = \begin{bmatrix} f(w_k) \\ y_{k} \\ y_{k-1} \\ u_{k-1} \end{bmatrix} $$

Чтобы сравнить производительность контроллера MPC, управляемого данными, я хочу сравнить его с контроллером MPC, который использует ODE в качестве модели прогнозирования, поскольку она у меня есть. ODE дискретизируются и реализуются как модель дискретных разностей в соответствии с

$$z_{k+1} = g(z_k, u_k)$$

где $z_{k+1} \in \mathbb{R}^{3 \times 1}$. Прогноз получается с использованием этого

$$ y_{k+1} = C^{T}z_{k+1}$$

где $C = \begin{bmatrix}1 & 0 & 0 \end{bmatrix}$.

Теперь мне нужно сформулировать модель NARX, используя точную модель прогнозирования. Теперь вопрос заключается в том, чтобы сделать два контроллера как можно более сопоставимыми, должно ли представление в пространстве состояний с использованием точной модели прогнозирования быть следующим:

$$x_{k+1} = \begin{bmatrix} y_{k+1} \\ y_{k} \\ y_{k-1} \\ u_{k-1} \end{bmatrix} = \begin{bmatrix} C^{T}g(z_k, u_k) \\ y_{k} \\ y_{k-1} \\ u_{k-1} \end{bmatrix} $$

Имеет ли это смысл, учитывая тот факт, что $g(z_k, u_k)$ не зависит от всего вектора состояния NARX, как в приближенной модели?

Ответы

1 unobservable_node Aug 20 2020 at 18:48

Для обоих сценариев, т. Е. На основе данных и на основе модели, у вас будут разные состояния, выходы и входы. То есть для случая, управляемого данными, допустим, ваш контроллер MPC$\mathcal{D}$ который генерирует ввод $u_k$. Здесь у вас есть следующая система$$ \begin{array}{ccl} x_{k+1} &=& \left[\begin{array}{c} f(w_k) \\ y_k \\ y_{k-1} \\ u_{k-1} \end{array}\right] \\ y_{k+1} &=& f(w_k). \end{array} $$

Для сценария на основе модели предположим, что ваш контроллер MPC $\mathcal{M}$ (с той же структурой, что и $\mathcal{D}$ но имеющий зависимость от модели), который генерирует ввод $\hat{u}_k$. Здесь ваша система следующая$$ \begin{array}{ccl} \hat{x}_{k+1} &=& \left[\begin{array}{c} C^T z_{k+1} \\ \hat{y}_k \\ \hat{y}_{k-1} \\ \hat{u}_{k-1} \end{array}\right] \\ z_{k+1} &=& g(z_k,\hat{u}_k) \\ \hat{y}_{k+1} &=& C^T z_{k+1}. \end{array} $$

Теперь вы можете сравнить их с точки зрения энергии, потребляемой обоими контроллерами, т. Е. $$ \sum_{k=1}^T \|u_k\|_2 \quad \text{vs.} \quad \sum_{k=1}^T \|\hat{u}_k\|_2. $$ Если вы стабилизируете или регулируете, вы можете видеть переходные процессы $x_k$ vs. $\hat{x}_k$, так далее.