Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kontr_voprosy.doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
2.24 Mб
Скачать
  1. Задания структуры модели.

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

Функция idarx — создает ARX модель со многими переменными:

m = idarx(А,В,Ts)

га = idarx(A,B,Ts,'Propl',Valuel,...,,'PropN',ValueN)

Во втором варианте записи функции возможно задание свойств Propi и соответствующих значений Valuei.

Функция idfrd создает идентифицированную частотную зависимость для объекта данных:

h = idfrd(Response,Freqs,Ts) h = idfrd(mod)

h = idfrd(mod,Freqs) h = idfrd(Response,Freqs, Ts, 'CovarianceData',Covariance, 'SpectrumData', Spec, 'NoiseCovariance', Speccov, 'prop1', Value1, 'PropN', ValueN)

Функция idgrey — полутоновый «ящик» линейной модели, используя m-файл, который вы записываете:

m = idgrey(MfileName, ParameterVector, CDmfile)

m = idgrey(MfileName, ParameterVector, CDmfile, FileArgument, Ts,'Propl', Valuel, ..., 'PropN', ValueN)

Структура файла следующая:

[А,В,С,D,К,Х0] = mymfile(pars, Tsm, Auxarg)

Функция idpoly создает структуру для моделей входа—выхода, определенную как отношение полиномов числителя и знаменателя:

m = idpoly(А,В) m = idpoly(mi)

m = idpoly(А, В,С,D,F, NoiseVariance,Ts)

m = idpoly(A, B, C, D, F, NoiseVariance, Ts, 'Prop!', Value1, 'PropN', ValueN)

Пример применения функции idpoly наглядно поясняет ее суть:

>> A = [1 -1.5 0.7]; В = [0 1 0.5]; С =[1 -1 0.2];

>> m0 = idpoly(А,В,С)

Discrete-time IDPOLY model: A(q)y(t) = B(q)u(t) + C(q)e(t)

A(q) = 1 - 1.5 q^-1 + 0.7 q^-2

B(q) = q^-1 + 0.5 q^-2

C(q) = 1 - q^-1 + 0.2 q^-2

Функция idss создает структуру модели для линейных моделей пространства состояний с определенными и неопределенными параметрами

m = idss (А, В, С, D) mss = idss (m1)

m - idss (A, B, C, D, K, x0, Ts, 'Propl' , Value1, . . . , ' PropeN ' ,ValueN) Пример применения функции idss:

A = [-0.2, 0; 0, -0.3]; B = [2;4]; C=[1, 1]; D = 0;

m0 = idss (А, В, С, D)

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)

A =

x1 x2

x1 -0.2 0

x2 0 -0.3

B =

u1

x1 2

x2 4

C =

x1 x2

y1 1 1

D =

u1

y1 0

K =

y1

x1 0

x2 0

x(0) =

x1 0

x2 0

This model was not estimated from data.

Sampling interval: 1

  1. Выбор структуры модели.

Для выбора структуры модели служат 6 функций.

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

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

где:

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

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

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

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

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

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

Рассматриваемая функция по назначению аналогична предыдущей, но отличается используемым алгоритмом оценивания — в данном случае используется метод IV. Аргументы (кроме р) аналогичны аргументам функции arx-struc. Аргумент разрешает или запрещает (р=0) вывод так называемых условных чисел IV-матрицы. Возвращаемая величина v практически идентична матрице, возвращаемой предыдущей функцией, но отличается от по­следней дополнительной (нижней) строкой, в которой приводятся условные числа IV-матрицы.

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

[nn,vmod] = selstruc(v) [nn,vmod] = selstruc(v,с)

Здссь:

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

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

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

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

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

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

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

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

Vmod = V(1 + log(N)(d/N));

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

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

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

tm - выбранная структура;

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

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

>> load dryer2; z=[y2 u2]; NN=struc(1:5,1:5,1);

>> V=arxstruc(z (1:200,:), z(201:400, :), NN);

>> nn = selstruc(V,0); th=arx(z,nn); present(th)

Discrete-time IDPOLY model: A(q)y(t) = B(q)u(t) + e(t)

A(q) = 1 - 0.9662 (+-0.0308) q^-1 + 0.03241 (+-0.04218) q^-2

+ 0.02569 (+-0.04173) q^-3 + 0.1168 (+-0.03187) q^-4

- 0.05259 (+-0.01207) q^-5

B(q) = 0.0001676 (+-0.000999) q^-1 + 0.005973 (+-0.001201) q^-2

+ 0.06419 (+-0.001212) q^-3 + 0.06169 (+-0.002283) q^-4

+ 0.02081 (+-0.002599) q^-5

Estimated using ARX from data set z

Loss function 0.00139879 and FPE 0.00142705

Sampling interval: 1

Created: 21-Dec-2007 00:32:02

Last modified: 21-Dec-2007 00:32:02

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

Функция n4sid, вычисляет порядок модели модели состояния:

m = n4sid(data)

m = n4sid(data,order,'Propl',Valuel,...,'PropN',ValueN)

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

m = pem(data,mi) m = pem(data,orders) m = pem(data,'nx',ssorder)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]