Онлайн-оценка полиномиальной модели ARMAX

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

Реактор с непрерывным Баком перемешиванием

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

Это сахарный диабат (т.е. недиабатический) бак реактор, широко описанный в книге Бекетта «Process Dynamics: Моделирование, Analysis and Симуляции», опубликованного Prentice Hall 1998 года. Сосуд принимается идеально смешанным, и происходит одна экзотермическая и необратимая реакция первого порядка A -- > B. Входной поток реагента A подается в бак с постоянной скоростью. После перемешивания конечный продукт вытекает из емкости с той же скоростью, что и реагент А, подается в бак (объем в баке реактора постоянен). Детали операции CSTR и его нелинейной модели с 2 состояниями, используемой в этом примере, объясняются в примере Non-Adiabatic Continuous Stirred Tank Reactor: ФАЙЛ MATLAB Modeling with Simulations in Simulink ®.

Входы модели CSTR:

$$ \begin{array} {ll}
u_1(t) = C_{Af}(t) \; & \textnormal{Concentration of A in inlet feed
stream} [kgmol/m^3] \\
u_2(t) = T_f(t) \; & \textnormal{Inlet feed stream temperature} [K] \\
u_3(t) = T_j(t) \; & \textnormal{Jacket coolant temperature} [K] \\
\end{array} $$

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

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

Целью управления является поддержание концентрации реагента А$C_{A}(t)$ на желаемом уровне, $C_{Aref}(t)$который изменяется с течением времени. Температурой кожуха$T_j(t)$ манипулируют с помощью ПИ-регулятора, чтобы отклонить нарушения порядка, возникающие из-за температуры входного потока. $T_f(t)$Входом ПИ-контроллера является сигнал ошибки отслеживания,. $C_{Aref}(t)-C_A(t)$Концентрация входного потока сырья,, $C_{Af}(t)$принята постоянной. Модель Simulink iddemo_cstr реализует объект CSTR как блок CSTR.

open_system('iddemo_cstr');

$T_f(t)$Температура подачи входа состоит из белого шума, нарушения порядка на верхнюю часть постоянного смещения. Степень составляет 0,0075 [K ^ 2]. Этот уровень шума вызывает до 2% отклонения от желаемого$C_{Aref}(t)$.

$C_{Aref}(t)$Сигнал в этом примере содержит изменение шага от 1,5 [кгмоль/м ^ 3] до 2 [кгмоль/м ^ 3] в $t=400$момент времени. В сложение к этому изменению шага$C_{Aref}(t)$ также содержит возмущение белого шума для t в областях значений [0 200) и [400 600). Степень этого сигнала белого шума составляет 0,015. Степень шума регулируется эмпирически, чтобы приблизительно получить отношение сигнал/шум 10. Отсутствие достаточного возбуждения в опорный сигнал при идентификации с обратной связью может привести к тому, что не будет достаточной информации для идентификации уникальной модели. Реализация$C_{Aref}(t)$ находится в iddemo_cstr/CA Reference блок.

Онлайн-оценка для адаптивного управления

Из нелинейной модели известно, что выход CSTR$C_{A}(t)$ более чувствителен к входу управления$T_j(t)$ на более высоких$C_{A}(t)$ уровнях. Блок Recursive Polynomial Model Estimator используется, чтобы обнаружить это изменение чувствительности. Эта информация используется для корректировки коэффициентов усиления ПИ-контроллера по$C_{A}(t)$ мере изменения. Цель состоит в том, чтобы избежать высокого коэффициента усиления цикла управления который может привести к нестабильности.

Вы оцениваете дискретную передаточную функцию от$T_j(t)$ до$C_{A}(t)$ онлайн с блоком Recursive Polynomial Model Estimator. Адаптивный алгоритм управления использует коэффициент усиления постоянного тока этой передаточной функции. Ошибка отслеживания $C_{Aref}(t)-C_A(t)$делится на нормализованный коэффициент усиления постоянного тока предполагаемой передаточной функции. Эта нормализация выполняется, чтобы иметь коэффициент усиления 1 по ошибке отслеживания в начальной рабочей точке, для которой предназначено ПИ-контроллер. Для образца сигнал ошибки делится на 2, если коэффициент усиления постоянного тока становится в 2 раза больше его исходного значения. Это соответствует делению коэффициентов усиления ПИ-контроллера на 2. Этот адаптивный контроллер реализован в iddemo_cstr/Adaptive PI Controller.

