Экономическое MPC управление этиленовым производством окиси

В этом примере показано, как максимизировать производство этиленового объекта окиси для прибыли с помощью экономического контроллера MPC. Этот контроллер реализован с помощью нелинейного контроллера MPC с пользовательской основанной на производительности функцией стоимости.

Этот пример требует, чтобы программное обеспечение Simulink® симулировало нелинейное MPC управление этиленовым объектом оксидирования в Simulink.

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

Пример использует fsolve команда от Optimization Toolbox™, чтобы найти номинальную рабочую точку равновесия и fmincon метод как решатель нелинейного программирования по умолчанию.

if ~mpcchecktoolboxinstalled('optim')
    disp('Optimization Toolbox must be installed to run this example.')
    return
end

Добавьте папку в качестве примера в путь MATLAB®.

addpath(fullfile(matlabroot,'examples','mpc','main'));

Нелинейный этиленовый объект оксидирования

Преобразование этилена (C2H4) к этиленовой окиси (C2H4O) происходит в охлажденной, газовой фазе каталитический реактор. Три реакции происходят одновременно в хорошо смешанной газовой фазе в реакторе:

C2H4 + 0.5*O2 -> C2H4O
C2H4 + 3*O2 -> 2*CO2 + 2*H2O
C2H4O + 2.5*O2 -> 2*CO2 + 2*H2O

Первая реакция требуется, и другие два нежелательны, потому что они сокращают производство C2H4O. Смесь воздуха и этилен постоянно подаются в реактор. Первый принцип нелинейная динамическая модель реактора реализован как набор обыкновенных дифференциальных уравнений (ОДУ) в oxidationPlantCT функция. Для получения дополнительной информации смотрите oxidationPlantCT.m.

Объект имеет четыре состояния:

  • Плотность газа в реакторе ()

  • Концентрация C2H4 в реакторе ()

  • Концентрация C2H4O в реакторе ()

  • Температура в реакторе ()

Объект имеет три входных параметров:

  • Концентрация C2H4 в канале ()

  • Реактор, охлаждающий температуру конверта ()

  • C2H4 питают уровень ()

Все переменные в модели масштабируются, чтобы быть безразмерными и порядка единицы. Основные уравнения объекта и параметры получены от [1] с некоторыми изменениями в определениях ввода/вывода и упорядоченном расположении.

Объект является асимптотически устойчивым разомкнутым циклом.

Управляйте целями и ограничениями

Первичная цель управления состоит в том, чтобы максимизировать этиленовую окись (C2H4O) производительность (который в свою очередь максимизирует прибыль) в любой установившейся рабочей точке, учитывая доступность C2H4 в потоке канала.

Производительность C2H4O задана как продукт концентрации C2H4O в реакторе () и общий объемный расход, выходящий из реактора ().

Рабочая точка эффективно определяется тремя входными параметрами. концентрация C2H4 в канале, которым может управлять контроллер MPC. охлаждающаяся температура конверта, которая сохраняет стабильность температуры. уровень канала C2H4, который указывает на доступный этилен, прибывающий из восходящего процесса. Более высокий канал повышения ставки достижимая производительность C2H4O. В этом примере, обоих и измеренные воздействия.

Оптимальная производительность в начальной рабочей точке

При начальном условии охлаждающейся температурой конверта является 1.1 и доступностью C2H4 является 0.175.

Tc = 1.1;
C2H4Avalability = 0.175;

Вычислите оптимальную производительность C2H4O путем развертки через рабочий диапазон концентрации C2H4 в канале () использования fsolve.

uRange = 0.1:0.1:3;
EORate = zeros(length(uRange),1);
optimopt = optimoptions('fsolve','Display','none');
for ct = 1:length(uRange)
    xRange = real(fsolve(@(x) oxidationPlantCT(x,[uRange(ct);Tc;C2H4Avalability]),rand(1,4),optimopt));
    EORate(ct) = C2H4Avalability/uRange(ct)*xRange(3)*xRange(4);
end
figure
plot(uRange,EORate)
xlabel('C2H4 concentration in the feed')
ylabel('C2H4O Production Rate')

Оптимальная производительность C2H4O 0,0156 достигается в = 1.6. Другими словами, если объект первоначально будет действовать с различной концентрацией C2H4 в канале, вы ожидаете, что экономический контроллер MPC принесет его к 1,6 таким образом, что оптимальная производительность C2H4O достигается.

Нелинейный проект MPC

Экономический MPC может быть реализован с нелинейным контроллером MPC. Модель прогноза имеет четыре состояния и три входных параметров (один мВ и два MDS). В этом примере, поскольку вам не нужна выходная функция, принимают y = x.

nlobj = nlmpc(4,4,'MV',1,'MD',[2 3]);
nlobj.States(1).Name = 'Den';
nlobj.States(1).Name = 'C2H4';
nlobj.States(1).Name = 'C2H4O';
nlobj.States(1).Name = 'Tc';
nlobj.MV.Name = 'CEin';
nlobj.MD(1).Name = 'Tc';
nlobj.MD(2).Name = 'Availability';
In standard cost function, zero weights are applied by default to one or more OVs because there are fewer MVs than OVs.

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

nlobj.Model.StateFcn = 'oxidationPlantDT';
nlobj.Model.IsContinuousTime = false;

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

