Manipulated variable blocking является альтернативой более простой концепции горизонта управления (см., Выбирают Sample Time и Horizons), и это обладает многими из тех же преимуществ. Переменное блокирование, которым управляют:
Обеспечивает больше настраивающейся гибкости
Может сглаживать переменные корректировки, которыми управляют,
Может улучшить робастность контроллера
Чтобы использовать переменное блокирование, которым управляют, разделите горизонт прогноза на серию блокирующихся интервалов путем определения горизонта управления как вектора размеров блока, [m 1, m 2, …]. Сумма размеров блока должна совпадать с горизонтом прогноза p. Если вы задаете вектор, сумма которого:
Меньше, чем горизонт прогноза, затем контроллер добавляет блокирующийся интервал. Длина этого интервала такова, что суммой длин интервала является p. Например, если p =10
и вы задаете горизонт управления m =[1 2 3]
, затем диспетчер использует четыре интервала с длинами [1 2 3 4]
.
Больше, чем горизонт прогноза, затем интервалы являются усеченными, пока сумма длин интервала не равна p. Например, если p =10
и вы задаете горизонт управления [1 2 3 6 7]
, затем диспетчер использует четыре интервала с длинами [1 2 3 4]
.
Контроллер вычисляет M свободные перемещения, где M является количеством блокирующихся интервалов. Первое свободное перемещение применяется ко временам k через k +m1-1, второе свободное перемещение применяет со времени k +m1 через k +m1+m2-1 и так далее. Здесь, k является текущим интервалом управления.
По умолчанию контроллер затем содержит переменную константу, которой управляют, в каждом блоке; то есть, перемещения управления являются кусочной константой через каждый интервал. Например, следующий рисунок показывает перемещения оптимального управления для горизонта управления m =[2 3 2]
и горизонт прогноза p =7
.
Для каждого блока переменная, которой управляют, u, является постоянной, который является:
u (0) = u (1)
u (2) = u (3) = u (4)
u (5) = u (6)
Рекомендуемый подход к блокированию должен разделить горизонт прогноза на 3 - 5 блоков и использовать одну из следующих альтернатив блокирования:
Равные размеры блока (одна пятая к одной трети горизонта прогноза, p)
Увеличение размеров блока. Например, с p =20
, можно попробовать три блока интервалами длины 3, 7, и 10.
Чтобы протестировать эффекты различных переменных настроек блокирования, которыми управляют, выполните тесты симуляции с обратной связью при следующих условиях:
Никакие ограничения
Никакая ошибка прогноза; то есть, модель прогноза контроллера должна быть идентична модели объекта управления
Чтобы протестировать каждый контроллер на устойчивость и проблемы робастности, используйте review
функция.
Как с линейным контроллером MPC, когда вы используете переменное блокирование, которым управляют, нелинейный диспетчер MPC использует кусочные постоянные интервалы блокирования по умолчанию. Этот подход часто слишком строг для оптимальных приложений планирования пути. Чтобы произвести менее - строгая, лучше обусловленная проблема нелинейного программирования, можно задать кусочные линейные переменные интервалы блокирования, которыми управляют. Для этого установите Optimization.MVInterpolationOrder
свойство вашего nlmpc
объект контроллера к 1
.
Следующий рисунок показывает перемещения оптимального управления для горизонта управления m =[2 3 2]
и горизонт прогноза p =7
.
В кусочном постоянном случае по умолчанию, вычисленных значениях переменных, которыми управляют, 1
, 3, и
2
являются постоянными на их соответствующих интервалах блокирования.
В кусочном линейном случае вычисленные значения переменных, которыми управляют, линейно интерполированы для первых двух блокирующихся интервалов и сохранены постоянные для итогового интервала.
Для получения дополнительной информации о нелинейных контроллерах MPC смотрите Нелинейный MPC.
Линейная интерполяция блокирования перемещений не поддержана для неявных, адаптивных, или запланированных на усиление контроллеров MPC.