Функция selstruc осуществляет выбор наилучшей структуры модели из ряда возможных вариантов
[nn,vmod]=selstruc(v)
[nn,vmod]=selstruc(v,с),
где: v – матрица, возвращаемая функцией arxstruc;
с – строковая переменная, определяющая вывод графика или критерий отбора наилучшей структуры:
при с = ‘plot’ выводится график зависимости функции потерь от числа оцениваемых коэффициентов модели
при с = ‘log’ выводится график логарифма функции потерь;
при с = ‘aic’ график не выводится, но возвращается структура, минимизирующая теоретический информационный критерий Акейке (AIC).
при с = ‘mdl’ возвращается структура, обеспечивающая минимум критерия Риссанена минимальной длины описания;
при с равном некоторому численному значению а, выбирается структура, которая минимизирует значение функции потерь vmod = v(1 + a(d/N)), где N – объем выборки экспериментальных данных, используемых для оценивания; d – число оцениваемых коэффициентов модели; v – значение функции потерь.
Возвращаемые величины: nn – выбранная структура; vmod – значение соответствующего критерия.
Например, для данных dryer2 можно задать пределы изменения порядка модели:
>> NN=struc(1:10,1:10,1);
Вычислить функции потерь:
>> v=arxstruc(zdane,zdanv,NN);
И выбрать наилучшую структуру порядков полиномов:
>> [nn,vmod]=selstruc(v,'plot'),
где 'plot' – строковая переменная, определяющая вывод графика зависимости функции потерь от числа оцениваемых коэффициентов модели (рис. 2. 8).
Рис. 2. 8. Окно выбора структуры модели
В появившемся окне столбики указывают на величину функции потерь. При подведении курсора к соответствующему столбику, в правом поле окна отразятся значения порядков полиномов na, nb, nk. В поле графика появятся рекомендации по выбору цвета столбика. Воспользуемся рекомендацией, указанной в поле графика и выберем столбик, окрашенный красным цветом для оптимального значения порядков полиномов и нажмем кнопку Select.Взамен строковой переменной 'plot' возможны варианты:
• 'log' – выводится график логарифма функции потерь;
• 'aic' – график не выводится, но возвращается структура, минимизирующая так называемый теоретический информационный критерий Акейке (Akaike's Information Theoretic Criterion – AIC) FPE:
,где v – значение функции потерь, d – число оцениваемых коэффициентов модели, N – объем экспериментальных данных, используемых для оценивания;
• ‘mdl’ – возвращается структура, обеспечивающая минимум так называемого критерия Риссанена минимальной длины описания (Rissanen’s Minimum Description Lngth – MDL):
;• при строковой переменной, равной некоторому численному значению a, выбирается структура, которая минимизирует:
;• vmod – значение соответствующего критерия.
Выбор наилучшей структуры порядков полиномов можно осуществить и с помощью более простой команды:
>> nn=selstruc(v,0)
MATLAB возвращает:
nn =
8 2 1
С учетом выбранной структуры модели определим вид модели ARX, выполнив функцию arx:
>> darx=arx(zdanv,nn)
Возвращается матрица из 100 столбцов и 4 строк с значениями различных критериев: vmod =
vmod =
Columns 1 through 8
0.0107 0.0078 0.0080 0.0078 0.0079 0.0079 0.0079 0.0079
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
Columns 9 through 16
0.0079 0.0079 0.0084 0.0072 0.0073 0.0073 0.0072 0.0072
1.0000 1.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000
9.0000 10.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
Columns 17 through 24
0.0073 0.0073 0.0073 0.0073 0.0079 0.0070 0.0072 0.0072
2.0000 2.0000 2.0000 2.0000 3.0000 3.0000 3.0000 3.0000
7.0000 8.0000 9.0000 10.0000 1.0000 2.0000 3.0000 4.0000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
Columns 25 through 32
0.0072 0.0072 0.0072 0.0072 0.0073 0.0073 0.0079 0.0071
3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 4.0000 4.0000
5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 1.0000 2.0000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
Columns 33 through 40
0.0072 0.0072 0.0072 0.0072 0.0073 0.0073 0.0073 0.0073
4.0000 4.0000 4.0000 4.0000 4.0000 4.0000 4.0000 4.0000
3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
Columns 41 through 48
0.0080 0.0071 0.0071 0.0072 0.0071 0.0072 0.0073 0.0074
5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000
1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
Columns 49 through 56
0.0074 0.0074 0.0080 0.0070 0.0071 0.0071 0.0071 0.0071
5.0000 5.0000 6.0000 6.0000 6.0000 6.0000 6.0000 6.0000
9.0000 10.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
Columns 57 through 64
0.0073 0.0073 0.0073 0.0074 0.0080 0.0070 0.0071 0.0071
6.0000 6.0000 6.0000 6.0000 7.0000 7.0000 7.0000 7.0000
7.0000 8.0000 9.0000 10.0000 1.0000 2.0000 3.0000 4.0000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
Columns 65 through 72
0.0071 0.0071 0.0073 0.0074 0.0074 0.0074 0.0080 0.0070
7.0000 7.0000 7.0000 7.0000 7.0000 7.0000 8.0000 8.0000
5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 1.0000 2.0000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
Columns 73 through 80
0.0071 0.0071 0.0071 0.0071 0.0073 0.0074 0.0074 0.0074
8.0000 8.0000 8.0000 8.0000 8.0000 8.0000 8.0000 8.0000
3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
Columns 81 through 88
0.0080 0.0070 0.0071 0.0071 0.0071 0.0071 0.0073 0.0074
9.0000 9.0000 9.0000 9.0000 9.0000 9.0000 9.0000 9.0000
1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
Columns 89 through 96
0.0074 0.0074 0.0080 0.0070 0.0071 0.0071 0.0071 0.0072
9.0000 9.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000
9.0000 10.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
Columns 97 through 100
0.0073 0.0074 0.0074 0.007410.0000 10.0000 10.0000 10.0000
7.0000 8.0000 9.0000 10.0000
1.0000 1.0000 1.0000 1.0000
Возвращается дискретная модель, представленная в тета - формате (внутренним видом матричных моделей).
Discrete-time IDPOLY model: A(q)y(t) = B(q)u(t) + e(t)
A(q) = 1 - 1.01 q^-1 + 0.3552 q^-2 - 0.03471 q^-3 - 0.1432 q^-4
+ 0.1302 q^-5 - 0.0128 q^-6 - 0.08582 q^-7 + 0.06296 q^-8
B(q) = 0.1367 q^-1 + 0.07335 q^-2
Estimated using ARX from data set zdanv
Loss function 0.00666153 and FPE 0.00693343
Sampling interval: 0.08
Функция armax оценивает параметры ARMAX модели:
>> darmax = armax(zdanv,[2 2 2 1])
Аргументы функции:
zdanv – вектор экспериментальных данных; [na nb nc nk] – степени полиномов и величина задержки.
Возвращается дискретная модель, представленная в тета – формате:
Discrete-time IDPOLY model: A(q)y(t) = B(q)u(t) + C(q)e(t)
A(q) = 1 - 0.8733 q^-1 + 0.1567 q^-2
B(q) = 0.1331 q^-1 + 0.1028 q^-2
C(q) = 1 + 0.1854 q^-1 - 0.01339 q^-2
Estimated using ARMAX from data set zdanv
Loss function 0.00787129 and FPE 0.00806524
Sampling interval: 0.08
Функция oe оценивает параметры ОЕ модели:
>> zoe=oe(zdanv,[2 2 1])
Возвращается дискретная модель, представленная в тета – формате:
Discrete-time IDPOLY model: y(t) = [B(q)/F(q)]u(t) + e(t)
B(q) = 0.1478 q^-1 + 0.1052 q^-2
F(q) = 1 - 0.8219 q^-1 + 0.1102 q^-2
Estimated using OE from data set zdanv
Loss function 0.020577 and FPE 0.0209102
Sampling interval: 0.08
Функция bj оценивает параметры модели Бокса-Дженкинса:
>> zbj=bj(zdanv,[2 2 2 2 1])
Возвращается дискретная модель, представленная в тета – формате:
Discrete-time IDPOLY model: y(t) = [B(q)/F(q)]u(t) + [C(q)/D(q)]e(t)
B(q) = 0.1334 q^-1 + 0.101 q^-2
C(q) = 1 - 0.1222 q^-1 - 0.1405 q^-2
D(q) = 1 - 1.148 q^-1 + 0.3494 q^-2
F(q) = 1 - 0.8958 q^-1 + 0.1813 q^-2
Estimated using BJ from data set zdanv
Loss function 0.00699912 and FPE 0.0072286
Sampling interval: 0.08
Функция n4sid используется для оценивания параметров моделей переменных состояния в канонической форме при произвольном числе входов и выходов:
[zn4s,AO] = n4sid(z,order,ny,auxord),
где: z – матрица экспериментальных данных
order – задает порядок модели. Если данный аргумент вводится как вектор – строка, то предварительные расчеты выполняются по моделям всех заданных порядков (по умолчанию от первого по десятый), с выводом графика, позволяющего выбрать оптимальный порядок. Если order = ‘best’(по умолчанию), то выбирается модель наилучшего порядка;
ny – количество выходов (по умолчанию ny = 1);
auxord – дополнительный порядок, используемый алгоритмом оценивания. Данный порядок должен быть больше, чем порядок, задаваемый параметром order (по умолчанию дополнительный порядок равен (1.2*order+3)). Если данный аргумент вводится как вектор – строка, то выбирается модель наилучшего порядка.
Для рассматриваемого примера project24 имеем:
>>zn4s=n4sid(zdanv,[1:10],[1:10]),
где в первых квадратных скобках задается интервал порядков модели order, и предварительные расчеты выполняются по моделям для всех заданных порядков от 1 до 10 с выводом графика, позволяющего выбрать оптимальный порядок. После этого необходимо в командной строке MATLAB набрать этот порядок и продолжить вычисление коэффициентов модели, нажав клавишу enter (рис. 2. 9). Во вторых квадратных скобках задается так называемый дополнительный порядок, используемый алгоритмом оценивания (по умолчанию дополнительный порядок равен (1.2*order+3)). При этом выбирается оптимальный порядок без вывода соответствующего графика.
Результатом выполнения команды является вывод результатов оценивания:
Warning: Input arguments must be scalar.
> In n4sid>transf at 1044
In n4sid at 134
Select model order:('Return' gives default)
При нажатии In n4sid>transf at 1027, In n4sid at 134 (синий цвет: имя модели, построенной в тета - формате) появится окно редактора М-файла программы.
При нажатии Enter появится Order chosen to 3 (Закажите выбранный 3)
State-space model: x(t + Ts) = A x(t) + B u(t) + K e(t)
y(t) = C x(t) + D u(t) + e(t)
Рис. 2. 9. График для выбора оптимального порядка модели