Как в традиционном линейном MPC, нелинейный MPC вычисляет действия управления в каждом интервале управления с помощью комбинации основанного на модели прогноза и ограниченной оптимизации. Основные отличия:
Модель прогноза может быть нелинейной и включать изменяющиеся во времени параметры.
Равенство и ограничения неравенства могут быть нелинейными.
Скалярная функция стоимости, которая будет минимизирована, может быть неквадратичным (линейный или нелинейный) функция переменных решения.
Используя нелинейный MPC, вы можете:
Моделируйте управление с обратной связью нелинейных объектов под нелинейными затратами и ограничениями.
Запланируйте оптимальные траектории путем решения разомкнутого цикла ограничили нелинейную задачу оптимизации.
Чтобы реализовать нелинейный MPC, создайте объект nlmpc
и задайте:
И выходные функции состояния, которые задают вашу модель прогноза. Для получения дополнительной информации смотрите, Задают Модель Прогноза для Нелинейного MPC.
Пользовательская функция стоимости, которая может заменить или увеличить стандартную функцию стоимости MPC. Для получения дополнительной информации смотрите, Задают Функцию стоимости для Нелинейного MPC.
Стандартные границы на входных параметрах, выходных параметрах и состояниях.
Дополнительное пользовательское равенство и ограничения неравенства, которые могут включать линейные и нелинейные комбинации входных параметров, выходных параметров и состояний. Для получения дополнительной информации смотрите, Задают Ограничения для Нелинейного MPC.
По умолчанию нелинейные диспетчеры MPC решают проблему нелинейного программирования с помощью функции fmincon
с алгоритмом SQP, который требует программного обеспечения Optimization Toolbox™. Если у вас нет программного обеспечения Optimization Toolbox, можно задать собственный нелинейный решатель. Для получения дополнительной информации о конфигурировании решателя fmincon
и определении пользовательского решателя, смотрите, Конфигурируют Решатель Оптимизации для Нелинейного MPC.
Можно моделировать нелинейные контроллеры MPC:
В Simulink® с помощью блока Nonlinear MPC Controller
В командной строке с помощью nlmpcmove
Нелинейный контроллер MPC не поддерживает:
Генерация кода
Разработка контроллеров, использующих приложение MPC Designer