Как в традиционном линейном 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