Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
идентификация в MATLAB.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
304.13 Кб
Скачать

Работа с пакетом в режиме командной строки

Возможности работы в режиме командной строки

Пакет 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.