Как в традиционном линейном MPC, нелинейный MPC вычисляет действия управления в каждом контрольном интервале с помощью комбинации основанного на модели предсказания и ограниченной оптимизации. Основные отличия:
Модель предсказания может быть нелинейной и включать изменяющиеся во времени параметры.
Ограничения равенства и ограничения неравенства могут быть нелинейными.
Скалярная функция стоимости, которая будет минимизирована, может быть неквадратичным (линейный или нелинейный) функция переменных решения.
Используя нелинейный MPC, вы можете:
Симулируйте управление с обратной связью нелинейных объектов под нелинейными затратами и ограничениями.
Запланируйте оптимальные траектории путем решения разомкнутого контура ограничили нелинейную задачу оптимизации.
По умолчанию нелинейные диспетчеры MPC решают задачу нелинейного программирования с помощью fmincon
функция с алгоритмом SQP, который требует программного обеспечения Optimization Toolbox™. Если у вас нет программного обеспечения Optimization Toolbox, можно задать собственный нелинейный решатель. Для получения дополнительной информации о конфигурировании fmincon
решатель и определение пользовательского решателя, смотрите, Конфигурируют Решатель Оптимизации для Нелинейного MPC.
Примечание
Приложение MPC Designer не поддерживает проект нелинейных контроллеров MPC.
Чтобы реализовать типовой нелинейный MPC, создайте nlmpc
объект, и задает:
И выходные функции состояния, которые задают вашу модель предсказания. Для получения дополнительной информации смотрите, Задают Модель Предсказания для Нелинейного MPC.
Пользовательская функция стоимости, которая может заменить или увеличить стандартную функцию стоимости MPC. Для получения дополнительной информации смотрите, Задают Функцию стоимости для Нелинейного MPC.
Стандартные границы на входных параметрах, выходных параметрах и состояниях.
Дополнительное пользовательское равенство и ограничения неравенства, которые могут включать линейные и нелинейные комбинации входных параметров, выходных параметров и состояний. Для получения дополнительной информации смотрите, Задают Ограничения для Нелинейного MPC.
Можно симулировать типовые нелинейные контроллеры MPC:
В Simulink® с помощью блока Nonlinear MPC Controller
При использовании командной строки nlmpcmove
Многоступенчатой проблемой MPC является проблема MPC, в которой стоимость и ограничительные функции основаны на этапе. А именно, многоступенчатый контроллер MPC с горизонтом предсказания длины, p имеет p +1 этап, где первая стадия соответствует текущему времени и последнему (терминальному) этапу, соответствует последнему шагу предсказания.
Для многоступенчатого контроллера MPC каждый этап может иметь свои собственные переменные решения и параметры, а также свою собственную нелинейную стоимость и ограничения. Что еще более важно, стойте, и ограничительные функции на определенном этапе являются только функциями переменных решения и параметров на том этапе. Эта функция допускает намного более эффективную структуру данных и формулировку базовой проблемы нелинейного программирования, которая значительно уменьшает время вычисления по сравнению с той же задачей, решенной с помощью типового контроллера NLMPC.
Поэтому, если ваша нелинейная проблема MPC стоила и ограничительные функции, которые не включают условия перекрестного этапа, необходимо использовать многоступенчатый нелинейный контроллер MPC в проекте.
Чтобы реализовать многоступенчатый нелинейный контроллер MPC, сначала создайте nlmpcMultistage
объект, и затем задает:
Функции состояния, которые задают вашу модель предсказания. Для моделей дискретного времени убедитесь Model.IsContinuousTime
установлен в false
.
Стойте и ограничительные функции на желаемых этапах. Необходимо задать функцию стоимости по крайней мере для одного этапа.
Трудно верхние и нижние границы на состояниях, переменных, которыми управляют и плавающих курсах, которыми управляют, в случае необходимости.
При разработке контроллера рассмотрите следующие моменты.
Анонимные функции не поддерживаются для nlmpcMultistage
объекты.
Это - лучшая практика задать Якобианы, когда они доступны, в противном случае решатель должен вычислить их численно на каждом шаге.
В отличие от этого, в типовом нелинейном MPC, объект выходные параметры, веса, значения ECR и масштабные коэффициенты не присутствуют в nlmpcMultistage
объект. Можно реализовать их непосредственно в стоимости и ограничительных функциях.
Горизонт управления также не использован в nlmpcMultistage
объекты. Чтобы реализовать перемещения блока, установите RateMin
и RateMax
обнулять на желаемых шагах предсказания.
Можно симулировать многоступенчатые нелинейные контроллеры MPC:
В Simulink с помощью блока Multistage Nonlinear MPC Controller
При использовании командной строки MATLAB® nlmpcmove
Генерация кода от нелинейного многоступенчатого диспетчера поддерживается в обоих MATLAB (использование mpcmoveCodeGeneration
) и Simulink.
Для примеров о том, как создать и использовать многоступенчатый контроллер MPC, смотрите, Создают и Симулируют Многоступенчатый Нелинейный Контроллер MPC, Симулируют Многоступенчатый Нелинейный Контроллер MPC Используя Исходные предположения и Грузовик и Трейлер Автоматическая Парковка Используя Многоступенчатый Нелинейный MPC.