Этот пример показывает, как оценить нелинейные модели ARX с помощью линейных моделей ARX.
Загрузите данные оценки.
load throttledata.mat
Эта команда загружает объект данных ThrottleData
в рабочую область. Объект содержит входную и выходную выборки, собранные из дроссельной системы двигателя, отобранные со скоростью 100 Гц.
Двигатель постоянного тока управляет углом открытия дроссельного клапана в дроссельной системе. Шаговый сигнал (в вольтах) управляет двигателем постоянного тока. Выходным выходом является угловое положение (в степенях) клапана.
Постройте график данных для просмотра и анализа характеристик данных.
plot(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)
Линейная модель захватывает поведение подъема и осаждения в линейной рабочей области значений, но не учитывает насыщение выхода при 90 степенях.
Оцените нелинейную модель ARX, чтобы смоделировать выход насыщенность.
optNL = nlarxOptions('Focus','simulation'); NonlinearModel = nlarx(ThrottleData,LinearModel,'sigmoidnet',optNL);
Программа использует порядки и задержку линейной модели для порядков нелинейной модели. В сложение программное обеспечение вычисляет линейную функцию sigmoidnet
оценка нелинейности.
Сравните нелинейную модель с данными оценки.
compare(ThrottleData, NonlinearModel)
Модель захватывает нелинейные эффекты (выходное насыщение) и улучшает общую подгонку данным.