В этом примере показано, как реализовать онлайновое полиномиальное средство оценки модели. Вы оцениваете две модели ARMAX для нелинейного процесса химической реакции. Эти модели получают поведение процесса в двух условиях работы. Поведение модели идентифицируется онлайн и используется, чтобы настроить усиления адаптивного ПИ-контроллера во время работы системы.
Постоянно реактор смесителя (CSTR) является общей химической системой в перерабатывающей промышленности. Схематическая из системы CSTR:
Это - покрытое кожухом диабатическое (т.е. недиабатический) реактор бака, описанный экстенсивно в книге Бекетт "Динамика Процесса: Моделирование, Анализ и Симуляция", опубликованный Prentice Hall, 1998. Судно принято, чтобы быть отлично смешанным, и происходит одна экзотермическая и необратимая реакция первого порядка,-> B. Входной поток реагента A питается бак на постоянном уровне. После побуждения потоков конечного продукта из судна на том же уровне как реагент A подан в бак (объем в реакторном баке является постоянным). Детали операции CSTR и его нелинейной модели с 2 состояниями, используемой в этом примере, объяснены в примере Неадиабатический Непрерывный Реактор Смесителя: Моделирование файла MATLAB с Симуляциями в Simulink®.
Входные параметры модели CSTR:
и выходные параметры (y (t)), которые являются также состояниями модели (x (t)):
Цель управления состоит в том, чтобы обеспечить концентрацию реагента A на желаемом уровне, который изменяется в зависимости от времени. Температурой конверта управляет ПИ-контроллер для того, чтобы отклонить воздействия, являющиеся результатом входной потоковой температуры канала. Вход ПИ-контроллера является сигналом ошибки отслеживания. Входная потоковая концентрация канала, принят постоянным. Модель Simulink iddemo_cstr
реализует объект CSTR как блок CSTR
.
open_system('iddemo_cstr');
Вход температуры канала состоит из белого шумового воздействия сверх постоянного смещения. Шумовая степень 0.0075 [K^2]. Этот уровень шума вызывает 2%-е отклонение от желаемого.
Сигнал в этом примере содержит ступенчатое изменение от 1,5 [kgmol/m^3] к 2 [kgmol/m^3] во время. В дополнение к этому ступенчатому изменению, также содержит белое шумовое возмущение для t в [0,200) и [400,600), области значений. Степень этого белого шумового сигнала 0.015. Шумовая степень настроена опытным путем, чтобы приблизительно дать отношение сигнал-шум 10. Наличие достаточного возбуждения в ссылочном сигнале в идентификации с обратной связью может привести к не наличию достаточной информации идентифицировать уникальную модель. Реализация находится в iddemo_cstr/CA Reference
блок.
Известно из нелинейной модели, что CSTR выход более чувствителен к входу управления в более высоких уровнях. Блок Recursive Polynomial Model Estimator используется, чтобы обнаружить это изменение в чувствительности. Эта информация используется, чтобы настроить усиления ПИ-контроллера, как варьируется. Цель состоит в том, чтобы не иметь высокий цикл управления усиления, который может привести к нестабильности.
Вы оцениваете дискретную передаточную функцию от к онлайн с блоком Recursive Polynomial Model Estimator. Алгоритм адаптивного управления использует усиление DC этой передаточной функции. Ошибка отслеживания, разделен на нормированное усиление DC предполагаемой передаточной функции. Эта нормализация сделана, чтобы иметь усиление 1 при ошибке отслеживания в начальной рабочей точке, для которой спроектирован ПИ-контроллер. Например, сигнал ошибки разделен на 2, если усиление DC становится 2 раза своим исходным значением. Это соответствует делению усилений ПИ-контроллера 2. Этот адаптивный контроллер реализован в iddemo_cstr/Adaptive PI Controller
.
Блок 'Recursive Polynomial Model Estimator' найден под System Identification Toolbox/Estimators
библиотека в Simulink. Вы используете этот блок, чтобы оценить линейные модели со структурой ARMAX. Модели ARMAX имеют форму:
Inputs
и Output
импорт рекурсивного полиномиального блока средства оценки модели соответствует и соответственно. Для модели CSTR и отклонения от температуры конверта и обрезки концентрации рабочие точки:. Хорошо масштабировать и иметь пиковую амплитуду 1, чтобы улучшить числовое условие проблемы оценки. Рабочие точки для обрезки, и, не известны точно перед работой системы. Они оценены и извлечены из измеренных сигналов при помощи фильтра скользящего среднего значения первого порядка. Эти фильтры предварительной обработки реализуются в iddemo_cstr/Preprocess Tj
и iddemo_cstr/Preprocess CA
блоки.
open_system('iddemo_cstr/Preprocess Tj');
Дополнительный Enable
импорт блока Recursive Polynomial Model Estimator управляет оценкой параметра блок. Оценка параметра отключена, когда Разрешать сигнал является нулем. Оценка параметра включена для всех других значений Enable
сигнал. В этом примере оценка отключена для временных интервалов и. Во время этих интервалов измеренный вход не содержит достаточное возбуждение для системы идентификации с обратной связью.
Сконфигурируйте параметры блоков, чтобы оценить модель ARMAX второго порядка. Во вкладке Model Parameters задайте:
Структура модели: ARMAX. Выберите ARMAX, поскольку текущие и прошлые значения воздействий, действующих на систему, как ожидают, повлияют на систему CSTR выход.
Первоначальная оценка: 'none'. По умолчанию программное обеспечение использует значение 0 для всех предполагаемых параметров.
Количество параметров в (q) (na): 2
. Нелинейная модель имеет 2 состояния.
Количество параметров в B (q) (nb): 2
.
Количество параметров в C (q) (nc): 2
. Предполагаемая модель соответствует модели второго порядка начиная с максимума na, nb, и nc равняются 2.
Введите задержку (nk): 1
. Как большинство физических систем, система CSTR не имеет прямого сквозного соединения. Кроме того, между его I/Os нет никаких задержек дополнительного времени.
Ковариационная матрица параметра: 1e4
. Задайте высокое значение ковариации, потому что значения исходного предположения очень сомнительны.
'SampleTime' : 0.1
. Модель CSTR, как известно, имеет пропускную способность приблизительно 0.25 Гц, выбранных таким образом, что 1/0.1 больше 20 раз этой пропускной способности (5 Гц).
Нажмите Algorithm и Block Options, чтобы установить опции оценки:
Метод оценки: Forgetting Factor
Упущение фактора: 1-5e-3
. Поскольку предполагаемые параметры, как ожидают, изменятся с рабочей точкой, установятся коэффициент упущения на значение меньше чем 1. Выберите, который соответствует постоянной времени памяти секунд. 100 вторых раз памяти гарантируют, что данные о существенном количестве, используемые в идентификации, прибывают из 200-секундного идентификационного периода в каждой рабочей точке.
Выберите Выходное поле проверки на ошибки оценки. Вы используете этот блок выход, чтобы подтвердить оценку.
Выберите Add, включают флажок порта. Вы только хотите адаптировать предполагаемые параметры модели, когда дополнительный шум введен в ссылочном порте. Оценка параметра n отключена через этот порт, когда дополнительный шум больше не вводится.
Внешний сброс: None
.
На каждом временном шаге рекурсивное полиномиальное средство оценки модели обеспечивает оценку для, и ошибка оценки. Error
выходной порт полиномиального блока средства оценки модели содержит и также известен как ошибку предсказания "один шаг вперед". Parameters
выходной порт блока содержит (q), B (q), и C (q) полиномиальные коэффициенты в сигнале шины. Учитывая выбранные полиномиальные распоряжения (), Parameters
соедините шиной элементы, содержите:
Предполагаемые параметры в (q), B (q), и C (q) полиномы изменяются в процессе моделирования можно следующим образом:
sim('iddemo_cstr'); close_system('iddemo_cstr/Preprocess Tj'); open_system('iddemo_cstr/ABC');
Оценки параметра быстро изменяются от их начальных значений 0 должных к высокому значению, выбранному для начальной ковариационной матрицы параметра. Параметры в и полиномы приближаются к своим значениям в быстро. Однако параметры на полиномиальном показе некоторые колебания. Одна причина позади этих колебаний состоит в том, что воздействие к CSTR выход не полностью моделируется структурой ARMAX. Ошибочная модель не важна для проблемы управления, изученной здесь, поскольку к отношению получен передаточной функцией. Поэтому колебание не является беспокойством об этой проблеме идентификации и управления.
Оценки параметра считаются постоянные для того, поскольку блок средства оценки был отключен для этого интервала (0 сигналов к Enable
импортируйте). Оценка параметра включена в том, когда бак CSTR начинает переключаться на свою новую рабочую точку. Параметры и сходятся к их новым значениям, и затем сохраненный постоянным путем установки Enable
порт к 0. Сходимость и медленнее в этой рабочей точке. Эта медленная сходимость из-за меньших собственных значений ковариационной матрицы параметра в t=400 по сравнению с начальной буквой 1e4 набор значений в t=0. Ковариация параметра, которая является мерой доверия к оценкам, обновляется с каждым временным шагом. Алгоритм быстро изменил оценки параметра, когда доверие к оценкам было низким в t=0. Улучшенные оценки параметра получают поведение системы лучше, приводя к меньшим ошибкам предсказания "один шаг вперед" и меньшим собственным значениям в ковариационной матрице параметра (увеличенное доверие). Поведение системы изменяется в t=400. Однако блок медленнее, чтобы изменить оценки параметра из-за увеличенного доверия к оценкам. Можно использовать Внешнюю опцию Сброса блока Recursive Polynomial Model Estimator, чтобы ввести новое значение для ковариации параметра в t=400. Чтобы видеть значение ковариации параметра, установите флажок ковариационной матрицы Выходного параметра в блоке Recursive Polynomial Model Estimator.
Error
выход Recursive Polynomial Model Estimator
блок дает ошибку "один шаг вперед" для предполагаемой модели.
close_system('iddemo_cstr/ABC'); open_system('iddemo_cstr/1-Step Ahead Prediction Error');
Ошибка "один шаг вперед" выше, когда нет никаких дополнительных возмущений, введенных в канале для системы идентификации. Эти более высокие ошибки могут быть вызваны отсутствием достаточной информации во входном канале, который использует блок средства оценки. Однако даже эта более высокая ошибка является низкой и ограничена когда по сравнению с измеренными колебаниями. Это вселяет веру в предполагаемых значениях параметров.
Более строгая проверка предполагаемой модели должна симулировать предполагаемую модель и соответствовать фактическому выходу модели. 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');
Ошибка симуляции снова ограничена и низко когда по сравнению с колебаниями. Это далее обеспечивает доверие, что предполагаемые линейные модели могут предсказать нелинейное поведение модели CSTR.
Идентифицированные модели могут далее анализироваться в MATLAB. Оценки модели для рабочих точек и могут быть получены путем рассмотрения предполагаемого (q), B (q), и C (q) полиномы в и соответственно. Диаграммы Боде этих моделей:
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. Передаточная функция в имеет более высокое усиление (удвойте амплитуду) в низких частотах.
Вы оценили, что две модели ARMAX получили поведение нелинейного объекта CSTR в двух условиях работы. Оценка была сделана во время операции с обратной связью с адаптивным контроллером. Вы посмотрели на два сигнала подтвердить результаты оценки: Один шаг вперед ошибки предсказания и ошибки между объектом CSTR выход и симуляцией модели оценки. Оба из этих ошибочных сигналов были ограничены и маленькие по сравнению с объектом CSTR выход. Это обеспечило доверие к предполагаемым параметрам модели ARMAX.
bdclose('iddemo_cstr');