Рабочий процесс проекта для явного 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) используйте короткий контрольный горизонт или блокировку MV. См. «Выбор шага расчета» и «Горизонты».

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

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

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

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

Явная генерация 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 обеспечивает такие же оптимальные корректировки MV, 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 (<reservedrangesplaceholder1>) ≤ <reservedrangesplaceholder0>, меньше всего нарушено.

Реализация

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

  1. Проверяет, что x (<reservedrangesplaceholder7>) удовлетворяет указанные границы, <reservedrangesplaceholder6> ≤ x (<reservedrangesplaceholder5>) ≤ <reservedrangesplaceholder4>. Если нет, контроллер возвращает состояние ошибки и устанавливает u (k) = u (k -1).

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

    • Получает Fi и Gi по памяти, и вычисляет u (<reservedrangesplaceholder4>) = <reservedrangesplaceholder3> <reservedrangesplaceholder2> (<reservedrangesplaceholder1>) + Gi.

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

    • Возвращается без тестирования остальных областей.

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

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

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

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

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

    • Получает Fj и Gj по памяти, и вычисляет u (<reservedrangesplaceholder4>) = <reservedrangesplaceholder3> <reservedrangesplaceholder2> (<reservedrangesplaceholder1>) + Gj.

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

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

Симуляция

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

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

Ссылки

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

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

См. также

| |

Похожие темы