Мегаобучалка Главная | О нас | Обратная связь


Параметрическое оценивание данных



2019-12-29 363 Обсуждений (0)
Параметрическое оценивание данных 0.00 из 5.00 0 оценок




  Параметрическое оценивание экспериментальных данных проводится с целью определения параметров модели заданной структуры путем минимизации выбранного критерия качества модели (чаще всего – среднего квадрата рассогласования выходов объекта и его постулируемой модели).

  Для проведения параметрического оценивания массив экспериментальных данных необходимо разделить условно на две части (не обязательно равные)

                                             >> zdanv=zdan(1:500);

>> zdane=zdan(501:1000).

   Первая часть массива данных будет использоваться для параметрического оценивания и построения модели ТОУ. Вторая часть необходима будет для верификации (проверки качества) модели, определения адекватности полученной модели и определения погрешностей идентификации. Необходимо отметить, что параметрическая идентификация в пакете S ystem Identification Toolbox MATLAB выполняется в дискретном виде и полученные модели, являются дискретными.

   В пакете System Identification Toolbox рассмотрены различные виды моделей ТОУ, которые с различной степенью достоверности описывают объект автоматизации. Для выбора наиболее приемлемой структуры и вида моделей при параметрическом оценивании экспериментальных данных в пакете System Identification Toolbox MATLAB имеются специальные функции

· параметрического оценивания,

· задания структуры модели,

· изменения и уточнения структуры модели и выбора структуры модели.

Функция оценивания ar оценивает параметры модели авторегресии:

A ( z ) y ( t ) = e ( t ),

где: A ( z ) = 1 + a1z – 1 + a2z – 2 +...+ a na z na , т.е. коэффициенты полинома A ( z ), при моделировании скалярных временных последовательностей. Функция имеет синтаксис:

th = ar(y,n)

  Или другое написание, позволяющее изменять параметры моделирования: 

[th,refl]=ar(y,n,approach,win,maxsize,T)

где аргументы:

   y – вектор-столбец данных, содержащий N элементов;

   n – порядок модели (число оцениваемых коэффициентов);

   approach – аргумент (строковая переменная) определяет метод оценивания:

• 'ls' – метод наименьших квадратов;

• 'yw' – метод Юла-Уокера;

• 'burg' – метод Бэрга (комбинация метода наименьших квадратов с минимизацией гармонического среднего);

• 'gl' – метод с использованием гармонического среднего;

    Если любое из данных значений заканчивается нулем (например, burg0), то вычисление сопровождается оцениванием корреляционных функций.

    Аргумент win (строковая переменная) используется в случае отсутствия части данных:

• win =‘now’ – используются только имеющиеся данные (используется по умолчанию, за исключением случая approach = ‘yw’);

• window = 'prw’ – отсутствующие начальные данные заменяются нулями, так что суммирование начинается с нулевого момента времени;

• window = 'pow’ – последующие отсутствующие данные заменяются нулями, так что суммирование расширяется до момента времени N + n;

• window = ‘ppw’ – и начальные, и последующие отсутствующие данные заменяются нулями (используется в алгоритме Юла-Уокера);

Арумент maxsize определяет максимальную размерность задачи; Т – интервал дискретизации.

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

• th – полученная модель авторегрессии в тета-формате (внутреннем матричном формате представления параметрических моделей пакета System Identification);

• relf – информация о коэффициентах и функции потерь;

Для использования функция параметрического оценивания ar необходимо из массива экспериментальных данных, записанных в файле dan выделить выходную переменную у с помощью команды

>> y=dan.y,

что равносильно команде

>> y=get(dan,'y')

>> th =ar(y,4)

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

A(q) = 1 - 1.348 q^-1 + 0.6695 q^-2 - 0.2531 q^-3 - 0.04431 q^-4                                                               

Estimated using AR ('fb'/'now') from data set y                

Loss function 0.0140559 and FPE 0.0141588                  

Sampling interval: 1 

 Полная информация о модели авторегрессии th может быть получена с помощью команды:

>> present(th)

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

A(q) = 1 - 1.348 (+-0.03022) q^-1 + 0.6695 (+-0.05018) q^-2          

             - 0.2531 (+-0.05018) q^-3 - 0.04431 (+-0.03023) q^-4                                                                                                                                      

Estimated using AR ('fb'/'now') from data set y                      

Loss function 0.0140559 and FPE 0.0141588                            

Sampling interval: 1                                                 

Created:  17-Dec-2009 10:51:00                                  