Время относительно большой выборки 25 секунды, используемые здесь, являются соответствующими, когда объект устойчив, и главная цель является экономической оптимизацией. Горизонтом прогноза является 2, то, которое дает время прогноза, составляет 50 секунд.

Ts = 25;
nlobj.Ts = Ts;                                  % Sample time
nlobj.PredictionHorizon = 2;                    % Prediction horizon
nlobj.ControlHorizon = 1;                       % Control horizon

Все состояния в модели прогноза должны быть положительными на основе первых принципов. Поэтому задайте минимум, связанный нуля для всех состояний.

nlobj.States(1).Min = 0;
nlobj.States(2).Min = 0;
nlobj.States(3).Min = 0;
nlobj.States(4).Min = 0;

Вход Plant должен остаться в пределах насыщения между 0.1 и 3.

nlobj.MV.Min = 0.1;
nlobj.MV.Max = 3;

Скорости изменения также ограничиваются +/-0.02секунда.

nlobj.MV.RateMin = -0.02*Ts;
nlobj.MV.RateMax = 0.02*Ts;

Пользовательская функция стоимости для экономического MPC

Вместо того, чтобы использовать стандартную квадратичную целевую функцию, пользовательская функция стоимости используется в качестве замены. Вы хотите максимизировать производительность C2H4O в конце горизонта прогноза.

f = -(u3/u1*x3*x4)

Знак минус в f используется, чтобы максимизировать производство, поскольку контроллер минимизирует f во время оптимизации. Для получения дополнительной информации смотрите oxidationCostFcn.m.

nlobj.Optimization.CustomCostFcn = 'oxidationCostFcn';
nlobj.Optimization.ReplaceStandardCost = true;

Подтвердите пользовательские функции

Примите, что объект первоначально действует в u1 = 0.5.

u0 = 0.5;

Найдите состояния в устойчивом состоянии с помощью fsolve.

x0 = real(fsolve(@(x) oxidationPlantCT(x,[u0;Tc;C2H4Avalability]),rand(1,4),optimopt));

Производительность C2H4O 0.0138, далеко от оптимального условия 0,0156.

EORate0 = C2H4Avalability/u0*x0(3)*x0(4);

Подтвердите функциональную и функцию стоимости состояния при начальном условии.

validateFcns(nlobj,x0,u0,[Tc C2H4Avalability]);
Model.StateFcn is OK.
No output function specified. Assuming "y = x" in the prediction model.
Optimization.CustomCostFcn is OK.
Analysis of user-provided model, cost, and constraint functions complete.

Можно вычислить первый шаг с помощью nlmpcmove функция. Это возвращает мВ 1,0, указывая, что экономический MPC увеличит мВ с 0,5 до 1, ограниченный ограничением MVRate.

mv = nlmpcmove(nlobj,x0,u0,zeros(1,4),[Tc C2H4Avalability]);

Модель Simulink с экономическим контроллером MPC

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

mdl = 'mpc_economicEO';
open_system(mdl)

Охлаждающейся температурой конверта является первоначально 1.1 и остается постоянным в течение первых 100 секунд. Это затем увеличивается до 1.15, и поэтому, уменьшает оптимальную производительность C2H4O от 0.0156 к 0.0135.

Доступностью C2H4 является первоначально 0.175 и остается постоянным в течение первых 200 секунд. Это затем увеличивается до 0.25, и поэтому, увеличивает оптимальную производительность C2H4O с 0.0135 к 0.0195.

Модель включает постоянные (нулевые) ссылки для четырех объектов выходные параметры. Блок Nonlinear MPC Controller требует этих ссылочных сигналов, но они проигнорированы в пользовательской функции стоимости.

Подсистема Объекта вычисляет состояния объекта путем интеграции ОДУ в oxidationPlantCT.m. Примите, что все состояния измеримы таким образом, что вы не должны реализовывать нелинейное средство оценки состояния в этом примере. C2H4O выход объекта является мгновенной производительностью C2H4O, которая используется в целях отображения.

Симулируйте модель и анализируйте результаты

Запустите симуляцию.

open_system([mdl '/MV']);
open_system([mdl '/C2H4O']);
sim(mdl)

Поскольку объект C2H4O, действующий при начальном условии, не оптимален, его прибыль может быть улучшена. За первые 100 секунд постепенно перемещается экономический контроллер MPC, объект к истинному оптимальному условию при том же охлаждении заключают в оболочку температуру и ограничения доступности C2H4. Это улучшает производительность C2H4O:

который мог стоить миллионы долларов в год в крупномасштабном производстве.

За следующие 100 секунд, охлаждающиеся повышения температуры конверта от 1.1 к 1.15. Экономический контроллер MPC перемещает объект гладко в новое оптимальное условие 0.0135 как ожидалось.

За следующие 100 секунд доступность C2H4 увеличивается с 0.175 к 0.25. Экономический контроллер MPC снова может переместить объект новое оптимальное устойчивое состояние 0.0195.

Удалите папку в качестве примера из пути MATLAB и закройте модель Simulink.

rmpath(fullfile(matlabroot,'examples','mpc','main'));
bdclose(mdl)

Ссылки

[1] Х. Дуранд, М. Эллис, П. Д. Кристофайдс. "Экономические прогнозирующие системы управления модели для входной ограничительной обработки скорости изменения и гарантируемых экономических показателей". Компьютеры и Химическое машиностроение. Издание 92,2016, стр 18-36.

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте