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

Оценка импульсной характеристики

Функции impulseest(data, order; λ=0, estimator=ls) и impulseestplot производят оценку импульсной характеристики, выполняя подгонку FIR-модели высокого порядка. Функция okid оценивает марковские параметры и применима к системам MIMO.

Пример системы SISO

T = 200
h = 1
t = 0:h:T-h
sys = c2d(tf(1,[1,2*0.1,0.1]),h)

u  = randn(1, length(t))
res = lsim(sys, u, t)
d  = iddata(res)

impulseestplot(d,50, lab="Estimate", seriestype=:steppost)
plot!(impulse(sys,50), lab="True system", l=:dash)
window

Пример системы MIMO

using ControlSystemIdentification, ControlSystemsBase, Plots
T = 200
h = 1
t = 0:h:T-h
sys = ssrand(2,2,4, proper=true, Ts=h)

u  = randn(sys.nu, length(t))
res = lsim(sys, u, t)
d  = iddata(res)

H = okid(d, sys.nx)
plot(impulse(sys,50), lab="True system", layout=sys.ny+sys.nu, sp=(1:4)')
plot!(reshape(H, sys.nu+sys.ny, :)', lab="OKID Estiamte", seriestype=:steppre, l=:dash)
BoEQgAAAH7tf7AhEBfTebiSAAAAAElFTkSuQmCC

Дополнительные сведения см. в интерактивных скриптах с примерами.

Оценка модели на основе данных импульсной характеристики

Алгоритмы era (алгоритм реализации собственных значений) и okid (идентификация наблюдателя Калмана) часто используются совместно, причем второй из них оценивает марковские параметры (импульсную характеристику), а первый принимает их и оценивает модель в пространстве состояний. Если марковские параметры уже имеются, можно напрямую вызвать era, чтобы оценить модель на основе импульсной характеристики.