Оценка нелинейных моделей 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%.

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

Похожие темы