Входные параметры

Полинома оценки рекурсивного Блока

Блок 'Recursive Polynomial Model Estimator' найден под System Identification Toolbox/Estimators библиотека в Simulink. Вы используете этот блок для оценки линейных моделей со структурой ARMAX. Модели ARMAX имеют вид:

$$
\begin{array} {l}A(q)\bar{y}(t)=B(q)\bar{u}(t)+C(q)\bar{e}(t) \\[0.1in]
A(q) = 1+a_1z^{-1}+a_2z^{-2}+\cdots+a_{na}z^{-na} \\
B(q) = (b_01+b_1z^{-1}+b_2z^{-2}+\cdots+a_{nb-1}z^{-nb+1})z^{-nk} \\
C(q) = 1+c_1z^{-1}+c_2z^{-2}+\cdots+c_{nc}z^{-nc} \\
\end{array}
$$

  • The Inputs и Output входной порт блока оценки рекурсивной полиномиальной модели соответствует$\bar{u}(t)$ и$\bar{y}(t)$ соответственно. Для модели CSTR$\bar{y}$ и являются$\bar{u}$ отклонения от температуры рубашки и рабочих точек обрезки концентрации A:,. Хорошо $\bar{y}=C_A(t)-\bar{C}_A(t)$$\bar{u}=T_j(t)-\bar{T}_j(t)$масштабировать и$\bar{u}$ иметь$\bar{y}$ пиковую амплитуду 1, чтобы улучшить численное условие задачи оценки. Рабочие точки обрезки, и,$\bar{C}_A(t)$ не $\bar{T}_j(t)$известны точно до операции системы. Они оцениваются и извлекаются из измеренных сигналов с помощью фильтра скользящего среднего первого порядка. Эти фильтры предварительной обработки реализованы в iddemo_cstr/Preprocess Tj и iddemo_cstr/Preprocess CA блоки.

open_system('iddemo_cstr/Preprocess Tj');

  • Необязательный Enable входной порт блока Recursive Polynomial Model Estimator управляет оценкой параметра в блоке. Оценка параметра отключена, когда сигнал Enable равен нулю. Оценка параметра включена для всех других значений Enable сигнал. В этом примере оценка отключена для временных интервалов$t\in[200,400)$ и. $t\in[600,800)$В течение этих интервалов измеренный вход$T_j(t)$ не содержит достаточного возбуждения для системы идентификации с обратной связью.

Рекурсивный блок Полинома оценки модели Setup

Сконфигурируйте параметры блоков, чтобы оценить модель ARMAX второго порядка. На вкладке Параметры модели задайте:

  • Структура модели: ARMAX. Выберите ARMAX, поскольку текущее и прошлое значения нарушений порядка, действующих на систему, $T_f(t)$как ожидается, повлияют на выход системы CSTR.$C_A(t)$

  • Первоначальная оценка: Нет. По умолчанию программа использует значение 0 для всех предполагаемых параметров.

  • Количество параметров в A (q) (na): 2. Нелинейная модель имеет 2 состояния.

  • Количество параметров В (q) (nb): 2.

  • Количество параметров в C (q) (nc): 2. Предполагаемая модель соответствует модели второго порядка, так как максимум na, nb и nc равны 2.

  • Вход (nk): 1. Как и большинство физических систем, система CSTR не имеет прямого сквозного соединения. Кроме того, нет дополнительных задержек времени между его входами/выходами.

  • Матрица Ковариации параметров: 1e4. Задайте высокое ковариационное значение, потому что начальные предположительные значения очень неопределенны.

  • Шаг расчета: 0.1. Известно, что модель CSTR имеет полосу пропускания около 0.25Hz.$T_s=0.1$ выбран таким образом, что 1/0,1 больше, чем в 20 раз больше этой полосы пропускания (5 Гц).

