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

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

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

load throttledata.mat

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

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

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

plot(ThrottleData)

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

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

Оцените, что модель Хаммерстайна-Винера моделирует линейное поведение этого одно входа система одно выхода в нормальном рабочем диапазоне.

% Detrend the data because linear models cannot capture offsets.
Tr = getTrend(ThrottleData); 
Tr.OutputOffset = 15;
DetrendedData = detrend(ThrottleData,Tr);

% Estimate a linear OE model with na=2, nb=1, nk=1.
opt = oeOptions('Focus','simulation');
LinearModel = oe(DetrendedData,[2 1 1],opt);

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

compare(DetrendedData, LinearModel)

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

Оцените, что модель Хаммерстайна-Винера моделирует выходное насыщение.

NonlinearModel = nlhw(ThrottleData, LinearModel, [], 'saturation');

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

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

compare(ThrottleData, NonlinearModel)

Похожие темы