Нелинейный MPC

Как в традиционном линейном MPC, нелинейный MPC вычисляет действия управления в каждом контрольном интервале с помощью комбинации основанного на модели предсказания и ограниченной оптимизации. Основные отличия:

  • Модель предсказания может быть нелинейной и включать изменяющиеся во времени параметры.

  • Ограничения равенства и ограничения неравенства могут быть нелинейными.

  • Скалярная функция стоимости, которая будет минимизирована, может быть неквадратичным (линейный или нелинейный) функция переменных решения.

Используя нелинейный MPC, вы можете:

  • Симулируйте управление с обратной связью нелинейных объектов под нелинейными затратами и ограничениями.

  • Запланируйте оптимальные траектории путем решения разомкнутого контура ограничили нелинейную задачу оптимизации.

По умолчанию нелинейные диспетчеры MPC решают задачу нелинейного программирования с помощью fmincon функция с алгоритмом SQP, который требует программного обеспечения Optimization Toolbox™. Если у вас нет программного обеспечения Optimization Toolbox, можно задать собственный нелинейный решатель. Для получения дополнительной информации о конфигурировании fmincon решатель и определение пользовательского решателя, смотрите, Конфигурируют Решатель Оптимизации для Нелинейного MPC. Для получения дополнительной информации об использовании решателя FORCESPRO NLP с нелинейными контроллерами MPC смотрите Реализацию Контроллеры MPC использование Решатели Embotech FORCESPRO.

Примечание

Приложение MPC Designer не поддерживает проект нелинейных контроллеров MPC.

Типовой нелинейный MPC

Чтобы реализовать типовой нелинейный MPC, создайте nlmpc объект, и задает:

  • И выходные функции состояния, которые задают вашу модель предсказания. Для получения дополнительной информации смотрите, Задают Модель Предсказания для Нелинейного MPC.

  • Пользовательская функция стоимости, которая может заменить или увеличить стандартную функцию стоимости MPC. Для получения дополнительной информации смотрите, Задают Функцию стоимости для Нелинейного MPC.

  • Стандартные границы на входных параметрах, выходных параметрах и состояниях.

  • Дополнительное пользовательское равенство и ограничения неравенства, которые могут включать линейные и нелинейные комбинации входных параметров, выходных параметров и состояний. Для получения дополнительной информации смотрите, Задают Ограничения для Нелинейного MPC.

Можно симулировать типовые нелинейные контроллеры MPC:

Многоступенчатый нелинейный MPC

Многоступенчатой проблемой MPC является проблема MPC, в которой стоимость и ограничительные функции основаны на этапе. А именно, многоступенчатый контроллер MPC с горизонтом предсказания длины, p имеет p +1 этап, где первая стадия соответствует текущему времени и последнему (терминальному) этапу, соответствует последнему шагу предсказания.

Для многоступенчатого контроллера MPC каждый этап может иметь свои собственные переменные решения и параметры, а также свою собственную нелинейную стоимость и ограничения. Что еще более важно, стойте, и ограничительные функции на определенном этапе являются функциями только переменных решения и параметров на том этапе. Кроме облегчают писать Функции Якоби, эта функция допускает намного более эффективную структуру данных, которая в свою очередь значительно уменьшает время вычисления по сравнению с той же задачей, решенной с помощью типового контроллера NLMPC. То, что слабые переменные основаны на этапе, позволяет для большего количества конструкторской гибкости, и отключение использования плавающих курсов, которыми управляют, как переменные решения дает к еще более скудной формулировке задачи.

Поскольку они рассуждают, если ваша нелинейная проблема MPC стоила и ограничительные функции, которые не включают термины перекрестного этапа, используют многоступенчатый нелинейный контроллер MPC в вашем проекте.

Чтобы реализовать многоступенчатый нелинейный контроллер MPC, сначала создайте nlmpcMultistage объект, и затем задает:

  • Функции состояния, которые задают вашу модель предсказания. Для моделей дискретного времени убедитесь Model.IsContinuousTime установлен в false.

  • Стойте и ограничительные функции на желаемых этапах. Необходимо задать функцию стоимости по крайней мере для одного этапа.

  • Трудно верхние и нижние границы на состояниях, переменных, которыми управляют и плавающих курсах, которыми управляют, в случае необходимости.

При разработке контроллера рассмотрите следующие моменты.

  • Анонимные функции не поддерживаются для nlmpcMultistage объекты.

  • Определение Якобианов, когда они доступны, является лучшей практикой, в противном случае решатель должен вычислить их численно на каждом шаге.

  • В отличие от этого, в типовом нелинейном MPC, объект выходные параметры, веса, значения ECR и масштабные коэффициенты не присутствуют в nlmpcMultistage объект. Можно реализовать их непосредственно в стоимости и ограничительных функциях.

  • Горизонт управления также не использован в nlmpcMultistage объекты. Чтобы реализовать перемещения блока, установите RateMin и RateMax обнулять на желаемых шагах предсказания.

Можно симулировать многоступенчатые нелинейные контроллеры MPC:

Генерация кода от нелинейного многоступенчатого диспетчера поддерживается в обоих MATLAB (использование mpcmoveCodeGeneration) и Simulink.

Для примеров о том, как создать и использовать многоступенчатый контроллер MPC, смотрите, Создают и Симулируют Многоступенчатый Нелинейный Контроллер MPC, Симулируют Многоступенчатый Нелинейный Контроллер MPC Используя Исходные предположения, и Грузовик и Трейлер Автоматическая Парковка Используя Многоступенчатый Нелинейный MPC.

Смотрите также

Функции

Блоки

Похожие темы