exponenta event banner

Использование пользовательских ограничений в процессе наложения

В этом примере показано, как спроектировать MPC-контроллер для процесса смешивания с использованием пользовательских смешанных ограничений ввода/вывода.

Процесс смешивания

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

$$\begin{array}{l}
\frac{{dv}}{{d\tau }} = \sum\limits_{i = 1}^3 {{\phi _i}} - \phi \\
V\frac{{d{\gamma _j}}}{{d\tau }} = \sum\limits_{i = 1}^3
{\left( {{\gamma _{ij}} - {\gamma _j}} \right){\phi _i}}
\end{array}$$

где

  • $V$ - запас смеси (в контейнере).

  • $\phi_i$ - скорость плуга для корма.$i$

  • $\phi$ - скорость, с которой смесь удаляется из запаса, т.е. потребность.

  • $\gamma _{ij}$ - концентрация компонента$j$ в корме.$i$

  • $\gamma _j$ - концентрация компонента$j$ в смеси.

  • $\tau$ это время.

В этом примере имеются две важные составляющие,$j$ = 1 и 2.

Цели контроля являются целевыми для двух составляющих концентраций в смеси и запасов смеси. Проблема заключается в том, что требования $\phi$и кормовые композиции $\gamma _{ij}$варьируются. Измеряются запасы, составы смесей и потребность, но составы сырья не измеряются.

При номинальном рабочем состоянии:

  • Подача 1,, $\phi _1$(в основном составляющая 1) составляет 80% от общего притока.

  • Подача 2,, $\phi _2$(в основном составляющая 2) составляет 20%.

  • Сырье 3,, $\phi _3$(чистый компонент 1) не используется.

Технологическая схема позволяет манипулировать общей подачей, поступающей в смесительную камеру, $\phi _T$и индивидуальными скоростями подачи 2 и 3. Другими словами, скорость подачи 1 составляет:

$$\phi _1=\phi _T-\phi _2-\phi _2$$

Каждый канал имеет ограниченную доступность:

$$0 \le {\phi _i} \le {\phi _{i,\max }}$$

Уравнения нормируются таким образом, что при номинальном установившемся состоянии среднее время пребывания в смесительном контейнере составляет.$\tau=1$

Ограничение$\phi _{1,\max }=0.8$ накладывается вышестоящим процессом, а ограничения$\phi _{2,\max }=\phi _{3,\max }=0.6$ накладываются физическими ограничениями.

Определение линейной модели установки

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

Укажите количество каналов, niи количество составляющих, nc.

ni = 3;
nc = 2;

Укажите номинальные скорости потока для трех входных потоков и выходного потока, или потребности. При номинальном рабочем состоянии выходной расход равен сумме входных расходов.

Fin_nom = [1.6,0.4,0];
F_nom  = sum(Fin_nom);

Определите номинальные составные части для входных каналов, где cin_nom(i,j) представляет состав составляющих i в корме j.

cin_nom = [0.7 0.2 0.8;0.3 0.8 0];

Определите номинальные составные части в выходном сырье.

cout_nom = cin_nom*Fin_nom'/F_nom;

Нормализуйте линейную модель таким образом, чтобы целевая потребность была 1 и состав продукта 1.

fin_nom = Fin_nom/F_nom;
gij = [cin_nom(1,:)/cout_nom(1); cin_nom(2,:)/cout_nom(2)];

Создание модели состояния-пространства с потоками подачи F1, F2, и F3 в качестве MV:

A = [zeros(1,nc+1); zeros(nc,1) -eye(nc)];
Bu = [ones(1,ni); gij-1];

Измените определение среднего напряжения на [FT, F2, F3], где F1 = FT - F2 - F3

Bu = [Bu(:,1), Bu(:,2)-Bu(:,1), Bu(:,3)-Bu(:,1)];

Добавьте измеренное возмущение, потребность в смеси в качестве входного сигнала 4-й модели.

Bv = [-1; zeros(nc,1)];
B = [Bu Bv];

Определите все состояния как измеримые. Состояния состоят из запаса смеси и составляющих концентраций.

C = eye(nc+1);

Укажите, что отсутствует прямая подача от входов к выходам.

D = zeros(nc+1,ni+1);

Создайте линейную модель растения.

Model = ss(A,B,C,D);
Model.InputName = {'F_T','F_2','F_3','F'};
Model.InputGroup.MV = 1:3;
Model.InputGroup.MD = 4;
Model.OutputName = {'V','c_1','c_2'};

Создание контроллера MPC

Укажите время выборки, горизонт прогнозирования и горизонт управления для контроллера.

Ts = 0.1;
p = 10;
m = 3;

Создайте контроллер.

mpcobj = mpc(Model,Ts,p,m);
-->The "Weights.ManipulatedVariables" property of "mpc" object is empty. Assuming default 0.00000.
-->The "Weights.ManipulatedVariablesRate" property of "mpc" object is empty. Assuming default 0.10000.
-->The "Weights.OutputVariables" property of "mpc" object is empty. Assuming default 1.00000.

