Чтобы создать явный контроллер 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 и nx верхние и нижние границы на независимых переменных закона о надзоре, то есть,
generateExplicitMPC
команда определяет области nr. Каждая из этих областей задана ограничением неравенства и соответствующими константами закона о надзоре:
explicitMPC
объект содержит константы Hi, Ki, Fi и Gi для каждой области. Объект Explicit MPC Controller также содержит исходный (неявный) проект и границы независимой переменной. Пока x (k) остается в заданных границах, и вы сохраняете все области nr, явный объект MPC обеспечивает те же оптимальные корректировки мВ, u (k), как эквивалентный неявный объект MPC.
Для получения дополнительной информации о явном MPC, см. [1]. Для получения дополнительной информации о том, как явный контроллер MPC сгенерирован, см. [2].
Даже относительно простой явный контроллер MPC может потребовать, чтобы много областей (nr>> 100) охарактеризовали решение QP полностью. Если количество областей является большим, рассмотрите следующее:
Визуализируйте решение с помощью plotSection
команда.
Используйте simplify
команда, чтобы сократить количество областей. Иногда, это сокращение может быть сделано без (или незначительное) удар на оптимальность закона о надзоре. Например, пары смежных областей могут использовать по существу тот же Fi и константы Ki. Если так, и если объединение этих двух областей формирует выпуклый набор, они могут быть объединены в одну область.
В качестве альтернативы можно устранить относительно небольшие области или сохранить выбранные области только. Во время операции, если текущий x (k) не содержится ни в одной из сохраненных областей, явный MPC возвращает субоптимальный u (k), можно следующим образом:
Здесь, j является индексом области, ограничение которой ограничения, Hjx (k) ≤ Kj, меньше всего нарушено.
Во время операции, для данного x (k), явный контроллер MPC выполняет следующие шаги:
Проверяет, что x (k) удовлетворяет заданным границам, xl ≤ x (k) ≤ xu. В противном случае контроллер возвращает ошибочное состояние и устанавливает u (k) = u (k –1).
При начале с области 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 и тестирует следующую область.
Если все области были протестированы, и 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, Представленный для публикации.
Explicit MPC Controller | generateExplicitMPC
| mpcmoveExplicit