exponenta event banner

Нелинейная модель предиктивного контроля экзотермического химического реактора

Этот пример показывает, как использовать нелинейный MPC-контроллер для управления нелинейным непрерывным резервуарным реактором с мешалкой (CSTR), когда он переходит от низкой скорости конверсии к высокой скорости конверсии.

О реакторе с непрерывной мешалкой

Реактор с мешалкой непрерывного действия (CSTR) является общей химической системой в технологической промышленности. Схема системы CSTR:

Эта система является неадиабатическим резервуарным реактором с рубашкой, подробно описанным в [1]. Предполагается, что сосуд идеально перемешан, и происходит одна экзотермическая и необратимая реакция первого порядка A - > B. Входной поток реагента А подается в резервуар с постоянной объемной скоростью. Поток продукта непрерывно выходит с одинаковой объемной скоростью, и плотность жидкости постоянна. Таким образом, объем реагирующей жидкости в реакторе является постоянным.

Входными данными модели CSTR являются:

$$ \begin{array} {ll}
u_1 = CA_i \; & \textnormal{Concentration of A in inlet feed
stream} [kgmol/m^3] \\
u_2 = T_i \; & \textnormal{Inlet feed stream temperature} [K] \\
u_3 = T_c \; & \textnormal{Jacket coolant temperature} [K] \\
\end{array} $$

Выходами (y (t)), которые также являются состояниями модели (x (t)), являются:

$$ \begin{array} {ll}
y_1 = x_1 = T \; & \textnormal{Reactor temperature} [K] \\
y_2 = x_2 = CA \; & \textnormal{Concentration of A in reactor tank} [kgmol/m^3] \\
\end{array} $$

Задача управления заключается в поддержании концентрации реагента А в выходящем потоке $CA$при его желательной уставке, которая изменяется при переходе реактора от низкой степени превращения к высокой скорости превращения. Температура хладагента$T_c$ - это управляемая переменная, используемая контроллером для отслеживания эталона. Концентрация А в потоке сырья и температура потока сырья являются измеренными возмущениями.

Модель Simulink

Для выполнения этого примера необходимо приложение Simulink ®.

if ~mpcchecktoolboxinstalled('simulink')
    disp('Simulink is required to run this example.')
    return
end

Откройте модель Simulink.

mdl = 'mpc_cstr_nonlinear';
open_system(mdl)

Модель нелинейного прогнозирования

Нелинейный MPC требует модели прогнозирования, которая описывает нелинейное поведение вашего завода, насколько вы знаете. Чтобы оспорить контроллер, в этом примере намеренно вводятся ошибки моделирования, так что по мере повышения температуры скорость реакции модели прогнозирования превышает скорость реакции истинного растения. Для получения подробной информации о функции состояния модели прогнозирования см. exocstrStateFcnCT.m.

Кроме того, для отклонения случайного ступенчатого неизмеренного возмущения, возникающего в концентрации в выходном потоке, модель установки дополняют интегратором, вход которого предполагается нулевым средним белым шумом. После увеличения модель прогнозирования имеет четыре состояния (T, CA и Dist) и четыре входа (CA_i, T_i, T_c, WN).

Поскольку вы заинтересованы только в управлении концентрацией, выходящей из реактора, выходная функция возвращает скалярное значение, которое является вторым состоянием (CA) плюс третьим состоянием (Dist). Для получения подробной информации о функции вывода модели прогнозирования см. exocstrOutputFcn.m.

Нелинейный MPC

Целью контроля является перемещение установки из начальной рабочей точки с низкой скоростью конверсии (CA = 8,5698 кгмоль/м ^ 3) в конечную рабочую точку с высокой скоростью конверсии (CA = 2 кгмоль/м ^ 3). В конечном установившемся состоянии установка является нестабильной с разомкнутым контуром, поскольку охлаждение больше не является саморегулирующимся. Поэтому температура реактора имеет тенденцию отходить от рабочей точки.

Создайте нелинейный объект контроллера MPC в MATLAB ®. Как упоминалось выше, модель прогнозирования имеет три состояния, один выходной сигнал и четыре входных сигнала. Среди входов первые два входа (состав сырья и температура сырья) являются измеренными возмущениями, третий вход (температура хладагента) является управляемой переменной. Четвертый вход - это белый шум, идущий к усиленному интегратору, который представляет неизмеренное выходное возмущение.

