В этом примере показано, как спроектировать обратную связь и компенсаторы прямого распространения, чтобы отрегулировать температуру химического реактора через теплообменник.
Химический реактор, названный "активный бак", изображен ниже. Главный вход поставляет жидкость, которая будет смешана в баке. Жидкость бака должна быть обеспечена при постоянной температуре путем варьирования количества пара, предоставленного теплообменнику (трубопровод, уложенный по дну) через его распределительный клапан. Изменения температуры входного потока являются основным источником воздействий в этом процессе.
Рисунок 1: активный реактор с теплообменником.
Чтобы вывести первый порядок плюс deadtime модель характеристик теплообменника, введите воздействие шага в напряжении клапана 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
Проверьте эти вычисления путем сравнения первого порядка плюс deadtime ответ с измеренным откликом:
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')
Вспомните, что изменения в температуре притока являются основным источником температурных колебаний бака. Чтобы отклонить такие воздействия, альтернатива управлению с обратной связью является архитектурой прямого распространения, показанной ниже:
Рисунок 4: управление прямого распространения.
В этой настройке, контроллер прямого распространения F
измерения использования температуры притока, чтобы настроить паровое открытие клапана (напряжение V
). Управление прямого распространения таким образом ожидает и вытесняет эффект изменений температуры притока.
Прямое вычисление показывает что полная передача от температурного воздействия d
к температуре бака T
Совершенное подавление помех требует
В действительности погрешности моделирования предотвращают точное подавление помех, но управление прямого распространения поможет минимизировать температурные колебания, должные вливаться воздействия. Чтобы получить лучший смысл того, как схема прямого распространения выполнила бы, увеличьте идеальную задержку прямого распространения на 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')
Управление с обратной связью хорошо для заданного значения, отслеживающего в целом, в то время как управление прямого распространения может помочь с отклонением измеренных воздействий. Затем мы смотрим на преимущества объединения обеих схем. Соответствующую архитектуру управления показывают ниже:
Рисунок 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');
Чтобы сравнить ответы с обратной связью с и без управления прямого распространения, вычислите соответствующую передаточную функцию с обратной связью для настройки только для обратной связи:
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')
Два проекта имеют идентичную эффективность для отслеживания заданного значения, но сложение управления прямого распространения явно выгодно для подавления помех. Это также отображается на Диаграмме Боде с обратной связью
bodemag(Tfb,'b',Tffb,'r--',{1e-3,1e1}) legend('Feedback only','Feedforward + feedback','Location','SouthEast')
Чтобы получить дополнительное понимание и в интерактивном режиме настроить feedforward и усиления обратной связи, используйте сопутствующий графический интерфейс пользователя и модель Simulink®. Нажмите на ссылку ниже, чтобы запустить графический интерфейс пользователя.
Откройте модель Heat Exchanger и графический интерфейс пользователя
heatex