Щелкните Алгоритм и Опции блоков, чтобы задать опции оценки:

  • Метод оценки: Forgetting Factor

  • Коэффициент забывания: 1-5e-3. Поскольку предполагаемые параметры, как ожидается, изменятся с рабочей точкой, установите коэффициент забывания на значение менее 1. Выберите$\lambda = 1-5e-3$, что соответствует постоянной времени памяти в$T_0=\frac{Ts}{1-\lambda}=100$ секундах. 100-секундное время памяти гарантирует, что значительная величина данных, используемых для идентификации, приходит от 200-секундного периода идентификации в каждой рабочей точке.

  • Установите флажок Выхода ошибки расчета. Вы используете этот выход блока для проверки оценки.

  • Установите флажок Добавить порт включения. Вы хотите только адаптировать предполагаемые параметры модели, когда в порт ссылки вводится дополнительный шум. Оценка параметра n отключена через этот порт, когда дополнительный шум больше не вводится.

  • Внешний сброс: None.

Выходные выходы блока рекурсивной полиномиальной модели Estimator

На каждом временном шаге рекурсивная оценка полиномиальной модели обеспечивает оценку для,$A(q)$, $B(q)$$C(q)$и ошибки расчета. $\bar{e}$The Error выход блока оценки полиномиальной модели содержит$\bar{e}(t)$ и также известен как одноэтапная ошибка предсказания. The Parameters выходной порт блока содержит полиномиальные коэффициенты A (q), B (q) и C (q) в шинном сигнале. Учитывая выбранные полиномиальные $na=2$порядки $nb=2$$nc=2$(,,,), $nk=1$Parameters элементы шины содержат:

$$ \begin{array} {l}
A(t) = [1 \; a_1(t) \; a_2(t)] \\
B(t) = [0 \; b_0(t) \; b_1(t)] \\
C(t) = [1 \; c_1(t) \; c_2(t)] \\
\end{array} $$

Предполагаемые параметры в полиномах A (q), B (q) и C (q) изменяются во время симуляции следующим образом:

sim('iddemo_cstr');
close_system('iddemo_cstr/Preprocess Tj');
open_system('iddemo_cstr/ABC');

Оценки параметра быстро изменяются с их начальных значений 0 из-за высокого значения, выбранного для ковариационной матрицы начального параметра. Параметры в$A(q)$ и$B(q)$ полиномы быстро приближаются к своим значениям$t=200$. Однако параметры в$C(q)$ полиноме показывают некоторые колебания. Одной из причин этих колебаний является то, что нарушение порядка на$T_f(t)$ выходе CSTR $C_A(t)$не полностью смоделировано структурой ARMAX. Модель ошибки не$C(q)$ важна для проблемы управления, изученной здесь, поскольку$T_j(t)$ отношение к $C_A(t)$захватывается передаточной функцией. $\frac{B(q)}{A(q)}$Поэтому колебание не является$C(q)$ проблемой для этой проблемы идентификации и управления.

Оценки параметров являются постоянными$t\in[200,400)$, поскольку блок оценщика был отключен для этого интервала (сигнал 0 к Enable inport). Оценка параметра активируется$t=400$, когда бак CSTR начинает переключаться на свою новую рабочую точку. Параметры$A(q)$ и $B(q)$сходятся к их новым значениям по, $t=600$а затем остаются постоянными путем установки Enable порт к 0. Сходимость$A(q)$ и$B(q)$ медленнее в этой рабочей точке. Эта медленная сходимость обусловлена меньшими собственными значениями параметрической ковариационной матрицы при t = 400 по сравнению с начальными значениями 1e4, установленными при t = 0. Ковариация параметра, которая является мерой доверия в оценках, обновляется с каждым временным шагом. Алгоритм быстро изменил оценки параметров, когда доверие в оценках было низкой при t = 0. Улучшенные оценки параметров лучше регистрируют поведение системы, что приводит к меньшим ошибкам предсказания на один шаг вперед и меньшим собственным значениям в параметрической ковариационной матрице (повышенное доверие). Поведение системы изменяется в t = 400. Однако блок медленнее изменяет оценки параметров из-за повышенного доверия в оценках. Можно использовать опцию External Reset блока Recursive Polynomial Model Estimator, чтобы предоставить новое значение для ковариации параметра при t = 400. Чтобы увидеть значение ковариации параметра, установите флажок Ковариационная матрица выходного параметра в блоке Recursive Polynomial Model Estimator.