Результатами являются запасы, y(1)и составляющие концентрации, y(2) и y(3). Укажите номинальные значения единицы после нормализации для всех выходов.

mpcobj.Model.Nominal.Y = [1 1 1];

Укажите нормализованные номинальные значения для обрабатываемых переменных. u(1), u(2) и u(3)и измеренное возмущение, u(4).

mpcobj.Model.Nominal.U = [1 fin_nom(2) fin_nom(3) 1];

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

mpcobj.Weights.OV = [1 1 0.5];

Укажите жесткие границы (физические пределы) для обрабатываемых переменных.

umin = [0 0 0];
umax = [2 0.6 0.6];
for i = 1:3
   mpcobj.MV(i).Min = umin(i);
   mpcobj.MV(i).Max = umax(i);
   mpcobj.MV(i).RateMin = -0.1;
   mpcobj.MV(i).RateMax =  0.1;
end

Общая скорость подачи и скорости подачи 2 и подачи 3 имеют верхние границы. Подача 1 также имеет верхнюю границу, определяемую подающим ее узлом выше по потоку.

Указание смешанных ограничений

Учитывая указанные верхние границы скоростей подачи 2 и 3 (0,6), возможно, что их сумма может достигать 1,2. Поскольку номинальная общая скорость подачи составляет 1,0, контроллер может запросить физически невыполнимое условие, когда сумма подаваемых материалов 2 и 3 превышает общую скорость подачи, что подразумевает отрицательную скорость подачи 1.

Следующее ограничение запрещает контроллеру запрашивать нереалистичное$\phi _1$ значение.

$$0 \le {\phi _1} = {\phi _T} - {\phi _2} - {\phi _3} \le 0.8$$

Укажите это ограничение в форме.$Eu + Fy \le g$

E = [-1 1 1; 1 -1 -1];
g = [0;0.8];

Поскольку в смешанных ограничениях не указаны выходные сигналы, установите их коэффициенты на ноль.

F = zeros(2,3);

Укажите, что оба ограничения являются жесткими (ECR = 0).

v = zeros(2,1);

Задайте нулевые коэффициенты для измеренного возмущения.

h = zeros(2,1);

Установите пользовательские ограничения в контроллере MPC.

setconstraint(mpcobj,E,F,g,v,h)

Моделирование модели в Simulink

Модель Simulink содержит нелинейную модель процесса смешивания и неизмеренное нарушение состава сырья компонента 1.

Demand,, $\phi$моделируется как измеренное возмущение. Оператор может изменять значение потребности, и результирующий сигнал поступает как на процесс, так и на контроллер.

Модель моделирует следующий сценарий:

  • При $\tau=0$этом процесс работает в установившемся состоянии.

  • В,$\tau=1$ Total Demand уменьшается от$\phi=1.0$ до.$\phi=0.9$

  • При $\tau=2$этом наблюдается значительное ступенчатое увеличение концентрации компонента 1 в сырье 1 с 1,17 до 2,17.

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

mdl = 'mpc_blendingprocess';
open_system(mdl)
sim(mdl)
-->Converting model to discrete time.
   Assuming no disturbance added to measured output channel #1.
-->Assuming output disturbance added to measured output channel #2 is integrated white noise.
-->Assuming output disturbance added to measured output channel #3 is integrated white noise.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.

В моделировании:

  • В момент времени 0 установка работает стабильно в номинальных условиях.

  • В момент времени 1 потребность уменьшается на 10%, и контроллер поддерживает запас близко к своей уставке.

  • В момент времени 2 наблюдается значительное неизмеренное увеличение концентрации компонента 1, содержащегося в сырье 1. Это возмущение вызывает ошибку прогнозирования и большое возмущение состава смеси.

Возмущение является нелинейным эффектом, но линейный контроллер MPC хорошо восстанавливается и возвращает состав смеси к своей уставке

Проверка влияния пользовательских ограничений

Постройте график сигналов скорости подачи.

figure
plot(MVs.time,[MVs.signals(1).values(:,2), ...
    (MVs.signals(2).values + MVs.signals(3).values), ...
    (MVs.signals(1).values(:,2)-MVs.signals(2).values-MVs.signals(3).values)])
grid
legend('FT','F2+F3','F1')

Неизмеренное нарушение возникает в момент времени 2, что требует от контроллера уменьшения F1. Во время переходного процесса F1 становится нулевой. Если бы смешанное ограничение ввода/вывода не было включено, F1 было бы отрицательным. Запросы контроллера на FT, F2 и F3 было бы невозможно удовлетворить, что привело бы к снижению производительности. С включенным ограничением контроллер делает все возможное, учитывая физические пределы системы.

bdclose(mdl)

См. также

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