Этот пример показывает, как проектировать компенсаторы обратной связи и feedforward для регулирования температуры химического реактора через теплообменник.
Химический реактор, называемый «перемешивающим баком», изображен ниже. Верхнее входное отверстие подает жидкость, которая смешивается в баке. Жидкость бака должна поддерживаться на постоянной температуре путем изменения количества пара, подаваемого в теплообменник (нижний трубопровод) через его регулирующий клапан. Изменения температуры входного потока являются основным источником нарушений порядка в этом процессе.
Фигура 1: Перемешивание реактора с теплообменником.
Чтобы вывести модель характеристик теплообменника первого порядка плюс крайний срок, введите шаговое нарушение порядка напряжения клапана V
и запишите эффект на температуру бака T
со временем. Ниже показан измеренный отклик нормированных модулей:
heatex_plotdata
title('Measured response to step change in steam valve voltage');
Значения t1 и t2 являются временами, когда реакция достигает 28,3% и 63,2% от своего конечного значения. Можно использовать эти значения для оценки временной константы tau
и мертвое время theta
для теплообменника:
t1 = 21.8; t2 = 36.0; tau = 3/2 * ( t2 - t1 ) theta = t2 - tau
tau = 21.3000 theta = 14.7000
Проверьте эти вычисления, сравнив ответ первого порядка плюс дедтайма с измеренным откликом:
s = tf('s');
Gp = exp(-theta*s)/(1+tau*s)
Gp = 1 exp(-14.7*s) * ---------- 21.3 s + 1 Continuous-time transfer function.
hold on, step(Gp), hold off title('Experimental vs. simulated response to step change');
Реакция модели и экспериментальные данные хорошо согласуются. Аналогичный эксперимент по испытанию на отслоение может быть проведен для оценки реакции первого порядка на нарушение порядка температуры притока. Оснащенные моделями для теплообменника и нарушения порядка притока, мы готовы к проектированию алгоритма управления.
Ниже показан блок схема представления процесса разомкнутого контура.
Фигура 2: Процесс разомкнутого контура.
Передаточная функция
моделирует изменение напряжения в V
приведение в действие открытия парового клапана влияет на температуру бака T
, в то время как передаточная функция
моделирует, как d
изменения в притоке температура влияет на
T
. Для регулирования температуры в баке T
вокруг заданной уставки Tsp
, мы можем использовать следующую архитектуру обратной связи, чтобы контролировать открытие клапана (напряжение V
):
Фигура 3. Управление обратной связью.
В этом строении пропорционально-интегральный (PI) контроллер
вычисляет напряжение V
на основе погрешности Tsp-T
между желаемой и измеренной температурами. Можно использовать формулы ITAE, чтобы выбрать адекватные значения для параметров контроллера:
Kc = 0.859 * (theta / tau)^(-0.977) tauc = ( tau / 0.674 ) * ( theta / tau )^0.680 C = Kc * (1 + 1/(tauc*s));
Kc = 1.2341 tauc = 24.5582
Чтобы увидеть, как хорошо работает контроллер ITAE, закройте цикл обратной связи и симулируйте ответ на изменение заданной точки:
Tfb = feedback(ss(Gp*C),1); step(Tfb), grid on title('Response to step change in temperature setpoint T_{sp}') ylabel('Tank temperature')
Реакция довольно быстрая с некоторым перерегулированием. Взгляд на запасы устойчивости подтверждает, что запас по амплитуде слаб:
margin(Gp*C), grid
Уменьшение пропорциональной составляющей Kc
укрепляет стабильность за счет эффективности:
C1 = 0.9 * (1 + 1/(tauc*s)); % reduce Kc from 1.23 to 0.9
margin(Gp*C1), grid
step(Tfb,'b', feedback(ss(Gp*C1),1),'r') legend('Kc = 1.23','Kc = 0.9')
Напомним, что изменения температуры притока являются основным источником колебаний температуры в баке. Чтобы отклонить такие нарушения порядка, альтернативой управлению с обратной связью является архитектура с feedforward, показанная ниже:
Фигура 4. Управление с Feedforward.
В этом строении контроллер feedforward F
использует измерения температуры притока, чтобы настроить открытие парового клапана (напряжение V
). Таким образом, управление с feedforward предвидит и упреждает эффект изменения температуры притока.
Простой расчет показывает, что общий перенос от нарушения порядка температуры d
в температуру бака T
является
Идеальное подавление помех требует
В действительности неточности моделирования предотвращают точное подавление помех, но управление с feedforward поможет минимизировать колебания температуры из-за нарушений порядка притока. Чтобы лучше понять, как будет работать схема feedforward, увеличьте идеальную задержку feedforward на 5 секунд и моделируйте реакцию на шаг изменения температуры притока:
Gd = exp(-35*s)/(25*s+1); F = -(21.3*s+1)/(25*s+1) * exp(-25*s); Tff = Gp * ss(F) + Gd; % d->T transfer with feedforward control step(Tff), grid title('Effect of a step disturbance in inflow temperature') ylabel('Tank temperature')
Управление с обратной связью хорошо для отслеживания уставок в целом, в то время как управление с feedforward может помочь с отказом от измеренных нарушений порядка. Далее рассмотрим преимущества объединения обеих схем. Соответствующая архитектура управления показана ниже:
Фигура 5. Управление с прямой связью.
Использование connect
создать соответствующую модель замкнутой системы из Tsp,d
на T
. Сначала назовите входной и выходной каналы каждого блока, затем позвольте connect
автоматически проводите схему:
Gd.u = 'd'; Gd.y = 'Td'; Gp.u = 'V'; Gp.y = 'Tp'; F.u = 'd'; F.y = 'Vf'; C.u = 'e'; C.y = 'Vc'; Sum1 = sumblk('e = Tsp - T'); Sum2 = sumblk('V = Vf + Vc'); Sum3 = sumblk('T = Tp + Td'); Tffb = connect(Gp,Gd,C,F,Sum1,Sum2,Sum3,{'Tsp','d'},'T');
Чтобы сравнить отклики с обратной связью и без управления с feedforward, вычислите соответствующую передаточную функцию с обратной связью для строения только с обратной связью:
C.u = 'e'; C.y = 'V'; Tfb = connect(Gp,Gd,C,Sum1,Sum3,{'Tsp','d'},'T');
Теперь сравните два проекта:
step(Tfb,'b',Tffb,'r--'), grid title('Closed-loop response to setpoint and disturbance step change') ylabel('Tank temperature') legend('Feedback only','Feedforward + feedback')
Эти два проекта имеют идентичную эффективность для отслеживания уставки, но сложение управления с feedforward явно выгодно для подавления помех. Это также видно на диаграмме Боде с обратной связью
bodemag(Tfb,'b',Tffb,'r--',{1e-3,1e1}) legend('Feedback only','Feedforward + feedback','Location','SouthEast')
Чтобы получить дополнительную информацию и интерактивно настроить коэффициент усиления feedforward и обратной связи, используйте сопутствующие графический интерфейс пользователя и модель Simulink ®. Щелкните ссылку ниже, чтобы запустить графический интерфейс пользователя.
Откройте модель теплообменника и графический интерфейс пользователя
heatex