Документация Engee

Векторная авторегрессионная модель с внешними входами (VARX)

В некоторых областях модели VARX получили широкое распространение. Модели VARX являются особым случаем общих линейных моделей следующей формы:

Здесь мы построим модель VARX

и оценим регулярную модель в пространстве состояний.

using ControlSystemIdentification, Plots

A1 = 0.3randn(2,2)
A2 = 0.3randn(2,2)
B1 = randn(2,2)

N = 300
Y = [randn(2), randn(2)]
u = randn(2, N)

for i = 3:N
    yi = A1*Y[i-1] + A2*Y[i-2] + B1*u[:,i-1]
    push!(Y, yi)
end

y = hcat(Y...)

d = iddata(y, u, 1)
InputOutput data of length 300, 2 outputs, 2 inputs, Ts = 1

Теперь мы оценим две модели: одну методом идентификации на основе подпространства (subspaceid), а другую методом на основе погрешности прогнозирования (newpem). Оцененная модель VARX имела состояние порядка 4 и два запаздывания , каждое из которых представляет собой вектор длиной 2, поэтому ниже мы оцениваем модели порядка 4.

model1 = subspaceid(d, 4, zeroD=true)
model2, x0 = newpem(d, 4)

plot(
    simplot(d, model1, title="Simulation subspaceid", layout=2),
    simplot(d, model2, x0, title="Simulation PEM", layout=2),
    titlefontsize=10,
)
5bCFdFyDpGAAAAAElFTkSuQmCC

Моделирование показывает, что степень соответствия близка к 100 %, то есть общая линейная модель идеально соответствует модели VARX. Однако ее структура отличается от структуры исходной модели VARX.

Оцененные модели в форме пространства состояний можно преобразовывать в передаточные функции MIMO (полиномиальные модели) путем вызова tf:

using ControlSystemsBase: tf
tf(model2.sys)
TransferFunction{ControlSystemsBase.Discrete{Float64}, ControlSystemsBase.SisoRational{Float64}}
Input 1 to output 1
  -1.0004794296702122z^3 - 0.056433281189662704z^2 + 0.16348625987257576z + 1.5067403921764644e-11
-----------------------------------------------------------------------------------------------------
1.0z^4 + 0.8179437966516445z^3 + 0.20640209880928453z^2 - 0.03520318746049224z - 0.014728175067300543

Input 1 to output 2
   0.5638542903384767z^3 + 0.4588249716841635z^2 - 0.0030804325899893015z - 4.187018787238372e-12
-----------------------------------------------------------------------------------------------------
1.0z^4 + 0.8179437966516445z^3 + 0.20640209880928453z^2 - 0.03520318746049224z - 0.014728175067300543

Input 2 to output 1
   -1.0198709364933753z^3 + 0.10341208581445258z^2 + 0.20490387717802416z + 1.2144785177525819e-11
-----------------------------------------------------------------------------------------------------
1.0z^4 + 0.8179437966516445z^3 + 0.20640209880928453z^2 - 0.03520318746049224z - 0.014728175067300543

Input 2 to output 2
    0.9529762025159154z^3 + 0.6650235617021986z^2 + 0.03022622860243869z - 2.1761203949921537e-12
-----------------------------------------------------------------------------------------------------
1.0z^4 + 0.8179437966516445z^3 + 0.20640209880928453z^2 - 0.03520318746049224z - 0.014728175067300543

Sample Time: 1.0 (seconds)
Discrete-time transfer function model

Сводка

Модель в пространстве состояний

имеет весьма общий характер и охватывает множество других моделей особой структуры, таких как модели VARX.