Валидация предполагаемой модели

The Error выход Recursive Polynomial Model Estimator блок дает ошибку с одним шагом вперед для предполагаемой модели.

close_system('iddemo_cstr/ABC');
open_system('iddemo_cstr/1-Step Ahead Prediction Error');

Одноэтапная ошибка выше, когда нет дополнительных возмущений, введенных в$T_j(t)$ канал для системы идентификации. Эти более высокие ошибки могут быть вызваны отсутствием достаточной информации в$T_j(t)$ канале входа, на которую полагается блок оценщика. Однако даже эта более высокая ошибка является низкой и ограниченной по сравнению с измеренными колебаниями в. $C_A(t)$Это дает доверие в оцененных значениях параметров.

Более тщательная проверка предполагаемой модели состоит в том, чтобы симулировать предполагаемую модель и сравнить с фактическим выходом модели. The iddemo_cstr/Time-Varying ARMAX блок реализует изменяющуюся во времени модель ARMAX, оцененную блоком Online Polynomial Model Estimator. Ошибка между выходом системы CSTR и предполагаемым изменяющимся во времени выходом модели ARMAX:

close_system('iddemo_cstr/1-Step Ahead Prediction Error');
open_system('iddemo_cstr/Simulation Error');

Ошибка симуляции снова ограничена и низка по сравнению с колебаниями в. $C_A(t)$Это также обеспечивает доверие в том, что оцененные линейные модели способны предсказать поведение нелинейной модели CSTR.

Идентифицированные модели могут быть дополнительно проанализированы в MATLAB. Оценка модели для рабочих точек$C_A=1.5 [kgmol/m^3]$ и$C_A=2 [kgmol/m^3]$ может быть получена путем просмотра предполагаемых полиномов A (q), B (q) и C (q) на$t = 200$ и$t = 600$ соответственно. Диаграммы Боде из этих моделей:

Ts = 0.1;
tidx = find(t>=200,1);
P200 = idpoly(AHat(:,:,tidx),BHat(:,:,tidx),CHat(:,:,tidx),1,1,[],Ts);
tidx = find(t>=600,1);
P600 = idpoly(AHat(:,:,tidx),BHat(:,:,tidx),CHat(:,:,tidx),1,1,[],Ts);
bodemag(P200,'b',P600,'r--',{10^-1,20});
legend('Estimated Model at C_A=1.5 [kgmol/m^3]', ...
       'Estimated Model at C_A=2.0 [kgmol/m^3]', ...
       'Location', 'Best');

Предполагаемая модель имеет более высокий коэффициент усиления при более высоких уровнях концентрации. Это согласуется с предшествующими знаниями о нелинейном объекте CSTR. Передаточная функция при$C_A(t)=2 [kgmol/m^3]$ имеет$6dB$ более высокий коэффициент усиления (двойная амплитуда) на низких частотах.

Сводные данные

Вы оценили две модели ARMAX, чтобы захватить поведение нелинейного объекта CSTR при двух рабочих условиях. Оценка была выполнена во время работы с обратной связью с адаптивным контроллером. Вы рассмотрели два сигнала, чтобы подтвердить результаты оценки: На один шаг вперед ошибки предсказания и ошибки между выходом объекта CSTR и симуляцией модели оценки. Оба этих сигнала ошибок были ограничены и малы по сравнению с выходом на объекте CSTR. Это обеспечило доверие в оценочных параметрах модели ARMAX.

bdclose('iddemo_cstr');