Функции изменения и уточнения структуры модели 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Функции изменения и уточнения структуры модели



 

Для изменения и уточнения структуры модели служат следующие функции.

Функция fixpar

Функция fixpar фиксирует коэффициенты в структурах тета-моделей для переменных состояния и ARX, созданных с помощью функ­ций ms2th и arx2th:

thn = fixpar(tho,matrix)

thn = fixpar(tho,matrix,elements,parval)

где:

• tho — исходная тета-модель;

• аргумент matrix (строковая переменная):

o если исходная модель задана через переменные состояния, при­нимает одно из значений: 'А', 'В', 'С', 'D', 'К' или 'х0';

o если исходная модель — ARX-типа, то параметр matrix прини­мает одно из значений: 'А1', 'А2',..., 'В0', 'В1',...;

• аргумент elements представляет собой матрицу из двух столбцов, содержащую индексы фиксируемых (то есть не подлежащих ка­кому-либо последующему изменению) элементов матрицы, опре­деляемой аргументом matrix, например, запись

thn = fixpar(tho,'A',[1,2;3,5]);


означает, что будут зафиксированы элементы А12и A35. По умолчанию фиксируются начальные значения параметров или их оцен­ки (последние по времени);

• parval — вектор, элементы которого явно задают некоторые фиксируемые параметры (k-й элемент этого вектора задает величину k-ro элемента в строке elements).

Возвращаемая величина thn — тета-модель с частично зафиксирован­ными параметрами.

Функция sett

Функция sett явным образом задает интервал дискретизации в мо­делях:

 

modn = sett(mod,T)

 

Аргументы:

• mod — имя (идентификатор) модели в тета-формате или в частот­ном формате (см. описание функции spa);

• Т — задаваемый интервал дискретизации.

Возвращаемая величина modn — модель объекта с новым значением Т.

Функция thinit

Функция thinit устанавливает начальные (случайные) значения ко­эффициентов, подлежащих оцениванию в модели для переменных состояния (тета-формат) с последующим применением для такого оценивания функции pem. Записывается в виде:

th = thinit(th0)

th = thinit(th0,R,pars,sp)

где

• th0 — исходная тета-модель;

• аргументы R и pars задают параметры закона случайного задания коэффициентов модели по следующему правилу: коэффициент с номером к устанавливается равным величине pars(k) + e*sqrt(R(k)), где е — гауссова случайная величина с нулевым математическим ожиданием и единичной дисперсией. По умолчанию все элемен­ты вектора R — единицы, а элементы вектора pars равны номи­нальным значениям коэффициентов модели;

• sp — строковая переменная с возможными значениями 'b' (ста­бильна как модель, так и прогнозируемый по ней выход), 's' (ста­бильна только модель) и 'р' (стабилен только прогнозируемый выход); по умолчанию sp='р'. Возвращаемая величина th — тета-модель сзаданными начальными значениями коэффициентов.

Функция unfixpar

Функция unfixpar является обратной по отношению к функции fixpar, то есть делает зафиксированные коэффициенты модели свободными:

thn = unfixpar(tho,matrix)

thn = unfixpar(tho,matrix,elements)

Аргументы и возвращаемая величина идентичны рассмотренным для функции fixpar.

Функции выбора структуры модели

 

Данная группа образована следующими четырьмя функциями.

Функция arxstruc

Функция arxstruc вычисляет функции потерь для ряда различных конкурирующих ARX-моделей с одним выходом:

v = arxstruc(ze,zv,NN)

v = arxstruc(ze,zv,NN,maxsize)

где:

• ze и zv — соответственно, матрицы экспериментальных данных для оценивания и верификации (проверки качества) моделей;

• NN — матрица задания конкурирующих структур со строками вида nn = [nа nb nk];

• maxsize — служебный аргумент, определяющий максимально возможную размерность задачи.

Возвращаемая величина v — матрица, первые (верхние) элементы каждого столбца которой (кроме последнего) являются значениями функции потерь для ARX-моделей, структура которых отображается последующими элементами столбцов (то есть каждый столбец соот­ветствует одной модели). Первый элемент последнего столбца — чис­ло значений экспериментальных данных для верификации моделей.

Последующий отбор наилучшей модели может быть произведен с по­мощью функции selstruc (см. ниже).

Функция ivstruc

Функция ivstruc вычисляет среднее квадратичное отклонение выхо­дов объекта и ряда различных конкурирующих ARX-моделей:

 

v = ivstruc(ze,zv,NN)

v = ivstruc(ze,zv,NN,p,maxsize)

Рассматриваемая функция по назначению аналогична предыдущей, но отличается используемым алгоритмом оценивания — в данном слу­чае используется метод IV.

Аргументы (кроме р) аналогичны аргументам функции arxstruc. Ар­гумент разрешает или запрещает (р = 0) вывод так называемых услов­ных чисел IV-матрицы.

