Этот пример показывает, как оценить линейную, полиномиальную модель со структурой ARMAX для системы с тремя входами и одним выходом (MISO) с помощью итерационного метода оценки armax
. Для получения сводных данных всех доступных команд оценки в тулбоксе, смотрите Команды оценки модели.
Загрузка выборочных данных набора z8
с тремя входами и одним выходом, измеренным на 1
-секундные интервалы и содержащие 500 выборок данных.
load iddata8
Использование armax
чтобы создать idpoly
объект модели и оценка параметров:
Как правило, вы пробуете различные порядки моделей и сравниваете результаты, в конечном счете выбирая самую простую модель, которая лучше всего описывает динамику системы. Следующая команда задает набор данных оценки, z8
, и порядки полиномов A, B и C как na ,
nb
, и nc
, соответственно. nk
от [0 0 0]
указывает, что отсутствует задержка на входе для всех трех входных каналов.
opt = armaxOptions;
opt.Focus = 'simulation';
opt.SearchOptions.MaxIterations = 50;
opt.SearchOptions.Tolerance = 1e-5;
na = 4;
nb = [3 2 3];
nc = 4;
nk = [0 0 0];
m_armax = armax(z8, [na nb nc nk], opt);
Focus
, Tolerance
, и MaxIter
являются опциями оценки, которые конфигурируют целевую функцию оценки и атрибуты алгоритма поиска. The Focus
опция определяет, оптимизирована ли модель для приложений симуляции или предсказания. The Tolerance
и MaxIter
опции поиска задают, когда остановить оценку. Для получения дополнительной информации об этих свойствах см. armaxOptions
страница с описанием.
armax
является версией polyest
с упрощенным синтаксисом структуры модели ARMAX. armax
метод оба создает idpoly
моделирует объект и оценивает его параметры.
Просмотрите информацию о получившемся объекте модели.
m_armax
m_armax = Discrete-time ARMAX model: A(z)y(t) = B(z)u(t) + C(z)e(t) A(z) = 1 - 1.284 z^-1 + 0.3048 z^-2 + 0.2648 z^-3 - 0.05708 z^-4 B1(z) = -0.07547 + 1.087 z^-1 + 0.7166 z^-2 B2(z) = 1.019 + 0.1142 z^-1 B3(z) = -0.06739 + 0.06828 z^-1 + 0.5509 z^-2 C(z) = 1 - 0.06096 z^-1 - 0.1296 z^-2 + 0.02489 z^-3 - 0.04699 z^-4 Sample time: 1 seconds Parameterization: Polynomial orders: na=4 nb=[3 2 3] nc=4 nk=[0 0 0] Number of free coefficients: 16 Use "polydata", "getpvec", "getcov" for parameters and their uncertainties. Status: Estimated using ARMAX on time domain data "z8". Fit to estimation data: 80.86% (simulation focus) FPE: 2.888, MSE: 0.9868
m_armax
является idpoly
объект модели. Коэффициенты представляют оцененные параметры этой полиномиальной модели. Можно использовать present(m_armax)
чтобы показать дополнительную информацию о модели, включая неопределенности параметра.
Просмотрите все значения свойств для этой модели.
get(m_armax)
A: [1 -1.2836 0.3048 0.2648 -0.0571] B: {[-0.0755 1.0870 0.7166] [1.0188 0.1142] [1x3 double]} C: [1 -0.0610 -0.1296 0.0249 -0.0470] D: 1 F: {[1] [1] [1]} IntegrateNoise: 0 Variable: 'z^-1' IODelay: [0 0 0] Structure: [1x1 pmodel.polynomial] NoiseVariance: 2.7984 InputDelay: [3x1 double] OutputDelay: 0 Ts: 1 TimeUnit: 'seconds' InputName: {3x1 cell} InputUnit: {3x1 cell} InputGroup: [1x1 struct] OutputName: {'y1'} OutputUnit: {''} OutputGroup: [1x1 struct] Notes: [0x1 string] UserData: [] Name: '' SamplingGrid: [1x1 struct] Report: [1x1 idresults.polyest]
The Report
свойство модели содержит подробную информацию о результатах оценки. Чтобы просмотреть свойства и значения внутри Report
, используйте запись через точку. Для примера:
m_armax.Report
ans = Status: 'Estimated using ARMAX with simulation focus' Method: 'ARMAX' InitialCondition: 'zero' Fit: [1x1 struct] Parameters: [1x1 struct] OptionsUsed: [1x1 idoptions.polyest] RandState: [1x1 struct] DataUsed: [1x1 struct] Termination: [1x1 struct]
Это действие отображает содержимое отчета об оценке, такого как измерения качества модели (Fit
), критерий окончания поиска (Termination
) и запись оценочных данных (DataUsed
) и опции (OptionsUsed
).