exponenta event banner

Нелинейный MPC

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

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

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

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

С помощью нелинейного MPC можно:

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

  • Планирование оптимальных траекторий путем решения задачи нелинейной оптимизации, связанной с разомкнутым контуром.

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

Примечание

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

Общий нелинейный MPC

Для реализации общего нелинейного MPC создайте nlmpc объект и укажите:

Можно смоделировать общие нелинейные контроллеры MPC:

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

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

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

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

Для реализации многоступенчатого нелинейного MPC-контроллера сначала создайте nlmpcMultistage объект, а затем укажите:

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

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

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

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

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

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

  • В отличие от общих нелинейных ПДК, выходы установки, веса, значения РПУ и масштабные коэффициенты не присутствуют в nlmpcMultistage объект. Их можно внедрить непосредственно в функции затрат и ограничений.

  • Горизонт управления также опущен в nlmpcMultistage объекты. Для реализации блоковых перемещений установите RateMin и RateMax до нуля на требуемых этапах прогнозирования.

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

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

Примеры создания и использования многоступенчатого MPC-контроллера см. в разделах Создание и моделирование многоступенчатого нелинейного MPC-контроллера, Моделирование многоступенчатого нелинейного MPC-контроллера с использованием исходных догадок и Автоматическая парковка грузовика и прицепа с использованием многоступенчатого нелинейного MPC-контроллера.

См. также

Функции

Блоки

Связанные темы