
- •Теоретические сведения
- •Работа с пакетом в режиме командной строки
- •Функции отображения модели
- •Функции непараметрического оценивания
- •Функции параметрического оценивания
- •Функции итерационного параметрического оценивания
- •Функции задания структуры модели
- •Функции изменения и уточнения структуры модели
- •Функции выбора структуры модели
- •Функции преобразования модели
- •Функции извлечения информации о модели
- •Функции проверки адекватности модели
- •Прочие функции
- •Демонстрация возможностей пакета
- •Идентификация с использованием блоков Simulink
- •Сохранение результатов
Работа с пакетом в режиме командной строки
Возможности работы в режиме командной строки
Пакет System Identification располагает большим набором функций (команд), исполняемых из командной строки MATLAB и позволяющих, в принципе, решать задачи идентификации, не используя рассмотренную программу графического интерфейса. Все функции (команды) делятся на следующие группы:
графического интерфейса;
обработки и преобразования данных;
отображения модели;
непараметрического оценивания;
параметрического оценивания;
итерационного параметрического оценивания;
задания структуры модели;
изменения и уточнения структуры модели;
выбора структуры модели;
преобразования модели;
извлечения информации о модели;
проверки адекватности модели;
прочие;
демонстрации возможностей пакета.
Команды графического интерфейса
Данная группа содержит две команды: ident и midprefs.
Команда ident — команда открытия рассмотренного выше графического интерфейса пользователя. Она записывается в виде:
ident
ident(session, directory)
Команда открывает окно графического интерфейса. При второй форме записи открытие интерфейса сопровождается загрузкой сессии из файла с именем session, находящегося в директории directory. Примеры:
ident('iddata1, sid')
ident(‘mydata,sid', '\matlab\data\cdplayer\')
Команда midprefs задает (изменяег) директорию для файла midprefs.mat, хранящего информацию о начальных параметрах графического интерфейса пользователя при его открытии. Пример:
midprefs('/home/l jung/mat1ab/')
Функции обработки и преобразования данных
В данную группу входят следующие четыре функции.
Функция detrend
Функция detrend удаляет тренд из набора данных. Она используется в виде:
zd - detrend(z)
zd - detrend(z,o,brkp)
Ее аргументы: z — матрица исходных данных, в которой столбцы соответствуют векторам данных; o (по умолчанию 0) — параметр, определяющий порядок тренда (нулевой или первый); если аргумент brkp не определен, из вектора данных вычитается линейная функция, соответствующая тренду; если данный аргумент определен, из исходных данных вычитается «ломаная линия» с точками разрыва производной при элементах, номера которых содержатся в brkp (только для линейных трендов). Возвращаемая величина: zd — матрица преобразованных данных.
В следующем примере:
zd(:,1) = detrend(z(:,1),1,119);
zd(:,2) = detrend(z(:,2));
удаляется V-образный тренд из данных первого столбца с пиком на 119-м элементе и тренд нулевого порядка (постоянная составляющая) — для элементов второго столбца матрицы исходных данных.
Функция idfilt
zf = idfilt(z,ord,Wn)
[zf, thf] = idfilt(z,ord,Wn,hs)
возвращает данные, фильтрованные с помощью фильтра Баттерворта. Эта функция создает фильтр Баттерворта порядка ord и осуществляет фильтрацию данных (по столбцам) матрицы данных z = [у u]. Если аргумент hs не задан и Wn содержит только один элемент, создается фильтр низких частот (ФНЧ) с частотой среза Wn.
Если hs -'high', создается фильтр верхних частот (ФВЧ) с частотой среза Wn.
Если Wn - [Wnl Wnh], то есть является двухэлементным вектором, и аргумент hs не определен, создается полосовой фильтр (ПФ) с полосой пропускания от Wnl до Wnh. Если же в этом случае задан аргумент hs = 'stop', создается заграждающий полосовой фильтр. Порядок фильтра в этих случаях — 2*ord.
Отметим, что частоты Wnl и Wnh задаются в относительных единицах, в долях от так называемой частоты Найквиста, определяемой как ω= π/Т (или f= 1/2T), где Т — выбранный интервал дискретизации.
Возвращаемые величины: zf — матрица отфильтрованных данных, thf — описание созданного фильтра в так называемом тета-формате (см. ниже).
Функция idinput
Функция idinput в формах
u = idinput(N)
u =idinput(N,type,band,levels),
u = idinput(N,'sine',band,levels,auxvar)
генерирует входной идентифицирующий сигнал. Она создает несколько разновидностей входного сигнала, наиболее часто используемых в задачах идентификации при возможности организации активного эксперимента. Аргумент N задает количество значений сигнала. Строковая переменная type задает тип сигнала и может принимать значения (по умолчанию — 'rbs'):
• type = 'rs' — задание случайного гауссова сигнала;
• type - 'rbs' — задание случайного бинарного (двоичного) сигнала;
• type = ‘prbs' — задание псевдослучайного двоичного сигнала (ПСДС);
• type * 'sine' — задание полигармонического сигнала (в виде суммы синусоид).
Двухэлементный вектор-строка band * [wlow, whigh] задает диапазон частот сигнала (для сигналов типа 'rs', *rbs' и 'sine'), при этом wlow — нижняя частота, a whigh — верхняя частота (частоты задаются в долях от частоты Найквиста — см. выше). Белый шум, таким образом, характеризуется значением band = [0, 1], которое является и значением по умолчанию.
Для сигнала типа ПСДС ('prbs') используется значение band = [twologp, М], при этом 1/М — длительность интервала постоянства сигнала, а значение 2^twologp-1 определяет период ПСДС. Максимальное значение периода соответствует twologp=18 (или twologp=0); в этом случае по умолчанию band = [0, 1].
Двухэлементный вектор levels - [minu. maxu] задает минимальный и максимальный уровни для сигналов типа 'rs1, 'rbs' и 'sine'. Для сигнала типа 'rs' величина minu имеет значение, равное математическому ожиданию минус среднее квадратическое (или стандартное) отклонение, a maxu — математическому ожиданию плюс среднее квадратическое отклонение.
Для сигнала типа 'sine' возможно задание четвертого аргумента — auxvar = [no_of_sinusoids, no_of_trials], где no_of_sinusoids — число гармоник, образующих сигнал, a no_of_trials определяет, сколько итераций должно быть сделано, чтобы минимизировать амплитуду сигнала путем задания различным синусоидам произвольных начальных фаз. Значение но умолчанию — auxvar = [10, 10].
Возвращаемая величина — N-элементный вектор и.
Функция idresamp
Функция idresamp, записываемая в формах
zr = idresamp(z,R)
[zr, R_act] = idresamp(z,R,filter_order,tol)
выполняет преобразование сигнала путем изменения интервала его дискретизации.
Аргументы: z — матрица исходных данных (каждый столбец соответствует вектору данных), R — коэффициент изменения интервала дискретизации; при R>1 происходит прореживание исходного сигнала, при R<1 — его интерполяция. Допустимо любое положительное значение R, но оно будет заменено достигнутым приближением R_ act.
filterorder — порядок фильтра, который будет использован для предварительной фильтрации исходного сигнала (по умолчанию — 8);
tol — допустимое относительное отклонение R_act от R. По умолчанию — 0.1.
Возвращаемые величины — матрица преобразованных сигналов тс и достигнутое значение R_act.