Контроль температуры в теплообменнике

Этот пример показывает, как проектировать компенсаторы обратной связи и 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: Процесс разомкнутого контура.

Передаточная функция

$$ G_p(s) = {e^{-14.7 s} \over 21.3s+1} $$

моделирует изменение напряжения в V приведение в действие открытия парового клапана влияет на температуру бака T, в то время как передаточная функция

$$ G_d(s) = {e^{-35 s} \over 25s+1} $$

моделирует, как d изменения в притоке температура влияет на T. Для регулирования температуры в баке T вокруг заданной уставки Tsp, мы можем использовать следующую архитектуру обратной связи, чтобы контролировать открытие клапана (напряжение V):

Фигура 3. Управление обратной связью.

В этом строении пропорционально-интегральный (PI) контроллер

$$ C(s) = K_c (1 + {1 \over \tau_c s} ) $$

вычисляет напряжение V на основе погрешности Tsp-T между желаемой и измеренной температурами. Можно использовать формулы ITAE, чтобы выбрать адекватные значения для параметров контроллера:

$$ K_c = 0.859 (\theta / \tau)^{-0.977} , \;\;\; \tau_c = ( \theta / \tau )^{0.680} \tau / 0.674 $$

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

Напомним, что изменения температуры притока являются основным источником колебаний температуры в баке. Чтобы отклонить такие нарушения порядка, альтернативой управлению с обратной связью является архитектура с feedforward, показанная ниже:

Фигура 4. Управление с Feedforward.

В этом строении контроллер feedforward F использует измерения температуры притока, чтобы настроить открытие парового клапана (напряжение V). Таким образом, управление с feedforward предвидит и упреждает эффект изменения температуры притока.

Простой расчет показывает, что общий перенос от нарушения порядка температуры d в температуру бака T является

$$ T = (G_p F + G_d) d $$

Идеальное подавление помех требует

$$ G_p F + G_d = 0 \rightarrow F = -{G_d \over G_p} = - {21.3s+1 \over 25s+1} e^{-20.3 s}$$

В действительности неточности моделирования предотвращают точное подавление помех, но управление с 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