nlobj = nlmpc(3, 1,'MV',3,'MD',[1 2],'UD',4);

Время выборки модели прогнозирования совпадает с временем выборки контроллера.

Ts = 0.5;
nlobj.Ts = Ts;

Чтобы уменьшить вычислительные усилия, используйте короткий горизонт прогнозирования 3 секунды (6 шагов). Кроме того, для повышения надежности используйте перемещения блоков в управляющем горизонте.

nlobj.PredictionHorizon = 6;
nlobj.ControlHorizon = [2 2 2];

Поскольку величина MV составляет порядка 300, а OV - порядка 1, масштабируйте MV, чтобы сделать их совместимыми так, чтобы можно было использовать веса настройки по умолчанию.

nlobj.MV(1).ScaleFactor = 300;

Ограничение скорости регулировки температуры хладагента, которая может только увеличиваться или уменьшаться на 5 градусов между двумя последовательными интервалами.

nlobj.MV(1).RateMin = -5;
nlobj.MV(1).RateMax = 5;

Рекомендуется масштабировать состояние в порядке единиц. Это не влияет на стратегию управления, но может улучшить численное поведение.

nlobj.States(1).ScaleFactor = 300;
nlobj.States(2).ScaleFactor = 10;

Укажите нелинейное состояние и функции вывода.

nlobj.Model.StateFcn = 'exocstrStateFcnCT';
nlobj.Model.OutputFcn = 'exocstrOutputFcn';

Рекомендуется протестировать модель прогнозирования и любые другие пользовательские функции перед их использованием в моделировании. Для этого используйте validateFcns команда. В этом случае в качестве номинального условия для испытаний используйте начальную рабочую точку, установив состояние неизмеренного возмущения в 0.

x0 = [311.2639; 8.5698; 0];
u0 = [10; 298.15; 298.15];
validateFcns(nlobj,x0,u0(3),u0(1:2)');
Model.StateFcn is OK.
Model.OutputFcn is OK.
Analysis of user-provided model, cost, and constraint functions complete.

Оценка нелинейного состояния

Нелинейный контроллер MPC нуждается в оценке трех состояний (включая состояние неизмеренного возмущения) в каждый момент времени выборки. Для получения этой оценки используйте блок расширенного фильтра Калмана (EKF). Этот блок использует ту же модель, что и нелинейный контроллер MPC, за исключением того, что модель является дискретной. Для получения более подробной информации см. exocstrStateFcnDT.m.

EKF измеряет текущую концентрацию и использует ее для корректировки прогноза из предыдущего интервала. В этом примере предположим, что измерения являются относительно точными и используют малую ковариацию в блоке расширенного фильтра Калмана.

Моделирование с замкнутым контуром

При моделировании вместо резкого изменения шага увеличьте целевую концентрацию. Можно использовать гораздо более высокую скорость изменения, поскольку используется модель нелинейного прогнозирования.

При переходе рабочей точки ступенчатые изменения в двух измеренных каналах возмущения происходят при 10 и 20 секунд, соответственно. В момент времени 40также имеет место неизмеренное выходное возмущение (ступенчатое изменение концентрации выхода из реактора).

open_system([mdl, '/Concentration (OV)'])
open_system([mdl, '/Coolant Temp (MV)'])
sim(mdl)

Концентрация в выходном потоке точно отслеживает его эталон и сходится к желаемому конечному значению. Кроме того, контроллер отклоняет как измеренные возмущения, так и неизмеренные возмущения.

Начальные перемещения регулятора ограничены максимальной скоростью изменения температуры хладагента. Это может быть улучшено путем обеспечения контроллера MPC опорным сигналом с опережением, который информирует контроллер об ожидаемом изменении опорного сигнала на горизонте прогнозирования.

Ссылки

[1] Себорг, Д. Э., Т. Ф. Эдгар и Д. А. Мелликамп. Process Dynamics and Control, 2-е издание, Уайли, 2004, стр. 34-36 и 94-95.

bdclose(mdl)

См. также

|

Связанные темы