Оцените модели Хаммерстайна-Винера, инициализированные Используя линейные модели 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)

Похожие темы