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 и моделей Хаммерстайна-Винера.

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

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

свернуть все

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

Алгоритмы

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

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

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

e(t)=H1(q)[y(t)G(q)u(t)]

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

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

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

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте