
- •Теоретические сведения
- •Работа с пакетом в режиме командной строки
- •Функции отображения модели
- •Функции непараметрического оценивания
- •Функции параметрического оценивания
- •Функции итерационного параметрического оценивания
- •Функции задания структуры модели
- •Функции изменения и уточнения структуры модели
- •Функции выбора структуры модели
- •Функции преобразования модели
- •Функции извлечения информации о модели
- •Функции проверки адекватности модели
- •Прочие функции
- •Демонстрация возможностей пакета
- •Идентификация с использованием блоков Simulink
- •Сохранение результатов
Функции параметрического оценивания
Группа образована следующими 11 функциями.
Функция ar
Функция аг оценивает параметры модели авторегрессии (AR), то есть коэффициенты полинома А(z), при моделировании скалярных временных последовательностей:
th - ar(y,n)
[th.refl] = ar(y,n,approach,win,maxsize,T)
Аргументы:
у — вектор-столбец данных, содержащий N элементов;
n — порядок модели (число оцениваемых коэффициентов);
аргумент approach (строковая переменная) определяет метод оценивания:
o 'fb'— прямой-обратный метод (разновидность метода наименьших квадратов). Используется по умолчанию;
о 'ls' — метод наименьших квадратов (МНК);
о 'yw' — метод Юла-Уокера;
o 'burg' — метод Бэрга (комбинация МНК с минимизацией гармонического среднего);
о 'gl' — метод с использованием геометрического среднего.
Если любое из данных значений заканчивается нулем (например, 'burg0'), то вычисление сопровождается оцениванием корреляционных функций;
• Аргумент win (строковая переменная) используется в случае отсутствия части данных:
o win = 'now' — используются только имеющиеся данные (используется по умоляанию — за исключением случая approach = 'yw');
o window = 'prw' — отсутствующие начальные данные заменяются нулями, так что суммирование начинается с нулевого момента времени;
o window = 'pow* — последующие отсутствующие данные заменяются нулями, так что суммирование расширяется до момента времени N+n;
o window = 'ppw' — и начальные, и последующие отсутствующие данные заменяются нулями. Используется в алгоритме Юла— Уокера;
Аргумент maxsize определяет максимальную размерность задачи;
Т — интервал дискретизации.
Иозвращаемые величины:
th — информация о модели в так называемом тета-формате (внутреннем матричном формате представления параметрических моделей пакета System Identification);
refl — информация о коэффициентах и функции потерь.
Пример использования функции аг для оценивания модели авторегрессии 4-го порядка приведен ниже.
» load dryer2; %3aгрузка данных
» у = [у2( 1:300)];
» th = ar(y,4); %Оценивание AR-модели
» present(th) %Вывод информации о модели
This matrix was created by the command AR on 1/19 2001 at 9:8
Loss fcn: 0.010782 Akaike's FPE: 0.011074 Sampling interval 1
The polynomial coefficients and their standard deviations are
A =
1.0000 -2.1716 1.5697 -0.3183 -0.0790 0
0 0.0579 0.1379 0.1384 0.0583
Матрица А содержит коэффициенты полинома A(z) (первая строка) и их стандартные отклонения (вторая строка). Текст сообщает о величине функции потерь и о значении интервала дискретизации. В данном случае он (по умолчанию) равен 1.
Функция armax
Функция armax оценивает параметры ARMAX-модели:
th = armax(z,nn)
th = armax(z,nn,'trace')
[th, iter_info] = armax(z,nn,maxiter,tol,lim,maxsize,T, 'trace')
Аргументы функции:
z = [у u] — матрица экспериментальных данных; в случае многомерного входа и представляет собой матрицу с числом столбцов, равным числу входов;
nn = [na nb nc nk] — задаваемые параметры ARMAX-модели (степени полиномов и величина задержки);
'trace' — наличие этого аргумента задает выдачу информации о ходе итерационного процесса вычислений (трассировка);
maxiter — определяет максимальное число итераций при решении оптимизационной задачи, по умолчанию maxiter =10;
tol — определяет заданную погрешность вычислений при поиске минимума, по умолчанию tol = 0.01;
lim — так называемый критерий робастности, по умолчанию lim = 1.6. При lim = 0 используется обычный МНК;
maxsize — определяет максимальную размерность задачи, по умол чанию
• Т — интервал дискретизации, но умолчанию равен 1. Возвращаемые величины:
th — информация о модели в тета-формате;
iterinfo = [номер последней итерации, значение функции потерь на данной итерации] — информация о выполнении итерационного процесса оценивания модели.
Использование функции агтах иллюстрируется следующим примером:
» load dryer2 %3aгрузка данных
» y =[у2 u2];
» t = armax(z,[2 2 2 1]); %Оценивание ARMAX-иодели
» present(th) %Вывод информации о модели
This matrix was created by the command ARMAX on 1/19 2001 at 9:56
Loss fen: 0.0071844 Akaike's FPE: 0.0072712 Sampling interval 1
The polynomial coefficients and their standard deviations are
В =
0 0.0073 0.0451
0 0.0021 0.0025
A =
1.00 -1.6490 0.7026
0 0.0097 0.0088
C =
1.00 -0.2741 -0.4759
0. 0.0289 0.0285
В данном случае задана структура модели, все полиномы которой имеют 2-й порядок. Для выводимой информации, по-видимому, особых разъяснений не требуется.
Функция агх
Функция агх оценивает параметры моделей AR и ARX:
th = arx(z,nn)
th = arx(z,nn,maxsize,T)
Аргументы и возвращаемая величина идентичны используемым в предыдущей функции за тем исключением, что аргумент пп содержит только три параметра:
nn - [nа nb nк]
Функция может использоваться для оценивания параметров много-входовой модели вида
A{z)y{t) = B{(z)u{(t-nkx) +
при этом
• в представлении z = [y u] экспериментальных данных u = [ul, u2, ... , unu] есть матрица, столбцы которой соответствуют входам;
• nb и nk — векторы-столбцы, определяющие порядки полиномов Bj ( z) и задержки nkj для входов объекта.
Функция bj
Функция bj оценивает параметры модели Бокса—Дженкинса:
th = bj(z,nn)
th = bj(z,nn,'trace')
[th, iter_info] = bj(z,nn,maxiter,tol.,lim,maxsize,T,'trace')
Аргументы и возвращаемые величины идентичны приведенным для функции аrmах за тем исключением, что в данном случае аргумент nn содержит пять параметров: nn = [nb nc nd nf nk], то есть степени четырех полиномов и величину задержки.
Функция canstart
Функция canstart оценивает коэффициенты канонической формы модели для переменных состояния:
th = canstart(z,orders,nu)
th = canstart(z,orders,nu,dkx)
Аргументы функции следующие:
z — матрица данных;
orders — скаляр, задающий порядок п модели;
nu— число входов;
dkx = [d, k, x] — трехэлементный вектор, в котором:,
o k = l означает, что матрица К в модели полностью параметризована (то есть подлежит оцениванию); к=0 означает, что К = 0;
o d имеет тот же смысл, но по отношению к матрице модели D;
o х=1 означает, что параметризован вектор начальных значений переменных состояния; при х = 0 данные значения полагаются нулевыми.
По умолчанию dkx = [0, 1, 1].
Возвращаемая величина th — модель в тета-формате.
Приведем пример использования рассматриваемой функции с целью восстановления модели для переменных состояния второго порядка по имеющимся экспериментальным данным (один вход, один выход). Соответствующий фрагмент программы и результаты вычислений приведены ниже:
» load dryer2 % 3агрузка данных
» z=[y2 u2];
» th = canstart(z,2,1); %Оценивание mодели
» present(th) %Вывод информации о модели
This matrix was created by the command CANSTART on 1/19 2001 at 12:50
Loss fen: 1 Akaike's FPE: 1 Discrete time model with sampling interval 1
The state-space matrices with standard deviations given as imaginary parts are
a =
0 1.0000
-0.6817 + 0.000i 1.6191 + 0.0000i
b =
-0.0316 + 0.000i
0.0415 + 0.000i
c =
1 0
d =
0
k =
0.4907 + 0.000i
0.4772 + 0.000i
x0 =
4.7505 + 0.000i
4.9671 + 0.000i
lambda =
1
Анализируя представленную в результате вычислений информацию, отметим, что в данном случае матрица системы А и матрицы (векторы) В и К, а также вектор начальных условий х0 не содержат комплексные элементы (мнимые части элементов равны нулю). Через lambda обозначена интенсивность шума e(t).
Функция ivar
Функция ivar оценивает параметры скалярной AR-модели
A(z)y(t) = v(t)
где шум v(t) предполагается коррелированным случайным процессом типа процесса скользящего среднего, то есть имеющим представление v(t) = H(z)e(t) (здесь e(t) — белый шум), с использованием квазиоптимального метода инструментальной переменной (так называемого IV-метода). Функция записывается в виде:
th = ivar(y,na)
th = ivar(y,na,nc,maxsize,T)
где
у — вектор данных;
na — порядок модели авторегрессии (степень полинома A(z));
nc - порядок полинома H(z), по умолчанию na=nc;
maxsize и Т имеют тот же смысл, что и для функций аrmах и bj.
Возвращаемая величина th — модель в тета-формате.
Функция ivx
Функция ivx оценивает параметры ARX-модели методом инструментальной переменной:
th = ivx(z.nn.x)
th = ivx(z,nn,x.maxsize,T)
Функция аналогична функции агх и является ее альтернативой для случая, когда шум наблюдений является коррелированным. Аргумент х — матрица задаваемых инструментальных переменных. Остальные аргументы и возвращаемая величина аналогичны рассмотренным для функции arx .АМЕЧАНИЕ : Вместо функции агх рекомендуется использовать функцию iv4.
Функция iv4 оценивает параметры ARX-модели с использованием четырехступенчатого метода инструментальной переменной. Может применяться для идентификации многомерных объектов:
th = iv4(z,nn) th
= iv4(z,nn,maxsize,T)
Функция аналогична функции агх и является ее альтернативой для случая, когда шум наблюдений является коррелированным.
Ниже приведен пример использования данной функции для идентификации объекта с одним выходом и двумя входами при различных задержках по входам (0 и 2), но при одинаковых степенях полиномов для данных входов (2):
» z = [у u1 u2]:
» nb = [2 2]; % Задание степеней полиномов Bi(z)
» nk = [0 2]; %Задание задержек по входам
» %Оценивание модели
» th = iv4(z,[2 nb nk]);
Функция n4sid
Функция n4sid используется для оценивания параметров моделей для переменных состояния в канонической форме при произвольном числе входов и выходов:
h = n4sid(z)
[th,A0] = n4sid(z,rder,ny,auxord,dkx,maxsize,T,'trace')
где:
z — матрица экспериментальных данных;
аргумент order задает порядок модели. Если данный аргумент вводится как вектор-строка, например, order = [1:10], то предварительные расчеты выполняются по моделям всех заданных порядков (по умолчанию — от 1-го по 10-й) с выводом графика, позволяющсго выбрать оптимальный порядок. Если order = 'best' (по умолчанию), выбирается модель «наилучшего» порядка (путем выбора наилучшей среди моделей 1-го— 10-го порядков);
nу — количество выходов, по умолчанию nу = 1;
auxord - так называемый дополнительный порядок, используемый алгоритмом oценивания. Должен быть больше, чем порядок, задаваемый параметром order (по умолчанию auxord = 1.2*order+3; Если auxord вводится как вектор-строка (так же, как order), выбирается модель наилучшего порядка;
dkx, maxsize, T, 'trace' — как для функций bj, canstart, ivar. Возвращаемые величины:
th — имя (идентификатор) построенной модели в тета-формате;
• А0 — наилучший порядок модели (определяемый с помощью задания auxord).
Функция ое
Функция ое оценивает параметры ОЕ-модели:
th = oe(z,nn)
th = oe(z,nn,'trace')
[th, iter_info] = oe(z,nn,maxiter,tol ,lim,maxsize,T, 'trace')
Здесь аргумент nn задается в форме nn = [nb nf nk] и содержит информацию о степенях полиномов модели В(г), F{z) и о величине задержки nk.
Остальные аргументы и возвращаемые величины аналогичны рассмотренным для остальных функций данной группы.
Функция pem
Функция реm оценивает параметры обобщенной многомерной линейной модели вида
Функция записывается в виде:
th = pem(z,nn)
th = pem(z,nn, 'trace')
[th, iter_info] = pem(z,nn,index,maxiter,tol,lim,maxsize,T,'trace')
где:
аргумент nn имеет представление nn = [na nb nc nd nf nk], где па, nb, nc, nd, nf, nk в многомерном случае являются векторами-столбцами;
index — вектор-строка, содержащий индексы коэффициентов, которые должны быть оценены (по умолчанию оцениваются все коэффициенты).
Остальные аргументы и возвращаемые величины соответствуют рассмотренным выше.