Оцените нелинейные модели ARX, инициализированные Используя линейные модели ARX

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

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

load throttledata.mat

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

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

Отобразите данные на графике, чтобы просмотреть и анализировать характеристики данных.

plot(ThrottleData)

Figure contains 2 axes objects. Axes object 1 with title Throttle Valve Position contains an object of type line. This object represents ThrottleData. Axes object 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 object. The axes object 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,'idSigmoidNetwork',optNL);

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

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

compare(ThrottleData, NonlinearModel)

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

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

Похожие темы