exponenta event banner

Оценка нелинейных моделей ARX, инициализированных с использованием линейных моделей ARX

В этом примере показано, как оценивать нелинейные модели ARX с помощью линейных моделей ARX.

Загрузите оценочные данные.

load throttledata.mat

Эта команда загружает объект данных ThrottleData в рабочую область. Объект содержит входные и выходные выборки, собранные из системы дроссельной заслонки двигателя, дискретизированные с частотой 100 Гц.

Двигатель постоянного тока управляет углом открытия поворотного клапана в дроссельной системе. Шаговый сигнал (в вольтах) приводит в действие двигатель постоянного тока. Выходной сигнал представляет собой угловое положение клапана (в градусах).

Постройте график данных для просмотра и анализа признаков данных.

plot(ThrottleData)

Figure contains 2 axes. Axes 1 with title Throttle Valve Position contains an object of type line. This object represents ThrottleData. Axes 2 with title Step Command contains an object of type line. This object represents ThrottleData.

В нормальном рабочем диапазоне 15-90 градусов входные и выходные переменные имеют линейную зависимость. Для моделирования этой взаимосвязи используется линейная модель низкого порядка.

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

Оцените модель ARX для моделирования линейного поведения этой системы с одним входом и одним выходом в нормальном рабочем диапазоне.

Ограничьте данные, поскольку линейные модели не могут фиксировать смещения.

Tr = getTrend(ThrottleData); 
Tr.OutputOffset = 15;
DetrendedData = detrend(ThrottleData,Tr);

Оцените линейную модель ARX с na = 2, nb = 1, nk = 1.

opt = arxOptions('Focus','simulation');
LinearModel = arx(DetrendedData,[2 1 1],opt);

Сравните смоделированный отклик модели с оценочными данными.

compare(DetrendedData, LinearModel)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent DetrendedData (Throttle Valve Position), LinearModel: 89.31%.

Линейная модель фиксирует поведение подъема и оседания в линейном рабочем диапазоне, но не учитывает насыщение выходного сигнала при 90 градусах.

Оцените нелинейную модель ARX для моделирования насыщения выходных данных.

optNL = nlarxOptions('Focus','simulation');
NonlinearModel = nlarx(ThrottleData,LinearModel,'sigmoidnet',optNL);

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

Сравните нелинейную модель с оценочными данными.

compare(ThrottleData, NonlinearModel)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent ThrottleData (Throttle Valve Position), NonlinearModel: 96.96%.

Модель фиксирует нелинейные эффекты (насыщение выходных данных) и улучшает общее соответствие данным.

Связанные темы