Спроектируйте рабочий процесс для явного 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

explicitMPC объект содержит константы 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.

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

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

Симуляция

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

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

Ссылки

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

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

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

| |

Похожие темы