exponenta event banner

pem

Минимизация ошибок прогнозирования для уточнения линейных и нелинейных моделей

Описание

пример

sys = pem(data,init_sys) обновляет параметры начальной модели в соответствии с оценочными данными. Функция использует алгоритм минимизации ошибок прогнозирования для обновления параметров исходной модели. Эта команда используется для уточнения параметров ранее оцененной модели.

пример

sys = pem(data,init_sys,opt) задает опции оценки с использованием набора опций.

Примеры

свернуть все

Оценка дискретно-временной модели состояния-пространства с использованием метода подпространства. Затем уточните его путем минимизации ошибки прогнозирования.

Оценка дискретной модели состояния-пространства с использованием n4sid, который применяет метод подпространства.

load iddata7 z7;
z7a = z7(1:300);
opt = n4sidOptions('Focus','simulation');
init_sys = n4sid(z7a,4,opt);

init_sys обеспечивает соответствие 73,85% оценочным данным.

init_sys.Report.Fit.FitPercent
ans = 73.8490

Использовать pem для улучшения близости посадки.

sys = pem(z7a,init_sys);

Проанализируйте результаты.

compare(z7a,sys,init_sys);

Figure contains an axes. The axes contains 3 objects of type line. These objects represent z7a (y1), sys: 74.54%, init\_sys: 73.85%.

sys обеспечивает соответствие 74,54% оценочным данным.

Оцените параметры нелинейной серой модели в соответствии с данными двигателя постоянного тока.

Загрузите экспериментальные данные и укажите атрибуты сигнала, такие как время начала и единицы измерения.

load(fullfile(matlabroot,'toolbox','ident','iddemos','data','dcmotordata'));
data = iddata(y, u, 0.1);
data.Tstart = 0;
data.TimeUnit = 's';

Сконфигурируйте нелинейную серую модель (idnlgrey) модель.

Для этого примера используйте dcmotor_m.m файл. Чтобы просмотреть этот файл, введите edit dcmotor_m.m в командной строке MATLAB ® .

file_name = 'dcmotor_m';
order = [2 1 2];
parameters = [1;0.28];
initial_states = [0;0];
Ts = 0;
init_sys = idnlgrey(file_name,order,parameters,initial_states,Ts);
init_sys.TimeUnit = 's';

setinit(init_sys,'Fixed',{false false});

init_sys является нелинейной серой моделью с ее структурой, описанной dcmotor_m.m. Модель имеет один вход, два выхода и два состояния, как указано order.

setinit(init_sys,'Fixed',{false false}) указывает, что начальные состояния init_sys являются свободными оценочными параметрами.

Оцените параметры модели и начальные состояния.

sys = pem(data,init_sys);

sys является idnlgrey модель, которая инкапсулирует оцененные параметры и их ковариацию.

Проанализируйте результат оценки.

compare(data,sys,init_sys);

Figure contains 2 axes. Axes 1 contains 3 objects of type line. These objects represent data (y1), sys: 98.34%, init\_sys: 79.39%. Axes 2 contains 3 objects of type line. These objects represent data (y2), sys: 84.48%, init\_sys: 49.15%.

sys обеспечивает соответствие 98,34% оценочным данным.

Создайте структуру модели процесса и обновите ее значения параметров, чтобы минимизировать ошибку прогнозирования.

Инициализируйте коэффициенты модели процесса.

init_sys = idproc('P2UDZ');
init_sys.Kp = 10;
init_sys.Tw = 0.4;
init_sys.Zeta = 0.5;
init_sys.Td = 0.1;
init_sys.Tz = 0.01;

Kp, Tw, Zeta, Td, и Tz коэффициенты init_sys сконфигурированы с их исходными догадками.

Использовать init_sys конфигурирование оценки модели минимизации ошибки прогнозирования с использованием измеренных данных. Поскольку init_sys является idproc модель, использование procestOptions для создания набора опций.

