В этом примере показано, как спроектировать контроллер MPC для объекта с задержками с использованием MPC Designer.
Примером объекта с задержками является модель дистилляционного столбца:
Выходы y 1 и y 2 представляют собой измеренные чистоты продукта. Модель состоит из шести передаточных функций, по одной для каждой пары вход/выход. Каждая передаточная функция является системой первого порядка с задержкой. Самая длительная задержка в модели 8.1
минут.
Задайте отдельные передаточные функции для каждой пары вход/выход. Для примера, g12
- передаточная функция от входа u 2 до вывода y 1.
g11 = tf(12.8,[16.7 1],'IOdelay',1.0,'TimeUnit','minutes'); g12 = tf(-18.9,[21.0 1],'IOdelay',3.0,'TimeUnit','minutes'); g13 = tf(3.8,[14.9 1],'IOdelay',8.1,'TimeUnit','minutes'); g21 = tf(6.6,[10.9 1],'IOdelay',7.0,'TimeUnit','minutes'); g22 = tf(-19.4,[14.4 1],'IOdelay',3.0,'TimeUnit','minutes'); g23 = tf(4.9,[13.2 1],'IOdelay',3.4,'TimeUnit','minutes'); DC = [g11 g12 g13; g21 g22 g23];
Задайте имена входного и выходного сигналов.
DC.InputName = {'Reflux Rate','Steam Rate','Feed Rate'}; DC.OutputName = {'Distillate Purity','Bottoms Purity'};
Также можно задать имена сигналов в MPC Designer, на вкладке MPC Designer, нажав I/O Attributes.
Задайте третий вход, скорость подачи, как измеренное нарушение порядка (MD).
DC = setmpcsignals(DC,'MD',3);
Поскольку они явным образом не заданы в setmpcsignals
все другие входные сигналы конфигурируются как управляемые переменные (MV), и все выходные сигналы конфигурируются как измеренные выходы (MO) по умолчанию.
Откройте MPC Designer импортируйте модель объекта управления.
mpcDesigner(DC)
При запуске с непрерывной моделью объекта управления, такой как DC
, по умолчанию шаг расчета контроллера является 1
во временных модулях объекта. Если для объекта задано дискретное время, шаг расчета контроллера совпадает со шагом расчета объекта.
MPC Designer импортирует указанный объект в Data Browser. К Data Browser также добавляются:
mpc1
- контроллер по умолчанию создан с использованием DC
как его внутренняя модель.
scenario1
- Сценарий симуляции по умолчанию.
Приложение запускает сценарий симуляции и генерирует вход и выход графики отклика.
Для объекта с задержками рекомендуется задать горизонты предсказания и управления, такие что
где,
P - горизонт предсказания.
M - горизонт управления.
td,max - это максимальная задержка, которая 8.1
минуты на DC
модель.
Β t является Sample time контроллера, которая 1
минута по умолчанию.
На вкладке Tuning, в разделе Horizon, задайте Prediction horizon 30
и Control horizon 5
.
После изменения горизонтов автоматически обновляются Input Response и Output Response графики для сценария симуляции по умолчанию.
На вкладке MPC Designer, в разделе Scenario, нажмите Edit Scenario > scenario1. Кроме того, в Data Browser щелкните правой кнопкой мыши scenario1
и выберите Edit.
В диалоговом окне Simulation Scenario задайте Simulation duration 50
минут.
В таблице Reference Signals, в раскрывающемся списке Signal, выберите Step
для обоих выходов, чтобы симулировать изменения шага в их уставках.
Задайте Time шага 0
для ссылочных r(1), чистоты дистиллята и времени шага 25
для r(2), чистота дна.
Нажмите OK.
Приложение запускает симуляцию с новыми настройками сценария и обновляет графики входа и выхода отклика.
Графики Input Response показывают оптимальные шаги управления, сгенерированные контроллером. Контроллер немедленно реагирует на изменения уставки, изменяя обе манипулированные переменные. Однако из-за задержек на объекте эффекты этих изменений не сразу отражаются на Output Response графиках. Выход Distillate Purity выводится через 1 минуты, что соответствует минимальной задержке от g11
и g12
. Точно так же выход Bottoms Purity реагирует на 3 минуты после изменения шага, что соответствует минимальной задержке от g21
и g22
. После начальных задержек оба сигнала достигают своих уставок и быстро оседают. Изменение любой выходной уставки нарушает ответ другого выхода. Однако величины этих взаимодействий составляют менее 10% от размера шага.
Кроме того, существуют периодические импульсы в манипулируемых переменных действиях управления, когда контроллер пытается противодействовать отложенным эффектам каждого входа на двух выходах.
Используйте управляемую блокировку переменных, чтобы разделить горизонт предсказания на блоки, во время которых манипулируемые перемещения переменной являются постоянными. Этот метод производит более плавные манипулируемые переменные регулировки с меньшими колебаниями и меньшими размерами хода.
Чтобы использовать управляемую блокировку переменных, на вкладке Tuning задайте Control horizon как вектор размеров блоков [5 5 5 5 10]
.
Начальные манипулируемые переменные ходы намного меньше, а ходы менее колебательны. Компромисс является более медленной выходной характеристикой, с большими взаимодействиями между выходами.
В качестве альтернативы можно произвести плавные манипулированные переменные перемещения путем регулировки настроечных весов контроллера.
Верните Control horizon к предыдущему значению 5
.
В Performance Tuning разделе перетащите ползунок Closed-Loop Performance налево в сторону установки Robust.
Когда вы перемещаете ползунок налево, перемещение манипулированной переменной становится более плавным, и выходная характеристика становится медленнее.
[1] Wood, R. K., and M. W. Berry, Chem. Eng. Sci., Vol. 28, pp. 1707, 1973.