Разработайте рабочий процесс для явного MPC

Чтобы создать явный контроллер MPC, необходимо сначала разработать традиционный (неявный) контроллер MPC. Вы затем генерируете явный контроллер MPC на основе традиционного проектирования контроллера.

Традиционный (неявный) проект MPC

Сначала разработайте традиционный (неявный) MPC для своего приложения и протестируйте его в симуляциях. Ключевые факторы следующие:

  • Программное обеспечение Model Predictive Control Toolbox™ в настоящее время поддерживает следующее как независимые переменные для явного MPC:

    • Контроллер nxc переменные состояния (объект, воздействие и состояния модели шума измерения).

    • ny (≥ 1) выходные значения ссылки, где ny является количеством выходных переменных объекта.

    • nv (≥ 0) измеренные сигналы воздействия объекта.

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

    Для получения информации о разработке традиционного контроллера MPC смотрите диспетчера Креэйшна.

    Для получения информации о настройке традиционных контроллеров MPC смотрите Улучшение.

  • Ссылка и измеренный предварительный просмотр воздействия не поддержаны. В каждом интервале управления измерились текущая ссылка ny и nv, сигналы воздействия запрашивают целый горизонт прогноза.

  • Чтобы ограничить количество областей, необходимых явному MPC, включайте только существенные ограничения.

    • Когда включая ограничение на переменную, которой управляют, (MV), используйте короткий горизонт управления или блокирование мВ. Смотрите Выбирают Шаг расчета и Горизонты.

    • Избегайте ограничений на объект выходные параметры. Если такое ограничение важно, рассмотрите наложение его для выбранных шагов горизонта прогноза, а не целого горизонта прогноза.

  • Установите верхние и нижние границы для каждого nx = nxc + ny + независимые переменные nv. Вы можете знать некоторые из этих границ априорно. Однако необходимо запустить симуляции, которые записывают, по крайней мере, контроллер nxc состояния, когда система действует в области значений ожидаемых условий. Важно, чтобы вы не недооценивали эту область значений, потому что явная функция MPC управления не задана для независимых переменных вне области значений.

    Для получения информации об определении границ смотрите generateExplicitRange.

    Для получения информации о симуляции традиционного контроллера MPC смотрите Симуляцию.

Явная генерация MPC

Учитывая постоянный MPC разрабатывают параметры и nx верхние и нижние границы на независимых переменных закона о надзоре, то есть,

xlx(k)xu,

команда generateExplicitMPC определяет области nr. Каждая из этих областей задана ограничением неравенства и соответствующими константами закона о надзоре:

Hix(k)Ki,  i=1,nru(k)=Fix(k)+Gi,  i=1,nr.

Объект Explicit MPC Controller содержит константы Hi, Ki, Fi и Gi для каждой области. Объект Explicit MPC Controller также содержит исходный (неявный) проект и границы независимой переменной. Пока x (k) остается в заданных границах, и вы сохраняете все области nr, явный объект MPC обеспечивает те же оптимальные корректировки мВ, u (k), как эквивалентный неявный объект MPC.

Для получения дополнительной информации о явном MPC, см. [1]. Для получения дополнительной информации о том, как явный контроллер MPC сгенерирован, см. [2].

Явное упрощение MPC

Даже относительно простой явный контроллер MPC может потребовать, чтобы много областей (nr>> 100) охарактеризовали решение QP полностью. Если количество областей является большим, рассмотрите следующее:

  • Визуализируйте решение с помощью команды plotSection.

  • Используйте команду simplify, чтобы сократить количество областей. Иногда, это сокращение может быть сделано без (или незначительное) влияние на оптимальность закона о надзоре. Например, пары смежных областей могут использовать по существу тот же Fi и константы Ki. Если так, и если объединение этих двух областей формирует выпуклый набор, они могут быть объединены в одну область.

    Также можно устранить относительно небольшие области или сохранить выбранные области только. Во время операции, если текущий x (k) не содержится ни в одной из сохраненных областей, явный MPC возвращает субоптимальный u (k), можно следующим образом:

    u(k)=Fjx(k)+Gj.

    Здесь, j является индексом области, ограничение которой ограничения, Hjx (k) ≤ Kj, меньше всего нарушено.

Реализация

Во время операции, для данного x (k), явный контроллер MPC выполняет следующие шаги:

  1. Проверяет, что x (k) удовлетворяет заданные границы, xl ≤ x (k) ≤ xu. В противном случае контроллер возвращает ошибочное состояние и устанавливает u (k) = u (k –1).

  2. При начале с области i = 1, тестирует области один за другим, чтобы определить, принадлежит ли x (k). Если Hix (k) ≤ Ki, то x (k) принадлежит области i. Если x (k) принадлежит области i, то контроллер:

    • Получает Fi и Gi из памяти, и вычисляет u (k) = Fi x (k) + Gi.

    • Сигнализирует об успешном завершении, путем возврата кода статуса и индекса i.

    • Возвращается, не тестируя остающиеся области.

    Если x (k) не принадлежит области i, контроллер:

    • Вычисляет термин нарушения vi, который является самым большим (положительным) компонентом вектора (Hix (k) – Ki).

    • Если vi является минимальным нарушением для этого x (k), контроллер устанавливает j = i и устанавливает vmin = vi.

    • Контроллер затем постепенно увеличивает i и тестирует следующую область.

  3. Если все области были протестированы, и x (k) не принадлежит никакой области (например, из-за числовой проблемы точности), контроллер:

    • Получает Fj и Gj из памяти, и вычисляет u (k) = Fj x (k) + Gj.

    • Состояние наборов, чтобы указать на субоптимальное решение и возвращается.

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

Симуляция

Можно выполнить симуляции командной строки с помощью команд mpcmoveExplicit или sim.

Можно использовать блок Explicit MPC Controller, чтобы соединить явный MPC с объектом, смоделированным в Simulink®.

Ссылки

[1] А. Бемпорэд, М. Морари, В. Дуа и Э.Н. Пистикопулос, "Явный линейный квадратичный регулятор для ограниченных систем", Automatica, издание 38, № 1, стр 3–20, 2002.

[2] А. Бемпорэд, "Мультипараметрический алгоритм квадратичного программирования с многогранными вычислениями на основе неотрицательной задачи для метода наименьших квадратов", 2014, Представленный для публикации.

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

| |

Похожие темы