В этом примере показано, как спроектировать контроллер 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
— Контроллер MPC по умолчанию создал использование 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] Древесина, R. K., и М. В. Берри, Chem. Наука инженера, Издание 28, стр 1707, 1973.