Возвращаемая величина v, практически идентична матрице, возвращаемой предыдущей функцией, но отличается от последней дополнительной (нижней) строкой, в которой приводятся условные числа IV-матрицы.

Функция selstruc

Функция selstruc осуществляет выбор наилучшей структуры моде­ли из ряда возможных вариантов:

[nn,vmod] = selstruc(v)

[nn.vmod] = selstruc(v,c)

Здесь:

• v — матрица, возвращаемая функциями arxstruc или ivstruc;

• с — строковая переменная, определяющая вывод графика или критерий отбора наилучшей структуры:

o при с = 'plot' выводится график зависимости функции потерь от числа оцениваемых коэффициентов модели;

o если с = 'log', выводится график логарифма функции потерь;

o при с = 'aic' график не выводится, но возвращается структу­ра, минимизирующая так называемый теоретический инфор­мационный критерий Акейке (Akaike's Information Theoretic Criterion - AIC):

Vmod = V(1+2(d/N)),

где V значение функции потерь, d — число оцениваемых ко­эффициентов модели, N — объем экспериментальных данных, используемых для оценивания,

o при с = 'mdl' возвращается структура, обеспечивающая мини­мум так называемого критерия Риссанена минимальной дли­ны описания (Rissanen's Minimum Description Length — MDL)

o при с, равном некоторому численному значению я, выбирается структура, которая минимизирует.

Возвращаемые величины:

• nn— выбранная структура;

• vmod — значение соответствующего критерия.

Рассмотрим следующий пример. Используя экспериментальные данные файла dryer2.mat, сравним ARX-модели порядков 1-5 с единичной задержкой и произведем отбор лучшей структуры:

» load dryer2 %3a грузка данных

» z=[y2 u2];

» NN=struc(l:5,1:5,1); %3адание пределов изменения порядка mодели

» V=arxstruc(z(l:200,:),z(201:400,:)NN);

» nn = selstruc(V, 0); %Выбор наилучшей модели

» th = arx(z,nr); %Оценивание коэффициентов выбранной модели

» present(th) %Представление модели

This matrix was created by the command ARX on 1/20 2001 at 15:50

Loss fen: 0.0014058 Akaike's ГРЕ: 0.0014342 Sampling interval 1

The polynomial coefficients and their standard deviations are

В=

0 0.0002 0.0060 0.0642 0.0617 0.0208

0 0.0010 0.0012 0.0012 0.0023 0.0026

A=

1.0000 -0.9662 0.0324 0.0257 0.1168 -0.0526

0 0.0306 0.0420 0.0415 0.0317 0.0120

Как видно, в данном случае наилучшей оказалась модель 5-го порядка.

Функции преобразования модели

 

Данная группа образована десятью функциями.

Функция idmodred

Функция idmodred понижает порядок модели (в тета-формате):

thred = idmodred(th)

thred = idmodred(th,order,OE)

Функция преобразует исходную модель th, заданную в тета-форма-гс, понижая ее порядок. Аргументы функции:

• th — исходная модель;

• order — желаемый порядок. Если order=[ ] (но умолчанию), то вы­водится график, показывающий, как управляемость и наблюдаемость зависят от порядка модели;

• если OЕ='ое', то рассчитывается выходная ошибка возвращаемой модели, в любом другом случае понижается порядок модели шума.

Возвращаемая величина thred — модель пониженного порядка.

Функция th2arx

Функция th2arx преобразует модель тета-формата в ARX-модель:

[А,В] = th2arx(th)

[A,B,dA,dB] = th2arx(th)

Возвращаемая ARX-модель имеет вид, рассмотренный при описании функции arx2th (см. выше), в частности,

А = [I A1 A2 ... Ana];

В= [В0 B1... Bnb];

элементы матриц dA и dB являются стандартными отклонениями эле­ментов матриц А и В.

Функция th2ff

Функция th2ff вычисляет частотные характеристики и соответствую­щие стандартные отклонения по модели в тета-формате:

[g,phiv] = th2ff(th)

[g,phiv] = th2ff(th,ku,w,ky)

Здесь:

• th — исходная модель в тета-формате;

• w — вектор-строка, элементы которого являются частотами для расчета значений частотных характеристик;

• ku и ку — векторы-строки, которые (в случае многомерного объек­та) задают соответственно номера входов и выходов, для которыхрассчитываются оценки частотных передаточных функций.

Возвращаемые величины — как в функции spa (см. выше).

Функция th2par

Функция th2par возвращает вектор коэффициентов из модели тета-формата:

[par,Р,lam] = th2par(th)

 

Аргумент th — модель в тета-формате. Возвращаемые величины:

• par — вектор коэффициентов модели следующего вида:

o для обобщенной модели«вход-выход»

 

 

o для модели переменных состояния данный вектор состоит из перечисленных по строкам последовательно матриц А, В, С, D, К и х0;

• Р — матрица ковариаций приведенных коэффициентов;

• lam — матрица ковариаций шума наблюдений.

Информация выводится только для свободных коэффициентов.

Функция th2poly

Функция th2poly преобразует матрицу модели тета-формата в матрицы обобщенной (многомерной) линейной модели (см. описание функции pem):

[A,B,C,D,F,lam,T] = th2poly(th)

Здесь lam — интенсивность шума наблюдений. Остальные величины пояснены выше.

Функция th2ss

Функция th2ss преобразует тета-модель в модель для переменных со­стояния:

[A,B,C,Q,K,X0] = th2ss(th)

[A,B,C,D,K,X0,dA,dB,dC,dD,dK,dX0] = th2ss(th)

Смысл аргументов и возвращаемых величин — тот же, что в преды­дущих функциях.

Функция th2tf

Функция th2tf преобразует модель тета-формата многомерного объек­та в вектор передаточных функций, связанных с выбранным входом:

[num,den] = th2tf(th)

[num,den] = th2tf(th,iu)

где

• th — исходная модель тета-формата;

• iu — номер входа, для которого строятся передаточные функции (но умолчанию 1).

Возвращаемые величины:

• num — матрица, k-я строка которой содержит коэффициенты поли­нома числителя частной передаточной функции от выбранного (iu) входа к k -му выходу;

• den — вектор-строка, элементами которого являются коэффициенты знаменателя передаточных функций (одного и того же для всех частных передаточных функций).

К примеру, для непрерывного случая величины

num = [1 2]

den = [1 3 0]

соответствуют передаточной функции

Аналогично, для дискретной модели при

num=[2 4 0]

den - [1 2 3 5]

имеем передаточную функцию вида

 

2z2+4z

z3 +2z2 + 3z + 5

или (что то же самое) вида

 

 

Функция th2zp

Функция th2zp рассчитывает нули, полюса и статические коэффициенты передачи (коэффициенты усиления) модели тета-формата в общем случае многомерного объекта:

[zepo,k] = th2zp(th)

[zepo,k] = th2zp(th,ku,ky,thresh)

Здесь:

• th — имя тета-модели;

• ku и ky — вектор-строки, содержащие номера входов ju и выходов y, для которых будут рассчитываться частные передаточные функции и соответствующие им нули, полюса и коэффициенты усиления;

• thresh — пороговая величина, при превышении которой рассчитываемые нули будут полагаться равными бесконечности, по умолчанию thresh=100000.

Возвращаемые величины:

• zepo — матрица, в закодированном виде отражающая информациюо нулях и полюсах модели (в графическом виде данная информация может быть извлечена с помощью функции zpplot, в аналитическом — с помощью функции getzp);

• к — матрица с информацией о статических коэффициентах усиления частных передаточных функций. Первую строку этой матрицы составляют элементы, имеющие значения (jy-l)*1000+ju, вторую — соответствующие коэффициенты усиления.


 


Проведем сравнение полюсов двух ARX-моделей — 2-го и 3-го по­рядков, оценивание которых проводится по одним и тем же экспе­риментальным данным.

» load dryer2 %3агрузка данных

» z = [y2 u2];

» th2 = arx(z,[2 2 1]); %Оценивание модели 2-го порядка

» th3 = arx(z,[3 3 1]); %Оценивание модели 3-го порядка

» %Нахождение нулей и полюсов моделей

» zp2 = th2zp(th2);

» zp3 = th2zp(th3);

» %Графическое представление нулей и полюсов

» zpplot(zpform(zp2,zp3))

Результаты приведены на рис. (график увеличен так, что отображены лишь нули — крестиками для модели 2-го порядка и квадратиками для модели 3-го порядка — и единичный круг. Данные результаты показывают, в частности, что обе модели являются устойчивыми, но у модели 3-го порядка запас устойчивости выше (ее полюса находятся дальше от границы круга).


 

Функция thc2thd

Функция thc2thd преобразует модель из непрерывной формы в дискретную:

thd = thc2thd(thc,T)

Здесь:

• thc — исходная непрерывная тета-модель,

• Т — интервал дискретизации,

• thd — возвращаемая дискретная тета-модель.

 

Функция thd2thc

Функция thd2thc является обратной по отношению к предыдущей, то есть преобразует дискретную модель в непрерывную:

thс = thd2thc(thd)

thс = thd2thc(thd,delay,NoP)

Смысл величин thc и thd пояснен выше; аргумент delay определяет способ учета задержки в дискретной модели:

• при delay = 'nodel' (по умолчанию) задержка учитывается звеном идеального запаздывания;

• при delay =- 'del' задержка аппроксимируется непрерывным динамическим звеном;

• значение NoP=1 запрещает вывод матрицы ковариаций коэффициентов модели.



Поделиться:


Последнее изменение этой страницы: 2017-02-10; просмотров: 123; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.183.137 (0.05 с.)