В этом примере показано, как оценить линейную полиномиальную модель со структурой ARMAX для системы с тремя входами и одним выходом (MISO) с помощью итеративного метода оценки. armax. Сводку всех доступных команд оценки на панели инструментов см. в разделе Команды оценки модели.
Загрузка набора данных образца z8 с тремя входами и одним выходом, измеренным при 1 -секундные интервалы и содержащие 500 выборок данных.
load iddata8Использовать armax для обеих конструкций idpoly объект модели и оценка параметров:
C (q) e (t)
Как правило, используются различные порядки моделей и результаты сравнения. В конечном итоге выбирается самая простая модель, которая наилучшим образом описывает динамику системы. Следующая команда определяет набор данных оценки. 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 - варианты оценки, которые конфигурируют целевую функцию оценки и атрибуты алгоритма поиска. Focus указывает, оптимизирована ли модель для моделирования или прогнозирования. 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]
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).