Last modified: 17-Dec-2009 10:51:00     

 В информации приведены сведения о том, что модель является дискретной и для оценивания ее параметров используется прямой-обратный метод (разновидность метода наименьших квадратов), на что указывает строковая переменная 'fb' (используется по умолчанию); для построения модели используются только имеющиеся данные у, на что указывает строковая переменная 'now' (используется по умолчанию); определены: функция потерь Loss function, как остаточная сумма квадратов ошибки и так называемый теоретический информационный критерий Акейке (Akaike's Information Theoretic Criterion – AIC) FPE; интервал дискретизации Sampling interval.

  Следующая функция arx оценивает параметры модели AR и ARX: параметры модели ARX, представленной зависимостью:

A(z)y(t) = B(z) u(t) + e(t) ,

или в развернутом виде:

y(t) + а1y(t-1) + …+ аna y(t-n) = b1 u(t) + b2 u(t - 1) + …+ bnb u(t - m) + e(t).

Здесь и ниже e(t) – дискретный белый шум.

B(z) = b1 + b2 z-1 + …+ bbn z-nb + 1

Функция имеет следующий синтаксис:

dar = arx(z,nn).

  Или другое написание, позволяющее изменять параметры моделирования: 

dar = arx(z,nn,maxsize,T),

где z – экспериментальные данные;

nn – задаваемые параметры модели (аргумент nn содержит три параметра: na – порядок ( число коэффициентов) полинома A ( z ); nb – порядок полинома B ( z ); nk – величина задержки;

maxsize - максимальная размерность задачи;

Т – интервал дискретизации.

Естественно задаться вопросом: Какую степень полинома выбрать? Известно, что с увеличением порядка полиномов улучшается степень адекватности модели реальному объекту. Однако при этом получаются громоздкие выражения, и увеличивается время моделирования. Поэтому для нахождения оптимального порядка полиномов можно воспользоваться функциями выбора структуры модели:

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

v = arxstruc(ze,zv,NN),

или v = arxstruc(ze,zv,NN, maxsize);

где: ze,zv – соответственно, матрицы экспериментальных данных для оценивания и верификации моделей;

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

      maxsize - максимальная размерность задачи.

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

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

[nn,vmod]=selstruc(v)

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

где: v – матрица, возвращаемая функцией arxstruc;

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

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

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

    при с = ‘aic’ график не выводится, но возвращается структура, минимизирующая теоретический информационный критерий Акейке (AIC).

при с = ‘mdl’ возвращается структура, обеспечивающая минимум критерия Риссанена минимальной длины описания;

    при с равном некоторому численному значению а, выбирается структура, которая минимизирует значение функции потерь vmod = v(1 + a(d/N)), где N – объем выборки экспериментальных данных, используемых для оценивания; d – число оцениваемых коэффициентов модели; v – значение функции потерь.

   Возвращаемые величины: nn – выбранная структура; vmod – значение соответствующего критерия.

   Например, для данных dryer2 можно задать пределы изменения порядка модели:

>> NN=struc(1:10,1:10,1);

Вычислить функции потерь:

>> v=arxstruc(zdane,zdanv,NN);

И выбрать наилучшую структуру порядков полиномов:

>> [nn,vmod]=selstruc(v,'plot'),

где 'plot' – строковая переменная, определяющая вывод графика зависимости функции потерь от числа оцениваемых коэффициентов модели (рис. 2. 8).

   

   Рис. 2. 8. Окно выбора структуры модели

   В появившемся окне столбики указывают на величину функции потерь. При подведении курсора к соответствующему столбику, в правом поле окна отразятся значения порядков полиномов na, nb, nk. В поле графика появятся рекомендации по выбору цвета столбика. Воспользуемся рекомендацией, указанной в поле графика и выберем столбик, окрашенный красным цветом для оптимального значения порядков полиномов и нажмем кнопку Select.

   Взамен строковой переменной 'plot' возможны варианты:

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

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

 ,

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

• ‘mdl’ – возвращается структура, обеспечивающая минимум так называемого критерия Риссанена минимальной длины описания (Rissanen’s Minimum Description Lngth – MDL):

;

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

;

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

  Выбор наилучшей структуры порядков полиномов можно осуществить и с помощью более простой команды:

>> nn=selstruc(v,0)

    MATLAB возвращает:                       

nn =

8 2 1

   С учетом выбранной структуры модели определим вид модели ARX, выполнив функцию arx :

>> darx=arx(zdanv,nn)

Возвращается матрица из 100 столбцов и 4 строк с значениями различных критериев: vmod =

vmod =

Columns 1 through 8

 

0.0107 0.0078 0.0080 0.0078 0.0079 0.0079 0.0079 0.0079

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

 

Columns 9 through 16

 

0.0079 0.0079 0.0084 0.0072 0.0073 0.0073 0.0072 0.0072

1.0000 1.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000

9.0000 10.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

 

Columns 17 through 24

 

0.0073 0.0073 0.0073 0.0073 0.0079 0.0070 0.0072 0.0072

2.0000 2.0000 2.0000 2.0000 3.0000 3.0000 3.0000 3.0000

7.0000 8.0000 9.0000 10.0000 1.0000 2.0000 3.0000 4.0000

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

 

Columns 25 through 32

 

0.0072 0.0072 0.0072 0.0072 0.0073 0.0073 0.0079 0.0071

3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 4.0000 4.0000

5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 1.0000 2.0000

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

 

Columns 33 through 40


0.0072 0.0072 0.0072 0.0072 0.0073 0.0073 0.0073 0.0073

4.0000 4.0000 4.0000 4.0000 4.0000 4.0000 4.0000 4.0000

3.0000 4.0000 5.0000 6.0000 7.0000    8.0000 9.0000 10.0000

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

 

Columns 41 through 48

 

0.0080 0.0071 0.0071 0.0072 0.0071 0.0072 0.0073 0.0074

5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000

1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

 

Columns 49 through 56

 

0.0074 0.0074 0.0080 0.0070 0.0071 0.0071 0.0071 0.0071

5.0000 5.0000 6.0000 6.0000 6.0000 6.0000 6.0000 6.0000

9.0000 10.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

 

Columns 57 through 64

 

0.0073 0.0073 0.0073 0.0074 0.0080 0.0070 0.0071 0.0071

6.0000 6.0000 6.0000 6.0000 7.0000 7.0000 7.0000 7.0000

7.0000 8.0000 9.0000 10.0000 1.0000 2.0000 3.0000 4.0000

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

 

Columns 65 through 72

 

0.0071 0.0071 0.0073 0.0074 0.0074 0.0074 0.0080 0.0070

7.0000 7.0000 7.0000 7.0000 7.0000 7.0000 8.0000 8.0000

5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 1.0000 2.0000

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

 

Columns 73 through 80

 

0.0071 0.0071 0.0071 0.0071 0.0073 0.0074 0.0074 0.0074

8.0000 8.0000 8.0000 8.0000 8.0000 8.0000 8.0000 8.0000

3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

 

Columns 81 through 88

 

0.0080 0.0070 0.0071 0.0071 0.0071 0.0071 0.0073 0.0074

9.0000 9.0000 9.0000 9.0000 9.0000 9.0000 9.0000 9.0000

1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

 

Columns 89 through 96

 

0.0074 0.0074 0.0080 0.0070 0.0071 0.0071 0.0071 0.0072

9.0000 9.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000

9.0000 10.0000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

 

Columns 97 through 100

 

0.0073 0.0074 0.0074 0.0074

10.0000 10.0000 10.0000 10.0000

7.0000 8.0000 9.0000 10.0000

1.0000 1.0000 1.0000 1.0000

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

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

 

 

A(q) = 1 - 1.01 q^-1 + 0.3552 q^-2 - 0.03471 q^-3 - 0.1432 q^-4      

        + 0.1302 q^-5 - 0.0128 q^-6 - 0.08582 q^-7 + 0.06296 q^-8                                                                                                                                         

B(q) = 0.1367 q^-1 + 0.07335 q^-2                                                                                                      

Estimated using ARX from data set zdanv                              

Loss function 0.00666153 and FPE 0.00693343                          

Sampling interval: 0.08                  

Функция armax оценивает параметры ARMAX модели:

>> darmax = armax(zdanv,[2 2 2 1])

Аргументы функции:

zdanv – вектор экспериментальных данных; [na nb nc nk] – степени полиномов и величина задержки.

Возвращается дискретная модель, представленная в тета – формате:

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

A(q) = 1 - 0.8733 q^-1 + 0.1567 q^-2                                                                               

B(q) = 0.1331 q^-1 + 0.1028 q^-2                                                                                   

C(q) = 1 + 0.1854 q^-1 - 0.01339 q^-2                                                                              

Estimated using ARMAX from data set zdanv                

Loss function 0.00787129 and FPE 0.00806524              

Sampling interval: 0.08   

 

Функция oe оценивает параметры ОЕ модели:

>> zoe=oe(zdanv,[2 2 1])

Возвращается дискретная модель, представленная в тета – формате:

Discrete-time IDPOLY model: y(t) = [B(q)/F(q)]u(t) + e(t)

B(q) = 0.1478 q^-1 + 0.1052 q^-2                                                                             

F(q) = 1 - 0.8219 q^-1 + 0.1102 q^-2                                                                             

Estimated using OE from data set zdanv                  

Loss function 0.020577 and FPE 0.0209102                

Sampling interval: 0.08             

Функция bj оценивает параметры модели Бокса-Дженкинса:

>> zbj=bj(zdanv,[2 2 2 2 1])

Возвращается дискретная модель, представленная в тета – формате:

Discrete-time IDPOLY model: y(t) = [B(q)/F(q)]u(t) + [C(q)/D(q)]e(t)

B(q) = 0.1334 q^-1 + 0.101 q^-2                                                                                                        

C(q) = 1 - 0.1222 q^-1 - 0.1405 q^-2                                                                                               

D(q) = 1 - 1.148 q^-1 + 0.3494 q^-2                                                                                                    

F(q) = 1 - 0.8958 q^-1 + 0.1813 q^-2                                                                                               

Estimated using BJ from data set zdanv                             

Loss function 0.00699912 and FPE 0.0072286                         

Sampling interval: 0.08              

Функция n 4 sid используется для оценивания параметров моделей переменных состояния в канонической форме при произвольном числе входов и выходов:

[zn4s,AO] = n4sid(z,order,ny,auxord),

где: z – матрица экспериментальных данных

    order – задает порядок модели. Если данный аргумент вводится как вектор – строка, то предварительные расчеты выполняются по моделям всех заданных порядков (по умолчанию от первого по десятый), с выводом графика, позволяющего выбрать оптимальный порядок. Если order = ‘best’(по умолчанию), то выбирается модель наилучшего порядка;

    ny – количество выходов (по умолчанию ny = 1);

    auxord – дополнительный порядок, используемый алгоритмом оценивания. Данный порядок должен быть больше, чем порядок, задаваемый параметром order (по умолчанию дополнительный порядок равен (1.2*order+3)). Если данный аргумент вводится как вектор – строка, то выбирается модель наилучшего порядка.

   Для рассматриваемого примера project24 имеем:

>>zn4s=n4sid(zdanv,[1:10],[1:10]),

где в первых квадратных скобках задается интервал порядков модели order, и предварительные расчеты выполняются по моделям для всех заданных порядков от 1 до 10 с выводом графика, позволяющего выбрать оптимальный порядок. После этого необходимо в командной строке MATLAB набрать этот порядок и продолжить вычисление коэффициентов модели, нажав клавишу enter (рис. 2. 9). Во вторых квадратных скобках задается так называемый дополнительный порядок, используемый алгоритмом оценивания (по умолчанию дополнительный порядок равен (1.2*order+3)). При этом выбирается оптимальный порядок без вывода соответствующего графика.

Результатом выполнения команды является вывод результатов оценивания:

Warning: Input arguments must be scalar.

     > In n4sid>transf at 1044

In n4sid at 134

Select model order:('Return' gives default)

При нажатии In n4sid>transf at 1027, In n4sid at 134 (синий цвет: имя модели, построенной в тета - формате) появится окно редактора М-файла программы.

При нажатии Enter появится Order chosen to 3 (Закажите выбранный 3)

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)

    Рис. 2. 9. График для выбора оптимального порядка модели

A =

                   x1      x2      x3

      x1 0.77993 0.54376 -0.013931

      x2 -0.12996 0.073872 0.19929

      x3 -0.1067 0.016064 -0.47392

 

 

B =

          расход газа

      x1 -0.022796

      x2 -0.048006

      x3 -0.034112

 

 

C =

                   x1      x2      x3

температура -4.6742 -0.54702 0.0027609

 

 

D =

          расход газа

температура       0

 

 

K =

          температура

      x1 -0.20139

      x2 0.075372

      x3 0.02383

 

 

x(0) =

                         

      x1 0.10598

      x2 0.033411

      x3 -0.0020287

 

Estimated using N4SID from data set zdanv 

Loss function 0.00753932 and FPE 0.00791011

Sampling interval: 0.08      

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

>> zpem=pem(zdanv)

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      x3      x4      x5

      x1 0.79771 0.52932 0.017441 -0.043818 -0.055481

      x2 -0.089871 -0.056516 0.34751  0.4433 -0.14175

      x3 0.12179 -0.31736 -0.29564 -0.43427 0.29463

      x4 0.096387 -0.0086843 -0.063652 0.64711 -0.21098

      x5 -0.012304 0.025405 -0.18701 0.69982  1.0514

 

 

B =

          расход газа

      x1 -0.021221

      x2 -0.053799

      x3 -0.040284

      x4 -0.00059208

      x5 -0.032983

 

 

C =

                   x1      x2      x3      x4      x5

температура  -4.675   -0.54794 0.010925 0.068154 -0.1202

 

 

D =

          расход газа

температура       0

 

 

K =

          температура

      x1 -0.22248

      x2 0.037523

      x3 0.024536

      x4 0.11512

      x5 -0.068061

 

 

x(0) =

                         

      x1 0.10985

      x2 0.0039575

      x3 0.071289

      x4 -0.15615

      x5 -0.15783

 

Estimated using PEM from data set zdanv   

Loss function 0.00664935 and FPE 0.00720346

Sampling interval: 0.08



2019-12-29 363 Обсуждений (0)
Параметрическое оценивание данных 0.00 из 5.00 0 оценок









Обсуждение в статье: Параметрическое оценивание данных

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...



©2015-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (363)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.01 сек.)