load iddata1 z1;
opt = procestOptions('Display','on','SearchMethod','lm');
sys = pem(z1,init_sys,opt);
Process Model Identification
                            
Estimation data: Time domain data z1         
Data has 1 outputs, 1 inputs and 300 samples.
Model Type:    
    {'P2DUZ'}



Algorithm: Levenberg-Marquardt search
 <br>
------------------------------------------------------------------------------------------
 <br>
                          Norm of      First-order    Improvement (%) <br> Iteration       Cost       step         optimality     Expected   Achieved    Bisections <br>------------------------------------------------------------------------------------------
     0        21.2201          -            414         3.8           -         -                                                                                                                                                                                                                                                                                                                               
     1        19.4048       1.15            323         3.8        8.55         7
     2        14.8743       2.48            814        4.41        23.3         0
     3        6.84305      0.873            451        4.43          54        11
     4        5.20355      0.977       1.49e+03        8.75          24         7
     5        1.83911      0.973            473          13        64.7         0
     6        1.67582      0.225           20.3        4.98        8.88         0
     7        1.67335      0.062           6.57      0.0829       0.147         0
     8        1.67334    0.00494         0.0555    0.000374    0.000648         0
------------------------------------------------------------------------------------------
Termination condition: Near (local) minimum, (norm(g) < tol)..
Number of iterations: 8, Number of function evaluations: 42   
                                                              
Status: Estimated using PEM                                   
Fit to estimation data: 70.63%, FPE: 1.73006                  

Проверьте соответствие модели.

sys.Report.Fit.FitPercent
ans = 70.6330

sys обеспечивает соответствие измеренным данным 70,63%.

Входные аргументы

свернуть все

Оценочные данные, содержащие измеренные входные-выходные данные, указанные как iddata или idfrd объект. Данные частотной области можно использовать только в том случае, если init_sys является линейной моделью.

Размеры ввода-вывода data и init_sys должно совпадать.

Идентифицированная модель, которая настраивает начальную параметризацию sys, задается как линейная или нелинейная модель. Вы можете получить init_sys путем выполнения оценки с использованием измеренных данных или путем прямого построения.

init_sys должны иметь конечные значения параметров. Можно настроить начальные догадки, указать минимальные/максимальные границы и исправить или освободить для оценки любого параметра init_sys:

  • Для линейных моделей используйте Structure собственность. Дополнительные сведения см. в разделе Наложение ограничений на значения параметров модели.

  • Для нелинейных серых моделей используйте InitialStates и Parameters свойства. Ограничения параметров не могут быть заданы для нелинейных моделей ARX и Hammerstein-Wiener.

Опции оценки, которые конфигурируют настройки алгоритма, обработку фокуса оценки, начальные условия и смещения данных, заданные как набор опций. Команда, используемая для создания набора опций, зависит от исходного типа модели:

Выходные аргументы

свернуть все

Идентифицированная модель, возвращенная как модель того же типа, что и init_sys. Модель получается путём оценки свободных параметров init_sys использование алгоритма минимизации ошибок прогнозирования.

Алгоритмы

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

VN (G, H) =∑t=1Ne2 (t)

где e (t) - разность между измеренным выходом и прогнозируемым выходом модели. Для линейной модели ошибка определяется следующим образом:

e (t) = H 1 (q) [y (t) G (q) u (t)]

где e (t) - вектор, а функция стоимости VN (G, H) - скалярное значение. Индекс N указывает, что функция затрат является функцией от числа выборок данных и становится более точной для больших значений N. Для моделей с несколькими выходами предыдущее уравнение является более сложным. Дополнительную информацию см. в главе 7 документа «Системная идентификация: теория для пользователя», второе издание, изданного Леннартом Люнгом (Lennart Ljung), Prentice Hall PTR, 1999.

Альтернативная функциональность

Можно достичь тех же результатов, что и pem путем использования специальных команд оценки для различных структур модели. Например, использовать ssest(data,init_sys) для оценки моделей состояния-пространства.

Представлен до R2006a